Trainzilla Coach MCP

io.github.Trainzilla由 GitHub 帳號 Trainzilla 發布v1.0.0更新於 Nov 2, 2026

Manage clients, plans, sessions, habits, and billing on Trainzilla via one-click OAuth.

已驗證Streamable HTTP可網頁執行位置與生活效率與工作流商業與電商

概覽

AI 產生的概覽

Trainzilla Coach MCP 讓助理以 Trainzilla 教練身分工作:讀取客戶資料、執行教練計算工具,並在確認後修改資料。

可以做什麼
  • 讀取即時教練資料:身分、客戶清單與檔案、習慣與達成率、訓練與飲食計畫、打卡、課程、訂閱和帳務摘要
  • 離線計算基礎代謝、每日消耗與建議熱量、依策略分配營養素,以及 1RM 與百分比重量建議
  • 建立習慣、主習慣、打卡、課程、訓練計畫和飲食計畫,未確認時僅回傳預覽
  • 管理業務面:方案與定價、會員暫停或取消、櫃檯收款、付款、發票、分享連結、推薦計畫與健身房席位計費
  • 處理 AI 教練審核佇列、打卡收件匣、社群貼文、健身房櫃檯、工作流程、目錄,以及客戶分組與批次指派
  • 上傳檔案到儲存空間、管理 API 金鑰、連接 Stripe/Razorpay、發起 Google 日曆連接
適用情境
適合使用 Trainzilla 的教練,想讓助理在聊天用戶端中查詢客戶進度、計算訓練與營養數值,並草擬或執行教練相關變更,而不必開網頁應用程式。
執行需求
需要 Trainzilla 教練帳號。README 說明的是本機 Node.js 建置,透過 stdio 執行並設定 TZ_ACCESS_TOKEN 與 TZ_REFRESH_TOKEN;或使用僅限本機的 HTTP 模式,每個請求以 Bearer 或 x-api-key 標頭帶入教練 API 金鑰。清單則列出 api.tzilla.live 遠端端點並要求 OAuth。需要連線至 Trainzilla GraphQL API 的網路。
安裝前請注意
寫入類工具在帶 confirm: true 呼叫後會實際修改客戶與業務資料,包括計畫、會員、付款、發票和分組指派。權杖與 API 金鑰是權限很高的教練憑證,README 建議從瀏覽器儲存空間複製,且 API 金鑰只顯示一次。不支援退款等付款操作。上傳檔案會送往 S3,連接 Stripe/Razorpay 涉及付款金鑰。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Trainzilla Coach MCP,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.Trainzilla%2Ftrainzilla-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "trainzilla-coach": {
      "type": "http",
      "url": "https://api.tzilla.live/mcp"
    }
  }
}

README

tzilla-mcp (MVP, local only)

A local MCP server that lets an MCP client (Claude Desktop, Claude Code, Cursor, …) act as a Trainzilla coach. It wraps the existing GraphQL API at api.tzilla.live — no direct DB access — so all auth and business rules stay enforced by the backend.

Status: Local MVP — read tools, offline calculators, and confirm-gated write tools, plus a resource + a prompt. Not deployed anywhere. Runs entirely on your machine against your own coach login.

What it can do today (360 tools, 1 resource, 1 prompt)

Read (live data):

  • whoami, list_clients, get_client_profile
  • list_client_habits, get_habit_compliance, recent_habit_activity, master_habits
  • list_workout_plans, list_diet_plans
  • list_checkins, list_sessions, list_subscriptions, billing_summary

Calculators (offline, no network):

  • calc_tdee — BMR / TDEE / recommended calories
  • calc_macros — macro split by strategy (Standard 40/30/30, Pro g/kg, Keto)
  • calc_1rm — 1-rep-max (Epley) + %1RM weight suggestions

Write (confirm-gated): every write tool returns a preview unless called with confirm: true, so nothing changes by accident:

  • create_habit, create_master_habit, assign_master_habit
  • create_checkin (with questions), schedule_session
  • create_workout_plan, create_diet_plan

