mcpField
Z
zenoti

zenoti

ローカル
github.com/tacit-codeビジネス・マーケティング012 週間前に更新

zenoti について

zenoti は、Zenoti のスパ・ウェルネス・メディスパ管理プラットフォーム向け MCP サーバーで、エージェントを通じて業務データを操作する組織を対象とします。ゲスト、予約、請求書、カタログ、フォームなどをツールとして公開し、識別子や更新方式の違いにも対応します。

主な機能

  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 のスパ/ウェルネス/メディスパ管理プラットフォーム向けの Model Context Protocol(MCP)サーバーです。予約、ゲスト、サービス予約、請求書、カタログ、フォームを、AI エージェントが呼び出せるツールとして提供します。

ホステッド版を利用できます

認証情報、ホスティング、更新を自分で管理したくない場合は、DOCK がこのサーバーのマネージド版です。施術所ごとの認証情報の暗号化、監査ログ、下書き優先の書き込み操作、ワークフローライブラリを備えています。創業時に参加する施術所は、月額料金を生涯固定できます。Front Desk は月額 $49(Zenoti)、Billing Desk は月額 $99(Tebra、BAA 込み)、Full Practice は月額 $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-getGUID でゲストの詳細を取得します
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 の注意点

  • 1 つのワークフローで 3 種類の識別子を使用します。 チェックイン/無断キャンセル/フィードバックでは appointment_group_id、詳細/進捗/フォームでは appointment_id、キャンセルと支払いでは invoice_id を使用します。ツールのスキーマには、必要な識別子が正確に記載されています。
  • ゲスト情報の更新では、オブジェクト全体が置き換えられます。 更新ツールは現在のプロフィールを取得して変更をマージします。単純な部分 PUT ではフィールドが消去されてしまいます。
  • レート制限は 60 回/分(組織全体)です。HTTP レイヤーは 429 の Retry-After を尊重します。読み取りは 5xx/ネットワーク障害/タイムアウト時にも再試行します。書き込みは 429 の場合のみ再試行します(レート制限による拒否は処理されていないため、再試行しても予約が重複することはありません。それ以外の書き込み失敗は直ちに通知されます)。
  • ページネーションの上限は size=100 です。これより大きい値は Zenoti に 422 で拒否されます。
  • Webhook には購読 API がありません。 Zenoti の Web UI(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/

e2e テストスイートは MCP SDK クライアント経由で実際のサーバーを stdio で起動し、すべてのツールのメソッド、パス、クエリ、ボディが Zenoti の文書化されたエンドポイントに対して正しいことを検証します。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。