
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.
概覽
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 的網路。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Trainzilla Coach MCP,將其新增到工作區。
- 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
- 為需要使用其工具的對話啟用該服務。
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_profilelist_client_habits,get_habit_compliance,recent_habit_activity,master_habitslist_workout_plans,list_diet_planslist_checkins,list_sessions,list_subscriptions,billing_summary
Calculators (offline, no network):
calc_tdee— BMR / TDEE / recommended caloriescalc_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_habitcreate_checkin(with questions),schedule_sessioncreate_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-outsassign_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 withoutconfirm(who would get it, who is skipped and why) and are idempotent for 10 minutes.scripts/mcp-groups-e2e.mjsdrives 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:
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
Create .env (see .env.example) with a coach's tokens. Easiest source — log in
to the coach web app, then in the browser console:
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(setMCP_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_URLwins when set.- Otherwise
TZ_ENVIRONMENT=staginguseshttps://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_...orx-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 plaintexttz_…key once + infoapiKeys(list, no secret) ·revokeApiKey(id)- Auth middleware accepts
tz_keys (headerx-api-keyorBearer), resolves the owning coach, and stampslastUsedAt. Only a SHA-256 hash is stored.
Use from Claude Desktop
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
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
來源:README.md,提交 4f1d2a1
工具
0版本歷史
1- v1.0.0最新Sep 16, 2026
評分
已滿足適用檢查項的 75%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。