Mirobody
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
作者による説明(英語の原文)
MCP server for Zenoti spa/wellness/medspa — guests, appointments, bookings, invoices
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
ZENOTI_API_KEY, ZENOTI_API_URL, ZENOTI_CENTER_ID「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"zenoti": {
"command": "npx",
"args": [
"-y",
"zenoti-mcp-server"
],
"env": {
"ZENOTI_API_KEY": "your-value",
"ZENOTI_API_URL": "your-value",
"ZENOTI_CENTER_ID": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add zenoti --env ZENOTI_API_KEY=your-value --env ZENOTI_API_URL=your-value --env ZENOTI_CENTER_ID=your-value -- npx -y zenoti-mcp-server動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"zenoti": {
"command": "npx",
"args": [
"-y",
"zenoti-mcp-server"
],
"env": {
"ZENOTI_API_KEY": "your-value",
"ZENOTI_API_URL": "your-value",
"ZENOTI_CENTER_ID": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"zenoti": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"zenoti-mcp-server"
],
"env": {
"ZENOTI_API_KEY": "your-value",
"ZENOTI_API_URL": "your-value",
"ZENOTI_CENTER_ID": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
ZENOTI_API_URL envZENOTI_CENTER_ID envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
公開者(jamesrosingmd.com)がリポジトリの所有者(tacit-code)ではありません。別の人が登録した可能性があります
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち0項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:ZENOTI_API_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.1.0)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Mirobody, FHIR MCP Server, Google Health MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A Model Context Protocol (MCP) server for the Zenoti spa/wellness/medspa management platform. Exposes appointments, guests, service booking, invoices, catalog, and forms as tools an AI agent can call.
Do not want to manage credentials, hosting, and updates yourself? DOCK is the managed version of this server: encrypted per-practice auth, audit logs, draft-first write actions, and a workflow library. Founding practices lock lifetime pricing: Front Desk $49/mo (Zenoti), Billing Desk $99/mo (Tebra, BAA included), Full Practice $129/mo (both). https://dockhq.vercel.app
npm install -g zenoti-mcp-server
Or run from source:
git clone https://github.com/tacit-code/zenoti-mcp-server.git
cd zenoti-mcp-server npm install npm run build
| Variable | Required | Description |
|---|---|---|
ZENOTI_API_KEY | yes | API key from Zenoti Admin → Settings → Apps (create a backend app) |
ZENOTI_API_URL | no | Base URL, default https://api.zenoti.com (with or without /v1) |
ZENOTI_CENTER_ID | recommended | Default center GUID; tools accept center_id to override per call |
Claude Desktop / Claude Code config:
{
"mcpServers": { "zenoti": { "command": "npx", "args": ["-y", "zenoti-mcp-server"], "env": { "ZENOTI_API_KEY": "your_api_key", "ZENOTI_CENTER_ID": "your_center_guid" } } } }
The server starts even without credentials and returns a readable configuration error on each tool call, so a misconfigured client shows the problem instead of crash-looping.
| Tool | Purpose |
|---|---|
zenoti-centers-list | List organization centers (find center GUIDs) |
zenoti-services-list | Services of a center (compact by default, verbose for raw) |
zenoti-services-get | Full service details |
zenoti-therapists-list | Therapists of a center, optionally filtered to a service |
zenoti-employee-schedules | Who is on shift for a date range (date-scoped staffing) |
| Tool | Purpose |
|---|---|
zenoti-guests-search | Search by name/email/phone/code/tags (≥1 criterion required) |
zenoti-guests-create | Create a guest profile |
zenoti-guests-get | Guest details by GUID |
zenoti-guests-update | Update fields — does a safe read-merge-write (Zenoti replaces the whole object on update) |
zenoti-guests-appointments | Appointment history for a guest |
zenoti-guests-notes-list / zenoti-guests-notes-add | Guest notes and profile alerts |
zenoti-guests-memberships | Guest's memberships (status, credits, dues) |
zenoti-guests-packages | Guest's packages/series with remaining redemptions |
| Tool | Purpose |
|---|---|
zenoti-appointments-list | Center appointments for a date range (compact by default) |
zenoti-appointments-get | Appointment details (appointment_id) |
zenoti-appointments-checkin / zenoti-appointments-undo-checkin | Check-in state (appointment_group_id) |
zenoti-appointments-noshow | Mark no-show (appointment_group_id) |
zenoti-appointments-progress | Start/open/complete service (appointment_id) |
zenoti-appointments-cancel | Cancel a booking (by invoice_id) |
zenoti-appointments-reschedule | Start a reschedule (creates a booking draft tied to the invoice) |
zenoti-availability-slots — creates a booking draft for guest+service+date and returns booking_id plus open slotszenoti-booking-reserve — hold a chosen slot (holds are short-lived)zenoti-booking-confirm — finalize; the response includes the invoice| Tool | Purpose |
|---|---|
zenoti-invoices-get | Invoice with line items, payments, and optional dues/fees |
zenoti-invoices-pay-custom | Record a cash/custom payment (financial action) |
zenoti-invoices-pay-card | Charge the guest's card on file (financial action) |
zenoti-invoices-close | Close a fully-paid invoice |
zenoti-invoices-email | Email the receipt/invoice to the guest |
zenoti-invoices-confirm-visit | Confirm (or undo-confirm) the visit — a scheduling status, despite living on the invoice |
| Tool | Purpose |
|---|---|
zenoti-reports-sales | What was sold over a date range |
zenoti-reports-collections | Money received over a date range |
| Tool | Purpose |
|---|---|
zenoti-forms-list / zenoti-forms-get | Forms and submitted form data of an appointment |
zenoti-guest-forms-list | Forms on a guest profile |
zenoti-feedback-submit | Insert externally collected guest feedback |
appointment_group_id; details/progress/forms take appointment_id; cancel and payments take invoice_id. Tool schemas name the exact one required.PUT would erase fields.Retry-After on 429. Reads also retry on 5xx/network failures/timeouts; writes retry only on 429 (a rate-limit rejection was never processed, so retrying can't duplicate a booking — any other write failure surfaces immediately).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/
The e2e suite spawns the real server over stdio via the MCP SDK client and asserts every tool's method, path, query, and body against Zenoti's documented endpoints.
MIT