Skip to main content
Glama
Trainzilla

Trainzilla MCP

Official
by Trainzilla

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 (23 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

Still 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.

Related MCP server: Strava MCP Server

Setup

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.

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):

{
  "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)

Available Tools

23 tools
assign_master_habitAInspect

Assign a Master Habit to one or more clients — creates a habit per client (confirm-gated).

ParametersJSON Schema
NameRequiredDescriptionDefault
masterHabitIdYes
clientIdsYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the operation is 'confirm-gated' (requires explicit confirmation to execute) and creates a habit per client, which is a mutation. However, it does not disclose other important behaviors like idempotency, error handling, or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the purpose and key behavior. Every word earns its place with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description covers the core action but misses details such as what the preview returns, error scenarios, or constraints. It is adequate but has clear gaps for an agent to use without further information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only the 'confirm' parameter has a description). The description does not add meaning for 'masterHabitId' or 'clientIds' beyond the vague phrase 'one or more clients'. It fails to compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Assign' and resource 'Master Habit', and clarifies that it creates a habit per client. This clearly distinguishes it from sibling tools like 'create_habit' (single habit creation) and 'create_master_habit' (master template creation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a confirm-gated two-step process, which suggests when to use it (when assigning a master habit to multiple clients) but does not explicitly state when not to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

billing_summaryA
Read-only
Inspect

Summarise the coach's payments: total captured amount (minor units), currency, and counts by status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the readOnlyHint annotation and adds behavioral context by detailing the output. It does not contradict annotations and provides transparency about what the tool returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and front-loaded. Every word contributes to understanding the tool's purpose and output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description adequately covers the tool's function and return values. It lacks details on time range or statuses, but for a simple summary tool, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the schema coverage is 100%. The description adds value by explaining the output format (minor units, currency, counts), which goes beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool summarizes the coach's payments, specifying the output: total captured amount (in minor units), currency, and counts by status. It distinguishes itself from sibling tools like list_subscriptions which deal with subscriptions rather than payment summaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a payment summary but does not explicitly guide when to use this tool versus alternatives. There is no mention of prerequisites or exclusions, but the no-parameter design makes it straightforward.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calc_1rmA
Read-only
Inspect

Estimate a 1-rep max (Epley) and %1RM weight suggestions from a working set.

ParametersJSON Schema
NameRequiredDescriptionDefault
weightKgYes
repsYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true; the description adds the formula name (Epley) and %1RM suggestions but no further behavioral traits. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple calculator with no output schema, the description explains the core function and formula. Could mention valid rep ranges or assumptions, but sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the parameters. It only says 'from a working set', relying on parameter names (weightKg, reps) for meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'estimate' and the resource '1-rep max (Epley) and %1RM weight suggestions', distinguishing it from sibling tools which focus on habits, billing, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for estimating 1RM from a working set but provides no explicit guidance on when to use this tool versus alternatives or mention of prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calc_macrosA
Read-only
Inspect

Compute a macro split (protein/carbs/fat in grams) for a strategy. STANDARD=40/30/30, PRO=g/kg multipliers, KETO=25/5/70.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategyNoSTANDARD
caloriesYes
weightKgYes
proteinPerKgNo
fatPerKgNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, indicating no destructive side effects. The description adds the strategy-specific computation details but does not disclose any additional behavioral traits beyond what annotations cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a single sentence followed by a clear breakdown of strategy ratios. It is front-loaded and efficient, though some might prefer a more structured format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description omits return value details. It covers the strategies but does not explain how parameters interact (e.g., that PRO uses proteinPerKg and fatPerKg). For a tool with 5 parameters and no schema descriptions, more completeness is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only explains the strategy parameter's enum values but does not describe the other parameters (calories, weightKg, proteinPerKg, fatPerKg) or their usage across strategies. Parameter names are self-explanatory, but the description adds minimal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool computes a macro split (protein/carbs/fat in grams) and lists the supported strategies with their ratios. This distinguishes it from sibling tools like calc_1rm and calc_tdee.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit ratios for each strategy (STANDARD, PRO, KETO), guiding the agent on which parameters to use. However, it does not explicitly state when to use this tool versus alternatives or provide context for when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calc_tdeeB
Read-only
Inspect

