Skip to main content
Glama

Server Details

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

Ownership verified
Status
Healthy
Uptime
27.7% over 72 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
Trainzilla/tzilla-mcp
GitHub Stars
0
Server Listing
Trainzilla MCP

TDQS

B3.1/5.0

Scored across 138 tools

Disambiguation3/5

Most families (diet plans, workout plans, templates, organization, prospects, workflows) are clearly separated by verb+resource, and descriptions carry heavy disambiguation guidance. However, with 138 tools there are genuinely overlapping surfaces: get_gym_home vs get_organization_dashboard, get_organization_profile vs get_organization_hierarchy vs get_organization_access, and list_clients vs list_organization_clients vs list_prospects are easy to misselect, plus habit tools (master_habits, create_master_habit, assign_master_habit, create_habit) form a cluster an agent can confuse.

Naming Consistency3/5

The dominant pattern is verb_noun (create_workout_plan, list_diet_plans, update_organization_location), which is predictable across most of the surface. But there are notable deviations: bare nouns/queries like master_habits, whoami, billing_summary, recent_habit_activity, and calc_1rm/calc_tdee/calc_macros break the verb_noun convention.

Tool Count1/5

138 tools is an extreme mismatch for a single coach-oriented server, far beyond the 3-15 sweet spot, and the surface spans many unrelated domains (billing, gym org admin, AI plan authoring, workflows, marketplace). Even though each tool has a plausible role, no agent can hold this toolset in working context reliably.

Completeness4/5

Coverage is remarkably broad: full CRUD for diet plans, workout plans, templates, habits, classes, organizations, locations, custom roles, prospects, workflows, check-ins, sessions and coach profile. Minor gaps exist (no delete_habit, no delete/cancel check-in schedule, no session deletion), but agents can work around them.

Available Tools

138 tools
add_prospect_noteAInspect

Add a timestamped note to a prospect's record (confirm-gated) — e.g. what was discussed on a call.

NameRequiredDescriptionDefault
idYes
noteYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

A3.5/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 behavioral burden. It usefully discloses two traits — that notes are timestamped and that the operation is confirm-gated — but says nothing about permissions required, persistence/reversibility, or what the preview-only path yields (the schema covers the latter).

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, front-loaded sentence with the core action first and the qualifier and example appended. Zero filler; every clause adds 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?

