Skip to main content
Glama

acuity-mcp

一个本地 MCP 服务器,将 Acuity Scheduling API 暴露为 Claude Code 工具——列出/创建/重新安排/取消预约、检查可用性、列出预约类型、日历和客户,全部直接在 Claude 会话中完成。支持多个 Acuity 账户并行,每个工具调用可切换。

Built custom because no maintained free MCP for Acuity exists — the only GitHub repo found during research pointed at an npm package that was never published. Uses @modelcontextprotocol/sdk + zod, runs over stdio.

如果你是 Claude:请先阅读此内容

如果用户要求你设置此工具、添加 Acuity 账户、切换账户或排查连接问题,请加载此仓库中的 .claude/skills/acuity-mcp-setup/SKILL.md——它包含所有步骤的完整说明。本 README 是面向人类的参考;技能文件才是你实际应遵循的内容。

设置前需要什么

一个 Acuity Scheduling 用户 IDAPI 密钥,来自 Acuity:Business Settings → Integrations → API。每个要连接的 Acuity 账户需要一对。

⚠️ Acuity 按计划层级限制 API 访问。 某些计划对每个请求返回 403: API access is only available on Powerhouse plans——这是 Acuity 拒绝你的账户,而非此处错误。基本认证成功(无 401)但每次调用仍返回 403 是此问题的特征。如果遇到,要么升级计划,要么使用同一账户的替代路径(例如 Zapier Acuity 连接器,经验表明它不受相同限制)。

安装

npm install

快速开始——一个账户

node bin/acuity-accounts.js add production --user-id <your-user-id> --api-key <your-api-key>

你添加的第一个账户自动成为默认账户。然后向 Claude Code 注册服务器:

claude mcp add acuity -s user -- node "$(pwd)/server.js"

启动新的 Claude Code 会话(或在现有会话中运行 /mcp),以便工具显示。

无需 Claude 会话即可验证其是否工作:

node bin/acuity-accounts.js test

多个账户

添加任意数量的命名账户:

node bin/acuity-accounts.js add production --user-id 1111111 --api-key aaaa... --label "Real account"
node bin/acuity-accounts.js add sandbox    --user-id 2222222 --api-key bbbb... --label "Trial/test account"

凭据保存在 ~/.config/acuity-mcp/accounts.json 中(chmod 600,绝不在此仓库内,绝不提交)。管理它们:

node bin/acuity-accounts.js list                # see configured accounts (never prints API keys)
node bin/acuity-accounts.js set-default sandbox # change which one is used by default
node bin/acuity-accounts.js remove sandbox      # remove one
node bin/acuity-accounts.js test sandbox        # verify one specific account's credentials

在 Claude 会话内切换账户无需重新注册任何内容——此服务器暴露的每个工具都接受可选的 account 参数:

"列出沙盒账户的预约类型" → Claude 调用 list_appointment_types,参数为 {"account": "sandbox"}

随时要求 Claude 运行 list_accounts 以查看已配置的账户及默认账户。

如果你更希望为每个账户运行完全独立的 MCP 服务器注册(例如,使每个服务器显示为不同名称),那仍然可行——将 ACUITY_ACCOUNT 指向一个名称,而不是每次调用传递 account

claude mcp add acuity-production -s user -e ACUITY_ACCOUNT=production -- node "$(pwd)/server.js"
claude mcp add acuity-sandbox    -s user -e ACUITY_ACCOUNT=sandbox    -- node "$(pwd)/server.js"

凭据解析顺序

  1. ACUITY_USER_ID + ACUITY_API_KEY 环境变量(直接覆盖,无需账户文件)

  2. 工具调用中的 account 参数,或 ACUITY_ACCOUNT 环境变量——按名称查找

  3. accounts.json 自身的 default 账户

  4. accounts.json 中仅配置了一个账户——自动使用

  5. 旧式平面文件 ~/.config/acuity-mcp/credentialsACUITY_USER_ID=.../ACUITY_API_KEY=... 行)——为向后兼容旧版单账户设置而支持

工具

仅本地,无 Acuity API 调用:

  • list_accounts——列出已配置的账户名称/标签及默认账户(绝不显示 API 密钥)

只读:

  • list_appointment_types——列出可预约的咨询类型

  • list_calendars——列出日历/员工

  • list_appointments——可按日期范围/日历/类型/取消状态筛选

  • get_appointment——按 ID 获取单个预约的完整详情

  • check_availability_dates——某月内某预约类型的可用日期

  • check_availability_times——某日期某预约类型的可用时间段

  • list_clients——已预约的客户

变更(对实时日历进行实际更改——Claude 在调用这些工具前会请求确认):

  • create_appointment——预约新预约

  • reschedule_appointment——更改预约的日期/时间

  • cancel_appointment——取消预约

所有工具都接受可选的 account 参数(参见多个账户)。

未实现(相同模式,如有需要可稍后添加):支付、封锁、表单、Webhook、礼品券。

经验教训(扩展此服务器前请阅读)

  • 来自变更调用的 200 OK 并不证明变更已发生。 reschedule_appointment 最初调用 PUT /appointments/:id,返回 200 并回显了未更改的预约——Acuity 在该端点上静默忽略了 datetime 字段。修复方法是使用专用的 PUT /appointments/:id/reschedule 路由,匹配 cancel_appointment 已使用的模式(/appointments/:id/cancel)。在写入后始终使用 get_appointment 重新获取以确认,尤其是对于以后添加的任何新变更工具。

  • npx @modelcontextprotocol/sdk + zod 的用法。 reschedule_appointment 最初调用 PUT /appointments/:id,返回 200 并回显了未更改的预约——Acuity 在该端点上静默忽略了 datetime 字段。修复方法是使用专用的 PUT /appointments/:id/reschedule 路由,匹配 cancel_appointment 已使用的模式(/appointments/:id/cancel)。在写入后始终使用 get_appointment 重新获取以确认,尤其是对于以后添加的任何新变更工具。

手动验证

node bin/acuity-accounts.js test            # tests the default/env-resolved account
node bin/acuity-accounts.js test <name>     # tests one specific named account
npx @modelcontextprotocol/inspector --cli node server.js --method tools/list   # confirms the server starts and tools register correctly
-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/walakaka77/acuity-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server