Compute BMR, TDEE, and recommended daily calories from client stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
genderYes
weightKgYes
heightCmYes
ageYes
activityNoMODERATE
goalNoMAINTAIN
bodyFatPctNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description doesn't need to restate that. However, the description adds no extra behavioral details (e.g., formulas used, rounding, or that no data is stored). It is adequate but unremarkable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no waste. It is efficient, but could be slightly more structured (e.g., listing the key outputs).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description fails to indicate the return format. It also does not mention optional parameters like bodyFatPct. With 7 parameters and no parameter descriptions, it leaves significant information gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain any of the 7 parameters (gender, weight, height, age, activity, goal, bodyFatPct). The phrase 'from client stats' is too vague to convey meaning beyond the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Compute') and clearly identifies the outputs (BMR, TDEE, recommended daily calories) and input source ('from client stats'). This clearly differentiates from sibling tools like calc_1rm (one-rep max) and calc_macros (macros).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives. Given there are sibling calculation tools (calc_1rm, calc_macros), explicit usage context is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_checkinBInspect

Schedule a check-in for a client with optional questions (confirm-gated). scheduledFor: ISO date. question.type: TEXT|NUMBER|SCALE|PHOTO.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes
scheduledForYesISO date/time, e.g. 2026-06-10 or 2026-06-10T09:00:00Z
questionsNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It reveals the confirm-gated behavior (preview vs execution) but omits other important traits: that it creates a record, is irreversible, authentication needs, rate limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences, front-loaded with key information, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, nested objects, no output schema, and no annotations, the description is too thin. It does not cover return values, error handling, or behavior on conflicts, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%. The description adds value by explaining confirm-gating and listing question types, but does not explain clientId or the structure of questions beyond types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it schedules a check-in for a client with optional questions, using a specific verb and resource. It distinguishes from siblings like list_checkins (listing) and schedule_session (session).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to schedule a check-in) but provides no explicit guidance on when not to use, alternatives, or prerequisites like client existence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_diet_planBInspect

Create a diet plan for a client (confirm-gated). meals: array of MealInput objects (e.g. { name, slot, calories, macros, days }).

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes
titleYes
startDateYesYYYY-MM-DD
endDateNo
mealsYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosure. It clearly states the confirm-gated behavior (must be true to execute, preview otherwise). However, it omits other behavioral details like whether it overwrites existing plans, required permissions, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the main purpose and key behavior. It is efficient with no wasted words, though it could be more structured (e.g., listing parameters).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters, 4 required, and no output schema or annotations, the description is incomplete. It does not mention return values, format of the preview, error messages, or possible states after creation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33% (only startDate and confirm have descriptions). The description adds value for the 'meals' parameter by showing an example format, but does not explain 'clientId', 'title', or 'endDate'. It partially compensates but not fully for low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'Create' and resource 'diet plan for a client', and distinguishes from siblings like 'create_workout_plan' by noting it's confirm-gated. However, it could be more explicit about the scope (e.g., one diet plan per client).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'list_diet_plans' or 'create_workout_plan'. It does not specify prerequisites, such as requiring an existing client, nor when a preview is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_habitCInspect

Create a habit for a client (confirm-gated). daysOfWeek: 0=Sun..6=Sat (empty = every day). reminderTime: 'HH:mm'.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes
nameYes
emojiNo
descriptionNo
categoryNo
frequencyNoDAILY
targetCountNo
daysOfWeekNo
reminderTimeNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the confirm-gated behavior (preview vs actual creation) and specifies format for daysOfWeek and reminderTime. However, it lacks details on permissions, destructive actions, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, using two sentences that front-load the purpose and key parameter info. It is well-structured for quick reading, though could benefit from a bullet list for clarity with many parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema, the description should explain what the tool returns or prerequisites. It does not mention the response format (e.g., created habit object) or required client existence. Important context is missing for an agent to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 10%, so the description must compensate. It adds meaning for daysOfWeek (range and empty meaning) and reminderTime (format). But it leaves 7 other parameters (clientId, name, emoji, description, category, frequency, targetCount) without any explanation, which is insufficient given low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a habit for a client and notes it is confirm-gated. However, it does not differentiate from sibling tools like create_master_habit or assign_master_habit, which reduces clarity about which tool to use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives such as create_master_habit. The confirm-gated note hints at a preview mode but does not explain conditions for choosing this over other habit-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_master_habitBInspect

