OfficeRnD MCP服务器
只读 模型上下文协议 (MCP)服务器,将AI助手连接到 办公室RND 共享办公和灵活空间管理平台。通过自然语言查询会员、公司、预订、账单等。
它做什么
此服务器通过5个域分组工具公开OfficeRnD数据,涵盖25种以上的实体类型:
| 工具 | 实体 | 示例查询 |
|---|---|---|
| 社区 | 成员、公司、会员资格、签到、合同、访问、访客、机会 | “列出所有活跃成员”/“显示上周的访问” |
| 空间 | 资源、预订、预订事件、楼层、任务、设施、通行证、积分 | “有哪些会议室可用?”/“列出今天的预订” |
| 计费 | 付款、费用、计划、硬币/信用统计 | “显示待付款”/“获取3月份的信用余额” |
| 合作 | 活动、门票、帖子 | “列出开放门票”/“即将举办哪些活动?” |
| 设置 | 地点、资源类型、营业时间、自定义属性 | “列出所有办公地点” |
所有工具都是 只读 --不能创建、修改或删除任何数据。
先决条件
- Node.js 18+
- OfficeRnD API凭据 -客户端ID、客户端机密和组织段塞(来自“集成”>“API”下的OfficeRnD管理面板)
快速开始
git clone https://github.com/MrBoor/officernd-mcp.git
cd officernd-mcp
npm install
npm run build配置
设置三个环境变量(通过 .env 文件或直接):
OFFICERND_CLIENT_ID=your_client_id
OFFICERND_CLIENT_SECRET=your_client_secret
OFFICERND_ORG_SLUG=your_organization_slugorg slug是OfficeRnD URL中的标识符: app.officernd.com/.../{your_org_slug}.
使用Claude Desktop
- 打开 克劳德桌面 > 设置 > 开发者 > 编辑配置.
- 将服务器添加到
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"
}
}
}
}- 重新启动克劳德桌面。聊天输入中的锤子图标确认连接。
使用ChatGPT桌面
- 打开 ChatGPT桌面应用程序 并前往 设置 (
Cmd+,在macOS上/Ctrl+,在Windows上)。 - 导航至 工具 (或 MCP服务器)并添加新服务器,或直接在以下位置编辑配置文件
~/.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"
}
}
}
}- 重新启动ChatGPT。服务器应出现在您的工具列表中。
注: MCP支持需要ChatGPT桌面应用程序(macOS或Windows)——它在web版本中不可用。需要Plus、Team或Enterprise订阅。
使用克劳德代码(CLI)
选项A--CLI命令(推荐):
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使用 -s project 而不是 -s user 仅适用于当前项目。
选项B——项目配置文件:
A. .mcp.json 包含在回购中。填写您的凭据:
{
"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"
}
}
}
}验证: 跑 /mcp 在Claude Code内部检查服务器状态。
工具参考
每个工具都接受一个 action (list, get,或特别行动) entity 类型和可选过滤器。所有支持基于光标的分页 cursorNext (每页最多50个结果)。
社区
查询社区/人员数据。
| 实体 | 操作 | 筛选器 |
|---|---|---|
members | 列表,获取 | status, email, name, company, location |
companies | 列表,获取 | name, status, location |
memberships | 列表,获取 | member, company, status |
checkins | 列表,获取 | member, location, startAfter, startBefore |
contracts | 列表,获取 | member, company, status |
visits | 列表,获取 | location, startAfter, startBefore |
visitors | 列表 | _(仅分页)_ |
opportunities | 列表,获取 | status, member, company |
opportunity_statuses | 列表 | _(仅分页)_ |
空间
查询空间/资源数据。
| 实体 | 操作 | 筛选器 |
|---|---|---|
resources | 列表、获取、状态 | type, name, location |
bookings | 列表,获取 | resourceId, member, company, location, startAfter, startBefore |
booking_occurrences | 列表 | seriesStart (必填), seriesEnd (必填), resourceId, member, location |
floors | 列表,获取 | location, name |
assignments | 列表 | resourceId, membershipId |
amenities | 列表,获取 | title |
passes | 列表,获取 | member, company |
credits | 列表,获取 | member, company |
资源类型 type 筛选器: meeting_room, team_room, desk, hotdesk, desk_tr, desk_na.
计费
查询账单/财务数据。
| 实体 | 操作 | 筛选器 |
|---|---|---|
payments | 列表,获取 | status, member, company, documentType, dateFrom, dateTo, sort |
fees | 列表 | _(仅分页)_ |
plans | 列表,获取 | sort |
特别行动-- coin_stats:获取会员或公司在给定月份的硬币/信用余额。参数: member, company, month (例如。, 2026-03).
合作
查询协同数据。
| 实体 | 操作 | 筛选器 |
|---|---|---|
events | 列表,获取 | location, startAfter, startBefore |
tickets | 列表,获取 | status, member, location |
posts | 列表,获取 | _(仅分页)_ |
设置
查询组织配置。
| 实体 | 操作 | 筛选器 |
|---|---|---|
locations | 列表,获取 | name |
resource_types | 列表 | _(仅分页)_ |
business_hours | 列表 | location |
custom_properties | 列表 | _(仅分页)_ |
发展
npm run dev # Watch mode — recompiles on changes
npm run inspect # Launch with MCP Inspector for debugging建筑
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请求流程: AI助手→ MCP标准→ 工具操作员→ OAuth令牌(缓存)→ HTTP获取→ OfficeRnD API→ 格式化响应。
API费率限制
OfficeRnD API v2对每个组织的每次集成强制执行速率限制:
| 操作 | 每分钟 | 每天 |
|---|---|---|
| 读取(GET) | 400 | 20000 |
| 令牌生成 | 5 | -- |
此服务器仅执行读取操作。OAuth令牌缓存在内存中并重复使用,直到到期(有60秒的缓冲区),使令牌请求远低于5/min的限制。
如果你收到HTTP 429 Too Many Requests,实现指数退避,将请求分散开来,而不是突然爆发。如有需要,请联系OfficeRnD支持人员了解费率限制例外情况。
安全
- 只读 --仅GET请求;无法修改数据
- OAuth 2.0客户端凭据 --令牌缓存在内存中,到期前自动刷新
- 代码中没有秘密 --凭据通过环境变量传递
- 范围访问 --仅请求所需的最小读取权限
备注
- 日期/时间输出转换为东部时间(ET)
- 姓名过滤器(如有注明)要求完全匹配全名(例如,“Jane Smith”而不是“Jane”)
- 分页限制为每页50个项目(默认和最大)
- 这
$in过滤器运算符的上限为50个值
