Server data from the Official MCP Registry
Manage clients, plans, sessions, habits, and billing on Trainzilla via one-click OAuth.
Manage clients, plans, sessions, habits, and billing on Trainzilla via one-click OAuth.
Remote endpoints: streamable-http: https://api.tzilla.live/mcp
This is a well-structured MCP server for a fitness coaching platform with thoughtful security design. Authentication is properly implemented with token refresh logic and pass-through API key support for HTTP mode. The confirm-gating pattern for write operations adds a valuable safety layer. Minor code quality observations around error handling breadth and input validation do not significantly impact the score. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 2 high severity).
7 files analyzed · 8 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
From the project's GitHub README.
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.
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_summaryCalculators (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 suggestionsWrite (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_planStill not exposed: deletes, payment execution/refunds, messaging, permission changes — by design.
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.
npm install
npm 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:
localStorage.getItem("token") // -> TZ_ACCESS_TOKEN
localStorage.getItem("refreshToken") // -> TZ_REFRESH_TOKEN
The server auto-refreshes the access token via refreshAccessToken when it expires.
Local (stdio) — for Claude Desktop etc.:
npm run devnpm startnode scripts/smoke.mjsRemote (Streamable HTTP) — localhost only, multi-coach:
npm run http · Built: npm run start:httphttp://127.0.0.1:8787/mcp (set MCP_HTTP_PORT / MCP_HTTP_HOST).node scripts/smoke-http.mjsTZ_ACCESS_TOKEN (+ TZ_REFRESH_TOKEN) from env; auto-refreshes.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.tzilla-be, local — not deployed yet)createApiKey(name) → returns the plaintext tz_… key once + infoapiKeys (list, no secret) · revokeApiKey(id)tz_ keys (header x-api-key or Bearer), resolves the
owning coach, and stamps lastUsedAt. Only a SHA-256 hash is stored.Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"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."
tzilla-be, local — needs PR + deploy)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)
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.