Create a reusable Master Habit in the coach's library (confirm-gated).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
emojiNo
descriptionNo
categoryNo
frequencyNoDAILY
targetCountNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only mentions 'confirm-gated' behavior, but lacks details on authentication, side effects, idempotency, or error conditions. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, concise, and front-loaded with key purpose and behavioral hint. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and 14% schema coverage, the description is insufficient. It does not explain return values, error handling, or differentiate Master Habit from regular habit. Lacks vital context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 14% (only confirm). The description adds no parameter-level detail, failing to compensate for the low coverage. Critical parameters like name, emoji, category lack explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a reusable Master Habit in the coach's library, distinguishing it from sibling tools like create_habit (likely for client habits) and assign_master_habit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., create_habit). The 'confirm-gated' hint is present but not elaborated. Usage context is implied but not fully clarified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_workout_planAInspect

Create a workout plan for a client (confirm-gated). exercises: array of { name, sets, reps, restSeconds?, section? }. section must be one of WARMUP | RESISTANCE | STRETCHING | CARDIO | COOL_DOWN (defaults to RESISTANCE so the app renders them under 'Main Workout'). days: optional [MONDAY..SUNDAY].

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes
titleYes
descriptionNo
startDateYesYYYY-MM-DD
endDateNo
exercisesYes
daysNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the confirm-gated preview/execute behavior, default section for exercises, and valid enum values. Could add whether it overwrites existing plans, but overall transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single sentence with inline details, front-loading the confirm-gate. Could be more structured (e.g., separate lines for key behaviors), but not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, description covers confirm behavior, exercise structure, section, and days. Missing some details (e.g., endDate behavior), but adequate for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (25%). Description adds significant meaning: structure of exercises array, section enum with defaults, and optional days. It compensates well for the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a workout plan for a client (confirm-gated)', which is a specific verb and resource. It distinguishes from siblings like create_diet_plan by focusing on workout plans.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the confirm-gated behavior ('Must be true to actually execute. If false/omitted, returns a preview only.'). However, it does not explicitly state when to use this tool versus alternatives like create_diet_plan or create_habit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_client_profileA
Read-only
Inspect

Get a client's fitness profile + computed metrics (BMI, TDEE, recommended calories). Pass the client's user _id.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the readOnlyHint annotation by indicating a read operation. It adds value by specifying the returned computed metrics, but it does not disclose any other behavioral details (e.g., error handling, authorization requirements).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the action, resource, computed metrics, and necessary parameter. There is no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description only vaguely indicates the return value ('fitness profile + computed metrics'). It does not specify the structure of the profile or the exact computed metrics, leaving some ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by clarifying that the userId parameter refers to the client's user ID, adding semantic meaning beyond the bare schema. It does not elaborate on format or validation, but the single required parameter is well-addressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('client's fitness profile + computed metrics'), with specific mention of BMI, TDEE, and recommended calories. It effectively distinguishes from sibling tools like calc_tdee which only compute a single metric.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear parameter instruction ('Pass the client's user _id') but does not offer comparative guidance on when to use this tool versus alternatives (e.g., calc_tdee, calc_1rm) or mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_habit_complianceA
Read-only
Inspect

Habit compliance percentage (0-100) for a client over a date range (YYYY-MM-DD).

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes
startDateYes
endDateYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, indicating no side effects. The description adds that the return value is a percentage between 0 and 100, which is helpful. It does not disclose computation details or error handling, but for a simple read operation with annotations, the description adds sufficient context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that concisely conveys the essential information: what the tool returns, its range, the client context, and the date format. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 required parameters, no output schema), the description covers the core functionality well. It does not explain what happens if no data matches or if parameters are invalid, but for a straightforward query tool with good annotations, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage on parameters. The description explains that the tool operates on a client over a date range and specifies the date format (YYYY-MM-DD), which adds value. However, it does not clarify constraints like startDate before endDate, boundary behavior, or the meaning of clientId beyond being required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns a habit compliance percentage (0-100) for a client over a date range. It specifies the resource (habit compliance), entity (client), and filter (date range). While it does not explicitly differentiate from siblings like 'recent_habit_activity', the purpose is distinct and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as 'list_client_habits' or 'recent_habit_activity'. There is no mention of prerequisites, edge cases, or when not to use it, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_checkinsA
Read-only
Inspect

