mcpField
Z
zenoti

zenoti

本地服务
github.com/tacit-code商业与营销012 周前更新

关于 zenoti

zenoti 是连接 Zenoti 水疗、健康和医美管理平台的 MCP 服务,面向需要通过 Agent 操作业务数据的机构。它将宾客、预约、预订、发票、目录和表单等功能提供为工具,并处理该平台的标识符和更新行为差异。

主要功能

  1. 01宾客资料与备注管理
  2. 02预约查询及状态操作
  3. 03服务时段查询与预订
  4. 04发票查询、付款和关闭
  5. 05目录、排班及报表查询
  6. 06表单与宾客反馈管理

适用场景

  1. 01查找宾客并查看预约历史
  2. 02查询门店时段并完成服务预订
  3. 03记录付款并发送发票或收据
  4. 04按日期范围查看销售和收款

MCP 相关

该 MCP 服务将 Zenoti 的宾客、预约、预订、发票、目录、表单和报表能力作为工具提供给 MCP 客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"com-jamesrosingmd-zenoti": {
"command": "npx",
"args": [
"-y",
"zenoti-mcp-server"
],
"env": {
"ZENOTI_API_KEY": "<ZENOTI_API_KEY>",
"ZENOTI_API_URL": "<ZENOTI_API_URL>",
"ZENOTI_CENTER_ID": "<ZENOTI_CENTER_ID>"
}
}
}
}
启动命令npx -y zenoti-mcp-server
需要配置的环境变量
ZENOTI_API_KEY密钥Zenoti API key from Admin → Settings → Apps (backend app)
ZENOTI_API_URLZenoti API base URL (default https://api.zenoti.com)
ZENOTI_CENTER_IDDefault center GUID used when tools omit center_id (recommended)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmzenoti-mcp-server1.1.0

工具

37

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pageinteger否
sizeinteger否
include_working_hoursboolean否营业时间详情

详细介绍

Zenoti MCP 服务

适用于 Zenoti 水疗/健康护理/医美水疗管理平台的模型上下文协议(MCP)服务。它将预约、宾客、服务预订、发票、目录和表单作为 AI Agent 可调用的工具提供。

提供托管版本

不想自行管理凭据、托管和更新?DOCK 是此服务的托管版本:提供按诊所配置的加密身份验证、审计日志、优先保存草稿的写入操作,以及工作流库。创始诊所可锁定终身定价:前台 $49/月(Zenoti),账单台 $99/月(Tebra,包含 BAA),完整诊所 $129/月(两者均包含)。https://dockhq.vercel.app

安装

npm install -g zenoti-mcp-server

或从源代码运行:

git clone https://github.com/tacit-code/zenoti-mcp-server.git
cd zenoti-mcp-server
npm install
npm run build

配置

变量必需说明
ZENOTI_API_KEY是从 Zenoti Admin → Settings → Apps 获取 API 密钥(创建后端应用)
ZENOTI_API_URL否基础 URL,默认为 https://api.zenoti.com(可带或不带 /v1)
ZENOTI_CENTER_ID建议默认中心 GUID;工具接受 center_id,可在每次调用时覆盖

Claude Desktop / Claude Code 配置:

{
  "mcpServers": {
    "zenoti": {
      "command": "npx",
      "args": ["-y", "zenoti-mcp-server"],
      "env": {
        "ZENOTI_API_KEY": "your_api_key",
        "ZENOTI_CENTER_ID": "your_center_guid"
      }
    }
  }
}

即使没有凭据,服务也会启动,并在每次工具调用时返回易读的配置错误,因此配置错误的客户端会显示问题,而不会陷入崩溃重启循环。

工具

目录
工具用途
zenoti-centers-list列出组织中心(查找中心 GUID)
zenoti-services-list列出某个中心的服务(默认精简显示,使用 verbose 查看原始数据)
zenoti-services-get获取完整的服务详情
zenoti-therapists-list列出某个中心的理疗师,可按服务筛选
zenoti-employee-schedules查询日期范围内的排班人员(按日期范围筛选人员)
宾客
工具用途
zenoti-guests-search按姓名/电子邮件/电话/代码/标签搜索(至少需要 1 个条件)
zenoti-guests-create创建宾客档案
zenoti-guests-get按 GUID 获取宾客详情
zenoti-guests-update更新字段 — 执行安全的读取、合并和写入操作(Zenoti 更新时会替换整个对象)
zenoti-guests-appointments获取宾客的预约历史
zenoti-guests-notes-list / zenoti-guests-notes-add宾客备注和档案提醒
zenoti-guests-memberships获取宾客的会员资格(状态、次数、应缴费用)
zenoti-guests-packages获取宾客的套餐/疗程及剩余兑换次数
预约
工具用途
zenoti-appointments-list列出某个中心在指定日期范围内的预约(默认精简显示)
zenoti-appointments-get获取预约详情(appointment_id)
zenoti-appointments-checkin / zenoti-appointments-undo-checkin签到状态(appointment_group_id)
zenoti-appointments-noshow标记为未到场(appointment_group_id)
zenoti-appointments-progress开始/开启/完成服务(appointment_id)
zenoti-appointments-cancel取消预订(按 invoice_id)
zenoti-appointments-reschedule开始重新安排预约(创建与发票关联的预订草稿)
预订流程
  1. zenoti-availability-slots — 为宾客、服务和日期创建预订草稿,并返回 booking_id 和可用时段
  2. zenoti-booking-reserve — 保留选定的时段(保留时间较短)
  3. zenoti-booking-confirm — 完成预订;响应中包含发票
发票
工具用途
zenoti-invoices-get获取包含明细项、付款记录以及可选应缴费用/手续费的发票
zenoti-invoices-pay-custom记录现金/自定义付款(财务操作)
zenoti-invoices-pay-card从宾客存档的银行卡扣款(财务操作)
zenoti-invoices-close关闭已全额付款的发票
zenoti-invoices-email将收据/发票通过电子邮件发送给宾客
zenoti-invoices-confirm-visit确认(或撤销确认)到访 — 这是预约状态操作,尽管该工具归属发票类别
报表
工具用途
zenoti-reports-sales查询日期范围内售出的项目
zenoti-reports-collections查询日期范围内收到的款项
表单与反馈
工具用途
zenoti-forms-list / zenoti-forms-get预约的表单及已提交的表单数据
zenoti-guest-forms-list宾客资料中的表单
zenoti-feedback-submit插入外部收集的宾客反馈

此服务处理的 Zenoti API 注意事项

  • 一个工作流中有三个标识符。 签到/标记未到/反馈需要 appointment_group_id;详情/进度/表单需要 appointment_id;取消和付款需要 invoice_id。工具架构会注明所需的确切标识符。
  • 更新宾客资料时会替换整个对象。 更新工具会获取当前资料并合并你的更改;直接进行部分 PUT 会清除其他字段。
  • 速率限制为每分钟 60 次调用(组织级别)。HTTP 层会遵循 429 响应中的 Retry-After。读取操作也会在出现 5xx/网络故障/超时后重试;写入操作仅会在 429 时重试(速率限制拒绝请求时并未处理该请求,因此重试不会重复创建预约——其他写入失败都会立即返回)。
  • 分页上限为 size=100;Zenoti 会以 422 拒绝更大的值。
  • Webhook 没有订阅 API——需在 Zenoti 网页界面(Admin → Webhooks)中配置,且需要 Zenoti API 套餐。此服务有意不提供 Webhook 工具。
  • 未公开的数字枚举值。 Zenoti 的公开文档未列出性别和预约进度代码;此处使用的映射记录在工具说明中,并且可以覆盖(progress_code)。

开发

npm run dev        # run from source (tsx)
npm test           # unit + end-to-end tests (mock Zenoti API; no real credentials needed)
npm run typecheck  # tsc --noEmit
npm run build      # emit dist/

端到端测试套件通过 MCP SDK 客户端,经由 stdio 启动真实服务,并针对 Zenoti 文档中记载的端点,验证每个工具的方法、路径、查询参数和请求体。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。