OfficeRnD MCP Server

OfficeRnD MCP Server

A read-only MCP server that connects AI assistants to the OfficeRnD coworking and flex-space management platform. It enables natural language queries for community members, space bookings, billing records, and office resources.

Category
访问服务器

README

OfficeRnD MCP Server

A read-only Model Context Protocol (MCP) server that connects AI assistants to the OfficeRnD coworking and flex-space management platform. Query members, companies, bookings, billing, and more through natural language.

What it does

This server exposes OfficeRnD data through 5 domain-grouped tools, covering 25+ entity types:

Tool Entities Example queries
community Members, companies, memberships, check-ins, contracts, visits, visitors, opportunities "List all active members" / "Show me visits from last week"
space Resources, bookings, booking occurrences, floors, assignments, amenities, passes, credits "What meeting rooms are available?" / "List bookings for today"
billing Payments, fees, plans, coin/credit stats "Show pending payments" / "Get credit balance for March"
collaboration Events, tickets, posts "List open tickets" / "What events are coming up?"
settings Locations, resource types, business hours, custom properties "List all office locations"

All tools are read-only — no data can be created, modified, or deleted.

Prerequisites

  • Node.js 18+
  • OfficeRnD API credentials — client ID, client secret, and organization slug (from your OfficeRnD admin dashboard under Integrations > API)

Quick start

git clone https://github.com/MrBoor/officernd-mcp.git
cd officernd-mcp
npm install
npm run build

Configuration

Set three environment variables (via .env file or directly):

OFFICERND_CLIENT_ID=your_client_id
OFFICERND_CLIENT_SECRET=your_client_secret
OFFICERND_ORG_SLUG=your_organization_slug

The org slug is the identifier in your OfficeRnD URL: app.officernd.com/.../{your_org_slug}.

Usage with Claude Desktop

  1. Open Claude Desktop > Settings > Developer > Edit Config.
  2. Add the server to claude_desktop_config.json:
{
  "mcpServers": {
    "officernd": {
      "command": "node",
      "args": ["/absolute/path/to/officernd-mcp/build/index.js"],
      "env": {
        "OFFICERND_CLIENT_ID": "your_client_id",
        "OFFICERND_CLIENT_SECRET": "your_client_secret",
        "OFFICERND_ORG_SLUG": "your_organization_slug"
      }
    }
  }
}
  1. Restart Claude Desktop. A hammer icon in the chat input confirms the connection.

Usage with ChatGPT Desktop

  1. Open the ChatGPT desktop app and go to Settings (Cmd+, on macOS / Ctrl+, on Windows).
  2. Navigate to Tools (or MCP Servers) and add a new server, or edit the config file directly at ~/.chatgpt/mcp.json:
{
  "mcpServers": {
    "officernd": {
      "command": "node",
      "args": ["/absolute/path/to/officernd-mcp/build/index.js"],
      "env": {
        "OFFICERND_CLIENT_ID": "your_client_id",
        "OFFICERND_CLIENT_SECRET": "your_client_secret",
        "OFFICERND_ORG_SLUG": "your_organization_slug"
      }
    }
  }
}
  1. Restart ChatGPT. The server should appear in your tools list.

Note: MCP support requires the ChatGPT desktop app (macOS or Windows) — it is not available in the web version. Requires a Plus, Team, or Enterprise subscription.

Usage with Claude Code (CLI)

Option A — CLI command (recommended):

claude mcp add officernd \
  -e OFFICERND_CLIENT_ID=your_client_id \
  -e OFFICERND_CLIENT_SECRET=your_client_secret \
  -e OFFICERND_ORG_SLUG=your_org_slug \
  -s user \
  -- node /absolute/path/to/officernd-mcp/build/index.js

Use -s project instead of -s user to scope to the current project only.

Option B — Project config file:

A .mcp.json is included in the repo. Fill in your credentials:

{
  "mcpServers": {
    "officernd": {
      "type": "stdio",
      "command": "node",
      "args": ["build/index.js"],
      "env": {
        "OFFICERND_CLIENT_ID": "your_client_id",
        "OFFICERND_CLIENT_SECRET": "your_client_secret",
        "OFFICERND_ORG_SLUG": "your_organization_slug"
      }
    }
  }
}

Verify: Run /mcp inside Claude Code to check the server status.

Tool reference

Each tool accepts an action (list, get, or a special action), an entity type, and optional filters. All support cursor-based pagination via cursorNext (max 50 results per page).

community

Query community/people data.

Entity Actions Filters
members list, get status, email, name, company, location
companies list, get name, status, location
memberships list, get member, company, status
checkins list, get member, location, startAfter, startBefore
contracts list, get member, company, status
visits list, get location, startAfter, startBefore
visitors list (pagination only)
opportunities list, get status, member, company
opportunity_statuses list (pagination only)

space

Query space/resource data.

Entity Actions Filters
resources list, get, status type, name, location
bookings list, get resourceId, member, company, location, startAfter, startBefore
booking_occurrences list seriesStart (required), seriesEnd (required), resourceId, member, location
floors list, get location, name
assignments list resourceId, membershipId
amenities list, get title
passes list, get member, company
credits list, get member, company

Resource types for the type filter: meeting_room, team_room, desk, hotdesk, desk_tr, desk_na.

billing

Query billing/financial data.

Entity Actions Filters
payments list, get status, member, company, documentType, dateFrom, dateTo, sort
fees list (pagination only)
plans list, get sort

Special action — coin_stats: Get coin/credit balance for a member or company in a given month. Parameters: member, company, month (e.g., 2026-03).

collaboration

Query collaboration data.

Entity Actions Filters
events list, get location, startAfter, startBefore
tickets list, get status, member, location
posts list, get (pagination only)

settings

Query organization configuration.

Entity Actions Filters
locations list, get name
resource_types list (pagination only)
business_hours list location
custom_properties list (pagination only)

Development

npm run dev         # Watch mode — recompiles on changes
npm run inspect     # Launch with MCP Inspector for debugging

Architecture

src/
  index.ts          # Entry point — env validation, tool registration, stdio transport
  auth.ts           # OAuth 2.0 client-credentials flow with token caching
  client.ts         # API client — GET helper, pagination, base URL
  tools/
    community.ts    # Members, companies, memberships, check-ins, contracts, visits
    space.ts        # Resources, bookings, floors, assignments, amenities
    billing.ts      # Payments, fees, plans, coin stats
    collaboration.ts # Events, tickets, posts
    settings.ts     # Locations, resource types, business hours, custom properties

Request flow: AI assistant → MCP stdio → tool handler → OAuth token (cached) → HTTP GET → OfficeRnD API → formatted response.

API rate limits

OfficeRnD API v2 enforces rate limits per integration per organization:

Operation Per Minute Per Day
Read (GET) 400 20,000
Token generation 5

This server only performs read operations. OAuth tokens are cached in memory and reused until expiry (with a 60-second buffer), keeping token requests well under the 5/min limit.

If you receive HTTP 429 Too Many Requests, implement exponential backoff and spread requests out rather than bursting. Contact OfficeRnD support for rate limit exceptions if needed.

Security

  • Read-only — Only GET requests; no data modification possible
  • OAuth 2.0 client credentials — Tokens cached in memory, auto-refreshed before expiry
  • No secrets in code — Credentials are passed via environment variables
  • Scoped access — Only requests the minimum read permissions needed

Notes

  • Date/time output is converted to Eastern Time (ET)
  • Name filters (where noted) require exact full name match (e.g., "Jane Smith" not "Jane")
  • Pagination is capped at 50 items per page (both default and maximum)
  • The $in filter operator is capped at 50 values

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选