List check-ins for the coach (optionally filtered to one client by user _id).

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds that the tool lists check-ins for a specific coach, but beyond the readOnlyHint annotation, it lacks details on pagination, sorting, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence efficiently conveys the tool's purpose and optional filter, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers purpose and filter, it omits details about the response format, ordering, or any default behavior, which is important given the lack of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description clarifies that the clientId parameter is a user ID for filtering, adding essential meaning not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool lists check-ins for the coach with an optional filter by client ID, clearly differentiating it from sibling tools like create_checkin or list_clients.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use by mentioning the optional filter but does not provide guidance on when to prefer this tool over alternatives or specify exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_client_habitsA
Read-only
Inspect

List a client's active habits with today's log and streaks. Pass the client's user _id as clientId.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description adds behavioral detail beyond that by specifying that it lists only 'active habits' with 'today's log and streaks'. There is no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no excess words; the key information is front-loaded and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input and no output schema, the description adequately specifies what the tool returns. It lacks mention of edge cases like no active habits, but is otherwise sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description clarifies that 'clientId' is the client's user _id, adding meaning beyond the schema's type and constraints. However, it could further specify format or source.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'a client's active habits', and includes specific data returned ('with today's log and streaks'). It distinguishes from sibling tools like 'create_habit' and 'assign_master_habit'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying the required parameter but does not provide explicit guidance on when to use this tool versus alternatives like 'get_habit_compliance'. It lacks 'when-not' or comparative context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_clientsA
Read-only
Inspect

List the coach's clients (id, name, email). Use the returned _id as clientId/userId for other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNumberNo
pageSizeNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only behavior; the description adds that it lists only the coach's own clients and the specific fields returned, which is valuable context. No contradictions, but more detail on pagination behavior or ordering would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. The first sentence states purpose and output, the second provides actionable usage guidance. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with pagination, the description is largely complete: it specifies output fields and the key usage pattern. However, it could mention intent of pagination (e.g., 'returns a page of clients; use pageNumber and pageSize to navigate') to be fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the pageNumber and pageSize parameters. The parameter names and defaults are somewhat self-explanatory, but an agent would benefit from learning their exact impact (e.g., 'pageNumber controls which page of results to return').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists the coach's clients with specific fields (id, name, email) and explicitly distinguishes its output for use in other tools via the _id field. This provides a specific verb-resource pair and contextualizes its role among sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on how to use the returned _id as clientId/userId for other tools, indicating a clear use case. However, it does not specify when not to use this tool or mention alternative tools for more detailed client information, which would strengthen the guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_diet_plansA
Read-only
Inspect

List a client's diet plans (id, title, dates). Pass the client's user _id.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds that it returns id, title, dates, but does not disclose any additional behavioral traits beyond the annotation, such as whether the list is sorted or paginated. The description aligns with the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short sentences that are front-loaded with the core purpose and immediately followed by the required parameter. Every word earns its place with no unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, no output schema, no nested objects), the description is fully complete. It covers the action, returned fields, and parameter usage. No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining that 'clientId' expects the client's user _id. This adds meaning beyond the schema, which only defines the parameter as a string with minLength.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'diet plans', specifying the returned fields (id, title, dates) and the required parameter (client's user _id). It distinguishes itself from sibling tools like create_diet_plan which is for creation, and other list tools for different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly says when to use: to list a client's diet plans. It provides the necessary instruction to pass the client's user _id. However, it does not explicitly state when not to use it or mention alternatives, though no direct alternative exists among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sessionsA
Read-only
Inspect