For a 3-parameter mutation tool with no annotations and no output schema, the description covers the confirm gate, timestamping, and the use case reasonably. It is thin on permissions, side effects, and confirmation-flow behavior that an agent would otherwise need.

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 only 33% (only 'confirm' is documented), so the description should compensate. It clarifies the note's purpose via example and implies 'id' targets a prospect record, but adds no format or length constraints for the two undocumented required parameters.

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 gives a specific verb+resource ('Add a timestamped note to a prospect's record') and an illustrative example of note content, which goes beyond restating the name. It does not explicitly distinguish itself from siblings like update_prospect_status or create_prospect, though they don't overlap in function.

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?

Usage is only implied through the example ('e.g. what was discussed on a call'), which suggests the intended scenario. There is no explicit when-to-use/when-not guidance and no named alternative tool for related logging needs.

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

assign_coach_to_locationCInspect

Assign or move a coach to a location within the organization, with a role there (confirm-gated).

NameRequiredDescriptionDefault
roleYes
coachIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
locationIdYes
makePrimaryNo
organizationIdYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and 'confirm-gated' does disclose the two-phase preview/execute behavior plus the move (overwrite) semantics. It says nothing about permissions required, what happens to a coach's prior location assignment, or side effects, so the disclosure is partial.

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?

A single front-loaded sentence with no filler, and the confirm-gating caveat is placed at the end where a reader will catch it. It is efficient, though terse given the tool's complexity.

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?

For a 6-parameter mutation with no annotations, no output schema, and 17% schema coverage, the description is too thin. It omits permissions, the meaning of makePrimary, and the effect on any existing assignment.

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 17% (confirm is the lone documented parameter), so the description must compensate. It hints at role and the coach/location pair but leaves organizationId and especially makePrimary unexplained in both the description and the schema.

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 states a specific verb (assign or move) and resource (a coach to a location) with the organizational scope, so the agent knows this is an assignment operation. It does not, however, explicitly separate itself from near-neighbors like remove_coach_location_assignment or update_organization_coach_role.

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?

There is no when-to-use or when-not-to-use guidance beyond the implied 'assign or move'. No alternatives are named, so the agent gets no routing help against the many role/coach-management siblings.

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

assign_master_habitAInspect

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

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

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.

assign_organization_member_roleAInspect

Give a gym member a custom role, or clear it by omitting roleId (confirm-gated). Owner or admin — an access-control change, so confirm exactly which member and role first.

NameRequiredDescriptionDefault
roleIdNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
memberUserIdYes
organizationIdYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses the confirm-gating, the permission requirement (owner/admin), and that omitting roleId clears the role. It does not describe reversibility, failure behavior, or return format, hence not a 5.

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 tight sentences, front-loaded with the core action, then the authorization and caution. No filler; every clause earns its place.

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 4-param mutation with no annotations and no output schema, the description covers purpose, permissions, gating, and a caution to confirm targets. Return/result behavior is left implicit, but the essentials for correct invocation are present.

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 only 25% (only confirm is documented), so the description must compensate. It adds key semantics for roleId (omitting it clears the role), but says nothing about memberUserId or organizationId beyond their obvious names.

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?

States a specific verb (assign/clear) and resource (custom role for a gym member), and explicitly covers both directions of the operation, including that omitting roleId clears the role. The word 'custom' distinguishes it from the sibling update_organization_coach_role.

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?

Gives the condition for use (owner or admin performing an access-control change) and a clear instruction to confirm which member and role first. It does not name alternative siblings or state explicit when-not conditions, 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.

billing_summaryA
Read-only
Inspect

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

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.

NameRequiredDescriptionDefault
repsYes
weightKgYes

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.

NameRequiredDescriptionDefault
caloriesYes
fatPerKgNo
strategyNoSTANDARD
weightKgYes
proteinPerKgNo

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.

NameRequiredDescriptionDefault
ageYes
goalNoMAINTAIN
genderYes
activityNoMODERATE
heightCmYes
weightKgYes
bodyFatPctNo

TDQS

B3/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe, non-mutating calculation, so the safety burden is covered. The description adds nothing about the underlying formula (e.g., whether bodyFatPct switches to Katch-McArdle), how defaults are applied, or that results are derived rather than stored.

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?

A single tight sentence that front-loads the computation and lists the outputs in order of derivation. No filler, though it is arguably too terse given the undocumented parameters.

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 does at least name what is returned, which is the minimum. But for a 7-parameter calculation with 0% schema coverage, it omits how the optional activity, goal, and bodyFatPct inputs shape the result.

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% across 7 parameters, so the description carries the full explanatory burden and provides none of it. It never mentions gender, activity level, goal, or bodyFatPct, nor how activity/goal modify the recommended-calorie output.

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?

States a specific verb (compute) and the concrete outputs (BMR, TDEE, recommended daily calories) plus the input source (client stats). It is distinguishable from calc_1rm and calc_macros by output, though it never names those siblings explicitly.

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 when-to-use guidance, no prerequisites, and no indication of when to pick this over calc_macros (which likely consumes the same calorie outputs). The agent must infer the workflow placement itself.

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

cancel_gym_class_sessionBInspect

Cancel one dated class session (confirm-gated). Booked members are affected — confirm which session first.

NameRequiredDescriptionDefault
reasonNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
sessionIdYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses that the operation is confirm-gated (preview when confirm=false) and that booked members are affected, which is genuine consequence information. It does not state permissions required, whether cancellation is reversible, or whether members are notified.

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?

Two tight sentences with no filler, and the confirm-gating constraint is front-loaded ahead of the member-impact warning. Efficient for the information it delivers.

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?

For a 3-parameter destructive mutation with no annotations and no output schema, the description covers the gating and the member impact but leaves out permissions, reversibility, and the outcome for booked members beyond 'affected'.

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 33%, with just the confirm parameter documented. The description hints that identifying the correct session matters ('confirm which session first') but adds no format or meaning for sessionId or reason, so it fails to compensate for the undocumented parameters.

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?

States a specific verb+resource: 'Cancel one dated class session', and the word 'session' (vs. sibling cancel_gym_class / deactivate_gym_class) signals a scoped, dated instance rather than the whole class. It does not explicitly name those siblings, so differentiation is implied rather than stated.

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?

'confirm-gated' and 'confirm which session first' give some usage-relevant context about the two-step flow, but there is no explicit guidance on when to use this versus cancel_session, deactivate_gym_class, or reschedule_session.

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

cancel_sessionAInspect

Cancel a scheduled session (confirm-gated). Optionally give a short reason the client will see.

NameRequiredDescriptionDefault
reasonNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
sessionIdYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose two valuable traits: the operation is confirm-gated and the reason is client-visible. It omits whether cancellation is reversible, what happens to session attendees/notifications, and permission requirements, leaving meaningful 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?

Two tight sentences with the core action and the confirm-gate front-loaded; every clause earns its place with no filler.

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?

For a mutation tool with no annotations and no output schema, the description covers the confirm-gate and reason visibility but omits side effects, reversibility, and permissions. Adequate but with clear gaps an agent would want filled.

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 only 33%, so the schema alone does not document 'reason' or 'sessionId'. The description partially compensates by clarifying that 'reason' is optional, short, and shown to the client. 'sessionId' remains undocumented and the confirm-gating is already explained in the schema.

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?

States a specific verb+resource ('Cancel a scheduled session'), which is clear and distinct in intent. However, it does not differentiate itself from nearby siblings such as cancel_gym_class_session or reschedule_session, so an agent must infer which cancellation path applies.

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 '(confirm-gated)' note implies a two-step usage pattern, which is useful context. But it never states when to use this instead of reschedule_session or cancel_gym_class_session, and gives no exclusions or prerequisites.

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

close_organizationAInspect

Close a gym (confirm-gated) — owner only, high impact: unlists its plans and public page and releases its coaches. Blocked while gym-plan subscribers are live. Get explicit, typed-out confirmation of which gym before calling with confirm: true.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
organizationIdYes

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: owner-only auth, high-impact mutation, the specific side effects (unlisting, releasing coaches), the subscriber precondition, and the confirm-gated preview-vs-execute 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?

Two dense sentences, front-loaded with the action and impact, then the precondition and confirmation requirement. No wasted words.

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 high-impact mutation with no annotations or output schema, the description covers effects, auth, prerequisites, and the confirmation gate well. It stops short of stating irreversibility or what the response returns, a minor gap.

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 50% (only 'confirm' is documented). The description reinforces the confirm workflow and implies organizationId identifies the gym ('which gym'), but adds no format or constraint detail for organizationId, so it only partially compensates for the undocumented parameter.

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?

States a specific verb+resource ('Close a gym') and enumerates the concrete effects (unlists plans and public page, releases coaches), which clearly differentiates it from siblings like update_organization, delete_organization_location, or transfer_organization_ownership.

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?

Gives a strong precondition ('Blocked while gym-plan subscribers are live') and the confirm workflow, making the when/when-not clear. It does not name a sibling alternative for the blocked case, so it falls just short of full routing guidance.

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.

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

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_planAInspect

Create a diet plan for a client (confirm-gated). To check whether one was already created — for example if asked "is it done?" — call list_diet_plans instead of calling this again; re-running this with confirm: true a second time for the same client and title returns the plan already on file rather than writing a duplicate. Prefer meals like { name, scheduledTime: 'HH:mm', order, days: [MONDAY..SUNDAY], section, calories, macros, description, ingredients }. description: one short sentence explaining why this meal is included — shown to the client under the meal. ingredients: REQUIRED on every meal — break each meal into its raw materials with real quantities — e.g. [{ name: 'Paneer', quantity: 60, unit: 'g', calories: 159, protein: 11, carbs: 2, fat: 13 }, { name: 'Cooking oil', quantity: 10, unit: 'ml', isCookingAddition: true, calories: 88, fat: 10 }]. A meal with only calories/macros and no ingredients is rejected. Always include the cooking fat (oil/ghee/butter) as its own ingredient — it is easy to forget and adds real calories. Use get_ingredient_nutrition for the numbers, and make the ingredient calories/macros sum roughly to the meal's calories/macros. Whatever itemised breakdown you show the coach in chat MUST be sent here as the ingredients array, or the client's saved plan will lose every quantity. Legacy slot values like BREAKFAST/LUNCH/DINNER/SNACK are accepted and auto-mapped.

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

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the confirm-gate preview behavior, idempotent re-run semantics for the same client/title, and a hard validation rule ('a meal with only calories/macros and no ingredients is rejected'). It stops short of stating authorization requirements or what the response returns, keeping it from a 5.

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?

Purpose and routing are front-loaded ahead of the detailed meal/ingredient guidance, so the hierarchy is sound. The ingredient example is verbose and the prose runs as a single dense block, but nearly every sentence carries actionable constraint information rather than filler.

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 mutation tool with no annotations, no output schema, and 33% schema coverage, the description covers the critical gaps: confirmation flow, validation rejection, ingredient requirements, unit conventions, and idempotency. It is missing only permission/auth context and any indication of the return payload, which are secondary given there is no output schema to explain.

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 only 33%, so the description must compensate, and it does: it expands on confirm, the meals array shape (name/scheduledTime/order/days/section/calories/macros/description/ingredients), the required ingredients breakdown with a concrete example, and the legacy slot auto-mapping. It adds real meaning beyond the terse schema, though a couple of fields (e.g. endDate, avatarUrl/recipeUrl) remain unexplained.

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?

States a specific verb and resource ('Create a diet plan for a client') plus the confirm-gate qualifier, and explicitly distinguishes itself from the sibling list_diet_plans. An agent can tell exactly what this tool does without opening the schema.

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

Usage Guidelines5/5

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

Explicitly names the alternative (list_diet_plans) and the condition that selects it ('is it done?'), and warns against calling this tool again to check status. It also documents the idempotency behavior for repeated confirm:true calls, leaving nothing to inference.

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

create_diet_plan_templateCInspect

Save a reusable diet plan template (confirm-gated). meals follow the same shape as create_diet_plan's — every meal must include a non-empty ingredients array with quantities.

NameRequiredDescriptionDefault
goalNo
tagsNo
mealsYes
titleYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
difficultyNo
visibilityYes
descriptionNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the confirm-gated preview/execute flow and the meal-level ingredients/quantities requirement, but omits permissions, visibility effects, and what the preview returns.

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?

Two dense, front-loaded sentences with no filler — the core action leads and the meals constraint follows. Slightly terse given the parameter surface, but nothing is wasted.

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?

For an 8-parameter mutation with no annotations, no output schema, and 13% schema coverage, the description is too thin. It never addresses most parameters or the visibility/permission implications of saving a shareable template.

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 13% across 8 params, so the description needs to compensate and largely does not. It adds meaning only for 'meals' (nested ingredients array with quantities) and implicitly for 'confirm'; goal, tags, difficulty, visibility, title, and description are left undocumented.

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?

States a specific verb+resource ('Save a reusable diet plan template'), and the 'template' qualifier separates it from create_diet_plan. It does not explicitly name the sibling it differs from, so it is clear but not fully differentiated.

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?

Only clue about when to use it is the parenthetical '(confirm-gated)', which describes mechanics rather than usage context. No guidance on when to prefer this over create_diet_plan or update_diet_plan_template, and no prerequisites.

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

create_gym_classCInspect

Create a recurring gym class (confirm-gated). Members can then book its sessions.

NameRequiredDescriptionDefault
titleYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
capacityYes
timezoneNoIANA name, e.g. Asia/Kolkata
weekdaysYes0 = Sunday … 6 = Saturday
startTimeYesHH:mm, in the class timezone
locationIdNo
descriptionNo
organizationIdYes
durationMinutesYes
instructorCoachIdNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it only partially does so: it discloses that the call is a mutation gated by confirmation and that created sessions become bookable by members. It omits permissions/roles required, what happens on scheduling conflicts, timezone defaults, and idempotency. The confirm-gate detail is also duplicated in the schema, so its marginal value is limited.

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?

Two short sentences, mutation nature front-loaded, no filler or repetition. It is efficient, though the extreme brevity borders on under-specification rather than tight editing.

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?

For an 11-parameter, 6-required mutation with no annotations and no output schema, the description omits auth requirements, the recurring-schedule model (how weekdays/startTime/timezone interact), and any parameter guidance. It is not complete enough for an agent to call this correctly without reading the schema carefully.

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 36% across 11 parameters, so the description is expected to compensate for undocumented fields (title, capacity, organizationId, durationMinutes, locationId, instructorCoachId) but explains none of them. It adds no syntax, format, or default information beyond what the schema already states.

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?

States a specific verb and resource (create a recurring gym class) and adds a scope qualifier ('recurring') that separates it from one-off session creation. It does not, however, contrast itself with nearby siblings like update_gym_class or deactivate_gym_class, so the agent must infer the boundary.

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?

There is no when-to-use guidance, no prerequisites (e.g., an existing organization, location, or coach), and no named alternative for modifying or canceling an existing class. The only usage-adjacent signal is the parenthetical 'confirm-gated', which is not framed as a workflow instruction.

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

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

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

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

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_organizationBInspect

Create a new organization (confirm-gated) — the coach becomes its owner.

NameRequiredDescriptionDefault
nameYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose two useful facts: the operation is confirm-gated and the creating coach becomes owner. However, it omits permission requirements, whether the org is immediately active, and any reversibility/cleanup semantics.

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, front-loaded sentence that carries the action, the gating mechanism, and the ownership outcome with zero filler. Nothing is redundant or padded.

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?

For a mutation tool with no annotations and no output schema, the description covers purpose, confirm-gating, and ownership but leaves gaps around authorization requirements and post-creation state. Adequate but incomplete against the tool's mutation complexity.

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 50% — the 'confirm' param is documented in the schema (preview vs execute) and the description's 'confirm-gated' note reinforces it, while 'name' is undocumented but self-evident (required string, minLength 1). The description adds no name-format or naming-constraint detail beyond the schema.

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?

States a specific verb+resource ('Create a new organization') and adds the consequential outcome that 'the coach becomes its owner'. The resource name distinguishes it from siblings like create_organization_custom_role and create_organization_location, though it does not explicitly contrast with them.

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 when-to-use, when-not-to-use, or alternative guidance is provided. It says nothing about prerequisites (e.g., what role or plan is required to create an org) or how it relates to invite/join flows in the sibling set.

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

create_organization_custom_roleAInspect

Create a custom gym role from delegable capabilities (confirm-gated). Owner only. Use list_organization_custom_roles for the valid capability keys — billing, roster, payouts and ownership can't be delegated.

NameRequiredDescriptionDefault
nameYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
descriptionNo
capabilitiesYes
organizationIdYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose two important traits: the operation is confirm-gated (preview unless confirmed) and requires owner-level authorization. It omits reversibility, rate limits, and return behavior, but the two disclosed traits are the ones that most affect correct invocation.

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?

Three short sentences with no filler; the mutation/confirm nature and the authorization constraint are front-loaded, and the pointer to the sibling tool comes last where it is most actionable.

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 5-parameter mutation with no annotations and no output schema, the description covers the highest-risk facts (owner-only, confirm gating, capability constraints). It leaves peripheral gaps around the plain string fields and the response shape, but nothing critical to correct invocation is missing.

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 only 20% (just the confirm parameter), so the description must compensate. It does add real meaning for 'capabilities' by naming the source of valid keys and the delegable exclusions (billing, roster, payouts, ownership), but name, description, and organizationId remain undocumented in both schema and 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?

States a specific verb and resource ('Create a custom gym role') plus its scope ('from delegable capabilities'), which clearly separates it from update_organization_custom_role, delete_organization_custom_role, and list_organization_custom_roles in the sibling list.

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?

Gives concrete preconditions: 'Owner only', and routes the agent to list_organization_custom_roles to obtain valid capability keys. It does not explicitly say when to prefer this over update_organization_custom_role, but the create-vs-modify distinction is implied strongly enough.

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

create_organization_locationCInspect

Add a new location/branch to an organization (confirm-gated).

NameRequiredDescriptionDefault
nameYes
addressYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
organizationIdYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it supplies only one fact: that the call is confirm-gated. That fact is already stated verbatim in the schema's 'confirm' description, so it adds little. Nothing is said about authorization requirements, duplicate-location behavior, or side effects such as seat/billing implications.

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?

A single front-loaded sentence with the action and target stated first and the gating qualifier last; no filler. It is efficient, though its brevity reflects under-specification rather than disciplined editing.

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?

This is a 4-parameter mutation with no annotations and no output schema, so the description should explain permissions, the preview-vs-execute flow, and identifier expectations. Instead it gives one sentence, leaving the agent without enough context to invoke it confidently.

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 25% — only 'confirm' is documented, while organizationId, name, and address carry no descriptions. The tool description adds no meaning for any of them (e.g., ID format, address structure, name uniqueness), so it fails to compensate for the coverage gap.

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?

States a specific verb and resource ('Add a new location/branch to an organization'), so the agent knows this creates a sub-entity of an organization rather than an org itself. It does not name the adjacent siblings it must be distinguished from (update_organization_location, delete_organization_location), but the create intent is 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?

There is no explicit when-to-use guidance, no mention of required permissions or role, and no routing to alternatives. The '(confirm-gated)' parenthetical hints that a confirmation step exists but does not tell the agent when this tool is the right choice over update_organization_location or create_organization.

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

create_prospectBInspect

Manually add a prospect to the pipeline (confirm-gated) — for a lead that came in outside the platform (a call, a walk-in, a referral).

NameRequiredDescriptionDefault
goalNo
nameYes
noteNo
emailNo
phoneNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the confirm-gated preview behavior, which is the most important behavioral trait for a mutation tool, but it says nothing about permissions required, duplicate-prospect handling, or side effects on downstream pipeline state. That leaves meaningful gaps for a write operation.

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?

A single front-loaded sentence with the tool's action first and the routing condition after the dash. Dense parenthetical but no filler; it could be split for readability but nothing is wasted.

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?

For a six-parameter mutation tool with no annotations and no output schema, the description covers purpose, selection context, and the confirm gate, which is the minimum viable set. It leaves permission requirements, duplicate handling, and the meaning of four optional parameters undocumented.

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 17% (just the confirm flag), and the description supplies no meaning for goal, note, email, or phone. The origin story (call, walk-in, referral) loosely implies contact details matter, but no parameter is actually explained beyond what the schema already says.

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?

States a specific verb and resource ('add a prospect to the pipeline') and sharpens it with the qualifier 'manually' plus the outside-platform origin, which separates it from automated prospect capture and from siblings like list_prospects or update_prospect_status. It does not name an alternative tool explicitly, so it stops short of a 5.

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?

Gives clear selection context: use this when a lead arrived outside the platform, with concrete examples (a call, a walk-in, a referral). That is a real when-to-use signal, though there is no explicit when-not or named sibling to route to instead.

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

create_workflowAInspect

Create a workflow (confirm-gated; Coach Pro or gym plan required). Either pass templateKey (from list_workflow_templates) to switch on a ready-made one, or give name, triggerType, optional days, and actionType + text. actionType 'send_message' sends text as written ({{clientName}} etc. allowed); 'ai_message' treats text as an instruction and has AI draft a message in the coach's voice, held for approval unless requireApproval is false; 'notify_coach' only reminds the coach. Safety limits are built in: 8am–9pm client-local time, max 2 workflow messages per client per day, each event fires once.

NameRequiredDescriptionDefault
viaNochat
daysNo
nameNo
textNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
actionTypeNo
templateKeyNo
triggerTypeNo
requireApprovalNo

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full load and does so: plan-tier and confirm prerequisites, per-actionType behavior ('send_message' sends verbatim with template tokens, 'ai_message' drafts in the coach's voice and is held for approval unless requireApproval is false, 'notify_coach' only reminds the coach), and concrete safety limits (8am–9pm client-local, max 2 messages per client per day, each event fires once). That is exactly the kind of side-effect and rate-limit detail an agent cannot get from the schema.

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 branching structure and safety limits are front-loaded and every clause carries information relevant to correct invocation. It is dense as a single block, and the clause ordering (mode choice, then action semantics, then limits) could be signposted, but there is no filler.

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 9-parameter mutation tool with no annotations and no output schema, this is close to complete: prerequisites, mode selection, action semantics, and rate limits are all covered. The remaining gaps are the undocumented `via` channel and the unspecified valid `triggerType` values, which an agent would still have to guess.

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 only 11% (just `confirm`), so the description must compensate, and it does explain templateKey, name, triggerType, days, actionType, text, and requireApproval semantics. However, the `via` parameter (chat/push/email) is never mentioned, and `triggerType` is a free-form string with no allowed values given, leaving two of nine parameters ambiguous.

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?

States a specific verb+resource ("Create a workflow") and immediately distinguishes the two creation modes: template-based via `templateKey` or fully specified via `name`/`triggerType`/`actionType`/`text`. It names the sibling that supplies template keys (list_workflow_templates), so an agent can tell this apart from list_workflows and the other workflow 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?

It gives clear routing between the template path and the custom path, plus the eligibility gate (confirm-gated; Coach Pro or gym plan required) and the direction to obtain keys from list_workflow_templates. It stops short of naming when-not-to-use, e.g. that approval/review flows belong to review_workflow_draft or list_workflow_approvals rather than create_workflow.

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). To check whether one was already created — for example if asked "is it done?" — call list_workout_plans instead of calling this again; re-running this with confirm: true a second time for the same client and title returns the plan already on file rather than writing a duplicate. exercises: array of { name, sets, reps, restSeconds?, section?, exerciseId?, notes?, modality?, ... }. modality selects which parameters actually describe the work: STRENGTH (sets/reps/restSeconds) | INTERVAL (rounds + distanceMeters or durationSeconds + recoverySeconds + targetPace) | STEADY (durationSeconds or distanceMeters + targetPace) | AMRAP or EMOM (durationSeconds as the cap + rounds) | FOR_TIME | HOLD (durationSeconds). Never describe a run as sets and reps: '6 x 400 m at 5k pace, 90 s jog' is modality INTERVAL with rounds 6, distanceMeters 400, recoverySeconds 90, targetPace '5k pace'. Call get_training_split first so the week has a real structure. section must be one of WARMUP | RESISTANCE | STRETCHING | CARDIO | COOL_DOWN (defaults to RESISTANCE so the app renders them under 'Main Workout'). exerciseId: pass the id from search_exercises when there's a confident catalog match — this is what makes the exercise show an image/video to the client. notes: one short sentence explaining why this exercise is in the plan — shown to the client under the exercise. days: optional [MONDAY..SUNDAY].

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

TDQS

A4.6/5.0
Behavior4/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 confirm-gating (preview when confirm is false) and, more valuably, idempotency behavior for duplicate client+title calls — real behavioral context beyond the schema. It does not cover permissions/authorization or error behavior, which keeps it from a 5.

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?

Front-loads purpose, then routing, then parameter semantics, with every sentence doing work. The modality paragraph and the run-description example are long, but they are load-bearing given the undocumented nested schema; density is justified rather than padded.

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 complex nested-write tool with 25% schema coverage and no output schema, the description covers the hardest parts (modality, section, idempotency, confirm). Minor gaps remain: endDate/description/title semantics and date-range interaction are unaddressed, and return format is not described (acceptable since no output schema exists).

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?

Schema description coverage is only 25% and the exercises items are just 'additionalProperties: {}', so the description must compensate — and it does heavily. It defines the exercises object shape, enumerates modality semantics (STRENGTH/INTERVAL/STEADY/AMRAP/EMOM/FOR_TIME/HOLD) with which parameters apply, lists the section enum and its default, and explains exerciseId and notes 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?

States a specific verb+resource with scope: 'Create a workout plan for a client (confirm-gated)'. It also implicitly separates itself from list_workout_plans by naming that sibling as the tool for verification, so an agent can route correctly without opening schemas.

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

Usage Guidelines5/5

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

Gives explicit when-to-use-elsewhere rules: check with list_workout_plans when asked 'is it done?', call get_training_split first so the week has structure, and pass exerciseId from search_exercises. It also documents idempotency (re-running with confirm:true returns the existing plan), removing ambiguity about repeat calls.

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

create_workout_plan_templateCInspect

Save a reusable workout plan template (confirm-gated). exercises follow the same shape as create_workout_plan's.

NameRequiredDescriptionDefault
goalNo
tagsNo
titleYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
exercisesYes
difficultyNo
visibilityYes
descriptionNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it only notes "(confirm-gated)" — which the schema already documents in the confirm parameter's description. It says nothing about permissions, scoping, or what persistence actually occurs.

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?

Two short sentences, front-loaded with the core action and constraint; nothing is padded. The cross-reference sentence is terse to the point of being cryptic, but the structure is efficient.

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?

An 8-parameter creation tool with 13% schema coverage, no annotations, and no output schema gets almost no supporting detail here. The agent is left to guess parameter formats and lacks guidance on the template lifecycle, so the description is not complete enough for confident invocation.

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 13% across 8 parameters, so the description must compensate but does not. The note that "exercises follow the same shape as create_workout_plan's" is a cryptic cross-reference that the agent cannot resolve from the current schema, and fields like title, visibility, goal, tags, and difficulty are unexplained.

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?

States a clear verb+resource ("Save a reusable workout plan template") and the word "reusable" implicitly distinguishes the artifact from a one-off plan. It does not directly name create_workout_plan as the non-template sibling it differs from, but the cross-reference to that tool partly signals the relationship.

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?

Usage is only implied: "reusable" hints at when a template is preferable to a plan, but there is no explicit when-to-use, when-not, or naming of alternatives like create_workout_plan or update_workout_plan_template. An agent must infer the workflow context.

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

deactivate_gym_classCInspect

Stop a recurring class from running (confirm-gated).

NameRequiredDescriptionDefault
classIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations, so the description carries the full behavioral burden, yet the only disclosure worth noting is '(confirm-gated)' — and the schema's confirm parameter already explains that preview-vs-execute behavior in detail. It says nothing about reversibility, whether scheduled sessions are removed, required permissions, or side effects beyond stopping the class.

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?

A single tight sentence with the key scoping qualifier front-loaded and zero filler. It is efficient, though its brevity borders on under-specification for a mutation tool.

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?

For a destructive-style mutation with no annotations, no output schema, and a 50%-documented parameter set, the description is too thin. An agent cannot tell whether the action is reversible, what happens to already-scheduled sessions, or how classId is obtained.

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 50%: confirm is well documented in the schema, but classId is not described anywhere and the description adds no format, sourcing, or meaning for it. The description fails to compensate for the undocumented half of the parameters.

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?

States a specific verb (stop) and resource (recurring class), and the word 'recurring' meaningfully separates it from cancel_gym_class_session, which acts on a single session. It stops short of naming that sibling directly, so an agent must infer the boundary itself.

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?

Usage is only implied: 'recurring class' hints that this is for whole-series deactivation rather than single-session cancellation, but no alternative tool is named and no condition selects between them. With cancel_gym_class_session, cancel_session, and update_gym_class all in the sibling list, explicit routing would help.

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

delete_diet_planAInspect

Delete a diet plan for good (confirm-gated). The client loses access to it — prefer editing unless the coach clearly wants it gone.

NameRequiredDescriptionDefault
planIdYes
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, so the description carries the full burden. It discloses irreversibility ('for good'), the client-side impact (loss of access), and the confirm gate, but says nothing about permissions/authorization, cascading effects on history or assignments, or error behavior for a destructive operation.

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 tight sentences with zero filler, front-loading the action and permanence before the alternative-tool guidance. Every clause earns its place.

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?

With no output schema and no annotations, the description does cover permanence, client impact, the confirm gate, and the preferred alternative. It stops short of permission requirements and side effects, but is largely sufficient for a two-parameter delete tool.

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 50%: confirm is documented in the schema, while planId has no description anywhere. The phrase 'confirm-gated' merely restates the schema's own confirm semantics and adds no meaning for the undocumented planId, so the description does not compensate for the coverage 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?

Specific verb+resource (delete a diet plan) with permanent scope made explicit ('for good'). It also states the consequence ('the client loses access to it'), which separates it from the template/workout delete siblings and from update_diet_plan.

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?

Gives a clear default-avoidance rule ('prefer editing unless the coach clearly wants it gone'), which effectively steers the agent to update_diet_plan. The alternative is described by intent ('editing') rather than named, so the mapping to the sibling still requires a small inference.

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

delete_diet_plan_templateAInspect

Permanently delete a diet plan template (confirm-gated). This does not touch any plan already assigned to a client from it.

NameRequiredDescriptionDefault
idYes
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?

With no annotations, the description carries the full behavioral burden and does well: it discloses that deletion is permanent, that execution is gated behind confirmation, and, critically, the blast radius (existing client plans derived from the template are unaffected). It omits permission/auth requirements, idempotency, and error behavior for a nonexistent id.

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 short sentences with zero filler; the destructive nature and gating are front-loaded and the side-effect clarification follows immediately. Every clause earns its place.

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 2-parameter, no-annotation, no-output-schema delete, the description covers permanence, confirmation gating, and non-destructive scope. It is nearly complete, though it could note the absence of a return payload or the effect on marketplace listings set via set_diet_plan_template_marketplace.

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 only 50%: the schema fully documents 'confirm' (including the preview-only behavior of false/omitted) but leaves 'id' with no description. The description's '(confirm-gated)' merely restates what the schema already says about confirm and adds nothing about the id's expected format or reference 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?

Names a precise verb+resource ('delete a diet plan template') and adds the permanence qualifier. The second sentence separates it from the sibling delete_diet_plan by stating that already-assigned plans are untouched, so an agent can pick the right destructive tool without opening a schema.

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 '(confirm-gated)' note implies the two-step preview-then-execute flow, but the description gives no explicit when-to-use vs. alternatives (e.g., when to deactivate or update instead, or what preconditions must hold). Usage is only implied by the tool name and the confirm hint.

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

delete_organization_custom_roleAInspect

Delete a custom gym role (confirm-gated). Owner only. Get explicit confirmation of exactly which role first — members holding it lose its access.

NameRequiredDescriptionDefault
roleIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
organizationIdYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does notably well: it discloses the confirm gate, owner-only auth requirement, and the downstream consequence that members holding the role lose its access. It does not describe the preview-vs-execute response behavior, but the schema's confirm field covers that.

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?

Three tight sentences, all front-loaded with the destructive action and the confirmation gate before the consequence. No filler.

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 destructive tool with no annotations, no output schema, and thin schema coverage, the description supplies the critical missing context: privilege requirement, confirmation workflow, and consequence. Only the per-parameter semantics of organizationId/roleId are left thin.

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 only 33% (only 'confirm' is documented). The description compensates partially by emphasizing 'exactly which role' (roleId) and describing the confirmation behavior, but organizationId and roleId formats/scoping remain undocumented. Marginal value above 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?

States a specific verb (Delete) and resource (custom gym role), which cleanly distinguishes it from the sibling create_/update_/list_organization_custom_role tools. An agent can identify it without opening the schema.

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?

Gives clear context: 'Owner only' establishes the required authorization level and 'Get explicit confirmation of exactly which role first' prescribes a precondition workflow. It stops short of naming alternative tools, but the destruction semantics make the routing obvious.

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

delete_organization_locationAInspect

Permanently delete a location (confirm-gated). Coaches and clients assigned to it are not moved automatically — reassign them first.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
locationIdYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the two traits that matter most for a destructive tool: the deletion is permanent and it is confirm-gated. It also flags the non-cascading side effect on coach/client assignments. It omits permission/authorization requirements and what the response 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?

Two tightly written sentences with no filler; the permanence and the destructive side effect are both 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 destructive, non-read-only tool with zero annotation coverage and no output schema, the description covers irreversibility, the confirm preview gate, and the assignment side effect. It is nearly complete, missing only auth/permission context and the absence of any return-value note.

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 only 50% — the 'confirm' parameter is fully documented in the schema while 'locationId' has no description at all. The description reinforces the confirm gate but adds no identifier format or meaning for locationId, so it only partially compensates for the gap.

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?

States a specific verb and resource ('Permanently delete a location') with the added qualifier that the deletion is irreversible. It is naturally distinguishable from create_organization_location and update_organization_location, though it never names a sibling explicitly.

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?

Gives a clear precondition for safe use: coaches and clients assigned to the location are not moved, so they must be reassigned first. It stops short of naming explicit alternatives (e.g. deactivating vs deleting) or stating when deletion is inappropriate.

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

delete_workout_planAInspect

Delete a workout plan for good (confirm-gated). The client loses access to it — prefer editing unless the coach clearly wants it gone.

NameRequiredDescriptionDefault
planIdYes
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?

With no annotations, the description carries the full burden and does disclose the destructive/permanent nature ('for good'), the confirm gate, and the client-side consequence (loss of access). It omits permissions needed and what a successful deletion 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?

Two tight sentences, front-loaded with the destructive action and its permanence, then the alternative. No wasted words.

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 no-annotation mutation tool with no output schema, the description covers the essential behavior: permanence, the confirm requirement, and the safer alternative. Only minor gaps remain (auth requirements, success response).

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 50%: the confirm parameter is already documented in the schema, while planId is undocumented in both schema and description. The description reinforces 'confirm-gated' but adds no syntax or meaning for planId beyond what the schema implies.

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?

States a specific verb (delete) and resource (workout plan), reinforced by scope ('for good') and a consequence ('client loses access'). It differentiates the resource from the similarly named delete_workout_plan_template, though it never names a sibling explicitly.

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?

Gives explicit when-not guidance: 'prefer editing unless the coach clearly wants it gone,' which implies update_workout_plan as the alternative. The condition selecting the alternative is clear, though the alternate tool is not named outright.

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

delete_workout_plan_templateAInspect

Permanently delete a workout plan template (confirm-gated). This does not touch any plan already assigned to a client from it.

NameRequiredDescriptionDefault
idYes
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?

With no annotations, the description carries the full burden and largely succeeds: it declares the operation is permanent/irreversible, notes the confirm gate, and discloses blast radius (assigned client plans are untouched). It omits permissions/authorization requirements and any error or cascade behavior beyond assigned plans.

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 tight sentences with the destructive verb and permanence front-loaded, the confirm gate second, and the side-effect clarification last. No filler.

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 two-parameter delete tool with no output schema, the description covers the essential concerns (destruction, confirmation flow, blast radius). It stops short of noting authorization needs or failure modes, but an agent has enough to invoke it correctly.

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 50%: 'confirm' is fully documented in the schema, and the description only echoes it as 'confirm-gated'. The required 'id' parameter gets no added meaning from the description or schema. Baseline 3 is appropriate given partial coverage and the description adding little beyond 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?

States a specific verb+resource ('Permanently delete a workout plan template') that is unambiguous against siblings like delete_workout_plan and delete_diet_plan_template. The second sentence further pins down scope by clarifying what is not affected.

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 '(confirm-gated)' note implies a two-step preview/execute flow, which is procedural guidance, but the description never says when to choose this over alternatives such as update_workout_plan_template or deactivating. Usage is only inferred.

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

dismiss_client_onboardingAInspect

Close a client's onboarding checklist without finishing it (confirm-gated) — it stops showing up and stops nudging.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
clientIdYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the confirm gate and the post-condition ('stops showing up and stops nudging'), clarifying this hides rather than deletes progress. However, it omits permissions required, reversibility/undo behavior, and what the preview response contains.

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 front-loaded sentence with an em-dash elaboration; every clause adds information (action, scope, gate, effect) and nothing is wasted.

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?

For a simple 2-parameter mutation this covers the core action and outcome, but with no annotations and no output schema the definition should say more about permissions, whether dismissal is reversible, and how the preview mode behaves beyond what the 'confirm' schema field already states.

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 50%: 'confirm' is fully documented in the schema, but 'clientId' has no description anywhere. The description's 'a client's' and '(confirm-gated)' only vaguely gesture at both parameters and add no format or identification semantics to compensate for the undocumented clientId.

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?

States a specific verb and resource ('Close a client's onboarding checklist') and adds the crucial scope qualifier 'without finishing it', which separates it from siblings like mark_client_onboarding_step and get_client_onboarding. An agent can tell what this does without opening the schema.

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 phrase 'without finishing it' implies the use case (abandon/stop an incomplete onboarding) and hints at the contrast with completion tools, but it never names an alternative or states when-not to use it. Usage is inferable but not explicit.

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

get_checkin_answersA
Read-only
Inspect

Get a check-in's questions + latest answers. PHOTO-type answers are resolved to fetchable image URLs — pass those into get_client_images to actually view them.

NameRequiredDescriptionDefault
checkInIdYes

TDQS

A4.1/5.0
Behavior4/5

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

The readOnlyHint annotation already establishes this is a safe read. Beyond that, the description discloses a non-obvious behavioral trait: PHOTO-type answers are transformed into fetchable image URLs, and those URLs are not directly viewable without another call. It omits error behavior and any rate/limit 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?

Two tight sentences, front-loaded with the core action and followed by the one non-obvious caveat. No filler or restated boilerplate.

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 single-parameter read-only tool, the description covers the action, the shape of the return (questions + latest answers), and the photo-URL caveat. Missing is any note on what happens for an invalid or nonexistent checkInId, but no output schema exists to carry that burden elsewhere.

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 adds nothing about checkInId — no format, no source, no example. With only one parameter and zero coverage, the description should compensate but does not; the possessive "a check-in's" only implies an identifier is required.

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?

States a specific verb and resource ('Get a check-in's questions + latest answers'), which clearly distinguishes it from siblings like list_checkins, create_checkin, and schedule_checkin. The scope of the returned data (questions and latest answers) is explicit.

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?

It provides concrete workflow routing: photo answers resolve to URLs that must be 'passed into get_client_images to actually view them,' which names an alternative tool and the condition that triggers it. It does not compare itself against list_checkins or note prerequisites, so it falls short of full when/when-not guidance.

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

get_client_ai_historyA
Read-only
Inspect

Check this client's past AI Coach runs before building or adjusting their plan. If a past run's status is 'failed', its error field is the coach's rejection reason — treat that as a hard constraint and don't repeat whatever it flagged. Call this before create_workout_plan/create_diet_plan.

NameRequiredDescriptionDefault
limitNo
clientIdYes

TDQS

A4/5.0
Behavior4/5

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

Annotations only cover readOnlyHint=true, so the description carries the rest and does add real context: a 'failed' status means the error field is the coach's rejection reason and must be treated as a hard constraint. It does not disclose ordering/limit behavior or what a non-failed run contains, but the added semantic guidance is genuinely beyond annotations.

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?

Three short sentences, front-loaded with the action and followed by the interpretation rule and the integration constraint. No filler or restatement of the tool name.

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?

There is no output schema, so the description usefully explains the one output field that drives behavior (error on failed runs). What remains thin is the limit/pagination behavior and the shape of successful runs, but the critical decision-making context is present.

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% for two parameters (clientId, limit), so the description is the only place to document them — and it says nothing about clientId's format or limit's default (5) and maximum (20). Neither parameter is explained anywhere, which is a real gap for a 0%-coverage schema.

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?

States a specific verb and resource: reading a client's past AI Coach runs. The scope is clear and the description also frames why the data matters, though it does not differentiate itself from any near-sibling (none exists in the list, so differentiation is less relevant).

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

Usage Guidelines5/5

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

Explicitly says when to call it ('before building or adjusting their plan') and names the two downstream tools it must precede (create_workout_plan/create_diet_plan). It also gives the interpretation rule for failed runs, removing all inference.

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

get_client_imagesA
Read-only
Inspect

Fetch check-in photo(s) and return base64-encoded image data for visual analysis. Pass imageUrl(s) from get_checkin_answers's photoAnswers.

NameRequiredDescriptionDefault
imageUrlsYes

TDQS

A4/5.0
Behavior4/5

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

readOnlyHint=true already establishes this is a safe read. The description adds genuinely useful context beyond the annotation: the output is base64-encoded image data intended for visual analysis, which matters because there is no output schema. It doesn't mention the 10-item cap or any rate/size limits, so not full marks.

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 short sentences, front-loaded with purpose, followed by the input-sourcing instruction. Nothing is padded or redundant.

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?

With no output schema, the description usefully discloses the base64 image return and the source of inputs, which is what an agent needs to chain this after get_checkin_answers. Only the array size limit and format constraints are left unstated.

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 0% for the single imageUrls parameter. The description compensates partially by telling the agent where to obtain the URLs (get_checkin_answers's photoAnswers) and implying plurality with 'imageUrl(s)', but it does not explain the 1-10 array bound or accepted URL form.

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?

States a specific verb and resource ('Fetch check-in photo(s)'), plus the return form ('base64-encoded image data'), so an agent knows this retrieves images rather than the check-in answers themselves. It distinguishes itself from get_checkin_answers by naming it as the source of the URLs, though it doesn't explicitly contrast with other get_client_* siblings.

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?

Gives clear operational guidance: pass imageUrl(s) sourced from get_checkin_answers's photoAnswers. That tells the agent both when this tool is relevant and where its input comes from. No explicit when-not or exclusions, but the context is unambiguous.

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

get_client_onboardingA
Read-only
Inspect

The onboarding checklist for one client (by User _id), or null if there is none / it was dismissed. Returns each step's key, type, title, status (PENDING|DONE|SKIPPED) and any auto-setup error, plus completed/total counts.

NameRequiredDescriptionDefault
clientIdYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: it can return null when none exists or the checklist was dismissed, and it enumerates the status values and fields returned, including auto-setup errors.

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?

Two dense sentences with the primary resource and scope front-loaded, followed by the return shape. No filler, though the second sentence is quite packed.

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?

No output schema exists, so the description correctly carries the burden of describing the return value, including field list, status enum, null case, and counts. This is nearly complete for a single-param read tool; only cross-tool routing is missing.

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%, so the description must carry the parameter meaning. It clarifies that clientId is a User _id, which is genuinely useful, but with a single required string param and no format details beyond that, the value added is modest.

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?

States a specific verb and resource (the onboarding checklist for one client) and scopes it to a single client identified by User _id. It clearly distinguishes itself from the sibling list_clients_needing_onboarding by being single-client, though it doesn't explicitly name alternatives.

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 on when to use this versus siblings like list_clients_needing_onboarding, dismiss_client_onboarding, or mark_client_onboarding_step. The only condition mentioned is the null case, which describes an outcome rather than when to invoke it.

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

get_client_preferencesA
Read-only
Inspect

The client's own stated constraints — diet type, food allergies, cuisines, meals per day, cooking level, which days they can train, home vs gym, what equipment they actually have, preferred time and session length, plus free-text notes. These are hard constraints, not suggestions: a diet plan that violates dietType, foodAllergies or mealsPerDay is rejected outright by the server, and a workout plan built for equipment they don't own is unusable. Call this BEFORE create_workout_plan/create_diet_plan on every run, including weekly adjustments — clients change these between runs, and the previous plan does not tell you what they say today. Returns null if they have not set any.

NameRequiredDescriptionDefault
clientIdYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true; the description goes well beyond that by explaining that these are hard constraints enforced server-side (plans violating dietType/foodAllergies/mealsPerDay are rejected; plans requiring unowned equipment are unusable) and that the tool returns null when unset. That is exactly the context an agent needs to interpret the result.

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?

Three sentences, each load-bearing: the field inventory, the hard-constraint consequence, and the timing/null-return directive. No filler, and the consequences and call-timing are front-loaded rather than buried.

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?

There is no output schema, so the description carries the return-value burden and does so ('Returns null if they have not set any') while also listing what a non-null result contains. Nothing an agent needs to call this correctly is missing.

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 0%, so the lone clientId parameter is undocumented in both places. However, clientId on a get_client_preferences tool is self-evident in meaning, and the description does not need to invent syntax for it. Baseline 3 for a trivially-named single parameter with no added 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 names a specific resource (the client's own stated constraints) and enumerates its contents — diet type, allergies, cuisines, meals per day, training days, equipment, session length, notes. This is clearly distinguishable from neighboring getters like get_client_profile or get_client_onboarding, so an agent can select it without opening the schema.

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

Usage Guidelines5/5

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

It gives an explicit when and a why: 'Call this BEFORE create_workout_plan/create_diet_plan on every run, including weekly adjustments.' It even pre-empts the common mistake of reusing stale data ('clients change these between runs'). This is the strongest form of routing guidance.

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, start/latest logged weight). Pass clientId (the client's user _id, same value every other tool takes). userId is accepted as an alias.

NameRequiredDescriptionDefault
userIdNo
clientIdNo

TDQS

A3.7/5.0
Behavior3/5

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

readOnlyHint=true already establishes this is a safe read, lowering the burden. The description adds the concrete return contents, which is genuinely useful context, but discloses nothing about authorization scope, pagination, or error behavior for an invalid clientId.

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 tight sentences with zero filler; the return-value summary is front-loaded and the parameter guidance follows immediately. Nothing is redundant with the schema or annotations.

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?

With no output schema, the description takes on the job of describing what comes back and does so by naming the key metrics. Combined with the alias clarification, an agent has enough to invoke it correctly; only the distinction from adjacent client getters is left implicit.

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 description coverage is 0%, so the description carries the full parameter burden, and it does so well: clientId is identified as the client's user _id, the same value used by every other tool, and userId is flagged as an accepted alias. This resolves the ambiguity of two overlapping optional string params that the schema leaves completely undocumented.

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?

States a specific verb and resource ('Get a client's fitness profile') and enumerates the computed metrics returned (BMI, TDEE, recommended calories, weights), so an agent knows what it produces. It implicitly separates itself from the self-scoped get_my_profile by saying 'a client's', but never names a sibling explicitly.

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 tells the agent which identifier to pass and that userId is an alias, which is useful invocation guidance, but gives no when-to-use versus when-not guidance relative to get_my_profile, get_client_preferences, or the other client getters in the sibling list. Usage is implied rather than stated.

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

get_diet_planA
Read-only
Inspect

Full detail of one client diet plan: every meal (time, section, calories, macros, ingredients, notes) and the original PDF's text when the plan came from a coach's PDF. Pass the plan _id from list_diet_plans. If document is present with no exercises/meals, the plan IS the coach's PDF (shared as-is): document.text is what the PDF says. A null document.text means the PDF is scanned or unreadable — tell the coach to open the plan on the web and use "Turn into a trackable plan" so it can be read and edited.

NameRequiredDescriptionDefault
planIdYes

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint annotation: it discloses the shape of the returned data, the special document-only PDF case, and that a null document.text signals a scanned/unreadable PDF. It even supplies the remediation step (tell the coach to use 'Turn into a trackable plan'), which an agent could not infer elsewhere.

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?

Front-loaded with the payload summary, then the edge cases in logical order; no filler. Slightly dense with nested backticked references, but every sentence carries operational value.

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?

There is no output schema, so the description carries the return-value burden and does so thoroughly, including the degenerate PDF-only case and null handling. Nothing an agent needs to call and interpret the result is missing.

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 0%, so the description must compensate, and it does: it tells the agent the parameter is the plan _id sourced from list_diet_plans. It stops short of stating format constraints (e.g., string/ObjectId expectations), so not a full 5.

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?

States a specific verb and resource ('Full detail of one client diet plan') and enumerates exactly what the response includes (time, section, calories, macros, ingredients, notes, PDF text). This clearly separates it from list_diet_plans and get_diet_plan_template in the sibling set.

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 tells the agent to pass the plan _id from list_diet_plans, establishing the correct call sequence. It also gives conditional handling for the document-only case, though it does not explicitly contrast against get_diet_plan_template or list_diet_plans by name.

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

get_diet_plan_templateB
Read-only
Inspect

Full detail of one diet plan template, including every meal.

NameRequiredDescriptionDefault
idYes

TDQS

B3/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the bar is lower; the description adds the useful disclosure that the response is the full detail including every meal. It does not say what happens with an unknown or stale id, nor whether the template is returned inline or expanded.

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?

A single efficient sentence with the scope front-loaded and no filler. It is not padded, though it is also too terse to carry the detail the tool needs.

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 partially compensates by describing the return payload ('including every meal'), and readOnlyHint covers safety. Missing is any hint about the id's origin or lookup failure behavior, which matters for a lookup tool keyed on an opaque identifier.

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% for the lone required 'id' parameter, so the schema supplies no meaning at all. The description only implies that 'one' template is selected by the argument; it never states what the id identifies or its format, leaving the coverage gap uncompensated.

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?

States a specific verb (get/full detail) and resource (one diet plan template) and scopes the payload (including every meal), so it is distinguishable from list_diet_plan_templates by the word 'one'. It stops short of naming the sibling tools it differs from.

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?

There is no explicit when-to-use guidance, no mention of prerequisites, and no reference to the list_diet_plan_templates alternative that would supply the required id. The single-template scope is only implied by the phrase 'one diet plan template'.

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

get_gym_attendance_summaryC
Read-only
Inspect

Member attendance (booked / attended / no-show) and per-class fill rate over a date range.

NameRequiredDescriptionDefault
toNo
fromNo
organizationIdYes

TDQS

C2.9/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the description's job is lighter. It does add value by enumerating the returned dimensions (booked/attended/no-show counts, per-class fill rate), but it says nothing about how the aggregation is scoped, how missing data is treated, or what granularity (per class? per member? totals) the summary uses.

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?

A single tight sentence with the metric content front-loaded and no filler. It is efficient, though the terseness contributes to the gaps in usage and parameter guidance rather than being purely a virtue.

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 no output schema and 0% parameter coverage, the description is the only place an agent could learn the return shape, granularity, or date semantics, and it does not. The readOnlyHint annotation covers safety, but an analytics tool whose output structure and scoping rules are undefined is under-specified.

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% across three parameters, so the description carries the full burden. It only gestures at 'a date range', which loosely maps to from/to but gives no format, inclusivity, or default, and it never explains that organizationId is required and scopes the result.

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?

States a concrete resource and metric set: member attendance broken into booked/attended/no-show plus per-class fill rate over a date range. An agent can tell this is an aggregate attendance-report tool rather than a roster or a write path, but it never names the neighboring tools (e.g., get_gym_class_roster, get_organization_coach_attendance) that could be confused with it.

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 mention of 'over a date range' implies a period-reporting use case, but there is no explicit when-to-use, when-not-to-use, or pointer to alternatives. For a tool sitting next to get_gym_class_roster, mark_gym_class_attendance, list_gym_class_sessions and get_organization_coach_attendance, that absence is a real selection hazard.

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

get_gym_class_rosterA
Read-only
Inspect

Who is booked into one class session and whether they attended. Use list_gym_class_sessions for the session id.

NameRequiredDescriptionDefault
sessionIdYes

TDQS

A4.2/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds useful content context (attendance status is included in the result), but says nothing about permissions, pagination, or result shape.

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 filler, with the tool's output scope front-loaded and the prerequisite second. Every clause earns its place.

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 one-param, read-only tool with no output schema, the description covers what it does, what it returns at a high level, and where the id comes from. Only the precise return shape and any authorization requirements are left unstated.

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 0%, so the description carries the burden, and it does add meaning: the single sessionId refers to a class session and should be sourced from list_gym_class_sessions. It stops short of giving the id format or any validation detail.

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?

States a specific verb+resource (roster of one class session) and its content scope (who is booked and whether they attended). It is clearly distinguishable from list_gym_class_sessions, which it explicitly names as a different tool.

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?

Gives a concrete prerequisite: use list_gym_class_sessions to obtain the session id. It does not, however, address when this roster is preferred over related reads such as get_gym_attendance_summary or mark_gym_class_attendance, so the exclusion guidance is incomplete.

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

get_gym_homeB
Read-only
Inspect

Role-scoped gym overview: client and coach counts, this/last month revenue, new leads, today's classes, recent announcements, and billing state. Fields the coach's role can't see come back null.

NameRequiredDescriptionDefault
organizationIdYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuine value on top: it discloses that results are role-scoped and that fields the coach's role cannot see are returned as null, which an agent cannot infer from the schema.

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 dense sentences with no filler, and the core scope statement is front-loaded before the null-behavior caveat. Every clause carries 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?

With no output schema, the description properly carries the return-value burden by enumerating the fields returned. It falls short only on the parameter and on sibling disambiguation, but the data-shape coverage is strong for a one-param read tool.

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?

There is one required parameter (organizationId) with 0% schema description coverage, and the description never mentions it, its format, or that it identifies the gym being viewed. The description fails to compensate for the total lack of schema documentation.

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?

States a clear verb+resource ('gym overview') and enumerates the exact data returned (client/coach counts, revenue, leads, classes, announcements, billing). However, it never distinguishes itself from the overlapping sibling get_organization_dashboard, leaving the agent to guess which overview to pick.

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 implies a dashboard-style read but gives no when-to-use guidance, no conditions selecting it over get_organization_dashboard or get_organization_earnings, and no prerequisites. The role-scoping clause is the only contextual cue.

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

NameRequiredDescriptionDefault
endDateYes
clientIdYes
startDateYes

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.

get_ingredient_nutritionA
Read-only
Inspect

Per-100g nutrition (calories, protein, carbs, fat) for raw ingredients, from the platform's curated table. Call this while building a diet plan to itemise each meal into real raw materials with real quantities, instead of guessing per-food macros. Query by plain name ('paneer', 'cooking oil', 'toor dal'); results are ranked by matchConfidence and include a typicalServingG anchor and an isCookingAddition flag. Scale the per-100g figures to your chosen quantity (e.g. 60 g paneer = 60% of the per-100g values). If an ingredient isn't found, estimate sensibly and still list it — never drop the cooking fat.

NameRequiredDescriptionDefault
limitNo
queryYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true, and the description adds substantial behavior beyond that: results are ranked by matchConfidence, each result carries a typicalServingG anchor and an isCookingAddition flag, and it prescribes fallback handling ('estimate sensibly and still list it — never drop the cooking fat'). This is rich operational context an agent could not infer from 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.

Conciseness4/5

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

It is a fairly long paragraph, but it is front-loaded with what the tool returns and each sentence adds distinct value (what it returns, when to call it, query format, scaling math, fallback). No filler or restatement of the tool name is present.

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?

With no output schema, the description usefully enumerates the returned shape (macros, matchConfidence, typicalServingG, isCookingAddition) plus the scaling instruction, so an agent can act on results. The only material gap is the undocumented `limit` parameter, which slightly undercuts completeness for a 2-param tool.

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 0%, so the description must carry parameter meaning. It does explain the `query` parameter well (plain name, with examples like 'paneer', 'cooking oil'), but the `limit` parameter (default 5, max 20) is never mentioned, leaving one of two parameters undocumented in both schema and description. Partial compensation warrants a mid score.

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 names a specific verb+resource combination ('Per-100g nutrition ... for raw ingredients') and pins the data source ('from the platform's curated table'). It gives the returned macro fields explicitly, so an agent knows exactly what this tool produces and how it differs from sibling retrieval tools like get_client_preferences or search_exercises.

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?

It states the usage context clearly ('Call this while building a diet plan to itemise each meal into real raw materials ... instead of guessing per-food macros') and even gives fallback behavior when an ingredient isn't found. It does not name an explicit alternative tool to use instead, but the sibling list is largely CRUD/plan-management, so the routing guidance is adequate without it.

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

get_my_pending_org_invitationsA
Read-only
Inspect

Organization invitations this coach has received and not yet responded to (e.g. an invite to join a gym as staff).

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds useful scoping context (invitations received by this coach that are still pending), but says nothing about return shape, pagination, or how 'pending' is determined.

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?

One sentence, front-loaded with the resource and immediately tightened by the scope qualifier and a parenthetical example. Nothing is redundant.

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 zero-parameter read tool with annotation coverage, this is nearly sufficient. The only residual gap is that no output schema exists, so the agent cannot know the return structure — though that is arguably acceptable for a simple list.

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 takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies for a no-param tool.

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?

States a specific resource (organization invitations) with clear scope qualifiers: received by this coach and not yet responded to. The staff-invite example grounds the concept concretely. It does not, however, distinguish itself from the sibling list_invitations, so an agent cannot be certain which to pick without opening both.

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 when-to-use guidance and no mention of alternatives. With siblings list_invitations and list_my_organizations present, the definition leaves the selection decision entirely to inference.

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

get_my_profileA
Read-only
Inspect

The coach's own full profile — contact info, professional info (specialties, certifications, bio), availability, and public transformations/testimonials. Bank details are never returned by this tool.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

readOnlyHint=true already covers the safety profile, so the bar is lower, and the description adds real value on top: it declares the content domains returned and explicitly excludes bank details. That exclusion is a meaningful behavioral constraint given the sibling update_my_bank exists. It does not cover any failure modes or rate/auth behavior, so it falls short of a 5.

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 tight sentences, with the scope ("the coach's own full profile") front-loaded and the content enumeration following immediately. The bank-exclusion caveat is placed last as a qualifier, and no sentence is redundant with the name or title.

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?

There is no output schema, so the description carries the burden of describing return content, and it does so by naming the major field groups. Combined with the readOnly annotation and the zero-parameter schema, an agent has everything needed to call it correctly.

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 takes zero parameters, which is the baseline-4 case: there is nothing for the description to document beyond what the schema already shows. No parameter syntax, filtering, or format guidance is needed or missing.

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 uses a clear verb+resource ("The coach's own full profile") and enumerates the returned domains: contact info, professional info, availability, and transformations/testimonials. The phrase "coach's own" usefully separates it from sibling get_client_profile and get_organization_profile, though it does not distinguish itself from whoami, which likely overlaps.

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?

Usage is only implied: an agent infers it should call this when it needs the authenticated coach's profile. There is no explicit when-to-use guidance, no statement of when to prefer whoami or get_client_profile instead, and no prerequisites or auth notes beyond the annotation.

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

get_my_ratingsA
Read-only
Inspect

The coach's own client ratings/reviews (public ones only — a client can mark theirs private), newest first.

NameRequiredDescriptionDefault
limitNo

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, so the safety profile is covered. The description goes beyond that by disclosing the visibility filter (private ratings excluded) and result ordering ('newest first'), which are genuine behavioral traits an agent cannot get from annotations. It stops short of describing pagination behavior for the limit parameter.

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 front-loaded sentence with zero filler; the scope constraint and ordering both earn their place, and nothing is repeated from structured fields.

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 read-only list tool with no output schema and one optional param, the description covers what is returned (public client reviews) and how it's ordered. The only gap is the undocumented limit/pagination semantics, which is a minor omission otherwise.

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?

The single parameter (limit) has 0% schema description coverage — the schema only supplies min 1 / max 100 bounds. The description never mentions the limit or its default, so an agent gets no semantic guidance on controlling result size. This is the weakest area for a one-parameter tool with no schema documentation.

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?

States a specific resource (the coach's own client ratings/reviews) with clear implicit verb (retrieve/list) and scope (own, public only). An agent can infer this returns individual reviews rather than aggregate stats, distinguishing it in spirit from get_my_rating_summary, though the sibling is never named.

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?

Usage is implied by 'the coach's own' — you call it to read your own reviews — and the 'public ones only' clause hints at what will and won't appear. However, no alternative is named (get_my_rating_summary exists as an obvious sibling) and there is no when-not guidance.

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

get_my_rating_summaryB
Read-only
Inspect

The coach's average star rating and review count.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read with no side effects, so the description's burden is reduced. It adds the useful detail that the result is an aggregate (average plus count) rather than raw reviews, but does not describe formatting, scoping, or failure behavior. Adequate against the annotation baseline, not rich.

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?

A single short sentence with no wasted words. It is a noun fragment rather than a verb-first construction, which slightly weakens front-loading, but nothing could be trimmed.

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 zero-parameter read tool with no output schema, the description adequately signals the two values returned (average rating, review count) and the read-only nature is covered by annotations. The one gap is that it never clarifies its relationship to get_my_ratings.

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 takes zero parameters, so the schema has nothing to document and the baseline is 4. The description correctly implies no input is needed and focuses on output content instead.

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 names the resource (the coach's star rating) and implies the read verb via the tool name, and states the returned metrics (average rating and review count). It is clear what the tool does, but it does not explicitly distinguish itself from the sibling get_my_ratings, leaving the agent to infer that this is an aggregate summary rather than a review list.

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?

There is no when-to-use guidance, no prerequisites, and no mention of the closely related get_my_ratings sibling. The agent must infer usage entirely from the name and description.

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

get_organization_accessA
Read-only
Inspect

The coach's own role in a gym and the exact capabilities it grants (including a custom role's name). Call this first to know which gym tools this coach may use.

NameRequiredDescriptionDefault
organizationIdYes

TDQS

A3.8/5.0
Behavior4/5

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

readOnlyHint=true already covers the safety profile. On top of that, the description discloses return content that has no output schema to carry it: the role, the exact capabilities granted, and the custom role's name. Useful behavioral context beyond 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?

Two tight sentences: what is returned first, then the usage directive. No filler, and the most decision-relevant content is 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 single-param read with no output schema, the description covers both the returned data (role, capabilities, custom role name) and the call-first usage pattern. Only the organizationId parameter's semantics are left unaddressed.

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 never mentions organizationId or its expected format. The phrase "in a gym" implies org scoping, but the single required parameter is left to be inferred from its self-explanatory name. With no schema documentation, the description should compensate more than it does.

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?

States a specific verb+resource: retrieves the coach's own role in an organization plus the capabilities it grants. This is distinguishable from siblings like get_organization_role_guide (generic role docs) and get_organization_profile, though those siblings are not named. Clear but without explicit sibling differentiation.

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?

"Call this first to know which gym tools this coach may use" gives an explicit, actionable directive for when to reach for the tool. No when-not condition or named alternative is provided, which keeps it below a 5.

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

get_organization_coach_attendanceC
Read-only
Inspect

A location's coach attendance roster for one date.

NameRequiredDescriptionDefault
locationIdNo
attendanceDateYesYYYY-MM-DD
organizationIdYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so safety is covered and the bar for added context is higher. The description adds no behavioral detail beyond scoping words already implied by parameters: no permissions required, no pagination/size limits, no statement of what the roster contains (coach identities, attendance status).

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?

It is a single front-loaded fragment with zero padding, which is structurally fine, but it is terse to the point of under-specification rather than genuine conciseness – the brevity comes at the cost of any usage or parameter guidance.

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?

For a 3-parameter tool with 33% schema coverage and no output schema, the definition should clarify the org/location relationship, the optionality of locationId, and what fields the roster returns. It does none of that, so an agent could easily call it with the wrong scope or misinterpret the result.

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 attendanceDate is documented ('YYYY-MM-DD'). The description's 'for one date' loosely reinforces the date and location framing, but it says nothing about organizationId or about locationId being optional rather than required, leaving the two undocumented parameters unexplained in both places.

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 phrase 'A location's coach attendance roster for one date' names a concrete resource and its scope (coach attendance, single location, single date), so an agent can tell what it retrieves. However, it is a bare noun phrase with no verb, and it never contrasts with the write-side sibling record_organization_coach_attendance, so the read/write distinction is left to inference.

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?

There is no when-to-use guidance at all: no prerequisites, no indication of whether organizationId must match the location's org, and no mention of the obvious alternative record_organization_coach_attendance (or get_gym_attendance_summary). The agent must infer everything from the name.

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

get_organization_dashboardC
Read-only
Inspect

Organization-wide totals: clients and revenue overall, and broken down per location and per coach.

NameRequiredDescriptionDefault
coachIdNo
locationIdNo
organizationIdYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so safety is covered. The description adds the useful scope statement that data is aggregated overall plus per-location and per-coach, but says nothing about time range, permissions needed, or freshness of the totals.

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?

A single efficient sentence with the main payload (clients and revenue totals) front-loaded. No filler, though it is terse enough to leave gaps unaddressed.

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?

For a read-only aggregation tool with no output schema and three undocumented parameters, the description omits the reporting period, whether coachId/locationId narrow or expand results, and required access level. It is not adequate to call the tool confidently beyond the happy path.

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% for all three parameters, so the description carries the full burden and fails to say what organizationId, coachId, or locationId do. It only obliquely implies filtering via the 'per location and per coach' breakdown, which is not tied to the actual filter parameters.

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?

States a specific resource (organization-wide totals) and enumerates its content: clients and revenue, broken down per location and per coach. It is clear, but it does not distinguish itself from overlap-prone siblings such as billing_summary, get_organization_earnings, or get_gym_home.

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 when-to-use guidance and no named alternatives, despite several sibling tools that also surface revenue or organization-level aggregate data. The agent must infer which dashboard-type tool to pick.

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

get_organization_earningsB
Read-only
Inspect

Gym earnings statement for a period: total, per-coach totals, and each payment with who sold it and who coaches that client now, plus the payout mode. Amounts are in the smallest currency unit. Payouts are settled outside the app.

NameRequiredDescriptionDefault
toNo
fromNo
organizationIdYes

TDQS

B3.3/5.0
Behavior4/5

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

readOnlyHint already marks this as a safe read, and the description adds genuinely useful operational context: amounts are in the smallest currency unit and payouts are settled outside the app (so the returned data is informational, not actionable here). This is real disclosure beyond the annotation, though it says nothing about permissions or result size.

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?

Three tight sentences: purpose first, then the currency-unit caveat, then the settlement note. Every sentence carries distinct information with no filler, and the most important framing is 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?

With no output schema, the description usefully previews the return shape (total, per-coach breakdown, per-payment detail, payout mode), which is what an agent needs to judge relevance. The main gap is date-range parameter conventions, which the schema does not cover either.

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% for all three parameters. The phrase 'for a period' loosely implies that from/to bound the date range, but the description never explains the expected date format or what from/to mean relative to each other, leaving the undocumented parameters largely unexplained.

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 names a specific verb+resource (earnings statement) and enumerates its contents: total, per-coach totals, each payment with seller and current coach, and payout mode. That level of specificity separates it from a raw sibling like list_organization_payments, though no sibling is named explicitly.

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?

It states the tool covers 'a period' but gives no when-to-use guidance, no exclusions, and no pointer to alternatives such as billing_summary or list_organization_payments. The agent must infer the choice entirely.

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

get_organization_hierarchyA
Read-only
Inspect

Full org structure: locations, coaches with their roles and assigned locations, and pending invites. Use list_my_organizations for the id.

NameRequiredDescriptionDefault
organizationIdYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful content-level disclosure by enumerating the returned sections (locations, coaches, roles, assignments, pending invites), but says nothing about permissions needed, payload size, or pagination 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?

Two tight sentences with no waste; the resource contents are front-loaded and the prerequisite tip follows immediately.

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 read-only tool with no output schema and one required param, the description adequately covers what comes back and where to get the id. Minor gaps remain around auth expectations and response shape, but nothing essential to invoking it correctly is missing.

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 a single parameter at 0% schema description coverage, the schema alone offers no meaning. The description compensates by explaining where to source the organizationId (list_my_organizations), which is exactly the missing guidance, though it doesn't describe the id's format.

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?

States a specific resource (full org structure) and enumerates exactly what it contains: locations, coaches with roles and assigned locations, and pending invites. This composite scope implicitly distinguishes it from siblings like list_organization_locations or list_organization_coaches, though it never names them explicitly.

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?

Provides clear context by directing the agent to list_my_organizations to obtain the required id, which is a real prerequisite. It does not, however, state when this composite fetch is preferable to calling the narrower list_* siblings, nor any exclusions.

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

get_organization_profileA
Read-only
Inspect

A gym's public-facing profile and settings: description, contact, city, public page slug/visibility, branding, community switch, AI guidelines and payout mode. Use list_my_organizations for the id.

NameRequiredDescriptionDefault
organizationIdYes

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds useful scope context by framing the content as public-facing profile plus settings, but it does not disclose whether the caller must be a member/admin of the org, whether any fields can be null, or anything about access restrictions.

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?

Two sentences, front-loaded with the payload description and then the id-routing hint. The field enumeration is dense but each item conveys distinct return content, and there is no filler.

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?

With no output schema, the description carries the return-value burden and does so by listing the fields returned, which is the key information an agent needs. Combined with readOnlyHint covering safety, the only real gap is access/prerequisite context.

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?

There is one parameter (organizationId) with 0% schema description coverage, so the schema alone leaves its origin ambiguous. The description partially compensates by pointing to list_my_organizations as the source of the id, but does not clarify the expected format or whether it must be an org the caller belongs to.

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 names the resource (a gym's public-facing profile and settings) and enumerates the specific fields returned (description, contact, city, slug/visibility, branding, community switch, AI guidelines, payout mode), which lets an agent distinguish it from siblings like get_organization_dashboard or get_organization_access. It stops short of explicitly contrasting with update_organization_profile, so it is clear but not fully sibling-differentiated.

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?

It provides one concrete routing hint — 'Use list_my_organizations for the id' — which tells the agent how to obtain the required parameter. However, it gives no guidance on when to prefer this tool over the other organization-read siblings (dashboard, access, earnings), leaving selection largely implied.

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

get_organization_role_guideB
Read-only
Inspect

What each built-in gym role (OWNER, ADMIN, PRIMARY_COACH, COACH) is allowed to do.

NameRequiredDescriptionDefault
organizationIdYes

TDQS

B3/5.0
Behavior3/5

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

readOnlyHint=true already establishes this is a safe read, so the description's burden is lighter. It adds the useful scoping detail that only built-in roles are covered, but says nothing about whether the result is static or org-dependent, nor why an organizationId is required for what sounds like global reference data.

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?

A single front-loaded sentence with no filler. Efficient, though it is a fragment that omits any verb framing what the caller receives.

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 and only a readOnlyHint annotation, the description carries real burden. It conveys the conceptual content (role permissions) but leaves the required parameter and the nature of the returned guide unexplained, so it is only minimally 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 coverage is 0% and the single required parameter organizationId is never mentioned in the description. This is especially problematic because the tool describes static built-in role definitions, so an agent has no clue what the org ID scopes or whether it is simply an auth/context argument.

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 names a concrete resource (built-in gym roles) and enumerates the exact roles covered (OWNER, ADMIN, PRIMARY_COACH, COACH). The verb is implicit — it reads as a reference lookup rather than stating 'returns the permission guide' — but an agent can distinguish it from siblings like get_organization_access or get_organization_hierarchy.

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 when-to-use guidance, no mention of alternatives (e.g. list_organization_custom_roles for non-built-in roles), and no prerequisites. The only hint is that this covers built-in roles, which implies custom roles live elsewhere, but that is left to inference.

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

get_organization_seat_usageB
Read-only
Inspect

Coach seats used vs. the plan's limit, plus billing state (NONE/TRIAL/ACTIVE/CANCELLING/PAYMENT_FAILED/ENDED), renewal date, scheduled cancel/downgrade, and coaches over the limit.

NameRequiredDescriptionDefault
organizationIdYes

TDQS

B3/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds useful content-level context by enumerating the billing states (NONE/TRIAL/ACTIVE/CANCELLING/PAYMENT_FAILED/ENDED) the response can contain, which is behavior beyond the annotation. It says nothing about permissions/scoping for the organizationId or pagination, but that is a small gap for a read-only usage lookup.

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?

A single dense sentence, front-loaded with the primary fact (seats used vs. limit) followed by the secondary billing fields. No filler text, though the long parenthetical enum list makes it slightly clunky.

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 carries the burden of describing returns and does so reasonably by enumerating the key fields and billing states. It is still incomplete on parameter meaning and organization scoping, which an agent needs to call it correctly.

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 0% and the sole parameter organizationId is undocumented in both the schema and the description. The description does not clarify that the caller must supply an organization identifier or how it is scoped, so it fails to compensate for the coverage gap.

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 states the resource clearly (coach seat usage vs. plan limit) and enumerates the returned data: billing state, renewal date, scheduled cancel/downgrade, and over-limit coaches. It is distinguishable from most siblings by its specific seat/billing focus, though it never names an alternative. A specific verb is implied by the get_ prefix rather than stated.

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 when-to-use guidance is given and no alternative is named. Siblings such as billing_summary, get_organization_dashboard, get_organization_earnings, and list_organization_seat_tiers overlap in the billing/seat space, so an agent gets no help deciding between them.

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

get_prospect_statsB
Read-only
Inspect

Counts of prospects by pipeline stage (new / contacted / hot / warm / did not pick up / converted / not interested / low budget / out of radius / legacy lost) for the coach.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so safety is covered. The description adds that the output is aggregated counts scoped to the coach, which is useful, but it omits whether the counts are time-windowed, whether 'legacy lost' is consolidated, or how zero-count stages appear.

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?

A single front-loaded sentence with no filler; the parenthetical stage list is long but carries real information about the returned buckets. It could trim 'for the coach' redundancy but is otherwise tight.

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?

With no output schema, the description correctly compensates by enumerating the stage buckets the counts are keyed by, which is the key thing an agent needs. It stops short of describing ordering, totals, or time scope, leaving a small gap.

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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The enumerated stage names actually describe the shape of the result categories rather than any input.

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 states a specific verb+resource (counts of prospects) and enumerates the pipeline stages that structure the result, which is more informative than the bare name. It does not explicitly differentiate itself from sibling list_prospects or update_prospect_status, but the aggregation framing makes the distinction reasonably inferable.

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?

There is no explicit when-to-use guidance and no named alternative (e.g., 'use list_prospects when you need the underlying records rather than counts'). The phrase 'for the coach' hints at the calling context but does not tell the agent when this is the right tool versus list_prospects.

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

get_recovery_signalsA
Read-only
Inspect

Check this client's synced Apple Health / Google Fit sleep and resting-heart-rate trend, if any. This is a secondary caution alongside get_client_ai_history and get_platform_rejection_trends, not a hard constraint: if sleepTrend is 'declining' or restingHRTrend is 'elevated', default toward slightly lower volume/intensity this run unless the client's own profile, preferences, or check-ins clearly argue otherwise. If hasData is false, the client has no synced health data yet — ignore this signal entirely and build/adjust normally.

NameRequiredDescriptionDefault
daysNo
clientIdYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true; the description goes further by disclosing output fields (sleepTrend, restingHRTrend, hasData), their meaningful values, and how the result should influence behavior. It does not cover rate limits or auth, but for a read-only signal tool this is well above the annotation bar.

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?

Purpose is front-loaded in the first sentence, with interpretation guidance following. Three sentences are justified by the behavioral nuance, though some phrasing ('if any', 'unless ... clearly argue otherwise') could be tightened.

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?

With no output schema, the description compensates well by naming the returned fields and their semantics, and it defines the decision rule for acting on them. The only real gap is the undocumented 'days' parameter, which is a minor omission given the tool's advisory role.

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 carries the full burden, yet it never mentions the 'days' parameter (default 14, range 1-90) that controls the trend window. 'this client's ... trend' loosely implies clientId and a time window, but adds no concrete meaning to either input.

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?

States a specific verb ('Check') and resource ('synced Apple Health / Google Fit sleep and resting-heart-rate trend'), and explicitly names the sibling tools (get_client_ai_history, get_platform_rejection_trends) it accompanies. An agent can distinguish it from other read tools without opening any schema.

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

Usage Guidelines5/5

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

Explicitly frames itself as a secondary caution, not a hard constraint, and gives concrete conditional guidance: if sleepTrend='declining' or restingHRTrend='elevated', reduce volume/intensity unless profile/preferences/check-ins argue otherwise. It also handles the hasData=false case with a clear instruction to ignore the signal entirely.

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

get_training_splitA
Read-only
Inspect

Named training programme templates (Full-Body, PPL, Upper/Lower, 5x5, powerlifting peaking, HYROX, CrossFit metcon, hybrid athlete, Couch-to-5K, half/marathon, calisthenics, home minimal, senior, prenatal) with their day-by-day structure, who they suit, the progression rule and the cautions. Call this BEFORE create_workout_plan so the week is built on a real, named structure instead of one improvised from scratch. Search by name ('hyrox', 'ppl', 'couch to 5k') or by goal + daysPerWeek + experience. Each day lists the modalities it should use — build those sessions with matching modality on each exercise, never sets/reps for a run.

NameRequiredDescriptionDefault
goalNoe.g. 'lose fat', 'build muscle', 'endurance'
limitNo
queryNoProgramme name, e.g. 'hyrox', 'ppl', 'marathon'
experienceNoBEGINNER | INTERMEDIATE | ADVANCED
daysPerWeekNo

TDQS

A4/5.0
Behavior4/5

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

readOnlyHint=true already establishes the safety profile, and the description adds meaningful extra context: the shape of each returned programme (structure, suitability, progression rule, cautions) and the constraint that each day carries a modality rather than sets/reps. It does not mention result limits or pagination behaviour beyond what the schema's 'limit' implies.

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?

Dense and largely front-loaded, with each sentence carrying distinct information (contents, sequencing, search modes, downstream constraint). The 14-item programme enumeration in the parenthetical is long, though it does double as search vocabulary, so it mostly earns its place.

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?

With no output schema, the description carries the burden of describing returns, and it does so adequately (structure, suitability, progression, cautions). Combined with the sequencing rule and search modes, an agent has enough to call it correctly and use the result; only the relationship to the user-template siblings is left implicit.

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 60% schema coverage, the schema documents goal, query and experience but leaves daysPerWeek bare. The description compensates by showing query examples ('hyrox', 'ppl', 'couch to 5k') and by grouping goal + daysPerWeek + experience as a combined filter axis, which clarifies daysPerWeek's role — meaningful added meaning beyond the schema.

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 opening names a specific resource (named training programme templates) and enumerates concrete contents — day-by-day structure, suitability, progression rule, cautions — so an agent knows exactly what comes back. It relates itself to create_workout_plan, but does not contrast itself with the confusable siblings get_workout_plan_template and list_workout_plan_templates, leaving a small differentiation gap.

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?

Explicit sequencing ('Call this BEFORE create_workout_plan') plus two concrete search modes ('search by name' or 'by goal + daysPerWeek + experience') give real when-to-use guidance. It even prescribes downstream behaviour ('build those sessions with matching modality ... never sets/reps for a run'). There is no when-not-to-use statement or contrast with the template-listing siblings, so it falls short of a 5.

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

get_workout_planA
Read-only
Inspect

Full detail of one client workout plan: every exercise (sets, reps, rest, section, notes, cardio fields) and the original PDF's text when the plan came from a coach's PDF. Pass the plan _id from list_workout_plans. If document is present with no exercises/meals, the plan IS the coach's PDF (shared as-is): document.text is what the PDF says. A null document.text means the PDF is scanned or unreadable — tell the coach to open the plan on the web and use "Turn into a trackable plan" so it can be read and edited.

NameRequiredDescriptionDefault
planIdYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true, so the description carries the real behavioral burden and does so well: it explains the two shapes a plan can take, that a plan with `document` but no exercises/meals IS the coach's PDF, and that a null `document.text` means the PDF is scanned or unreadable — plus the remediation step for the coach. That is substantial context beyond 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.

Conciseness4/5

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

Front-loaded with what is returned, then the calling instruction, then the PDF edge cases. It is on the long side, but each clause (cardio fields, PDF-as-plan, null text remediation) conveys distinct, actionable information rather than filler.

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?

No output schema exists, so the description must describe returns — and it does, covering both the structured exercise fields and the document.text case. For a single-parameter read tool with a rich return shape, nothing an agent needs to call it correctly is missing.

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 0% for the single parameter, so the description must compensate. It names the parameter's role and its source ('the plan _id from list_workout_plans'), which is genuinely useful, though it doesn't state the id's format or whether it can be a template id.

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?

States a specific verb and resource ('Full detail of one client workout plan') and enumerates what the detail includes (exercises with sets, reps, rest, section, notes, cardio fields, plus PDF text). This distinguishes it cleanly from list_workout_plans and get_workout_plan_template without opening either schema.

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?

It tells the agent where the required id comes from ('Pass the plan _id from list_workout_plans'), which is the key routing fact. It stops short of explicitly contrasting with get_workout_plan_template or the update/delete siblings, so there is no stated when-not, but the retrieval context is unambiguous.

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

get_workout_plan_templateB
Read-only
Inspect

Full detail of one workout plan template, including every exercise.

NameRequiredDescriptionDefault
idYes

TDQS

B3/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, lowering the bar. The description adds useful behavioral context by stating the response contains full detail including every exercise, which signals the payload can be large. It does not mention error behavior for a missing id or any auth requirements.

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?

One short sentence that is front-loaded with the resource and scoped by the depth qualifier; every clause carries information. It is terse to the point of being a fragment, but there is no waste.

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?

For a simple one-parameter read with no output schema, the description establishes what is returned ('full detail... every exercise'), which is adequate. It leaves the id format and failure modes unspecified, and there is no output schema to fill that gap.

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 single 'id' parameter has no description in the schema. The description only implies the id identifies a template; it says nothing about whether it is a UUID, slug, or numeric identifier, so it fails to compensate for the coverage gap.

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 names a specific verb (retrieve full detail) and resource (one workout plan template), and the phrase 'including every exercise' clarifies the depth of the record. It distinguishes itself from list_workout_plan_templates by emphasizing 'one' template with full detail, but never names that sibling explicitly.

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?

There is no explicit when-to-use guidance, no prerequisites, and no mention of the alternative sibling (list_workout_plan_templates) that would be used to enumerate templates. Usage is only implied by 'one workout plan template'.

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

invite_client_to_organizationAInspect

Invite a client to join the organization by email, optionally pre-assigned to a coach and location (confirm-gated). They receive a real email.

NameRequiredDescriptionDefault
emailYes
coachIdNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
locationIdNo
expiresInHoursNo
organizationIdYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does usefully disclose two behavioral facts: the operation is confirm-gated (preview mode) and it sends 'a real email' as an external side effect. However, it omits permissions/role requirements, what happens on duplicate invitations, and expiry behavior, leaving significant gaps for a mutation tool.

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 tight sentences, front-loaded with the core action and followed by the behavioral punchline. No filler; every clause carries information about scope, optionality, or side effects.

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?

A 6-parameter mutation tool with no annotations and no output schema ideally needs more coverage. The description handles the side effect and confirmation well but leaves expiresInHours unexplained and says nothing about permission requirements or failure conditions, so it is only minimally 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?

Schema description coverage is only 17% (just the 'confirm' param), so the description must compensate. It adds meaning for coachId and locationId ('pre-assigned to a coach and location') and confirms the confirm-gating, but never explains the required organizationId semantics or the expiresInHours parameter at all, leaving two parameters undocumented.

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?

States a specific verb and resource ('Invite a client to join the organization by email') plus its optional pre-assignments. The word 'client' implicitly separates it from the sibling invite_coach_to_organization, though it never names that alternative explicitly.

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?

Usage is implied by the phrasing, but there is no when-to-use/when-not guidance. With siblings like send_invitation, create_prospect, and invite_coach_to_organization in the same namespace, the description gives no signal for choosing between them.

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

invite_coach_to_organizationAInspect

Invite a coach to join the organization by email, with a role and optional location (confirm-gated). They receive a real email.

NameRequiredDescriptionDefault
roleYes
emailYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
locationIdNo
expiresInHoursNo
organizationIdYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose two important traits: the confirm gate and the fact that a real email is dispatched to the recipient. It omits other meaningful behavior a caller needs — required permission/role level, that the invite can expire, and whether re-inviting the same email is idempotent or duplicative.

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 tight sentence with the action front-loaded and the two caveats (confirm gate, real email) appended where they matter. No filler.

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?

For a 6-parameter mutation with no annotations, no output schema, and low schema coverage, the description is only partially sufficient. It covers the confirm gate and the external email side effect but leaves role semantics, the expiry parameter, and permission requirements unaddressed.

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 only 17% (just the 'confirm' param documented), so the description must compensate. It does name email, role, optional location, and the confirm gate — four of six parameters — but never explains the role enum values (OWNER/ADMIN/PRIMARY_COACH/COACH) or the expiresInHours control, leaving meaningful gaps.

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 states a specific verb and resource ('Invite a coach to join the organization') plus the key input dimensions (email, role, optional location), so the action is unambiguous. It does not explicitly contrast with near-neighbors such as invite_client_to_organization or send_invitation, but the name carries that differentiation.

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?

Usage is implied by the action statement, and the '(confirm-gated)' and 'They receive a real email' notes hint that this has outward-facing consequences worth pausing over. However, there is no explicit when-to-use versus when-not, no prerequisite/permission conditions, and no pointer to the client-invite sibling.

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

leave_organizationAInspect

Leave a gym as a coach (confirm-gated) — high impact: the coach's clients are handed to transferClientCoachId if given. Not for owners (transfer ownership first). Get explicit confirmation before calling with confirm: true.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
organizationIdYes
transferClientCoachIdNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it flags 'high impact', explains the confirm gate (preview-only when false/omitted), and discloses the side effect that clients are handed to transferClientCoachId. It does not say what happens to clients when no transfer target is supplied, which is a real gap for a destructive-scale operation.

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?

Three clauses, front-loaded: action, impact, then the ownership exclusion and confirmation requirement. No filler, and the highest-risk information (high impact, confirmation) is positioned early.

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?

No output schema or annotations exist, so the description must carry everything; it covers action, side effect, gating, and ownership exclusion. It is only missing the fallback behavior when transferClientCoachId is omitted and any permission prerequisites beyond 'not an owner'.

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 only 33% — only 'confirm' is documented in the schema — so the description must compensate. It does explain transferClientCoachId's effect ('clients are handed to ...') and reinforces the confirm semantics, but leaves organizationId and the no-transfer-target case unexplained.

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?

States a specific verb and resource ('Leave a gym as a coach') with the acting role scoped explicitly, and immediately distinguishes itself from transfer_organization_ownership by excluding owners. An agent can tell what this does and who it applies to without reading the schema.

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

Usage Guidelines5/5

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

Gives an explicit exclusion ('Not for owners — transfer ownership first') naming the alternative action, plus a mandatory pre-call step ('get explicit confirmation before calling with confirm: true'). When to use, when not to use, and the prerequisite all appear in one sentence.

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). A check-in with status PENDING whose scheduledFor is in the past is overdue (the client did not respond).

NameRequiredDescriptionDefault
clientIdNo

TDQS

A3.8/5.0
Behavior4/5

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

The readOnlyHint annotation already covers the safety profile, so the description's job is to add context. It does so by defining a domain rule: PENDING status with a past scheduledFor means the client did not respond (overdue). This is real interpretive value not present in structured data, though return format and ordering are unaddressed.

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?

Two sentences, no filler, with the core action front-loaded before the parenthetical filter note. The overdue rule is slightly tangential but earns its place by aiding result interpretation.

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 read-only list tool with an annotation-backed safety profile and one explained optional parameter, the description is largely sufficient. Missing ordering/pagination notes are minor against the tool's low complexity.

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 must carry the parameter burden. It explains that the single clientId parameter is an optional filter scoped 'by user _id', which gives the id format and the optionality that the bare schema does not.

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 gives a specific verb+resource ('List check-ins') and scope ('for the coach'), plus an optional filter. It is unambiguous and clearly distinct from read/write siblings like create_checkin or get_checkin_answers, but it never names a sibling to explicitly route the agent.

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?

Usage is only implied: the agent infers this lists a coach's check-ins and can narrow to a client. There is no stated when-to-use vs alternatives like get_checkin_answers or create_checkin, and no preconditions mentioned.

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.

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.

NameRequiredDescriptionDefault
pageSizeNo
pageNumberNo

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_clients_needing_onboardingA
Read-only
Inspect

Clients whose onboarding checklist is still in progress — the coach's 'clients to set up' list. Each entry has the client, status and completed/total step counts.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true; the description adds that entries carry client, status, and completed/total step counts, which is real context given there is no output schema. It does not mention ordering, pagination, or empty-state behavior, so it stops short of full 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 tight clauses in a single sentence, front-loaded with the resource and its scope. The second clause earns its place by describing the return contents, which no structured field covers.

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 zero-param, read-only list with no output schema, the description supplies the essential missing piece — what each entry contains. Missing only secondary operational detail such as pagination or result ordering, which are unlikely to block a correct call.

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 takes zero parameters, so there is nothing to disambiguate and the schema is trivially complete. Baseline of 4 applies; there is no parameter meaning the description could add.

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?

States a specific verb (list) and resource (clients needing onboarding), and the scope qualifier 'onboarding checklist is still in progress' distinguishes it from the broader list_clients / list_organization_clients siblings. The colloquial gloss ('clients to set up' list) removes any ambiguity about which population is returned.

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?

Usage is implied by the framing as the coach's 'clients to set up' list, so an agent can infer this is the picker for onboarding work. However, no sibling is named as an alternative (e.g. list_clients for the full roster) and there is no explicit when-to-use / when-not-to-use statement.

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, and the PDF it came from if any). Pass the client's user _id. This does NOT include the meals — call get_diet_plan with a plan _id to read them.

NameRequiredDescriptionDefault
clientIdYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true; the description goes further by disclosing the exact shape of the result (id, title, dates, source PDF) and the fact that meals are omitted. No pagination or volume behavior is mentioned, so it stops short of a 5.

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?

Three tight sentences, front-loaded with the action and return fields, then the required input, then the scope caveat. No filler.

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?

With no output schema, the description usefully summarizes the return payload and the required input, which is most of what an agent needs. It omits pagination/ordering and behavior when the client has no plans.

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 0% and the single parameter is only typed as a string, so the description's clarification that you must 'Pass the client's user _id' adds real meaning (versus a client record id). No format example or error behavior, so not a 5.

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?

States a specific verb (list) and resource (a client's diet plans) and even enumerates the returned fields, which distinguishes it from the sibling get_diet_plan and list_diet_plan_templates.

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

Usage Guidelines5/5

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

Explicitly names the alternative tool (get_diet_plan) and the condition that selects it (need the meals, have a plan _id), plus an exclusion ('This does NOT include the meals'). Routing is unambiguous.

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

list_diet_plan_templatesC
Read-only
Inspect

List the coach's diet plan templates (id, title, tags, difficulty, goal).

NameRequiredDescriptionDefault
tagNo
searchNo
onlyMineNo
pageSizeNo
pageNumberNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered by structured data rather than the description. The description does add a small amount of value by disclosing the shape of returned records (id, title, tags, difficulty, goal) with no output schema present, but says nothing about pagination behavior or result ordering.

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?

A single front-loaded sentence with no filler, and the returned-field list is compact rather than rambling. Its brevity borders on under-specification for a five-parameter tool, which keeps it from a 5.

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 five filter/pagination parameters at 0% coverage and no output schema, the description leaves too much unsaid for an agent to invoke it confidently — especially the tag/search semantics and paging. The returned-field list partially compensates for the missing output schema but not for the parameter gap.

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?

Five optional parameters with 0% schema description coverage, and the description explains none of them. The parenthetical mention of 'tags' faintly gestures at the tag filter, but search, onlyMine, pageSize and pageNumber — including the pagination defaults and the max of 100 — are left entirely undocumented.

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?

Specific verb+resource ('List the coach's diet plan templates') and it enumerates the returned fields, which separates it from list_diet_plans and list_workout_plan_templates at a glance. It stops just short of naming the sibling alternatives explicitly, so it gets a 4 rather than a 5.

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 statement of when to use this versus list_diet_plans or get_diet_plan_template, and no prerequisites or exclusions. The agent must infer that this is the browse/collection operation and the others are the single-item or instance variants.

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

list_gym_classesC
Read-only
Inspect

A gym's recurring class definitions (weekdays, start time, capacity, instructor, location).

NameRequiredDescriptionDefault
organizationIdYes

TDQS

C2.4/5.0
Behavior2/5

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

readOnlyHint=true already establishes that this is a safe read, so the description carries a lower burden, but it adds nothing beyond that: no mention of pagination, result ordering, whether deactivated classes are included, or the required organization scoping.

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?

A single short sentence with no waste, but it is a fragment that front-loads the resource at the cost of stating any action or scope. Compact without being informative.

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?

For a list tool with no output schema, one undocumented required parameter, and no annotations beyond readOnlyHint, the definition should say what is returned and how it is scoped. Listing the entity's fields is a partial help but leaves the call semantics incomplete.

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 0% and the single required organizationId parameter is undocumented in both schema and description. The description never explains that results are scoped to one organization, which is the only parameter the agent must supply.

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

Purpose3/5

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

The description names the resource precisely – 'recurring class definitions' with the fields they carry – which implicitly contrasts with the sibling list_gym_class_sessions. However, it is a noun phrase with no verb, so the agent must infer from the tool name that it lists rather than fetches or mutates.

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 when-to-use statement, no prerequisites, and no explicit routing to alternatives such as list_gym_class_sessions or get_gym_class_roster. The distinction between class definitions and class sessions is left entirely for the agent to infer from the noun phrase.

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

list_gym_class_sessionsB
Read-only
Inspect

Dated class sessions in a window, with bookings, waitlist and spots left. Defaults to the server's default window if from/to are omitted.

NameRequiredDescriptionDefault
toNoISO date
fromNoISO date
locationIdNo
organizationIdYes

TDQS

B3.3/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read. The description adds genuinely useful behavior beyond the annotations: the default window when from/to are omitted, and the fact that bookings, waitlist counts and remaining spots are included. It stops short of disclosing pagination, result caps, or ordering.

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 filler, and the payload contents plus the window default are both front-loaded. Nothing is repeated from the schema or annotations.

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 carries the burden of describing returns and does mention bookings/waitlist/spots, which helps. But for a 4-parameter list tool it omits location scoping, pagination and result ordering, leaving meaningful gaps.

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 50% (from/to documented as ISO dates, locationId and organizationId bare). The description clarifies the from/to window semantics and the default-window fallback, which the schema does not, but says nothing about what locationId scoping does or how organizationId constrains results.

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 names a specific resource ('dated class sessions') and its scope ('in a window'), and even previews the payload ('bookings, waitlist and spots left'). It does not, however, distinguish itself from close siblings like list_gym_classes, list_sessions or get_gym_class_roster, leaving the agent to infer the boundary.

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 only usage statement is the fallback behavior when from/to are omitted. There is no guidance on when to choose this over list_gym_classes, list_sessions or get_gym_class_roster, and no stated prerequisites or exclusions.

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

list_invitationsC
Read-only
Inspect

List invitations the coach has sent to prospective clients (pending, accepted, rejected).

NameRequiredDescriptionDefault
pageSizeNo
pageNumberNo

TDQS

C2.9/5.0
Behavior3/5

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

readOnlyHint=true already establishes this is a safe read. The description adds only the status vocabulary of returned records (pending, accepted, rejected), which is modest added value. It says nothing about pagination behavior, ordering, or result limits despite the tool exposing pageSize/pageNumber.

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?

A single front-loaded sentence with the verb and scoped resource up front and no filler. It is efficient, though brevity here shades into under-specification rather than true economy.

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?

For a paginated list tool with no output schema and two undocumented parameters, the description leaves out pagination semantics, ordering, and the shape of results. An agent cannot tell whether it must page through results or what the statuses mean in terms of filtering.

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?

Two parameters (pageSize, pageNumber) exist with 0% schema description coverage, so the description is the only place meaning could be added. It mentions neither pagination nor the default page size of 50, leaving the parameters entirely unexplained. The parenthetical status list is not actually a parameter, so it doesn't compensate.

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?

States a specific verb (List) and resource (invitations) with a clear scope: invitations the coach has sent to prospective clients. The parenthetical enumerates possible statuses, which sharpens what the resource is. It doesn't explicitly name or contrast with siblings like get_my_pending_org_invitations, but the 'coach has sent' framing implicitly separates it from received-invitation tools.

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 when-to-use guidance, no prerequisites, and no alternatives named. It never clarifies the relationship to get_my_pending_org_invitations, list_prospects, or list_organization_prospects, all of which live near this tool. The agent must infer usage purely from the resource noun.

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

list_my_organizationsA
Read-only
Inspect

Organizations the coach belongs to (owns, manages, or is a member of), with their role in each.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read. The description adds that each result carries the coach's role in that org, which is useful value beyond the annotation, but says nothing about ordering, pagination, or empty-result 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?

A single front-loaded sentence that names the resource first and then the enrichment (role per org). Every clause earns its place with zero filler.

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 parameterless, read-only listing tool with annotations covering the safety profile, the description is nearly sufficient; the only minor gap is that with no output schema it could sketch the shape of the returned list and role field more concretely.

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 takes zero parameters, so there is no parameter semantics to explain; schema coverage is 100% and the baseline for a no-param tool is 4. Nothing in the description is needed or missing here.

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?

States a clear verb (list) and a specific, self-scoped resource ('the coach belongs to'), and it explicitly enumerates the membership modes (owns, manages, member) plus the role returned. It is distinguishable from single-org tools like get_organization_profile or get_organization_hierarchy, though it never names a sibling to sharpen the boundary.

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?

There is no when-to-use or when-not-to-use guidance and no alternative named. The self-scoping to 'the coach' implicitly signals the use case, but an agent gets no help choosing between this and related listing tools such as get_organization_hierarchy or list_organization_coaches.

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

list_organization_announcementsB
Read-only
Inspect

Announcements previously sent to a gym's coaches and/or clients, with audience and reach.

NameRequiredDescriptionDefault
organizationIdYes

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 safe-read profile is covered. The description adds that results include 'audience and reach', a useful hint about returned content beyond the annotation, but it discloses nothing about pagination, limits, or ordering. Against annotations that carry the safety burden, this is adequate but thin.

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?

A single short sentence with no filler, and the resource is front-loaded. It is grammatically a noun fragment rather than a full statement of action, which slightly weakens structure but not economy. Nothing in the sentence is redundant.

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?

For a simple one-parameter read tool with no output schema, the description is close to sufficient and even sketches the return fields (audience, reach). It omits pagination/limit behavior and any tie between the org scope and the required parameter. Adequate but with clear gaps.

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?

There is one required parameter (organizationId) with 0% schema description coverage, so the description must compensate and does not. It never mentions organizationId or that it is required, only loosely implying org scoping via "a gym's". The agent gets no format or sourcing detail for the sole input.

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 names the specific resource (announcements sent to a gym's coaches and/or clients) and its qualifier (previously sent), which is enough to distinguish it from the sibling send_organization_announcement by tense alone. It lacks an explicit verb like 'list' or 'retrieve', so the read action is only implied rather than stated. Purpose is clear but not crisply verb-led.

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?

There is no guidance on when to use this tool versus alternatives such as get_organization_dashboard or send_organization_announcement, and no stated prerequisites or exclusions. The 'previously sent' phrasing hints at historical retrieval, but usage is left entirely to inference. No when-to-use or when-not-to-use information is provided.

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

list_organization_clientsB
Read-only
Inspect

List an organization's clients, optionally filtered by location or coach.

NameRequiredDescriptionDefault
coachIdNo
pageSizeNo
locationIdNo
pageNumberNo
organizationIdYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds nothing behavioral beyond that — no pagination behavior (despite default pageSize=50 and pageNumber), no note on result limits, ordering, or whether it fails outside the caller's organization. It essentially restates the tool's purpose.

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, front-loaded sentence with zero filler; the core action comes first and the filter qualifier follows. Nothing needs trimming.

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?

For a five-parameter list tool with no output schema and no annotation detail beyond read-only, the description is minimal but workable — the agent knows what it returns conceptually. It leaves pagination semantics, the default 50/100 cap, and the required organizationId's role entirely to the schema.

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 carries the burden, and it only alludes to two of five parameters (locationId, coachId as filters). The required organizationId and the pagination parameters (pageSize, pageNumber) receive no explanation of format, scope, or effect.

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?

States a specific verb and resource ('List an organization's clients') and scopes it to an organization, which is more precise than a generic list. It does not, however, distinguish itself from the sibling list_clients or list_clients_needing_onboarding, so an agent must infer which listing applies.

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 phrase 'optionally filtered by location or coach' implies the useful context (org-wide roster with optional narrowing) but never states when to choose this over list_clients or what permissions/membership are required. Usage is implied rather than directed.

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

list_organization_coachesA
Read-only
Inspect

List coaches in an organization, optionally filtered to one location, with each coach's client count and revenue.

NameRequiredDescriptionDefault
locationIdNo
organizationIdYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: the result includes each coach's client count and revenue, and the location scope is optional. It does not mention permissions or pagination, but for a read-only list tool this is a solid addition.

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 front-loaded sentence that names the verb, resource, optional filter, and returned fields with no filler or redundancy.

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 two-parameter read-only list tool with no output schema, the description covers the return shape (client count, revenue) and the optional filter, which is the main thing annotations cannot convey. It stops short of documenting parameter formats or result ordering, but is largely complete for this complexity.

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 0%, so the description must carry parameter meaning. It does explain locationId's role ('optionally filtered to one location'), but organizationId is only implied by 'in an organization' and neither parameter's format or constraints are clarified. It adds some value but not full compensation for the coverage 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?

States a specific verb and resource ('List coaches in an organization') plus the scope of the optional filter, and even previews the returned fields (client count and revenue). The resource is clearly distinct from nearby siblings like list_organization_clients and list_organization_locations.

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 the use case (retrieve an org's coaches, optionally narrowed to one location) but gives no explicit when-to-use guidance, no exclusions, and does not name an alternative such as list_organization_clients. Usage is implied rather than directed.

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

list_organization_custom_rolesB
Read-only
Inspect

Custom roles defined for a gym (name, the capabilities each carries, member count), plus who holds which role and the capabilities that can be delegated to a custom role.

NameRequiredDescriptionDefault
organizationIdYes

TDQS

B3/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read, so the description is not carrying the full safety burden. It does add useful content-scope disclosure beyond the annotation: the result aggregates not just role definitions but also who holds each role and which capabilities are delegable, implying a broader aggregate read. It says nothing about permissions required, pagination, or result size.

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?

A single front-loaded sentence that leads with the resource and then the payload contents; nothing is wasted. It is appropriately sized for a read tool, though leading with 'List' would have made the action clearer.

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 does useful work by sketching the returned shape (role name, capabilities, member count, holders, delegatable capabilities), which is the main thing an agent needs here. However, it omits the identity/permission context for organizationId and any note on pagination or ordering, so it is only partially complete for a read that returns aggregate org data.

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 never mentions organizationId or what it scopes. With a single undocumented required parameter, the description does not compensate for the schema gap, leaving the agent to infer that the org must be supplied to scope the listing.

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 names the resource precisely ('Custom roles defined for a gym') and enumerates what the listing contains (name, capabilities, member count, holders, delegatable capabilities), so an agent knows exactly what it returns. It never states an explicit verb like 'list', and it does not distinguish itself from sibling reads (get_organization_role_guide) or from the create/update/delete custom-role tools, so it falls short of a 5.

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?

There is no when-to-use guidance, no prerequisites, and no named alternative. The mention of holder information and delegatable capabilities hints at overlap with get_organization_role_guide, but the description never tells the agent which to pick or under what conditions.

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

list_organization_locationsC
Read-only
Inspect

List an organization's locations/branches.

NameRequiredDescriptionDefault
organizationIdYes

TDQS

C2.9/5.0
Behavior2/5

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

readOnlyHint=true already tells the agent this is a safe read, and the description adds nothing beyond that: no pagination behavior, no statement about whether inactive/archived branches are included, no auth context. For a list endpoint on a multi-tenant organization resource, those are the details that actually matter.

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?

A single short sentence with the scope front-loaded and no filler. It is not padded, though it is also so terse that it borders on under-specification rather than earning a 5.

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?

For a one-parameter read tool with readOnlyHint and no output schema, the minimum is covered, but return-shape expectations and pagination are unstated and there is no cross-reference to the create/update/delete location siblings an agent will need alongside it.

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 single required parameter organizationId has 0% schema description coverage, so the description should compensate; it only weakly implies org scoping via 'an organization's'. The parameter's meaning is largely self-evident from its name and type, but its format (ID type, where to obtain it) is undocumented anywhere.

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?

States a specific verb (List) and resource (organization's locations/branches), so the operation is unambiguous. However, it does nothing to distinguish itself from the sibling location tools (create_/update_/delete_organization_location) or from other list_organization_* tools; an agent still has to infer the contrast from names.

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 when-to-use guidance, no prerequisites (e.g. required permissions or organization membership), and no mention of alternatives such as update_organization_location or get_organization_hierarchy. Usage is only implied by the verb 'List'.

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

list_organization_paymentsB
Read-only
Inspect

Payments received across the gym (all coaches), newest first. Amounts are in the smallest currency unit.

NameRequiredDescriptionDefault
pageSizeNo
pageNumberNo
organizationIdYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuinely useful context beyond that: sort order and that amounts are in the smallest currency unit (avoiding a unit misinterpretation). It says nothing about pagination behavior or who may call it.

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 short sentences with zero filler, and the scope constraint is front-loaded. Every sentence earns its place.

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?

For a simple paginated list with no output schema, the description covers what the list contains, its ordering, and currency units. It omits pagination semantics and any indication of scope/permission requirements, so it is adequate but not fully self-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 adds nothing about any of the three parameters. organizationId, pageSize (max 100, default 50), and pageNumber (default 1) are documented only by JSON Schema types and defaults; the 'newest first' ordering does not tell the agent how to page.

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?

States a specific verb+resource ('Payments received across the gym') with an explicit scope ('all coaches') and an ordering guarantee ('newest first'). It implicitly separates itself from get_organization_earnings and billing_summary, but never names them, so the differentiation is by scope only.

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 when-to-use guidance and no named alternatives, despite several plausible siblings (get_organization_earnings, billing_summary, list_subscriptions). The agent must infer that this is the raw transaction list rather than a summary.

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

list_organization_plansC
Read-only
Inspect

The gym-owned membership plans clients can buy through any of the gym's coaches.

NameRequiredDescriptionDefault
organizationIdYes

TDQS

C2.4/5.0
Behavior2/5

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

The readOnlyHint annotation already establishes that this is a safe read. Beyond that, the description adds no behavioral context: no pagination, no sorting, no indication of whether results are scoped to the caller's organization, and no note on visibility/permission requirements. It restates the resource rather than disclosing how the tool behaves.

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?

It is a single short sentence with no padding, which is good, but it is a fragment with no verb and no front-loaded indication that it is a list/read operation. Brevity here comes at the cost of informativeness rather than from efficiency.

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?

For a read-only list tool with one required parameter and no output schema, the description should say it returns the organization's plans scoped by organizationId. It never confirms the return shape or the scoping, leaving the caller to guess how the single input affects results.

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 there is a single required parameter, organizationId, whose meaning (which organization's plans, and how the caller is authorized) is never addressed. The description says 'the gym's' but does not tie that to the organizationId input, so it fails to compensate for the schema gap.

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

Purpose3/5

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

The description is a noun phrase that characterizes the resource (gym-owned membership plans sold via the gym's coaches) but never states the action, so an agent must infer from the name 'list_organization_plans' that it returns a collection. It hints at a domain distinction from list_subscriptions by saying 'gym-owned' and 'through any of the gym's coaches', but does not explicitly contrast with sibling list tools.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as list_subscriptions or list_organization_payments. The description only tells the agent what the entity is, leaving the decision to invoke entirely to inference.

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

list_organization_prospectsA
Read-only
Inspect

The gym's shared lead pipeline (people who enquired via the gym page or were added by coaches), optionally filtered by status or coach. Use update_prospect_status / add_prospect_note with the returned _id.

NameRequiredDescriptionDefault
statusNo
coachIdNo
organizationIdYes

TDQS

A3.6/5.0
Behavior3/5

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

readOnlyHint=true already declares this is a safe read. The description adds real context beyond the annotation: it describes the pipeline's scope and discloses the returned _id field. It omits ordering, pagination, or result-size behavior, so it is helpful but not rich.

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 tight sentences, front-loading what the tool returns and following with the filter and follow-up action. No wasted text.

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 read-only list tool with no output schema, the description covers what the collection is, how to filter it, and what to do with the returned _id. Only the required organizationId semantics and ordering/pagination are left unstated.

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%, so the description must carry the parameter burden. It explains the two optional filters (status, coach) in natural language, but the required organizationId is only implied by 'the gym's' and the status enum values are never described.

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?

States a specific verb and resource (list the gym's shared lead pipeline) and clarifies what a prospect is (enquired via gym page or added by coaches). It does not, however, differentiate itself from the sibling list_prospects, so an agent must still infer which list tool applies.

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?

It says the result can be 'optionally filtered by status or coach' and points to update_prospect_status / add_prospect_note for follow-up actions using the returned _id. That is useful downstream guidance, but there is no statement of when to use this versus list_prospects or get_prospect_stats, so usage is only implied.

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

list_organization_seat_tiersA
Read-only
Inspect

The gym subscription tiers on offer: seat limit, billing mode and price per currency (smallest unit). For a gym deciding what to buy or upgrade to.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

readOnlyHint=true already establishes it as a safe read, and the description usefully adds the shape of what comes back (seat limit, billing mode, price in the smallest currency unit). No pagination or caching behavior is stated, but for a static catalog-style listing the disclosure is solid.

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?

Two short sentences, with the content of the listing front-loaded before the audience/use case. No filler or restatement of the tool name, though the opening reads slightly like a data label rather than an 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?

There is no output schema, so the description carries the return-value burden and does so by enumerating the key fields. Combined with readOnlyHint and zero parameters, an agent has enough to call it correctly; only currency/formatting nuances remain unstated.

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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The parenthetical note that prices are in the smallest currency unit is a helpful data-semantics hint even though it concerns output rather than inputs.

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 names the resource (gym subscription tiers on offer) and enumerates its contents (seat limit, billing mode, price per currency), so the agent knows exactly what this returns. It does not explicitly distinguish itself from siblings like list_organization_plans or list_subscriptions, but the purpose is unambiguous.

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 clause 'For a gym deciding what to buy or upgrade to' gives a real usage context, which is more than nothing. However, it names no alternatives and gives no exclusions, leaving the agent to infer when to pick this over the other organization/subscription listing tools.

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

list_prospectsB
Read-only
Inspect

List the coach's prospects (leads who have not become clients yet). Optionally filter by status.

NameRequiredDescriptionDefault
statusNo
pageSizeNo
pageNumberNo

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 safety profile is covered. The description adds useful scope context (prospects are leads not yet converted to clients) and notes the status filter, but says nothing about pagination behavior despite two paging params existing.

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 short sentences, front-loaded with the core action and resource, zero waste, and the parenthetical definition earns its place by disambiguating the term 'prospect'.

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?

For a list tool with no output schema and 0% param coverage, the description is thin: it omits pagination semantics and return-shape context, and does not address the sibling list_organization_prospects. An agent cannot fully call this correctly without consulting the schema.

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 carries the full burden. It mentions only the status filter and ignores pageSize and pageNumber entirely, leaving two of three parameters with no semantic explanation anywhere.

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?

States a specific verb (List) and resource (the coach's prospects), and even defines the domain term with '(leads who have not become clients yet)'. However, it does not distinguish itself from the sibling list_organization_prospects, leaving the agent to infer the difference between the coach-scoped and organization-scoped listings.

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 only usage hint is 'Optionally filter by status,' which implies a filterable read but gives no when-to-use guidance and no exclusions. With a near-identical sibling (list_organization_prospects) present, the description should route the agent but does not.

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.

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.

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_workflow_approvalsA
Read-only
Inspect

AI-drafted workflow messages waiting for the coach's approval (drafts expire after 3 days). Show the draft and client to the coach; use review_workflow_draft to send or discard.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already flag readOnlyHint=true, and the description adds real value beyond that: the 3-day draft expiry and the instruction to surface the draft and client to the coach. It doesn't mention ordering, pagination, or volume, which keeps it just short of a 5.

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 short sentences, front-loaded with what the tool returns, followed by the expiry caveat and the next-step tool. Every clause earns its place.

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 no-param, no-output-schema read tool with a readOnlyHint, the description covers what is returned (drafts and clients), a key behavioral constraint (expiry), and the follow-up action. Only minor operational details like result ordering are absent, which an agent can tolerate here.

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 zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-param tool applies. No param-level meaning is missing.

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 states a specific resource (AI-drafted workflow messages) and scope (waiting for the coach's approval), which is clearly distinct from the sibling review_workflow_draft that acts on them. An agent can immediately tell what this list returns.

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

Usage Guidelines5/5

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

It explicitly routes the agent to the alternative: 'use review_workflow_draft to send or discard', and implicitly defines the when (checking pending approvals). The division of labor between listing and acting is unambiguous.

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

list_workflow_runsB
Read-only
Inspect

Recent workflow activity: each message a workflow sent (or drafted, or failed to send), with the client and the exact text. Optionally filter to one workflow.

NameRequiredDescriptionDefault
limitNo
workflowIdNo

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context about the shape of returned data (per-message rows with client and exact text), but says nothing about ordering, the time window that 'Recent' covers, or pagination behavior beyond the unused limit parameter.

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 front-loaded sentence that states what is returned before the optional filter, with no filler. Every clause adds 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?

For a two-parameter read tool with no output schema, the description does well to enumerate the returned fields. It is still incomplete on the semantics of 'Recent' (what window) and on the limit parameter, which an agent would need to choose a sensible value.

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 0%, so the description must carry the load. It explains workflowId ('filter to one workflow') but says nothing about limit — whether it caps messages, runs, or days — despite the schema exposing only a bare default of 30 and a maximum of 200.

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?

It names a specific resource (workflow runs/messages) and states exactly what each row contains: sent, drafted, or failed messages plus client and text. This clearly separates it from list_workflows (definitions) and list_workflow_approvals, though neither sibling is named explicitly.

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 phrase 'optionally filter to one workflow' implies a usage pattern, but there is no explicit when-to-use guidance, no exclusion ('use X instead when...'), and no mention of how this differs from list_workflow_approvals or list_workflows.

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

list_workflowsB
Read-only
Inspect

List the coach's workflows (automations) with their trigger, action, on/off state and how often they have run.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the description's main contribution is disclosing what is returned: trigger, action, enabled state and run count. It says nothing about ordering, pagination, or whether disabled workflows are included, which matters for a list tool.

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?

One compact sentence with no filler, and the resource is front-loaded before the returned fields. It could have been one clause shorter, but nothing is wasted.

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 params and no output schema, the description carries the burden of explaining return shape, and it does list the main fields. It stops short of volume/ordering behavior and of clarifying the boundary against the three other list_workflow* siblings.

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?

Zero parameters, so there is no per-parameter semantics to convey and the baseline of 4 applies. The description correctly implies the list is scoped to the authenticated coach rather than accepting a filter argument.

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?

A specific verb plus clearly scoped resource ("the coach's workflows (automations)"), with a parenthetical disambiguating jargon. It does not explicitly name a distinguishing sibling like list_workflow_runs or list_workflow_templates, so an agent must infer the split from the noun alone.

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 when-to-use or when-not-to-use guidance, and no routing among the several adjacent workflow tools (list_workflow_runs, list_workflow_approvals, list_workflow_templates, set_workflow_enabled). The intended usage is only implied by the tool name.

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

list_workflow_templatesA
Read-only
Inspect

List the workflow building blocks: the available triggers (with the {{variables}} each message may use) and the ready-made templates a coach can switch on with one call.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

readOnlyHint=true already establishes the safety profile, so the description only needs to add context beyond that. It does add value by disclosing the content shape (triggers plus the variables each message may use, and templates), but says nothing about size, ordering, or whether the catalog is scoped per organization.

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?

One sentence, front-loaded with the core action, and the parenthetical about {{variables}} carries genuinely useful information rather than filler. Nothing could be removed without losing meaning.

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 zero-parameter read-only tool with no output schema, the description could have explained the return shape more concretely (grouped lists, fields per item), but it does tell the agent what categories of data come back, which is enough to call it correctly.

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 takes zero parameters, so the baseline of 4 applies; there are no parameter semantics for the description to explain and it correctly does not attempt to.

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?

States a specific verb (List) and precisely defines the two resources returned: available triggers with their {{variables}}, and ready-made templates. It is clear this is a catalog-lookup, distinct in kind from list_workflows or list_workflow_runs, though it never names those siblings to sharpen the contrast.

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?

Usage is only implied — 'the ready-made templates a coach can switch on with one call' hints that this precedes an activation call, but there is no explicit when-to-use statement and no guidance on choosing this over list_workflows or create_workflow.

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, and the PDF it came from if any). Pass the client's user _id. This does NOT include the exercises — call get_workout_plan with a plan _id to read them.

NameRequiredDescriptionDefault
clientIdYes

TDQS

A4.8/5.0
Behavior4/5

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

The readOnlyHint annotation already signals safety. The description adds useful scope details: results belong to one client, include id/title/dates/PDF source, and exclude exercises. It does not discuss pagination or authorization, but the annotation lowers that burden.

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, front-loaded with the core action and followed by the key exclusion and alternative. No wasted wording.

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 one-parameter list tool with no output schema, the description covers the input, the returned fields, the exclusion of exercises, and the follow-up tool. Nothing essential is missing.

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?

Schema description coverage is 0%, so the description must explain the only parameter. It does: 'Pass the client's user _id,' which maps directly to clientId.

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?

States a specific verb and resource: list a client's workout plans. It also names the returned fields and explicitly distinguishes this from get_workout_plan, which reads exercises.

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

Usage Guidelines5/5

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

Tells the agent to pass the client's user _id and explicitly says to call get_workout_plan with a plan _id when exercises are needed. This gives clear when-to-use and alternative guidance.

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

list_workout_plan_templatesC
Read-only
Inspect

List the coach's workout plan templates (id, title, tags, difficulty, goal).

NameRequiredDescriptionDefault
tagNo
searchNo
onlyMineNo
pageSizeNo
pageNumberNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safe-read profile is covered. The description adds that results are scoped to "the coach's" templates and lists the returned fields, which is useful, but it says nothing about pagination defaults, ordering, or filtering behavior.

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?

One front-loaded sentence with no wasted words; the resource and output shape come first. It is efficient, though the brevity leaves real gaps for a five-parameter tool.

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 five undocumented parameters, no output schema, and no pagination or filter semantics, the description is thin for this tool's complexity. The inline field list partially stands in for a missing output schema, but the invocation-side details an agent needs are absent.

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 0% across five parameters (tag, search, onlyMine, pageSize, pageNumber) and the description never mentions any of them. The returned-field list (tags) and the phrase "the coach's" faintly hint at tag filtering and onlyMine, but the description fails to compensate for the entirely undocumented schema.

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?

States a specific verb (List) and resource (coach's workout plan templates) and enumerates the fields returned. It is clearly distinct from list_workout_plans and get_workout_plan_template in substance, but never names a sibling or rule out confusion with them.

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 when-to-use guidance, no prerequisites, and no named alternative. The phrase "the coach's" weakly implies the owning-coach scope, but the agent gets no cue about when to prefer this over get_workout_plan_template, list_workout_plans, or the diet-template sibling.

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

mark_client_onboarding_stepAInspect

Set one onboarding step's status (confirm-gated). Use get_client_onboarding for the step key. status: DONE to tick it off, SKIPPED to skip it, PENDING to reopen. The instance auto-completes when every step is DONE or SKIPPED.

NameRequiredDescriptionDefault
statusYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
stepKeyYes
clientIdYes

TDQS

A4.2/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 behavioral burden. It does disclose two useful traits: the operation is confirm-gated (preview unless confirmed) and the instance auto-completes once every step is DONE or SKIPPED. However, it says nothing about required permissions, reversibility of changes, or error conditions, so gaps remain for a mutation tool.

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?

Three tight sentences, front-loaded with the gating fact, then the dependency, then the status semantics, then the auto-complete consequence. Every sentence earns its place with zero filler.

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 4-parameter mutation with no annotations and no output schema, the description covers the essential mechanics: confirm gating, status meaning, key sourcing, and the auto-complete side effect. It lacks permission/auth and failure-mode context, but nothing needed to invoke it correctly is missing.

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 description coverage is only 25% (just `confirm`), so the description must compensate, and it partially does: it explains what each status value means ('tick it off', 'skip it', 'reopen') and points to get_client_onboarding as the source of `stepKey`. It adds no meaning for `clientId` and does not elaborate on `confirm`, keeping it just below full compensation.

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?

States a specific verb (set/mark) on a precise resource (one onboarding step's status), and orients the agent within the onboarding family by naming get_client_onboarding as the source of the step key. An agent can distinguish it from dismiss_client_onboarding, get_client_onboarding, and list_clients_needing_onboarding without opening a schema.

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?

Gives clear context for the workflow: fetch the step `key` via get_client_onboarding first, then set the status. The status semantics (DONE/SKIPPED/PENDING) further imply when each mode applies. It stops short of explicit exclusions (e.g., when to prefer dismiss_client_onboarding over marking steps), so it is clear context rather than a full when/when-not guide.

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

mark_gym_class_attendanceAInspect

Record who attended a class session (confirm-gated). Get member userIds from get_gym_class_roster.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
entriesYes
sessionIdYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden. The '(confirm-gated)' tag usefully signals that the operation is a gated mutation returning a preview unless confirm is set, but that same fact is already spelled out in the confirm parameter schema, and the description says nothing about permissions, whether entries replace or merge with existing attendance, or reversibility.

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 tight sentences, with the operation and its gating front-loaded and the dependency second. No filler or redundancy.

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?

For a mutation tool with no annotations, no output schema, and 3 parameters at 33% coverage, the description covers the essential confirm-gate and userId source but leaves the replace-vs-merge semantics of entries and the permission model unstated. Adequate but with clear gaps an agent would have to discover by trial.

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 only 33% (only confirm is documented in the schema), so the description is expected to compensate. It adds meaning for sessionId (the class session) and entries (who attended) and points to the source of userIds, but never explains that entries is a list of userId/attended pairs or how partial lists are treated.

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?

States a specific verb and resource: 'Record who attended a class session.' An agent can immediately separate this write operation from the read-only siblings get_gym_class_roster and get_gym_attendance_summary, and the description explicitly names the roster tool as its data source.

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?

Provides a clear prerequisite chain: call get_gym_class_roster first to obtain member userIds, then use this tool to record attendance. It gives no explicit exclusions (e.g., when to prefer a check-in tool such as create_checkin over class attendance), so it stops short of full when/when-not guidance.

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

mark_session_doneAInspect

Mark one of the coach's own sessions as done/completed (confirm-gated). Counts toward the client's used sessions; also corrects a session wrongly left as a no-show. Safe to repeat; refused for cancelled sessions. Get the session id from list_sessions.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
sessionIdYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses confirm-gating, idempotency ('safe to repeat'), the refusal condition for cancelled sessions, and the downstream effect on the client's used session count. It does not state ownership/authorization requirements or what the preview returns, which keeps it short of a 5.

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?

Four short clauses, front-loaded with the action and scope, then the gate, the side effect, and the id lookup. Nothing is repeated from the schema and no sentence is filler.

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 two-parameter mutation with no annotations and no output schema, the description covers safety, idempotency, failure mode, and side effects. Only the shape of the preview response and permission requirements are left unspecified, which is minor given the tool's simplicity.

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 50%, with only 'confirm' documented in the schema; the description supplies the confirm-gate semantics in prose and gives the provenance for the undocumented sessionId parameter ('from list_sessions'). That adds meaning beyond the bare minLength-1 string 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?

States a specific verb (mark as done/completed) and resource (one of the coach's own sessions), with an explicit scope restriction to the coach's own sessions. An agent can distinguish it from cancel_session, reschedule_session and schedule_session without opening any schema.

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?

It gives the prerequisite explicitly ('Get the session id from list_sessions') and states the operating conditions ('safe to repeat; refused for cancelled sessions'), plus a secondary use case (correcting a wrongly recorded no-show). It never names cancel_session as the alternative for the opposite intent, so the routing guidance is clear but not complete.

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.

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.

reassign_client_to_coachAInspect

Move one of an organization's clients from their current coach to a different coach in the same organization (confirm-gated).

NameRequiredDescriptionDefault
coachIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
profileIdYes
organizationIdYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the burden. It discloses the confirm-gate and the same-organization constraint, and implies an existing coach assignment must be replaced, but says nothing about authorization requirements, whether downstream artifacts (sessions, plans) follow the client, or reversibility. The confirm-gate detail also largely duplicates the schema's `confirm` parameter description.

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 with the operation, scope constraint, and safety behavior all front-loaded; 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?

This is a mutating, unannotated, no-output-schema tool with three undocumented required parameters. The description lacks the auth/permission context and side-effect disclosure an agent would need to invoke it safely, so it is materially incomplete for the tool's complexity.

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 25% (only `confirm` is documented). The description implies profileId is the client and coachId the destination coach, but never states this explicitly and leaves organizationId's relationship to the other two IDs unexplained, so it does not compensate for the coverage 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?

Specific verb ('Move') plus resource ('client') plus the exact transformation: from current coach to a different coach in the same organization. This is clearly distinguishable from siblings like assign_coach_to_location or remove_coach_from_organization.

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 this applies (a client who already has a coach and needs a different one) and constrains the operation to the same organization, but it names no alternative tool and gives no prerequisites such as the permission level required to reassign.

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

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.

record_organization_coach_attendanceAInspect

Mark a coach present/absent/late/on-leave at a location for a date (confirm-gated).

NameRequiredDescriptionDefault
notesNo
statusYes
coachIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
locationIdYes
attendanceDateYesYYYY-MM-DD
organizationIdYes

TDQS

A3.5/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 behavioral burden. It does disclose the confirm-gated write behavior, which is meaningful, but that is also documented in the schema for the confirm parameter, and it says nothing about permissions required, whether an existing attendance record is overwritten, or idempotency of repeated calls.

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, front-loaded sentence with zero filler; the scope elements (statuses, location, date) and the gating caveat are packed efficiently with no repetition of the name or title.

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?

For a mutation tool with no annotations, no output schema, and 29% schema coverage, the description should do more: it omits the notes parameter, the preview-only return behavior, and any permission or overwrite semantics. What is present is correct but leaves real gaps an agent would need to call this confidently.

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 only 29% (only confirm and attendanceDate are documented). The description adds meaning for status (enumerates present/absent/late/on-leave), location, and date, but says nothing about coachId, organizationId, or notes, so several parameters remain undocumented in both places.

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?

Specific verb+resource: 'Mark a coach present/absent/late/on-leave at a location for a date' tells the agent exactly what is recorded and at what granularity. It does not, however, name its read counterpart get_organization_coach_attendance or otherwise explicitly distinguish itself from siblings, leaving that inference to the agent.

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 '(confirm-gated)' tag implies a two-step preview-then-execute usage pattern, which is useful context for when the tool actually mutates state. Beyond that there is no when/when-not guidance, no prerequisites, and no comparison to alternatives such as mark_gym_class_attendance or the read-side get_organization_coach_attendance.

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

record_plan_rationaleAInspect

Record the coach-voice explanation of the AI Coach run you are performing for this client — what you looked at, what you changed and why, and the numbers behind it. This is exactly what the client reads on their 'Why this changed' screen, so write it like a human coach speaking to them: plain language, their real figures, no tool names, no mention of steps or systems. Call this once, after you have created or adjusted their plans.

NameRequiredDescriptionDefault
mathNoCalculations behind the plan (TDEE, macro targets, deficits) so the client sees it was worked out, not guessed.
inputsNoThe real figures you based the decision on (check-ins, recovery, compliance, measurements).
changesNoEach concrete change and its reason, e.g. what: "Squats 5x5 to 3x5", why: "Sleep dropped and resting HR climbed."
clientIdYes
headlineYesOne sentence on the intent, e.g. "Eased off lower body this week so you actually recover."

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the output destination (the client's 'Why this changed' screen), the required voice, and the idempotency-style constraint 'call this once.' It does not state whether the record can be overwritten, what permissions are required, or how failures behave, which keeps it out of 5 territory.

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?

Three sentences, front-loaded with the purpose before the audience and timing guidance, and each sentence carries real information. It is slightly dense in the second sentence but nothing is redundant.

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 write-oriented tool with no annotations, no output schema, and five parameters, the description supplies the essential context an agent needs: what to write, the tone, the audience, and the timing. Missing only edge behavior (re-invocation, error handling), which is a minor gap rather than a critical one.

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 80%, so the schema already explains math, inputs, changes, and headline in detail. The description's gloss ('what you looked at... the numbers behind it') loosely maps to inputs/changes/math but adds no per-parameter syntax or format detail beyond what the schema provides, so the baseline 3 is appropriate.

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 names a specific verb ('Record') and a specific resource ('the coach-voice explanation of the AI Coach run'), and the phrase 'what you looked at, what you changed and why, and the numbers behind it' makes the payload's purpose unambiguous. No sibling tool in the list does anything similar, so an agent can identify this immediately.

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?

It gives explicit sequencing: 'Call this once, after you have created or adjusted their plans,' which ties the call to the create/update_diet_plan and create/update_workout_plan siblings without naming them. What is missing is an explicit exclusion or a named alternative, so it falls just short of a 5.

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

remove_clientAInspect

End the coaching relationship with a client (confirm-gated). This does not delete the client's account or history — it only disconnects them from this coach. Irreversible from this tool; the client would need to re-request or be re-invited.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
clientIdYes

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: it discloses the confirm gate, that the effect is irreversible from this tool, that it does not delete the account or history, and the recovery path (re-request or re-invite). This is exactly the behavioral context an agent needs before a mutation.

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?

Three tight sentences, front-loaded with the action and gating, followed by scope and reversibility. Every sentence earns its place and none is redundant.

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 2-param mutation with no annotations and no output schema, the description covers action, gating, non-destructive scope, and irreversibility. Minor omissions remain — no mention of whether the client is notified or what a preview returns — but nothing essential to correct invocation is missing.

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 50% — the 'confirm' parameter is fully documented in the schema itself, but clientId has no description in either place. The description adds nothing about parameter semantics, so it neither compensates for the gap nor overstates it; baseline 3 applies.

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?

States a specific verb+resource ('End the coaching relationship with a client') and immediately draws the boundary against the nearest confusion point — account deletion — so an agent can separate it from destructive siblings. The scope is unambiguous.

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 'confirm-gated' framing and the 'only disconnects them from this coach' clause tell the agent when this tool applies versus a true account deletion. It does not name an explicit alternative tool (e.g., reassign_client_to_coach or remove_coach_from_organization), so it stops short of full routing guidance.

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

remove_coach_from_organizationAInspect

Remove a coach from the organization entirely (confirm-gated) — high impact: optionally transfer their clients to another coach in the same call, or their clients are left unassigned. Get explicit confirmation of exactly which coach, and where their clients go, before calling with confirm: true.

NameRequiredDescriptionDefault
coachIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
organizationIdYes
transferClientCoachIdNo

TDQS

A4/5.0
Behavior4/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, and it does well: it flags high impact, the confirm gate (preview vs execute), and the concrete side effect on clients (transferred or left unassigned). It omits permission/authorization requirements and whether the removal is reversible.

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?

One dense sentence that front-loads the destructive action and its consequence, then the confirmation requirement. Every clause carries information, though it is packed tightly enough that it reads more like a warning block than a scannable definition.

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 4-parameter destructive tool with no annotations and no output schema, the description covers the decision-critical facts: irreversibility implication, confirm gating, and client disposition. It leaves out what the preview response contains and any auth prerequisites.

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 only 25% (only confirm is documented), so the description must compensate, and it does for the two consequential parameters: confirm as the execute gate and transferClientCoachId as the in-call client handoff target. organizationId and coachId are left to the schema's names alone.

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?

States a specific verb and resource ('Remove a coach from the organization entirely'), and the word 'entirely' plus the client-transfer behavior distinguishes it from partial-removal siblings like remove_coach_location_assignment. It does not name any sibling explicitly, so it stops short of a 5.

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?

Gives a clear precondition for the destructive path: get explicit confirmation of exactly which coach and where their clients go before calling with confirm: true. It does not point to alternatives such as reassign_client_to_coach or remove_coach_location_assignment for lesser-scope operations.

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

remove_coach_location_assignmentAInspect

Unassign a coach from a location within the organization (confirm-gated). Does not remove them from the organization itself — use remove_coach_from_organization for that.

NameRequiredDescriptionDefault
coachIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
locationIdYes
organizationIdYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the confirm-gated execution model and, importantly, the limited blast radius (location assignment only, not organization membership). It does not cover permission requirements or whether the unassignment is reversible, so it falls short of a 5.

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 filler, with the core action front-loaded and the disambiguation clause second. Every sentence earns its place.

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?

For a mutation tool with no annotations and no output schema, the description covers gating and scope but omits prerequisites (must the assignment exist?), authorization needs, and what the preview returns. Sibling routing is handled well; the operational gaps keep it at minimum-viable-plus.

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 25% (only 'confirm' is documented), and the description adds no detail about coachId, locationId, or organizationId formats or relationships beyond what the tool name implies. The '(confirm-gated)' phrase merely restates the one parameter the schema already documents.

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?

States a specific verb+resource+scope: unassigning a coach from a location within an organization. It explicitly distinguishes itself from the closest sibling, remove_coach_from_organization, so an agent can route correctly without opening schemas.

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

Usage Guidelines5/5

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

Names the alternative tool and the condition that selects it ('does not remove them from the organization itself — use remove_coach_from_organization for that'). This is explicit when-to-use/when-not guidance, not inference.

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

reschedule_sessionBInspect

Move a session to a new time (confirm-gated). newStart/newEnd are ISO date-time strings. Both client and coach are notified by the existing flow.

NameRequiredDescriptionDefault
newEndYesISO date-time
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
newStartYesISO date-time
sessionIdYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does add genuine behavioral context beyond the schema: the confirm gate and that "both client and coach are notified by the existing flow." However it omits permission requirements, conflict/reversibility behavior, and failure modes for a mutation tool.

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?

Three compact sentences, front-loaded with the core action and the gating constraint, followed by parameter format and side effects. No wasted wording.

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?

For a 4-param mutation with no annotations and no output schema, the description covers purpose, the confirm gate, param format, and notification side effect. It still omits what "new time" conflicts do, whether the move is reversible, and any required authorization.

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 moderate (75%). The statement "newStart/newEnd are ISO date-time strings" merely repeats what the schema already declares for both parameters and adds no syntax or format detail beyond it. sessionId and confirm semantics are left to the schema; no net new meaning is provided.

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?

"Move a session to a new time" gives a specific verb (move) and resource (session) that an agent can act on. It is clear but doesn't explicitly distinguish itself from siblings like schedule_session or cancel_session, which also manipulate sessions.

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 parenthetical "(confirm-gated)" implies a two-step usage pattern, but there is no explicit when-to-use guidance, no mention of when to prefer reschedule_session over cancel_session/schedule_session, and no stated prerequisites. Usage must be largely inferred.

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

review_workflow_draftAInspect

Approve (send, optionally with edited text) or discard a pending AI-drafted workflow message (confirm-gated). Sending reaches the client immediately, so only approve after the coach has seen the final text.

NameRequiredDescriptionDefault
textNo
runIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
decisionYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does the important part well: it discloses that approving sends a message to the client immediately (irreversible external side effect) and that execution is confirm-gated. It leaves open whether discard is permanent and whether an edited `text` is re-persisted to the draft.

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 filler. The action space comes first and the safety constraint is front-loaded in the second sentence exactly where an agent will see it.

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 4-param mutation tool with no annotations and no output schema, the description covers the action semantics and the key risk. Missing pieces are minor: what discard returns, whether preview mode (confirm=false) yields the drafted text, and the meaning of runId.

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 only 25% (only `confirm` is documented), so the description has to compensate — it explains that `text` is an optional edit applied on approve, and that decision is a binary approve/discard. Only `runId` is left unaddressed, though its purpose is reasonably inferable as the draft run identifier.

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?

States a specific verb pair (approve/discard) and a specific resource (a pending AI-drafted workflow message), which no sibling does — list_workflow_approvals only lists them and send_message_to_client bypasses the draft entirely. An agent can place this tool without opening the schema.

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?

Gives a clear precondition for the dangerous branch: 'only approve after the coach has seen the final text.' It does not state when to prefer discard over approve, or how a draft gets created in the first place (create_workflow / list_workflow_runs), so routing to the draft-generation side is left implicit.

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

schedule_checkinBInspect

Set a recurring weekly check-in schedule for a client (confirm-gated). The backend will auto-create a check-in on the chosen day+time each week. dayOfWeek: 0=Sun … 6=Sat. timeOfDay: HH:MM 24-hour. Provide _id to update an existing schedule; omit to create a new one. question.type: TEXT|NUMBER|SCALE|PHOTO.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
clientIdYes
isActiveNo
dayOfWeekYes0=Sunday, 1=Monday … 6=Saturday
questionsNo
timeOfDayYesHH:MM in 24-hour format, e.g. 09:00
scheduleIdNoProvide to update an existing schedule

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the backend's auto-create-each-week behavior and the confirm-gate preview semantics, but omits auth/permission needs, whether an update replaces or merges existing questions, and what the response contains.

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?

A single front-loaded paragraph with the core purpose first and parameter hints after. Some content (dayOfWeek mapping, timeOfDay format, question.type enum) duplicates the schema, which is mild redundancy but not bloat.

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?

For a 7-parameter mutation with no annotations and no output schema, the description covers the essentials (recurrence, confirm-gate, update path) but leaves gaps on the clientId parameter, isActive, and update semantics. Adequate but not complete given the structured-field void.

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 only 57%, so the description should compensate more than it does. It explains dayOfWeek, timeOfDay, the questions type enum, and the update-vs-create flag, but it calls the update key "_id" while the schema names it scheduleId, and it says nothing about clientId, isActive, or questions.required. Marginal value over the schema, with one naming mismatch.

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?

States a specific verb and resource ("Set a recurring weekly check-in schedule for a client") and the "recurring weekly" qualifier implicitly separates it from the one-off create_checkin sibling. It stops short of naming that sibling explicitly, so the differentiation is inferential rather than stated.

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?

It gives real conditional guidance: provide _id to update, omit to create new, and confirm must be set to execute rather than preview. However, it never says when this recurring-schedule tool is preferable to create_checkin (a single check-in) or how it relates to list_checkins, so the sibling routing is left to inference.

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). Pass the client's active subscriptionId when they have one (see list_subscriptions) so it counts against their plan's sessions; omit it for intro/one-off calls or clients without a plan — the coach can still book. Times are ISO strings.

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

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. It adds useful side-effect context (a subscription-backed booking 'counts against their plan's sessions' and coaches can book regardless), but 'confirm-gated' merely restates the schema's confirm field, and nothing is said about permissions, errors, or whether the client is notified.

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 action is front-loaded, followed by conditional parameter guidance in a single dense but readable compound sentence. Slightly heavy punctuation, but every clause adds decision-relevant 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?

For a 7-parameter mutation tool with no annotations, no output schema, and 14% schema coverage, the description should do more. It covers subscription linkage and time format well but leaves the booking type, meeting link, and the shape of the confirmation/preview response unaddressed.

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 only 14% (only confirm is documented), so the description must compensate and partially does: it explains subscriptionId semantics and states times are ISO strings. However, type (IN_PERSON/ONLINE), meetingLink, and both scheduledStart/scheduledEnd formats remain undocumented beyond the raw 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?

States a specific verb and resource ('Book a session for a client'), which cleanly separates it from sibling tools like cancel_session, reschedule_session, list_sessions, and schedule_checkin. An agent knows what this tool creates without opening the schema.

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?

Gives clear conditional guidance on when to pass subscriptionId (plan-backed session) versus omit it (intro/one-off, no plan), and confirms booking is still possible without a plan. It stops short of naming an explicit alternative/redirect for related cases (e.g., reschedule_session for changes), so it is context-rich but not exhaustive.

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

search_exercisesA
Read-only
Inspect

Search the exercise catalog by free-text name (e.g. 'barbell squat'). Returns real catalog exercises with an id, sorted by matchConfidence (0-1, fraction of your query's words found on that catalog entry). Call this for each exercise before create_workout_plan. Use the top result's exact id as that exercise's exerciseId and its name as the exercise name only when its matchConfidence is high (roughly 0.7+) — the app resolves the image/video from exerciseId automatically, so a matched exerciseId is what makes the exercise show media in the app. If every result has low matchConfidence, or there are no results at all, don't guess — fall back to a plain name with no exerciseId rather than linking a wrong exercise's image.

NameRequiredDescriptionDefault
limitNo
queryYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true, but the description adds real behavioral context: results are real catalog entries with ids, sorted by a defined matchConfidence score (0-1, fraction of query words matched), and a linked exerciseId is what triggers automatic image/video resolution in the app. This goes well beyond the annotation's safety hint.

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?

Front-loads the core action, then sequences workflow, interpretation of matchConfidence, and the fallback rule. Every sentence is actionable; none merely restate the name or schema.

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?

With no output schema and only a readOnly annotation, the description supplies the return shape (id, name, matchConfidence), how to interpret it, and the safe fallback. An agent has everything needed to call it and use the result without guessing.

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 description coverage is 0%, so the description must carry the load. It explains the required 'query' parameter richly (free-text name, example, and how the query maps to matchConfidence). However, the 'limit' parameter (default 8, max 20) is never mentioned, leaving one of two params undocumented anywhere.

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?

States a specific verb and resource ('Search the exercise catalog by free-text name') and gives a concrete example query. It clearly distinguishes itself from the downstream sibling create_workout_plan, which it explicitly says to call this before.

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

Usage Guidelines5/5

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

Gives explicit workflow guidance: call once per exercise before create_workout_plan, link the id only when matchConfidence is ~0.7+, and fall back to a plain name with no exerciseId when all results are weak or empty. The when-to-use and when-not-to-link conditions are stated outright.

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

send_invitationCInspect

Invite a prospective client to join Trainzilla under this coach, by email (confirm-gated). They receive an email with a signup link.

NameRequiredDescriptionDefault
emailYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
expiresInHoursNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the key side effect (an email is sent, containing a signup link) and that the action is confirm-gated. However it omits permissions/auth requirements, whether an invitation can be revoked or duplicated, and what happens to unused invitations — significant gaps for a mutation that sends external email.

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?

Two tight sentences that front-load the action and recipient, with no filler. The parenthetical '(confirm-gated)' partly duplicates the schema description of 'confirm', but it earns its place as a structural cue.

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?

For a three-parameter tool with no annotations, no output schema, and only 33% param coverage, the description is too thin: it says nothing about expiry behavior, the preview-vs-execute return difference beyond the parenthetical, error cases (e.g., duplicate invite), or required permissions.

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 33%: only 'confirm' is documented in the schema, while 'email' and 'expiresInHours' have no descriptions. The description only alludes to the email recipient ('by email') and never explains the expiry window, so it fails to compensate for the coverage gap.

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?

States a specific verb and resource (invite a prospective client by email) plus the scope ('under this coach') and the mechanism (email with a signup link). It implicitly distinguishes prospect-invites from client-invites, but never names the close siblings invite_client_to_organization / invite_coach_to_organization, leaving the agent to infer which invite tool applies.

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?

There is no statement of when to use this versus invite_client_to_organization or invite_coach_to_organization, nor any prerequisites (e.g., must the inviter be a coach, must the prospect already exist via create_prospect). The '(confirm-gated)' note hints at a preview flow but does not route the agent among alternatives.

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

send_message_to_clientAInspect

Send a chat message to one of the coach's clients (confirm-gated). It lands in the client's chat and sends them a push notification, exactly as if the coach typed it. Use the client's User._id (from list_clients). Write in the coach's voice, first person.

NameRequiredDescriptionDefault
textYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
clientIdYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses significant behavior: the message lands in the client's chat, triggers a push notification, is impersonated 'exactly as if the coach typed it', and is confirm-gated before executing. It adds tone guidance ('coach's voice, first person') but does not cover permissions/authorization or any rate-limit considerations.

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?

Four tight sentences, purpose front-loaded, followed by side effects, id source, and tone guidance. Every sentence carries unique information with no filler.

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 an un-annotated mutation tool with no output schema, the description supplies the key facts an agent needs: side effects, confirm gating, id source, and content style. It omits return/preview semantics, though the schema's confirm description partially covers that overlap.

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 only 33%, so the description must compensate, and it does: it clarifies clientId's meaning and provenance (User._id from list_clients) and constrains the text content (coach's voice, first person). Confirm-gating is echoed from the schema rather than added, keeping it just short of a 5.

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?

States a specific verb (send) plus resource (chat message) and scope (to one of the coach's clients), immediately distinguishing it from broadcast siblings like send_organization_announcement and from send_invitation. An agent can tell exactly what this does without opening the schema.

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?

Gives clear operational context: source of the id (client's User._id from list_clients) and the confirm-gated flow. It stops short of naming when to use this versus alternatives (e.g. announcements for broadcasts), so no explicit exclusions are offered.

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

send_organization_announcementAInspect

Send an announcement to a gym's coaches, clients, or everyone (confirm-gated). Irreversible: recipients get an in-app notice, and a real email if alsoEmail is true. Show the coach the exact text and audience first.

NameRequiredDescriptionDefault
bodyYes
titleYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
audienceYes
alsoEmailNo
locationIdNoLimit to one location
organizationIdYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations the description carries the full burden, and it does well: it declares the action irreversible, discloses two side effects (in-app notice plus a real email when alsoEmail is true), and explains the confirm-gated preview path. It omits permission/authorization requirements and any rate or volume 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?

Three short sentences, front-loaded with purpose and scope, then risk, then the required workflow. No filler; each sentence contributes either routing or safety 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 7-parameter irreversible mutation tool with no annotations and no output schema, the description covers irreversibility, side effects, audience semantics, and the confirmation flow, which is most of what an agent needs. It stops short of stating who may send or what the preview response contains.

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 only 29% (confirm and locationId documented), so the description must compensate. It adds meaning for audience (coaches/clients/ALL), alsoEmail (triggers a real email), and confirm, but leaves title, body, and organizationId entirely unexplained.

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?

States a specific verb (Send) plus resource (announcement) and the exact audience scope (coaches, clients, or everyone), which cleanly separates it from the individual-message sibling send_message_to_client and the read-side list_organization_announcements.

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?

Explains the gated workflow – show the exact text and audience first, and the confirm flag controls preview vs execution – so an agent knows the required sequence, but it never names an alternative tool or an explicit 'do not use when' condition.

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

set_diet_plan_template_marketplaceAInspect

List or unlist a diet plan template on the Trainzilla marketplace, and set its price (confirm-gated). This does not process any payment — it only makes the template available for other coaches to buy.

NameRequiredDescriptionDefault
priceNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
currencyNo
templateIdYes
isMarketplaceYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the confirm gate and that no payment is processed, but says nothing about required permissions/ownership, what happens to the price or existing buyers when unlisted, or whether the action is reversible — significant gaps for a marketplace-visibility mutation.

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 tight sentences with no filler; the action scope is front-loaded and the clarifying negative constraint follows it. Nothing repeats the name or wastes space.

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?

For a 5-param, no-annotation, no-output-schema mutation tool, the description is thin: it omits currency semantics, price-isMarketplace interaction, and any preview response expectation beyond the schema's own confirm text. Adequate for calling it, but an agent lacks the context to invoke it confidently in edge cases.

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 only 20% (just confirm is documented), so the description needs to compensate. It adds intent for confirm ("confirm-gated"), price ("set its price"), and isMarketplace ("list or unlist"), but leaves currency unexplained and never says whether price is required when listing versus optional.

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?

States a specific verb set (list/unlist, set price) on a specific resource (diet plan template on the Trainzilla marketplace), which cleanly separates it from set_workout_plan_template_marketplace. The closing sentence clarifies a negative scope — no payment processing — so an agent won't confuse this with a billing tool.

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?

"(confirm-gated)" implies the two-step preview/execute flow and the description hints the tool is only for the availability+price aspect, but it never names when to use it versus update_diet_plan_template (which edits content) or list_diet_plan_templates. Usage is inferable rather than stated.

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

set_workflow_enabledAInspect

Turn one of the coach's workflows on or off (confirm-gated). Turning one on needs Coach Pro or a gym plan.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
enabledYes
workflowIdYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose two real behaviors — the confirm gate and the plan prerequisite for enabling — but says nothing about what disabling does to in-flight workflow runs, whether it is reversible, or who may perform it beyond the plan check.

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 short sentences, zero filler, with the core action front-loaded and the prerequisite immediately following. Nothing needs to be trimmed.

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?

No output schema and no annotations mean the description is the sole behavioral source, and for a state-changing tool with a plan gate it leaves gaps: no mention of the preview return on confirm=false, no note on disable side effects, and no permissions context. Adequate to select the tool, not complete enough to invoke it confidently.

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 only 33% (only 'confirm' is documented), so the description must compensate. 'On or off' maps to 'enabled' and 'confirm-gated' reinforces 'confirm', but 'workflowId' is only implied by 'one of the coach's workflows' and no format or identifier source is given.

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?

States a specific verb+resource pair ('turn one of the coach's workflows on or off'), which clearly separates it from create_workflow, list_workflows, and review_workflow_draft. It doesn't name those siblings explicitly, but the enable/disable scope is unambiguous.

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 gives concrete context: the operation is confirm-gated and enabling requires Coach Pro or a gym plan. That tells the agent when the call will fail. It stops short of naming alternatives or when-not-to-use cases, so it's clear context without exclusions.

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

set_workout_plan_template_marketplaceAInspect

List or unlist a workout plan template on the Trainzilla marketplace, and set its price (confirm-gated). This does not process any payment — it only makes the template available for other coaches to buy.

NameRequiredDescriptionDefault
priceNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
currencyNo
templateIdYes
isMarketplaceYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses two behavioral traits: the operation is confirm-gated (preview unless confirmed) and it processes no payment, which prevents a serious misread. It omits permissions/auth requirements and whether unlisting is reversible or affects existing buyers, leaving meaningful gaps for a mutation tool.

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?

Two tightly written sentences with the action front-loaded ahead of the clarifying payment disclaimer. The parenthetical '(confirm-gated)' is slightly compressed, but nothing is padded or redundant.

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?

For a 5-parameter mutation tool with no annotations, no output schema, and 20% schema coverage, the description covers the core domain (marketplace listing, pricing, no payment) but leaves auth/permission context, currency semantics, and reversal behavior unexplained.

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 only 20% (just 'confirm'), so the description should compensate. It adds meaning for price ('set its price') and isMarketplace ('list or unlist'), but says nothing about currency, templateId, or the price/currency relationship, so the compensation is partial.

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 names specific verbs (list/unlist, set price) and a specific resource (workout plan template on the Trainzilla marketplace), and clarifies the domain boundary by explaining this only makes the template buyable. An agent can distinguish it from update_workout_plan_template or list_workout_plan_templates without opening a schema.

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?

Usage is implied by the description – you use this to put a template on the marketplace or take it off – but it never states prerequisites, when NOT to use it, or names a sibling alternative (e.g., set_diet_plan_template_marketplace for diets, update_workout_plan_template for content edits). Guidance is inferable rather than explicit.

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

swap_workout_exerciseAInspect

Replace a single exercise in a workout plan by its order (confirm-gated) — the surgical alternative to update_workout_plan. exerciseOrder is the order of the slot to replace (see list_workout_plans). newExercise is one exercise in the create_workout_plan shape; carry over exerciseId from search_exercises when there's a catalog match.

NameRequiredDescriptionDefault
planIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
newExerciseYes
exerciseOrderYes

TDQS

A4.2/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 behavioral burden. It does disclose the confirm-gating behavior and the data-sourcing pattern (carry over exerciseId from the catalog), which is useful, but it says nothing about permissions, whether the displaced exercise is recoverable, or what the preview/response contains.

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 tightly packed sentences with the core purpose front-loaded, followed by the alternative and the parameter-sourcing hints. No filler, no repetition of the schema.

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 mutation tool with no annotations, no output schema, and a nested untyped object, the description supplies the role, the confirm gate, and where each parameter value comes from. It omits authorization requirements and the exact preview/return shape, but the essential path to a correct call is present.

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 only 25% (only confirm is described) and newExercise is an opaque nested object, so the description must compensate. It explains exerciseOrder as the slot's `order` sourced from list_workout_plans and defines newExercise by reference to the create_workout_plan shape plus the exerciseId carry-over rule. planId and the confirm preview semantics remain undocumented in the description, keeping it below 5.

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?

States a specific verb+resource ('Replace a single exercise in a workout plan by its order') and immediately differentiates itself from the sibling update_workout_plan as 'the surgical alternative'. An agent can distinguish it from create_workout_plan, update_workout_plan, and swap_diet_meal without opening any schema.

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?

Names the alternative (update_workout_plan) and the selection logic (surgical single-slot change vs. whole-plan update), and routes the agent to list_workout_plans for the order value and search_exercises for exerciseId. No explicit 'do not use when...' exclusion, so it stops just short of a 5.

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

transfer_organization_ownershipAInspect

Hand a gym to another member (confirm-gated) — owner only and irreversible by the current owner; gym-owned plans move to the new owner. Get explicit confirmation of exactly who becomes the owner before calling with confirm: true.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
newOwnerUserIdYes
organizationIdYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it discloses irreversibility by the current owner, the owner-only permission gate, a side effect (gym-owned plans move to the new owner), and the preview-vs-execute mechanic. Gaps remain around what happens to the departing owner's role and other members, and there is no mention of error or failure conditions.

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?

Two compact sentences front-loaded with the action and its constraints; the confirmation instruction lands last where it belongs. Slightly dense use of em-dash clauses, but every clause carries distinct information and nothing is wasted.

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 an irreversible, no-annotation, no-output-schema mutation, the description supplies the safety-critical facts an agent needs before calling. It remains silent on post-transfer state for the previous owner and other organization members, which is the main residual gap.

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 only 33%: newOwnerUserId and organizationId have no schema descriptions, and the description adds little about them beyond the implied 'who becomes the owner'. The confirm parameter's semantics are explained, but that duplicates the schema's own description of the preview behavior.

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?

Specific verb+resource ('hand a gym to another member') with the exact domain object named, and scope qualifiers (owner only, confirm-gated) that no sibling tool such as close_organization or leave_organization shares. An agent can tell immediately what this does.

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?

Explicit prerequisites ('owner only') and an explicit invocation protocol: confirm who becomes owner first, then call with confirm: true. It does not name alternative tools (e.g. close_organization, assign_organization_member_role) for adjacent administrative cases, so it falls just short of the top band.

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

update_diet_planAInspect

Edit an existing diet plan (confirm-gated). Pass planId plus only the fields to change. meals, if given, REPLACES the whole meal list — send the full intended list. Each meal follows the create_diet_plan shape (name, scheduledTime 'HH:mm', order, days, section, calories, macros, description, ingredients).

NameRequiredDescriptionDefault
mealsNo
titleNo
planIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
endDateNo
startDateNoYYYY-MM-DD
descriptionNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well on the two highest-risk behaviors: the confirm gate and the fact that meals REPLACES the entire list rather than merging. It is silent on permissions/ownership requirements and on whether the edit is reversible, which are meaningful gaps for a mutation tool.

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?

Three tight sentences, front-loaded with the core operation, and the destructive replace warning is placed where it cannot be missed. No filler or repetition of the schema's structure.

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?

For a 7-parameter mutation tool with no annotations and no output schema, the description covers the confirm gate and meal replacement but leaves permission requirements, the effect on untouched fields, and four top-level parameters unaddressed. Adequate but not 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?

Schema coverage is only 29% across 7 parameters. The description clarifies planId, the partial-update contract, and the replace semantics of meals — the most valuable additions — but says nothing about title, startDate, endDate, or description, and its enumeration of meal sub-fields largely restates the schema. Partial compensation for a low-coverage 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?

States a specific verb and resource ('Edit an existing diet plan') and scopes it to existing plans, which cleanly separates it from create_diet_plan, delete_diet_plan, and update_diet_plan_template in the sibling list. An agent can identify the operation without opening the schema.

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?

Gives clear operational guidance: pass planId plus only the fields to change, and send the full meal list if meals is supplied. It does not name an explicit alternative for template edits (update_diet_plan_template) or state prerequisites, so it stops short of full when/when-not routing.

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

update_diet_plan_templateBInspect

Edit an existing diet plan template (confirm-gated). Only send the fields that change.

NameRequiredDescriptionDefault
idYes
goalNo
tagsNo
mealsNo
titleNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
difficultyNo
visibilityNo
descriptionNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the confirm-gating behavior and the partial-update semantics (only changed fields), which is meaningful behavioral context. But it does not clarify whether omitted fields are preserved vs cleared, or what permissions/auth are required for editing a template.

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 short sentences, front-loaded with the core action and then the gating/partial-update constraint. 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?

For a 9-parameter mutation tool with no annotations, no output schema, and 11% schema coverage, this description is too thin. It omits permission requirements, the fate of unspecified fields, and return/response behavior—significant gaps an agent needs to invoke it correctly.

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 11% (just the 'confirm' param is documented). The description's 'only send the fields that change' adds partial-update meaning but leaves the 9 parameters—id, goal, tags, meals, title, difficulty, visibility, description—undocumented in both schema and description, so it barely compensates for the coverage gap.

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?

States a specific verb+resource ('Edit an existing diet plan template'), which clearly distinguishes it from create_diet_plan_template and delete_diet_plan_template siblings. It does not explicitly name an alternative, but the purpose is unambiguous.

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?

'Only send the fields that change' gives useful partial-update usage guidance, and '(confirm-gated)' hints at execution gating. However, there is no explicit statement of when to use this vs update_diet_plan or create_diet_plan_template, so usage is only implied.

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

update_gym_classAInspect

Replace a recurring class's definition (confirm-gated). Sends every field — read list_gym_classes first.

NameRequiredDescriptionDefault
titleYes
classIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
capacityYes
timezoneNoIANA name, e.g. Asia/Kolkata
weekdaysYes0 = Sunday … 6 = Saturday
startTimeYesHH:mm, in the class timezone
locationIdNo
descriptionNo
durationMinutesYes
instructorCoachIdNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses replacement semantics ('sends every field') and confirm-gating, which is real behavioral context. However, it omits permission/auth requirements and what happens to omitted optional fields (e.g., locationId, instructorCoachId) — whether they are cleared or retained — which matters for a PUT-style mutation.

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 tightly-packed sentences with the destructive replace semantics front-loaded and the prerequisite trailing. Every clause earns its place, no filler.

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?

For an 11-parameter (6 required) mutation tool with no annotations, no output schema, and only 36% schema coverage, the description is somewhat sparse. The replace-plus-confirm framing is appropriate, but behavior around optional fields and permissions is left unspecified.

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 at 36%, so the description should compensate. It adds the critical semantic that every field must be sent (full replace), implying the agent must fetch current values via list_gym_classes. But it documents no individual parameters, leaving most of the 11 params to the sparse schema.

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?

States a specific verb ('Replace') and resource ('a recurring class's definition'), immediately distinguishing it from sibling create_gym_class by signaling full-replacement semantics. The scope is clear enough that an agent can select it correctly, though it doesn't explicitly contrast with deactivate_gym_class or other update options.

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?

Provides a concrete prerequisite: 'read list_gym_classes first,' which gives the agent the correct call sequence for a full-replacement update. It also flags the confirm-gated behavior. It stops short of stating when-not-to-use or naming alternative mutation siblings, so it's clear context rather than full when/when-not routing.

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

update_habitAInspect

Edit a client's habit (confirm-gated). Pass habitId plus only the fields to change. frequency: DAILY | WEEKLY | SPECIFIC_DAYS. tracker: CHECKBOX | STEPS | WATER | COUNTER. category is a HabitCategory. daysOfWeek is 0..6 (Sun..Sat). Set isActive: false to pause a habit without deleting it.

NameRequiredDescriptionDefault
nameNo
emojiNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
habitIdYes
trackerNo
categoryNo
isActiveNo
frequencyNo
daysOfWeekNo
descriptionNo
targetCountNo
reminderTimeNoHH:mm

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses confirm-gating (though the schema's confirm param already says this), partial-update behavior, and the pause-via-isActive semantic, which is genuinely useful. It is silent on permissions/authorization, what happens to omitted fields, and whether edits affect compliance history, leaving significant gaps for a mutation tool.

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?

Five terse sentences, each carrying distinct information. The confirm-gate and partial-update rule come first, then enum values, then the isActive pause trick. No filler or redundancy.

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 12-parameter mutation tool with no annotations and no output schema, the description covers the gate, update semantics, and the ambiguous enum parameters well. It omits guidance on targetCount's relationship to tracker type (e.g. STEPS/COUNTER targets) and reminderTime format, but the schema covers reminderTime.

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 only 17%, so the description must compensate, and it does for the highest-risk params: frequency enum values (DAILY | WEEKLY | SPECIFIC_DAYS), tracker enum values, category as a HabitCategory, and daysOfWeek as 0..6 (Sun..Sat). It leaves name, emoji, description, and targetCount undocumented, so it falls short of full 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?

States a specific verb and resource: 'Edit a client's habit'. An agent can distinguish this from create_habit, list_client_habits, and get_habit_compliance. It stops short of naming any sibling or explicitly ruling out creation/listing, so 4 rather than 5.

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?

Gives clear operational context: confirm-gated, 'Pass habitId plus only the fields to change' establishes partial-update semantics, and 'Set isActive: false to pause a habit without deleting it' routes a pause scenario to this tool instead of deletion. No explicit when-not or named alternative, so not a 5.

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

update_my_availabilityAInspect

Update when the coach is bookable for sessions (confirm-gated). This is the same availability that drives trainerAvailableHourSlotsNext7Days / session booking. Working hours can be split: pass timeRanges, e.g. [{start:'05:00',end:'09:00'},{start:'18:00',end:'22:00'}] — slots are only offered inside them. checkIn/checkOut is the older single-window form.

NameRequiredDescriptionDefault
checkInNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
checkOutNo
timezoneYes
timeRangesNo
daysAvailableYes
preferredTimeYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations the description carries the full burden, and it discloses meaningful behavior: confirm-gating (preview vs execute), the downstream coupling to booking slot generation, and the existence of two input forms. It omits mutation semantics such as whether an update replaces or merges existing availability, and any permission/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.

Conciseness4/5

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

Front-loaded with the core action, then the effect, then the syntax guidance and example. Dense and largely waste-free, though the parenthetical '(confirm-gated)' slightly duplicates the schema's own confirm parameter description.

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?

For a 7-param mutation tool with no annotations and no output schema, the description covers the core action, effect, and primary parameter but leaves required-parameter formats and update semantics (replace vs merge, effect on existing bookings) unaddressed.

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 only 14%, so the description must compensate, and it does so well for the hardest param (timeRanges, with a concrete example and the 'slots are only offered inside them' rule) plus the legacy checkIn/checkOut pair. However, the required params preferredTime, daysAvailable, and timezone get no explanation in either place, leaving a real 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?

States a specific verb and resource ('Update when the coach is bookable for sessions') and clarifies the scope by naming the downstream feature it drives (trainerAvailableHourSlotsNext7Days / session booking). An agent can tell exactly what the tool mutates without opening the schema.

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 flags the confirm-gate behavior and gives form-selection guidance: use timeRanges for split hours, and 'checkIn/checkOut is the older single-window form,' implying the preferred alternative. It does not name when-not-to-use this tool, so it stops short of full routing guidance.

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

update_my_bankAInspect

Update the coach's own payout bank account (confirm-gated). This is where Trainzilla sends the coach's earnings — get explicit confirmation of the exact account/IFSC from the coach before calling with confirm: true, this tool's own preview is not enough given how consequential a wrong account number is.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
bankNameYes
ifscCodeYes
accountNumberYes
accountHolderNameYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the confirm-gating behaviour (preview vs. execute), the consequence of an incorrect account number, and that the account receives payouts. It stops short of covering permission/auth requirements, whether the previous account is replaced, or any effect on pending earnings.

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?

Two sentences, purpose front-loaded, then the confirmation caveat. The second sentence is dense but every clause earns its place by justifying why the extra confirmation step exists rather than merely asserting it.

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 confirm-gated mutation with no output schema, the description covers the highest-risk behaviour (irreversible wrong-account consequences, preview limitation) that an agent most needs. It leaves the return payload of a confirm:true call and the remaining field semantics to inference, which is a modest gap for a five-parameter tool.

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 only 20% (only 'confirm' is documented), so the description must compensate for four undocumented required fields. It highlights that account number and IFSC are the high-risk values and must match exactly, which is useful emphasis, but adds no format or validation guidance (e.g. IFSC syntax, name-must-match-bank-account rules).

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?

States a specific verb and a precisely scoped resource: 'Update the coach's own payout bank account'. The 'coach's own payout' framing cleanly separates it from the other self-update siblings (update_my_contact, update_my_professional, update_my_testimonials), and the added stake clause ('this is where Trainzilla sends earnings') removes any ambiguity about what account is being changed.

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?

Gives an explicit operational precondition: obtain the coach's verbal confirmation of the exact account/IFSC before calling with confirm: true, and warns that the tool's own preview is insufficient. It does not name alternative tools, but no sibling competes for this job, so the guidance is effectively complete on the when/how axis.

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

update_my_contactAInspect

Update the coach's own contact info (confirm-gated). Sends the full object — fields omitted are cleared, so read get_my_profile first if only changing one field.

NameRequiredDescriptionDefault
cityYes
phoneYes
stateNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
countryYes
postalCodeNo
addressLine1Yes
addressLine2No

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it discloses the single most important and non-obvious behavior: this is a full-object replace where omitted fields are cleared, which implies data loss for partial updates. It also notes the confirm gate execution model. It omits permission/auth requirements and what a rejection or preview response looks like, so it falls short of a 5.

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 tightly packed sentences, front-loaded with the verb and resource, then the destructive-semantics warning. No filler sentences and nothing redundant with the schema.

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 an 8-parameter mutation tool with no annotations and 13% schema coverage, the description supplies the critical replace-semantics and confirmation context. The remaining gaps (auth requirements, failure behavior, per-parameter meaning) are minor but keep it from being fully 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?

Schema description coverage is only 13%, so the description is expected to compensate. It explains the semantics of the whole parameter object (omitted fields cleared, hence the required fields must be sent), which is genuinely useful, but it never maps or clarifies the individual optional fields (state, postalCode, addressLine2) or the confirm flag beyond what the schema already documents.

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?

States a specific verb (update) and resource (the coach's own contact info), and the parenthetical scope ('coach's own', 'contact info') cleanly separates it from siblings like update_my_bank, update_my_professional, and get_my_profile. An agent can select this tool without opening the schema.

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

Usage Guidelines5/5

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

It gives explicit conditional guidance ('read get_my_profile first if only changing one field') and names the alternative tool by name, which is exactly the routing information an agent needs. It also flags the confirm-gating precondition tied to the confirm parameter.

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

update_my_professionalAInspect

Update the coach's own professional info — specialties, certifications, years of experience, bio, languages, business type (confirm-gated). Sends the full object; read get_my_profile first if only changing one field.

NameRequiredDescriptionDefault
bioNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
galleryYes
languagesYes
specialtiesYes
businessTypeYes
profilePhotoYes
certificationsYes
certificateFilesYes
yearsOfExperienceYes

TDQS

A3.9/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 usefully discloses that this is a full-object replace ('Sends the full object') and that it is confirm-gated, but the confirm gate is already documented in the schema. It does not cover auth/permission requirements, reversibility, or what happens to fields on a partial send beyond the read-first hint.

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 filler, with the field scope and the confirm-gate/read-first caveats front-loaded. Every clause adds useful information an agent can act on.

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?

For a 10-parameter tool with 8 required fields, no annotations, and no output schema, the description covers the headline intent and the read-first/confirm caveats but leaves several required parameters (gallery, profilePhoto, certificateFiles) unexplained. Adequate but with clear gaps.

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 only 10%, so the description must compensate. It names six of the ten parameters (specialties, certifications, years of experience, bio, languages, business type), adding some semantic framing, but omits gallery, profilePhoto, certificateFiles, and confirm and gives no format/formatting detail.

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?

States a specific verb (Update) and resource (the coach's own professional info) and enumerates the fields it governs. The enumerated fields (specialties, certifications, years of experience, bio, languages, business type) clearly separate it from siblings like update_my_contact, update_my_bank, update_my_availability, and update_my_testimonials.

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?

Gives an explicit prerequisite workflow: 'read get_my_profile first if only changing one field,' naming the sibling to consult. It also implies full-object semantics via 'Sends the full object.' It stops short of stating when-not-to-use or alternatives for bulk changes, so it is clear context without full exclusions.

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

update_my_testimonialsAInspect

Replace the coach's own public client testimonials (confirm-gated). Sends the full list — read get_my_profile first if only adding one.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
testimonialsYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does disclose key behavior: this REPLACES (destructive full overwrite) and is confirm-gated, with the confirm param's schema noting preview-only when false. It omits auth/permission requirements and return behavior, so it is strong but not exhaustive.

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, front-loaded with the destructive action and scope, then the follow-up guidance. No filler; every clause earns its place.

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 mutation tool with no annotations and no output schema, the description covers destructive semantics, the confirmation gate, and routing guidance. It leaves out permission requirements and the shape of the preview response, but is otherwise complete enough to invoke correctly.

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 50% (confirm documented, testimonials not). The description compensates by clarifying that the testimonials array is a full replacement list ('Sends the full list'), which is critical semantics absent from the schema, though the nested item fields (clientName, profileImage, note) remain undocumented in both.

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?

States a specific verb (Replace) and resource (the coach's own public client testimonials), scoping it to the coach's own record and distinguishing it from sibling update_my_* tools like update_my_transformations or update_my_professional.

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?

Gives real routing guidance: read get_my_profile first if only adding one, which names an alternative tool and the condition that selects it. It stops short of an explicit when-not statement, so it is clear context rather than full usage rules.

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

update_my_transformationsAInspect

Replace the coach's own public before/after client transformation gallery (confirm-gated). Sends the full list — read get_my_profile first if only adding one.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
transformationsYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the two traits that matter most: the operation is a destructive full replacement, and it is confirm-gated so an unconfirmed call only previews. It does not cover permission/auth requirements or whether invalid image references are rejected, so it is strong but not exhaustive.

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, front-loaded with the destructive replace semantics followed immediately by the confirm-gate and the read-before-write hint. No filler or restated field names.

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 mutation tool with no annotations and no output schema, the description covers the riskiest aspects (full-list replacement, preview-vs-execute confirm). The remaining gap is the shape of each transformation entry, though the schema's required array exposes those fields, keeping the omission minor.

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 50% (only 'confirm' is documented in the schema), so the description must compensate. It does the critical work by stating 'Sends the full list,' clarifying that the transformations array is a complete replacement rather than a patch or append. It adds no detail on the six required nested item fields (clientName, timeline, images, goal, results), which remain undocumented.

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 states a specific verb and resource: 'Replace the coach's own public before/after client transformation gallery.' It scopes it to the coach's own gallery, which cleanly distinguishes it from siblings like update_my_testimonials, update_my_professional, and update_organization_profile.

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?

It gives a concrete routing rule: 'read get_my_profile first if only adding one,' naming both the alternative tool and the condition that selects it, plus the confirm-gated execution note. It stops short of stating when not to use the tool at all, but the guidance is clear and actionable.

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

update_organizationCInspect

Rename an organization (confirm-gated).

NameRequiredDescriptionDefault
nameYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
organizationIdYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden for a mutation. It discloses only that the call is confirm-gated, which the schema already states in the confirm parameter description. It says nothing about required permissions, whether the rename is reversible, uniqueness constraints on names, or what the preview response contains.

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?

A single, front-loaded sentence with no wasted words. It is efficient, though for a mutation tool with three parameters it verges on under-specification rather than optimal brevity.

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?

For a destructive-in-effect rename with no annotations, no output schema, and two undocumented parameters, the description leaves substantial gaps: who may call it, what the preview returns, and how to identify the target organization. It is not adequate on its own for safe invocation.

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 only 33% (only confirm is documented). The description implies the name parameter ('rename') and the confirm gate, covering two of three parameters, but adds no format, constraint, or lookup guidance for organizationId beyond what the bare minLength schema field shows.

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?

States a specific verb+resource: 'Rename an organization'. The choice of 'rename' rather than generic 'update' usefully distinguishes it from the sibling update_organization_profile, which presumably handles other fields. It stops short of naming that sibling explicitly, so it's clear but not fully differentiated.

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 on when to use this instead of update_organization_profile or update_organization_custom_role, and no prerequisites such as required role (owner/admin). The only usage-adjacent signal is '(confirm-gated)', which is about mechanics rather than selection.

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

update_organization_ai_guidelinesAInspect

Set the gym-wide rules the AI assistant and AI coach follow for every coach and client in the gym (confirm-gated). Replaces the whole text — read get_organization_profile first to edit rather than overwrite.

NameRequiredDescriptionDefault
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
guidelinesYes
organizationIdYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations the description carries the full burden, and it does disclose two important traits: the operation is confirm-gated (preview vs execute) and it replaces the entire text rather than merging. It omits required permissions/role and any rate or side-effect detail beyond the overwrite, so disclosure is useful but incomplete.

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 tight sentences, front-loaded with the core action and the confirm-gate caveat, then the overwrite warning. Every clause earns its place.

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 mutation tool with no annotations and no output schema, the description covers the destructive overwrite behavior and the confirm gate, which are the key facts an agent needs. Permissions and the exact preview return shape are unaddressed, but the schema's confirm description covers the preview mechanic.

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 only 33% (just confirm), so the description must compensate. "Replaces the whole text" adds genuine semantic meaning for the guidelines parameter, but organizationId is left entirely implicit and no format guidance is given for the guidelines string, so compensation is partial.

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?

States a specific verb ("Set") and a precisely scoped resource: the gym-wide rules the AI assistant and AI coach follow for every coach and client. It is clearly differentiated from neighboring update_organization_* tools and names get_organization_profile as the related read, so an agent can place it without opening any schema.

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 routes the agent to read get_organization_profile first "to edit rather than overwrite," which is real when-to-use guidance and effectively names the alternative. It stops short of stating when to avoid the tool entirely (e.g. permissions or scope limits), so it is short of a full 5.

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

update_organization_coach_roleAInspect

Change a coach's role within the organization (confirm-gated) — an access-control change, not a display label. Get explicit confirmation from the coach of exactly which member and which new role before calling with confirm: true.

NameRequiredDescriptionDefault
roleYes
coachIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
organizationIdYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does a good job: it discloses the confirm-gated mutation flow and, importantly, that this is an access-control change with security implications rather than a cosmetic label. It still omits required permissions, reversibility, and role-hierarchy consequences, so it is strong but not exhaustive.

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 tight sentences with the core action and its access-control framing front-loaded, followed by the confirmation precondition. No redundant or filler content.

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?

For a mutation with no annotations, no output schema, and 25% schema coverage, the description covers the confirm gating and access-control nature but leaves gaps around permissions, role-hierarchy effects, and enum meanings that an agent would want before invoking a privileged change.

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 only 25% (only confirm is documented), so the description should compensate. It alludes to 'which member' (coachId) and 'which new role' (role), but adds no meaning for organizationId and does not explain the OWNER/ADMIN/PRIMARY_COACH/COACH enum semantics beyond the schema enum itself.

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?

States a specific verb (Change) and resource (a coach's role within the organization), and explicitly disambiguates it from a display label. It doesn't name the likely siblings (assign_organization_member_role, update_organization_custom_role), so it lacks explicit sibling routing, but the access-control framing makes the resource scope clear.

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?

It gives a clear precondition for the confirm param (obtain the coach's explicit confirmation of member and role before calling with confirm: true), which is real usage guidance. However it provides no when-to-use vs alternatives direction against siblings like assign_organization_member_role or update_organization_custom_role, leaving that to inference.

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

update_organization_custom_roleAInspect

Replace a custom role's name, description and capabilities (confirm-gated). Owner only. Sends the full capability list, and changes access for everyone who holds the role.

NameRequiredDescriptionDefault
nameYes
roleIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
descriptionNo
capabilitiesYes
organizationIdYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the confirm-gate, owner-only authorization, full-replacement semantics ('Sends the full capability list'), and blast radius ('changes access for everyone who holds the role'). It stops short of stating reversibility or error behavior, so not quite maximal.

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?

Three dense sentences, front-loaded with the verb+resource, then the gate/auth, then the side effect. Every clause is load-bearing, though the telegraphic style leaves some connective context implicit.

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?

For a mutation tool with no annotations, no output schema, and 17% parameter coverage, the description covers the essential replacement semantics, auth, and impact. It still omits what happens to untouched role state, failure/validation behavior, and id-parameter requirements, so it is adequate but not fully 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?

Schema description coverage is only 17%, so the description must compensate. It names name/description/capabilities and crucially clarifies that capabilities is a complete replacement list ('Sends the full capability list'), which adds real meaning beyond the schema. It says nothing about roleId or organizationId semantics, leaving part of the low-coverage schema unaddressed.

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?

States a specific verb and resource ('Replace a custom role's name, description and capabilities') that inherently distinguishes it from the create_/delete_organization_custom_role and update_organization_coach_role siblings. An agent can identify it as a full-replacement operation on a custom role without opening the schema.

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?

Provides a hard prerequisite ('Owner only') and flags the confirm-gated workflow, which shapes how the tool should be invoked. However, it names no alternative tool or the condition that would select it over create_organization_custom_role or update_organization_coach_role, leaving usage selection to inference.

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

update_organization_locationCInspect

Rename or re-address an existing location (confirm-gated).

NameRequiredDescriptionDefault
nameYes
addressYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
locationIdYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it mostly repeats the confirm parameter's own schema text ("confirm-gated" vs. the schema's preview explanation). It says nothing about permission/role requirements, whether the update is a full replacement of name and address, or reversibility.

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?

A single front-loaded sentence with no waste and the action stated first. For a mutation tool it is arguably too spare, keeping it just short of a 5.

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?

For a mutation tool with no annotations, no output schema, and three required parameters at 25% coverage, the description is far too thin. It omits prerequisites, the id source, and any confirmation-flow detail the agent needs before calling.

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 only 25% (confirm only), but the phrase "rename or re-address" usefully maps onto the name and address parameters, partially compensating. locationId remains undocumented in both schema and description, so a 3 is the ceiling.

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?

States a specific verb pair and resource ("Rename or re-address an existing location"), and "existing" signals it is distinct from create_organization_location/delete_organization_location. However it never names a sibling, so differentiation rests on inference rather than explicit routing.

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 when-to-use guidance beyond the parenthetical "(confirm-gated)". It does not tell the agent to look up a locationId via list_organization_locations first, nor contrast this with the broader update_organization tool. Usage is left entirely to inference.

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

update_organization_profileBInspect

Update a gym's profile (confirm-gated). Only the fields you pass change. isPublic publishes or unpublishes the gym's public page; brandingEnabled/brandColor apply the gym's brand to every coach's client-facing surfaces.

NameRequiredDescriptionDefault
cityNo
nameNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
isPublicNo
brandColorNoHex colour, e.g. #1F6FEB
descriptionNo
contactEmailNo
contactPhoneNo
organizationIdYes
brandingEnabledNo
communityEnabledNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It usefully discloses the side effects of isPublic (publishes/unpublishes the public page) and branding fields (brand applied to every coach's client-facing surfaces) – real behavioral context beyond the schema. It omits permission/authorization requirements and reversibility for an 11-param mutation.

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?

Three tight sentences, front-loaded with the core purpose before the field-specific behavior. Little waste, though the branding sentence packs two distinct parameters together slightly densely.

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?

For an 11-parameter mutation with no annotations and no output schema, the description covers the core purpose and a few field side effects but leaves authorization requirements, most parameter meanings, and the preview-vs-execute return behavior largely undocumented.

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 18%, so the description must compensate. It explains three parameters (isPublic, brandingEnabled, brandColor), but the majority – city, name, description, contactEmail, contactPhone, organizationId, communityEnabled – get no additional meaning beyond their types.

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?

States a specific verb+resource ('Update a gym's profile'), so the agent immediately knows the operation. It does not, however, distinguish itself from close siblings like update_organization or get_organization_profile, leaving ambiguity about which profile-update tool to choose.

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 confirm-gating note and 'Only the fields you pass change' imply a partial-update workflow, but the description never states when to use this tool versus alternatives such as update_organization. Usage is inferable from the name rather than stated.

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

update_prospect_statusBInspect

Move a prospect to a new pipeline stage (confirm-gated). Use list_prospects to get the id.

NameRequiredDescriptionDefault
idYes
statusYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does disclose the key trait that the call is 'confirm-gated'. It says nothing about permission requirements, whether the stage change is reversible, whether the prospect is notified, or what the preview response contains, leaving significant mutation behavior unexplained.

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?

Two short clauses, front-loaded with the action and the gate, with no filler. It is efficient, though the extreme brevity is part of why behavioral and parameter gaps remain.

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?

For a mutation tool with no annotations, no output schema, and low schema description coverage, the description covers only the confirmation gate and id lookup. It omits permission expectations, side effects, and any indication of what the preview versus executed response returns.

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 only 33% (only 'confirm' is documented), so the description should compensate. It does add value by pointing to list_prospects as the source of 'id', but it never explains the meaning of the ten status enum values (e.g. WARM vs HOT vs LOST) or how they map to the 'pipeline stage' concept.

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?

States a specific verb and resource ('Move a prospect') plus the effect ('to a new pipeline stage'), which separates it from create_prospect, get_prospect_stats, and add_prospect_note. However it does not explicitly contrast itself with any sibling as the alternative action, so it stays just short of a 5.

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?

'Use list_prospects to get the id' gives a concrete prerequisite workflow for obtaining a required parameter. Beyond that there is no guidance on when a stage change is appropriate, which transitions are valid, or what happens if the confirm gate is skipped — usage is implied rather than explained.

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

update_workout_planAInspect

Edit an existing workout plan (confirm-gated). Pass planId plus only the fields to change. exercises, if given, REPLACES the whole exercise list — send the full intended list, not just the changed ones; to change a single slot use swap_workout_exercise instead. Each exercise follows the same shape as create_workout_plan (name, sets, reps, restSeconds?, section?, exerciseId?, notes?, modality?, …). days: optional [MONDAY..SUNDAY].

NameRequiredDescriptionDefault
daysNo
titleNo
planIdYes
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
endDateNo
exercisesNo
startDateNoYYYY-MM-DD
descriptionNo

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does disclose two important traits: the operation is confirm-gated (preview vs execute) and exercises input is destructive/replacing rather than additive. It does not cover permission requirements or what the preview/response contains, so it stops short of full 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?

Front-loads the core action and the planId requirement in the first two sentences, then spends the remaining text only on the highest-risk details (list replacement, exercise shape, day values). No filler or repetition of schema-obvious facts.

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 an 8-parameter mutation tool with no annotations and no output schema, the description supplies the critical behavioral and replacement semantics an agent needs. It leaves the date/description fields unexplained and the confirm flow's return behavior to the schema, but nothing essential to correct invocation is missing.

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 only 25%, so the description must compensate and does: it explains exercises REPLACES the full list, gives the exercise item shape and points to create_workout_plan for the canonical fields, and supplies the [MONDAY..SUNDAY] value set for days that the schema lacks. It is silent on startDate/endDate/title/description semantics, leaving a residual 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?

States a specific verb+resource ('Edit an existing workout plan') and immediately distinguishes itself from create_workout_plan (partial field update) and swap_workout_exercise (single-slot change). An agent can pick this tool over its near-namesake siblings without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit invocation guidance ('Pass planId plus only the fields to change'), an explicit alternative with its selecting condition ('to change a single slot use swap_workout_exercise instead'), and the full-list replacement rule for exercises. The when/when-not split is spelled out rather than implied.

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

update_workout_plan_templateBInspect

Edit an existing workout plan template (confirm-gated). Only send the fields that change.

NameRequiredDescriptionDefault
idYes
goalNo
tagsNo
titleNo
confirmNoMust be true to actually execute. If false/omitted, returns a preview only.
exercisesNo
difficultyNo
visibilityNo
descriptionNo

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 full disclosure burden. It usefully surfaces the confirm-gated preview/execute workflow and patch semantics, but says nothing about permissions, whether omitted fields are preserved or cleared, or reversibility of the edit.

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?

Two short, front-loaded sentences with no filler; the operation is named first and the key calling constraint second. Efficient despite the thin content.

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?

For a 9-parameter mutation tool with no annotations, no output schema, and 11% schema coverage, the description is far too thin. It omits merge/replace behavior, permission requirements, and what the preview returns.

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 11% (just the confirm param), so the description must compensate for eight undocumented fields. 'Only send the fields that change' communicates patch semantics, which is valuable, but the remaining fields (goal, tags, title, exercises, difficulty, visibility, description) get no explanation.

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?

States a specific verb (Edit) and resource (workout plan template), which cleanly separates it from create_/get_/delete_/list_workout_plan_template siblings. It does not, however, explicitly distinguish itself from the non-template update_workout_plan.

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 '(confirm-gated)' note and 'only send the fields that change' imply the usage pattern (patch, then confirm), but there is no explicit when-to-use guidance versus alternatives like update_workout_plan or create_workout_plan_template. Usage is implied rather than stated.

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.

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.

  1. 7 tool updates
    • Addedcreate_workflow
    • Addedlist_workflow_approvals
    • Addedlist_workflow_runs
    • Addedlist_workflow_templates
    • Addedlist_workflows
    • Addedreview_workflow_draft
    • Addedset_workflow_enabled
  2. 1 tool update
    • Addedmark_session_done
  3. 6 tool updates
    • Addedget_diet_plan
    • Changedget_ingredient_nutrition5 fields changed
      • addedInput schema / properties / limit / default
        Added value: +5
      • removedInput schema / properties / limit / description
        Removed value: -"Matches per name (default 3, or 2 per name with queries)."
      • changedInput schema / properties / limit / maximum
        Previous value: -10New value: +20
      • removedInput schema / properties / queries
        Removed value: -{
        -  "description": "Several ingredient names in one call; returns the top matches for each.",
        -  "items": {
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  "maxItems": 40,
        -  "type": "array"
        -}
      • addedInput schema / required
        Added value: +[
        +  "query"
        +]
    • Changedget_training_split1 field changed
      • changedInput schema / properties / limit / default
        Previous value: -2New value: +5
    • Addedget_workout_plan
    • Changedsearch_exercises4 fields changed
      • addedInput schema / properties / limit / default
        Added value: +8
      • removedInput schema / properties / limit / description
        Removed value: -"Matches per name (default 4, or 3 per name with queries)."
      • removedInput schema / properties / queries
        Removed value: -{
        -  "description": "Several exercise names in one call; returns the top matches for each.",
        -  "items": {
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  "maxItems": 30,
        -  "type": "array"
        -}
      • addedInput schema / required
        Added value: +[
        +  "query"
        +]
    • Removedswap_diet_meal
  4. 1 tool update
    • Changedschedule_session1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "clientId",
        -  "subscriptionId",
        -  "scheduledStart",
        -  "scheduledEnd"
        -]New value: +[
        +  "clientId",
        +  "scheduledStart",
        +  "scheduledEnd"
        +]
  5. 129 tool updates
    • First observedadd_prospect_note
    • First observedassign_coach_to_location
    • First observedassign_master_habit
    • First observedassign_organization_member_role
    • First observedbilling_summary
    • First observedcalc_1rm
    • First observedcalc_macros
    • First observedcalc_tdee
    • First observedcancel_gym_class_session
    • First observedcancel_session
    • First observedclose_organization
    • First observedcreate_checkin
    • First observedcreate_diet_plan
    • First observedcreate_diet_plan_template
    • First observedcreate_gym_class
    • First observedcreate_habit
    • First observedcreate_master_habit
    • First observedcreate_organization
    • First observedcreate_organization_custom_role
    • First observedcreate_organization_location
    • First observedcreate_prospect
    • First observedcreate_workout_plan
    • First observedcreate_workout_plan_template
    • First observeddeactivate_gym_class
    • First observeddelete_diet_plan
    • First observeddelete_diet_plan_template
    • First observeddelete_organization_custom_role
    • First observeddelete_organization_location
    • First observeddelete_workout_plan
    • First observeddelete_workout_plan_template
    • First observeddismiss_client_onboarding
    • First observedget_checkin_answers
    • First observedget_client_ai_history
    • First observedget_client_images
    • First observedget_client_onboarding
    • First observedget_client_preferences
    • First observedget_client_profile
    • First observedget_diet_plan_template
    • First observedget_gym_attendance_summary
    • First observedget_gym_class_roster
    • First observedget_gym_home
    • First observedget_habit_compliance
    • First observedget_ingredient_nutrition
    • First observedget_my_pending_org_invitations
    • First observedget_my_profile
    • First observedget_my_rating_summary
    • First observedget_my_ratings
    • First observedget_organization_access
    • First observedget_organization_coach_attendance
    • First observedget_organization_dashboard
    • First observedget_organization_earnings
    • First observedget_organization_hierarchy
    • First observedget_organization_profile
    • First observedget_organization_role_guide
    • First observedget_organization_seat_usage
    • First observedget_platform_rejection_trends
    • First observedget_prospect_stats
    • First observedget_recovery_signals
    • First observedget_training_split
    • First observedget_workout_plan_template
    • First observedinvite_client_to_organization
    • First observedinvite_coach_to_organization
    • First observedleave_organization
    • First observedlist_checkins
    • First observedlist_client_habits
    • First observedlist_clients
    • First observedlist_clients_needing_onboarding
    • First observedlist_diet_plan_templates
    • First observedlist_diet_plans
    • First observedlist_gym_class_sessions
    • First observedlist_gym_classes
    • First observedlist_invitations
    • First observedlist_my_organizations
    • First observedlist_organization_announcements
    • First observedlist_organization_clients
    • First observedlist_organization_coaches
    • First observedlist_organization_custom_roles
    • First observedlist_organization_locations
    • First observedlist_organization_payments
    • First observedlist_organization_plans
    • First observedlist_organization_prospects
    • First observedlist_organization_seat_tiers
    • First observedlist_prospects
    • First observedlist_sessions
    • First observedlist_subscriptions
    • First observedlist_workout_plan_templates
    • First observedlist_workout_plans
    • First observedmark_client_onboarding_step
    • First observedmark_gym_class_attendance
    • First observedmaster_habits
    • First observedreassign_client_to_coach
    • First observedrecent_habit_activity
    • First observedrecord_organization_coach_attendance
    • First observedrecord_plan_rationale
    • First observedremove_client
    • First observedremove_coach_from_organization
    • First observedremove_coach_location_assignment
    • First observedreschedule_session
    • First observedschedule_checkin
    • First observedschedule_session
    • First observedsearch_exercises
    • First observedsend_invitation
    • First observedsend_message_to_client
    • First observedsend_organization_announcement
    • First observedset_diet_plan_template_marketplace
    • First observedset_workout_plan_template_marketplace
    • First observedswap_diet_meal
    • First observedswap_workout_exercise
    • First observedtransfer_organization_ownership
    • First observedupdate_diet_plan
    • First observedupdate_diet_plan_template
    • First observedupdate_gym_class
    • First observedupdate_habit
    • First observedupdate_my_availability
    • First observedupdate_my_bank
    • First observedupdate_my_contact
    • First observedupdate_my_professional
    • First observedupdate_my_testimonials
    • First observedupdate_my_transformations
    • First observedupdate_organization
    • First observedupdate_organization_ai_guidelines
    • First observedupdate_organization_coach_role
    • First observedupdate_organization_custom_role
    • First observedupdate_organization_location
    • First observedupdate_organization_profile
    • First observedupdate_prospect_status
    • First observedupdate_workout_plan
    • First observedupdate_workout_plan_template
    • First observedwhoami

Publisher details

Operator
Trainzilla
Operator website
https://trainzilla.app
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a Trainzilla coach account (free trial, then Coach Pro subscription). Coaches whose trial or subscription has lapsed are blocked. Data access is scoped to the signed-in coach's own clients.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients to connect to a privacy-first, self-hostable workout planning and training log, allowing coaching agents to preview and apply program changes while accessing training data through OAuth-protected endpoints.
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to find coach-built training programs, coaching brains, races, gyms, classes and sports clinics, preview and build workouts with exercise demos, swap exercises, and plan around a sport or race. With OAuth it can also save workouts and programs, send coach notes to members, and read a member's logged history, planned sessions and lift progress.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables logging workouts, sets, routines, food, water, and macros through natural-language chat in any MCP client, with OAuth-based secure access and timezone-aware daily tracking.
    ISC
  • F
    license
    Not graded
    quality
    A
    maintenance
    Connects an athlete's TrainingPeaks account to AI assistants so they can query and create workouts with structured intervals, manage calendars, events, notes and equipment, log health metrics, and track CTL/ATL/TSB fitness trends and power PRs through natural language, using cookie-based authentication that requires no API approval. It also covers coach workflows such as athlete groups, workout libraries, and applying multi-week training plans.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.