Coverage added Oct 2026 (src/tools/*, each tool backed by one GraphQL operation and checked against the backend schema with scripts/validate-docs.mjs):

  • Client tracking — diet/workout logs, daily metrics, personal bests, exercise history, progress, health reports, intake forms, no-app (managed) clients + private portal links, contact details; coach-side logging.
  • AI coaching — review queue (approve/reject/requeue), trigger/offer, engagement, per-client preferences, AI-plans and self-cancel switches.
  • Check-ins & inbox — respond, logs, recurring schedules, clear overdue; notifications; chat room list.
  • Business — plans (create/prices/listing/active/session rules/delete), pause/cancel membership, desk payments, direct-pay claim confirm/reject, payments, invoices + settings, share links, Coach Pro pricing/checkout link, referral program, gym seat billing.
  • Community, gym, workflows, catalog, profile — community posts/comments, gym kiosks/face/check-ins/standing bookings/imports/staff/domain, workflow edit/delete + gym-wide workflows, PDF plan import, food/recipe/exercise catalog, branding/custom domain/global payout/localization, Google Calendar status, video calls.
  • Client groups (Coach Pro / gym), Nov 2026 — list_client_groups, get_client_group, list_groups_for_client, create/update/delete group, add_group_members/remove_group_members, get_group_overview, list_group_assignments, and the fan-outs assign_workout_to_groups, assign_diet_to_groups, assign_habit_to_groups, message_groups, schedule_checkin_for_groups, book_session_for_groups, undo_group_assignment. The fan-outs preview server-side without confirm (who would get it, who is skipped and why) and are idempotent for 10 minutes. scripts/mcp-groups-e2e.mjs drives them against a local backend (TZ_API_URL=http://127.0.0.1:4100/graphql).

Validate documents against the backend schema after changing a tool:

bash
npm run buildSCHEMA=/path/to/tzilla-be/schema.graphql GRAPHQL_PKG=/path/to/node_modules/graphql node scripts/validate-docs.mjs

Also included: upload_file (local path on stdio, or base64) → S3 key for the tools that take one (health reports, PDF plan import, member photo, receipts, community media, branding images); API-key create/list/revoke (secret shown once); Stripe/Razorpay connect (secrets masked in previews); start_google_calendar_connect (returns the sign-in URL for the coach to open).

Chat: get_client_chat_messages reads a client's DM history (needs the clientChatMessages backend query, tzilla-be#493).

Not available: taking or refunding a payment — the backend has no coach-facing refund operation, and client checkout is completed by the client's own payment.

Resource: tzilla://client/{clientId}/profile — a client's profile as JSON.

Prompt: weekly_client_review — pulls profile/habits/compliance/sessions and writes a read-only weekly review.

Setup

bash
npm installnpm run build

Create .env (see .env.example) with a coach's tokens. Easiest source — log in to the coach web app, then in the browser console:

js
localStorage.getItem("token")        // -> TZ_ACCESS_TOKENlocalStorage.getItem("refreshToken") // -> TZ_REFRESH_TOKEN

The server auto-refreshes the access token via refreshAccessToken when it expires.

Run

Local (stdio) — for Claude Desktop etc.:

  • Dev: npm run dev
  • Built: npm start
  • Smoke: node scripts/smoke.mjs

Remote (Streamable HTTP) — localhost only, multi-coach:

  • Dev: npm run http · Built: npm run start:http
  • Listens on http://127.0.0.1:8787/mcp (set MCP_HTTP_PORT / MCP_HTTP_HOST).
  • Smoke: node scripts/smoke-http.mjs

Auth modes

  • stdio: uses TZ_ACCESS_TOKEN (+ TZ_REFRESH_TOKEN) from env; auto-refreshes.
  • Endpoint selection:
    • TZ_API_URL wins when set.
    • Otherwise TZ_ENVIRONMENT=staging uses https://qa-be2.tzilla.live/graphql.
    • All other cases default to https://api.tzilla.live/graphql.
  • HTTP: pass-through — each request must send the coach's API key (Authorization: Bearer tz_... or x-api-key). The server never stores tokens; it forwards the caller's key to the GraphQL API, so the backend enforces scope (multi-coach safe). API keys are minted by the backend feature below.

Backend: trainer API keys (built in tzilla-be, local — not deployed yet)

  • createApiKey(name) → returns the plaintext tz_… key once + info
  • apiKeys (list, no secret) · revokeApiKey(id)
  • Auth middleware accepts tz_ keys (header x-api-key or Bearer), resolves the owning coach, and stamps lastUsedAt. Only a SHA-256 hash is stored.

Use from Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

json
{  "mcpServers": {    "tzilla-coach": {      "command": "node",      "args": ["C:/New folder/tzilla-mcp/dist/index.js"],      "env": {        "TZ_API_URL": "https://api.tzilla.live/graphql",        "TZ_ACCESS_TOKEN": "<paste>",        "TZ_REFRESH_TOKEN": "<paste>"      }    }  }}

Restart Claude Desktop, then try: "Use tzilla-coach: who am I, and list my clients."

Roadmap

  • Write tools (habits, check-ins, sessions, plans) — confirm-gated
  • Resource (client profile) + prompt (weekly review)
  • Wider read coverage (plans, check-ins, sessions, billing)
  • Backend trainer API keys / PAT (built in tzilla-be, local — needs PR + deploy)
  • Remote Streamable-HTTP transport (localhost, API-key pass-through auth)
  • Deploy the backend API-key feature; host the HTTP server (TLS) for real remote use
  • Full MCP OAuth 2.1 (replace pass-through) for a public connector
  • More resources (plans / check-in history) + prompts (e.g. "draft a plan")

Layout

src/  config.ts   # env + tiny .env loader  client.ts   # GraphQL client: bearer auth + refresh-on-401 + role header  calc.ts     # offline coach math (ported from HealthMath/WorkoutMath)  index.ts    # MCP server + tool definitions (stdio)scripts/  smoke.mjs   # spawns the server and lists tools (handshake check)

來源:README.md,提交 4f1d2a1

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。