List sessions — for one client (pass clientId) or all of the coach's clients.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already communicates safety. The description adds the filtering behavior (by clientId) but does not discuss pagination, ordering, or other traits. This is adequate but not exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that conveys purpose and usage without extraneous words. Front-loaded with the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple schema (one optional param, no output schema), the description covers the main behavior. It lacks mention of result format or ordering, but is sufficient for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage. The description adds value by explaining that clientId is used to specify a client, but lacks format or constraint details. It compensates partially for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (List) and resource (sessions), and specifies two modes: for one client or all clients. This distinguishes it from siblings like list_clients or schedule_session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use it: for a specific client (pass clientId) or for all clients. It does not mention alternatives or exclusions, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_subscriptionsA
Read-only
Inspect

List the coach's client subscriptions (id, subscriber = client id, status). Use a subscription _id when scheduling a session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, which the description does not contradict. The description adds that the tool returns specific fields, but does not disclose other behavioral traits like pagination, ordering, or authorization requirements. With annotations covering safety, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. It efficiently states what the tool does and a key usage hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description lists the returned fields and provides a usage hint. For a simple, parameterless list tool, this is fairly complete. It could mention any default ordering or filtering, but overall it suffices.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the schema coverage is 100%. Per the calibration, no parameters yields a baseline of 4. The description does not need to add parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (list), resource (coach's client subscriptions), and specific fields returned (id, subscriber, status). It also hints at a related action (using subscription_id for scheduling), distinguishing it from siblings like list_sessions or list_clients.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage context: 'Use a subscription _id when scheduling a session.' This guides when to retrieve subscriptions. While it doesn't list alternatives, the hint is valuable for an agent deciding between subscription and other lists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_workout_plansA
Read-only
Inspect

List a client's workout plans (id, title, dates). Pass the client's user _id.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, confirming safety. Description adds that it returns id, title, dates, providing more behavioral detail. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no unnecessary words. Front-loads the purpose and includes the required parameter context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (1 parameter, no output schema), description covers the essential: what it lists and required input. Could mention ordering or error cases, but adequate for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description's 'Pass the client's user _id' adds crucial meaning to the clientId parameter, compensating for the schema's lack of description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'list', resource 'workout plans', and specifies returned fields (id, title, dates). It distinguishes from sibling tools like create_workout_plan and list_sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Instructs to pass client's user _id, which is essential. Does not explicitly list when to use vs alternatives, but the specificity (workout plans) provides implicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

master_habitsA
Read-only
Inspect

