acuity-mcp
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 用户 ID 和 API 密钥,来自 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"凭据解析顺序
ACUITY_USER_ID+ACUITY_API_KEY环境变量(直接覆盖,无需账户文件)工具调用中的
account参数,或ACUITY_ACCOUNT环境变量——按名称查找accounts.json自身的default账户accounts.json中仅配置了一个账户——自动使用旧式平面文件
~/.config/acuity-mcp/credentials(ACUITY_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 correctlyThis server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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