OfficeRnD MCP 服务器

一个只读的模型上下文协议(MCP)服务器,连接AI助手到OfficeRnD联合办公和灵活空间管理平台,通过自然语言查询成员、公司、预订、账单等信息。

  • by MrBoor
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 MrBoor/officernd-mcp

使用说明

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_slug

org slug是OfficeRnD URL中的标识符: app.officernd.com/.../{your_org_slug}.

使用Claude Desktop

  1. 打开 克劳德桌面 > 设置 > 开发者 > 编辑配置.
  2. 将服务器添加到 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. 重新启动克劳德桌面。聊天输入中的锤子图标确认连接。

使用ChatGPT桌面

  1. 打开 ChatGPT桌面应用程序 并前往 设置 (Cmd+, 在macOS上/ Ctrl+, 在Windows上)。
  2. 导航至 工具 (或 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"
      }
    }
  }
}
  1. 重新启动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个值

许可证

麻省理工学院