List the coach's reusable Master Habit library.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the readOnlyHint annotation by indicating a read operation ('List'). It adds no contradictory information and provides sufficient context about the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words. It is front-loaded with the key action and resource, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless list tool with readOnlyHint annotation, the description fully conveys what the tool does. No additional context is needed given the lack of output schema or complex behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the schema coverage is 100%. The description does not need to add parameter semantics, and it correctly focuses on the tool's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the specific resource ('the coach's reusable Master Habit library'). It distinguishes from sibling tools like 'list_client_habits' by specifying 'reusable' and 'Master' implying global scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (listing master habits), but does not explicitly state when to use this tool versus alternatives like 'list_client_habits' or 'create_master_habit'. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recent_habit_activityA
Read-only
Inspect

Recent habit completions across all of the coach's clients (newest first).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description adds ordering 'newest first.' However, it does not specify what 'recent' means or whether pagination is supported, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no superfluous words, front-loading the tool's purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter, the description adequately covers purpose and ordering. However, it omits explanation of the 'limit' parameter and what defines 'recent,' making it slightly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter (limit) with 0% description coverage. The description does not mention 'limit' or explain its semantics, failing to compensate for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool retrieves recent habit completions across all coach's clients, sorted newest first. It clearly distinguishes from sibling tools like get_habit_compliance (per-client) and list_client_habits (list habits).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a broad overview but does not provide explicit guidance on when to use this tool versus siblings like get_habit_compliance. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

schedule_sessionAInspect

Book a session for a client (confirm-gated). Needs the client's subscriptionId (see list_subscriptions). Times are ISO strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes
subscriptionIdYes
typeNoONLINE
scheduledStartYes
scheduledEndYes
meetingLinkNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description reveals confirm-gated behavior (important for execution) but omits other behavioral traits like return values, error states, or authorization needs. Minimal but useful disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. Front-loaded with 'confirm-gated' as key qualifier. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has 7 parameters, no output schema, no annotations. Description covers confirm behavior and subscriptionId but lacks return format, error handling, and parameter details (e.g., meetingLink dependency). Adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (14%, only confirm described). Description adds context for subscriptionId (referencing list_subscriptions) and states times are ISO strings. Does not explain clientId, type, meetingLink, or scheduling constraints. Baseline 3 with slight improvement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Book' plus resource 'session' with key qualifier 'confirm-gated'. References subscriptionId, distinguishing from list_sessions and other booking tools. Sibling tools include session listing and other actions, making this distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states prerequisite (subscriptionId via list_subscriptions) and format (ISO strings). Does not explicitly exclude alternatives or provide when-not-to-use, but context is sufficient for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiA
Read-only
Inspect

Return the authenticated coach (user id, name, email, role) and trainer id. Use to verify the connection.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. Description adds specific return fields and use case, going beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that front-loads the key output and purpose. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and a simple return type, the description fully explains what the tool does and what it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so no additional meaning needed. Baseline 4 for zero-param schema with 100% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns authenticated coach info (user id, name, email, role) and trainer id, with a specific purpose to verify connection. Distinguishes from sibling tools that perform actions like creating or listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use to verify the connection.' While it doesn't contrast with alternatives, the tool is simple enough that no further guidance is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 23 tool updatesv0.1.0
    • First observedassign_master_habit
    • First observedbilling_summary
    • First observedcalc_1rm
    • First observedcalc_macros
    • First observedcalc_tdee
    • First observedcreate_checkin
    • First observedcreate_diet_plan
    • First observedcreate_habit
    • First observedcreate_master_habit
    • First observedcreate_workout_plan
    • First observedget_client_profile
    • First observedget_habit_compliance
    • First observedlist_checkins
    • First observedlist_client_habits
    • First observedlist_clients
    • First observedlist_diet_plans
    • First observedlist_sessions
    • First observedlist_subscriptions
    • First observedlist_workout_plans
    • First observedmaster_habits
    • First observedrecent_habit_activity
    • First observedschedule_session
    • First observedwhoami

TDQS

A3.5/5.0
Disambiguation5/5

Each tool targets a distinct resource and action. List tools differentiate by entity (clients, check-ins, habits, etc.), create tools are specific, and calc tools serve unique purposes. No two tools have overlapping functionality, making selection unambiguous.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., list_clients, create_habit). However, 'master_habits' and 'recent_habit_activity' deviate from the expected 'list_*' prefix, and 'whoami' is a single word, slightly breaking the pattern.

Tool Count4/5

23 tools cover a wide range of coaching functionalities (clients, habits, plans, sessions, billing, calculations). While slightly above the typical 3-15 range, each tool serves a distinct purpose and contributes to the server's comprehensive scope.

Completeness2/5

The tool surface is heavily skewed toward creation and listing. There are no update or delete operations for any resource (e.g., diet plans, workout plans, habits, sessions), which leaves agents unable to modify or remove existing data, creating significant workflow gaps.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables workout tracking and coaching within Claude conversations, managing exercise configs, logs, streaks, and health metrics via an MCP server with PostgreSQL.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Connect MyFitnessPal to Claude or any MCP client. Log meals, search food database with macros, track trends, and export nutrition history against your real MyFitnessPal diary.
    7
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Trainzilla/tzilla-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server