Trainer Connect
Server Details
Manage students, workouts, appointments and payments through your personal trainer account.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 280 tools
Many tools overlap heavily: list_payments, list_student_payments, list_subscription_payments and list_charges are closely related, as are get_workout, list_workouts, get_program and list_programs. The generic api_read and api_write tools can perform almost any operation, making it hard to know when to use a specific tool versus the catch-all API.
The set overwhelmingly uses predictable snake_case verb_noun naming such as create_student, update_workout, and list_assessments. There are minor deviations like api_read/api_write (noun_verb) and a mix of list/get/search prefixes, but the convention remains readable and mostly consistent.
With 280 tools, the surface is far too large for practical agent selection and maintenance. Much of it could be consolidated around core resources plus list_operations/describe_operation/api_read/api_write; the current count creates excessive cognitive load.
Coverage is extremely broad: students, workouts, programs, diet plans, assessments, schedule, chat, check-ins, competitions, support and more have create/read/update/delete and restore paths. Notable gaps remain for financial write operations such as charges, refunds, subscriptions and withdrawals, which are explicitly left in the app.
Available Tools
280 toolsaccept_class_changeAccept a class changeBInspect
Accepts the student's request and moves the class to the time they asked.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Id from list_class_change_requests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world mutation. The description usefully adds the concrete side effect — the class is moved to the requested time — but says nothing about whether the move is reversible, what happens if the target slot is unavailable, or whether the student 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and effect, with no filler. Its only shortfall is that brevity here comes at the cost of the missing behavioral and usage detail noted above.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with no output schema, the description covers the core effect but omits failure modes, side effects on the existing class, and confirmation behavior. It is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter with 100% schema description coverage that already points to list_class_change_requests as the source. The description adds nothing about the id's semantics, so the baseline 3 for fully-covered schemas applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and effect: accepting a student's change request and moving the class to the requested time. This is clearly distinct from the sibling reject_class_change, though the description 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer this is the 'approve' half of the accept/reject pair. There is no explicit statement of when to use it versus rejecting or rescheduling, and prerequisites (e.g., request must still be pending) are unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accept_join_requestAccept a studentAInspect
Accepts a student who asked to train with the trainer; they get access to the app.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Id from list_join_requests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, so the safety profile is known. The description adds genuine value by disclosing the consequence — 'they get access to the app' — but omits reversibility (can access be revoked?), whether the student is notified, and what happens if the request is stale.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the outcome tacked on, so nothing is wasted. The clause 'who asked to train with the trainer' is slightly redundant given the tool is about join requests, but it is not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema, the description covers the action and its effect, and annotations cover the write semantics. Missing only niche details such as notification behavior or error cases on a non-pending request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema coverage, the schema already fully documents requestId and even points to list_join_requests as its source. The description adds nothing beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and object ('Accepts a student') plus the source of the request ('asked to train with the trainer'), which maps onto the join-request domain. It implicitly contrasts with reject_join_request by naming the affirmative action, though it never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the schema note 'Id from list_join_requests' hints at the list-then-accept workflow, but the description itself never says when to call this versus reject_join_request or what preconditions must hold (e.g., a pending request). No exclusions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
activate_diet_planPublish a diet planBInspect
Publishes a diet plan to the student (the previous active one is archived) and pushes them.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Id from list_diet_plans. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false), so the description isn't carrying that burden. It does add genuinely useful side-effect context: the previously active plan is archived on publish. However, 'pushes them' is opaque — it doesn't say whether that is a notification, a delivery failure mode, or anything the agent should surface.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler. The trailing 'and pushes them' is terse to the point of ambiguity, which is the only structural weakness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with annotations and no output schema, the definition covers the action and its archival side effect but leaves the 'push' undefined and says nothing about what is returned or what happens if publishing fails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single planId parameter is already documented as an id from list_diet_plans, so the schema does the work. The description adds nothing about the parameter, which is acceptable at this coverage level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (publishes) and resource (diet plan) plus the target (the student), so the action is unambiguous. It does not differentiate itself from near siblings like schedule_diet_plan or get_active_diets, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not guidance and names no alternative. The only routing hint, planId coming from list_diet_plans, lives in the schema rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_exercise_to_program_dayAdd an exercise to a training dayCInspect
Adds one exercise to a training day of a program: sets, reps (or a range), load, rest.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| reps | No | ||
| sets | No | ||
| dayId | Yes | Day id from get_program. | |
| notes | No | ||
| phase | No | ||
| weight | No | Load in kg. | |
| reps_max | No | Top of a rep range, e.g. 8-12. | |
| rest_seconds | No | ||
| edb_exercise_id | No | From search_exercises. | |
| duration_seconds | No | For cardio or isometric holds. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds only that exactly one exercise is inserted, with no disclosure of whether 'name' creates a freeform/custom exercise, what happens on duplicates, or whether ordering within the day matters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-front-loaded sentence with no filler; the parenthetical '(or a range)' is the only mild redundancy against the reps_max schema description. Efficient, though it spends its space on field enumeration rather than the ambiguity that matters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with no output schema and 45% schema coverage, the description is thin: it omits phase, duration/notes semantics, and the name-vs-catalog-id relationship the agent must resolve to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 45% across 11 parameters; the description names sets, reps/rep-range, load and rest, which covers five fields but leaves name, notes, phase, duration and edb_exercise_id unaddressed. Crucially it never explains how the required 'name' relates to the optional edb_exercise_id, which is the most consequential ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adds one exercise to a training day of a program') plus the payload fields it handles. It is clearly distinguishable from siblings like add_program_day or add_program_week, though it does not name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus update_program_day or apply_catalog_workout, and no prerequisites. The description gives no indication of whether the target day must already exist or how to obtain a dayId (that hint lives only in the schema).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_favorite_exerciseMark an exercise as favoriteAInspect
Adds a library exercise to the trainer's favorites, shown first when building workouts.
| Name | Required | Description | Default |
|---|---|---|---|
| edb_exercise_id | Yes | From list_library_exercises or search_exercises. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the write-but-not-destructive profile is already known. The description usefully adds that the write is scoped to the trainer's own favorites and changes ordering in workout building, but says nothing about idempotency or behavior when the exercise is already favorited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with the action front-loaded followed by the user-visible consequence; no redundant restatement of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-required-parameter mutation with no output schema and annotations covering safety, the essentials are present. What is missing is a note on repeat calls (already favorited) and confirmation that no response payload is returned, which keeps it below a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents its source (list_library_exercises or search_exercises). The description only reinforces that the ID refers to a library exercise rather than a custom/template exercise, adding marginal value beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (adds) and resource (a library exercise into the trainer's favorites) plus the downstream effect, so it is clearly distinct from list_favorite_exercises. It does not explicitly contrast with the read-side sibling or add_favorite_food, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'library exercise' and 'shown first when building workouts' implies the context (curating workout-building picks) but never states when to use this versus alternatives, nor any exclusion such as already-favorited exercises. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_favorite_foodMark a food as favoriteAInspect
Adds a food to the trainer's favorites, shown first when writing diet plans.
| Name | Required | Description | Default |
|---|---|---|---|
| food_id | Yes | From search_foods. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, so the non-destructive write profile is known. The description adds genuinely new behavioral context via the consequence (favorites rank first in diet plans), but says nothing about idempotency, permissions, or errors for an unknown food_id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, zero filler, and the effect ('shown first when writing diet plans') is packed into the same clause as the action. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-param, non-destructive write with full schema coverage and annotations, the definition covers purpose and user-visible consequence adequately. Only the idempotency/duplicate-handling question is left open, which is minor at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents its origin ('From search_foods'). The description adds no format, validation, or constraint detail beyond that, which matches the baseline for a fully documented single param.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (adds) and resource (a food to the trainer's favorites), plus the downstream effect of favorites appearing first in diet plans. That distinguishes it from list_favorite_foods and add_favorite_exercise without naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the stated benefit ('shown first when writing diet plans'), which hints at when a trainer would want this. There is no explicit when-not guidance, no mention of the listing sibling, and no note on whether re-adding an existing favorite is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_program_dayAdd a training dayCInspect
Adds a training day to a week of a program.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | E.g. "Treino B". | |
| weekId | Yes | Week id from get_program. | |
| day_of_week | No | 0 (Sunday) to 6. | |
| warmup_notes | No | ||
| cooldown_notes | No | ||
| estimated_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so safety is covered. But the description adds nothing about mutation behavior: whether an existing day on the same day_of_week is rejected or overwritten, whether days are reordered, or what identifier comes back. For a 6-param creation tool that is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, but the brevity is partly under-specification rather than discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema and only partial annotation coverage, the description should say more: which fields are optional, how day_of_week collisions behave, and what the tool requires (an existing week from get_program). As written, an agent must infer all of this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% – warmup_notes, cooldown_notes and estimated_minutes are undocumented anywhere. The description mentions no parameters at all, so it does not compensate for the coverage gap or clarify semantics like day_of_week indexing beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb ("Adds") and resource ("a training day") plus its placement ("to a week of a program"), which distinguishes it from add_program_week (adds a week) and add_exercise_to_program_day (adds an exercise to a day). It stops short of naming 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus update_program_day (existing day) or add_program_week. The only hint that weekId must come from get_program lives in the parameter schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_program_weekAdd a week to a programCInspect
Adds a week at the end of a program (or at position).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| notes | No | ||
| position | No | ||
| programId | Yes | Id from list_programs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive mutation, so the safety profile is covered. The description adds the meaningful behavioral detail that new weeks append by default or can be inserted at a position. It does not say whether inserting shifts existing weeks, what an empty new week contains, or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the key behavior front-loaded — no waste. Its brevity is efficient rather than padded, though it leaves the reader wanting the detail that the schema also lacks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 4-parameter mutation tool with 25% schema coverage and no output schema needs more from the description: what the created week looks like, position bounds/shifting behavior, and what the response returns. Only the placement behavior is addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% — only programId is documented (via the schema). The description alludes to 'position' but says nothing about 'name' (required) or 'notes', and gives no ordering/index semantics for position (0-based? 1-based? out-of-range behavior).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Adds a week') and clarifies the default placement ('at the end of a program') with the optional override ('or at position'). It does not distinguish itself from close siblings like add_program_day or update_program_week, so an 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.
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., program must exist, ownership), and no mention of alternatives such as update_program_week for modifying an existing week. The only implied usage cue is the append-vs-position note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_student_supplementAdd a supplement for a studentBInspect
Registers a supplement (or water) the student should take, with dose, times and days; the student gets reminders.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes | ||
| notes | No | ||
| times | Yes | HH:MM list. | |
| dose_unit | Yes | g, mg, ml, scoop... | |
| studentId | Yes | The student_id from list_students. | |
| dose_amount | Yes | ||
| days_of_week | Yes | 1 (Monday) to 7. | |
| units_per_take | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation profile is covered. The description does add one genuinely non-obvious behavioral fact — the student receives reminders, i.e. a side effect outside the record itself. It stops short of duplicate handling, whether the regimen is recurring indefinitely, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the action front-loaded and no filler. The '(or water)' parenthetical earns its place by widening what can be registered, though the sentence tries to carry regimen facets and the reminder side effect at once.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter creation tool with no output schema, the description covers intent and one side effect but omits what is returned (e.g. the new supplement id), duplicate behavior, and edit-vs-create routing. Adequate to start a call, not sufficient to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 44%, so the description must compensate and does so only partially: 'dose, times and days' maps to dose_amount/dose_unit, times and days_of_week. It says nothing about the ambiguous units_per_take, the name/type pairing, or notes, leaving several required fields unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (registers) and resource (a supplement, or water, for a student) plus the regimen facets it captures (dose, times, days). It is clearly distinguishable from update_student_supplement and list_student_supplements by the create verb, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not guidance. An agent gets no signal on how this differs from update_student_supplement (editing an existing regimen) or when to check list_student_supplements first to avoid duplicates, and no prerequisites such as resolving studentId via list_students.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_readRead anything in Trainer ConnectARead-onlyInspect
Runs any GET operation from list_operations as the connected trainer and returns the same JSON the app gets: a student's assessments, anamnesis, diet plan, workout history and sessions, check-ins, chat messages, contracts, financial metrics, the exercise library and more. Same permissions as the app.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path with ids filled in, e.g. /v1/students/312/assessments. | |
| query | No | Query string parameters, e.g. {"search": "supino"}. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description adds real behavioral context beyond them: the call executes as the connected trainer and inherits the app's permission model ('Same permissions as the app'), and the response mirrors the app's JSON. Pagination, error behavior and rate limits remain undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the mechanism ('Runs any GET operation...') before the resource enumeration. The long list of data types is dense but earns its place by defining the tool's scope for an agent deciding whether it can serve a given read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and while the description says the response is 'the same JSON the app gets' plus example resources, it does not describe pagination, error shape, or how the query object maps onto the underlying endpoint. For a generic path-based passthrough with a nested query parameter, that leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters, giving a baseline of 3. The description adds meaning by naming the authoritative source for valid paths (list_operations) and by enumerating the kinds of resources reachable through it, which helps an agent construct a path rather than guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it runs any GET operation catalogued in list_operations and returns the app's JSON. The GET framing implicitly separates it from api_write, and it points at list_operations as the catalog of valid paths. It stops short of an explicit contrast with narrower sibling getters like get_student or get_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the path argument is drawn from list_operations, which is useful routing context. However it never says when to prefer this generic passthrough over the dedicated siblings (get_student, get_schedule, list_payments, search_exercises), which is exactly the ambiguity an agent faces here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_writeDo anything in Trainer ConnectADestructiveInspect
Runs any POST, PUT, PATCH or DELETE operation from list_operations as the connected trainer, exactly as the app would: edit or archive workouts, assign programs, log or edit a session, create assessments, diet plans and check-ins, send chat messages, cancel or move classes, update the public page, and more. Same permissions, plan limits and validation as the app; a 422 lists what is missing. It can notify students (push, e-mail) and some operations cannot be undone, so confirm with the person first. Charges, refunds, payments, subscriptions, plans and prices, coupons, tabs, withdrawals, bank details, password and account deletion stay in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON body with the fields from describe_operation. | |
| path | Yes | Path with ids filled in, e.g. /v1/workouts/5216. | |
| method | Yes | HTTP method from list_operations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the destructiveHint/openWorldHint annotations: it discloses that the same permissions, plan limits and validations apply, that a 422 enumerates what is missing, that operations can trigger push/e-mail notifications to students, and that some are irreversible and should be confirmed first. This is exactly the context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core capability and followed by the side-effect caveat and the exclusion list. Dense and every clause earns its place, though the long enumeration of example operations and excluded domains makes it a heavier read than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic escape-hatch write tool with three params and no output schema, it covers the discovery workflow, permission/validation behavior, error signaling (422), side effects, irreversibility, and scope boundaries. Nothing an agent needs before invoking it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by tying method/path/body to their source (list_operations for method/path, describe_operation for body fields), which tells the agent how to populate them rather than just what they are.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: runs any POST/PUT/PATCH/DELETE operation from list_operations as the trainer. The examples (archive workouts, assign programs, log sessions, send chat messages) and the explicit exclusion of payment/account operations make it distinguishable from api_read and the many single-purpose write siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent through list_operations and describe_operation before calling, and provides a concrete exclusion list (charges, refunds, subscriptions, plans, prices, coupons, tabs, withdrawals, bank details, password, account deletion) of things that must be done in the app instead. Both the when and the when-not are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_catalog_workoutGive a catalog workout to studentsCInspect
Copies a catalog workout to one or more students; they see it in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Id from list_catalog_workouts. | |
| day_of_week | No | ||
| student_ids | Yes | student_id values from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the useful effect note that students 'see it in the app' (a user-visible side effect), but says nothing about behavior when a copy already exists — relevant given the sibling tools list_workout_copies and sync_workout_copies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the verb front-loaded and no filler. It is efficient, though that brevity is partly the cause of the guidance gaps elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 output schema, the description omits what is returned or created per student, how duplicates are handled, and how day_of_week affects the copy. The agent is left guessing about the outcome of a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 67%; the two described fields just point at list_catalog_workouts and list_students. The description adds nothing about how day_of_week interacts with a copied workout (does it place the workout on a specific day?) — the one parameter that is undocumented in the schema and whose meaning is genuinely ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (copies) plus resource (catalog workout) and target (one or more students), which separates it from list_catalog_workouts and get_catalog_workout. It does not, however, distinguish itself from copy_program or sync_workout_copies, which are the closest functional siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states only what it does, never when to choose it over copy_program or sync_workout_copies, nor when not to use it. No prerequisites (must the workout be published? must students exist?) are given, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_all_workout_suggestionsApprove all changes of a studentAInspect
Approves every pending workout suggestion of one student at once, with one push.
| Name | Required | Description | Default |
|---|---|---|---|
| student_id | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the basic safety profile is covered. The description adds that the action is bulk and happens 'with one push,' but it does not clarify reversibility, what happens when no pending suggestions exist, or any permission requirements, so it adds only modest context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted text. It conveys the bulk scope and single-action nature immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter bulk approval tool with a fully documented schema and no output schema, the description is largely complete. It could add a note about behavior when there are no pending suggestions or what 'one push' entails, but nothing essential to invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the only parameter, student_id, is documented in the schema as coming from list_students. The description only says 'one student,' which does not add meaningful semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (approves), resource (every pending workout suggestion), and scope (one student at once). The phrase 'every ... at once' implicitly distinguishes it from the singular sibling approve_workout_suggestion, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly establishes the bulk-approval context: all pending suggestions for one student in a single action. It does not explicitly name approve_workout_suggestion as the alternative for individual approvals, but the intended usage is clear from the 'every ... at once' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_workout_suggestionApprove a workout changeBInspect
Approves a student's suggestion and applies it to the exercise.
| Name | Required | Description | Default |
|---|---|---|---|
| suggestionId | Yes | Id from list_workout_suggestions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is carried by structured fields. The phrase 'applies it to the exercise' usefully signals a mutation of the underlying workout, but the description says nothing about reversibility, notifications to the student, or what happens to concurrent suggestions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the action front-loaded and no filler. It is efficient, though so terse there is spare room that could have been spent on preconditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with a fully documented schema and annotations covering safety, this is minimally adequate. The gaps are the mutation's scope (what exactly is overwritten on the exercise) and side effects, which matter for a write tool even when no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented as an id sourced from list_workout_suggestions. The description adds no format, range, or validity information beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (approves) and resource (a student's suggestion) plus the effect (applies it to the exercise), which is far more informative than the title alone. It does not explicitly contrast with reject_workout_suggestion or accept_class_change, but the action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the approval semantics, and the schema note pointing at list_workout_suggestions gives the prerequisite discovery step. There is no explicit statement of when to approve versus reject, or of any precondition such as the suggestion still being pending.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_assessmentArchive an assessmentAInspect
Hides an assessment from the student's history without deleting it.
| Name | Required | Description | Default |
|---|---|---|---|
| assessmentId | Yes | The id from list_assessments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: the effect is visibility-scoped (student's history only) and non-destructive, which corroborates destructiveHint=false and readOnlyHint=false. It stops short of saying whether the assessment remains visible to the trainer/admin, whether the action is reversible via unarchive_assessment, or what permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, zero waste, with the critical constraint ('without deleting it') placed after the core action. Nothing to trim or reorder.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, non-destructive mutation with full annotation coverage and no output schema, the description is nearly sufficient. The only gap is not pointing at unarchive_assessment for reversal and not clarifying audience of the hidden state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema coverage is 100% ('The id from list_assessments'), so the schema already carries the load. The description adds no extra meaning about the id, format, or provenance, which is acceptable at baseline for a single fully-described param.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (archive/hide) and resource (assessment) plus the key scope distinction 'from the student's history without deleting it'. An agent can distinguish it from a delete or an update, though it never names the closest siblings (update_assessment, unarchive_assessment) explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer you archive instead of deleting when you want to keep the record. There is no explicit 'use this when... use X instead' guidance, no mention of unarchive_assessment as the reversal path, and no prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_student_to_memberAssign a student to a team memberAInspect
Makes a team member responsible for a student; null removes it.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. | |
| member_user_id | No | user id from list_team_members, or null. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only tell the agent this is a non-read-only, non-destructive, open-world write. The description usefully adds that passing null clears the existing assignment, which is real behavioral value beyond the annotations. It still omits whether re-assigning an already-assigned student silently overwrites the previous member or errors, and whether the operation is idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the core action front-loaded and the null case trailing as a qualifier. Nothing is wasted, though it is terse enough that some structural detail (reassignment semantics) is absent rather than merely trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with fully documented inputs and no output schema, the description covers the essential effect and the unassign case. It leaves out the outcome of reassigning a student who is already assigned to someone else, which is the main ambiguity an agent would face when calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining the semantic effect of the nullable member_user_id ('null removes it'), which the schema only describes as 'or null'. That added meaning about the null/clear behavior earns a point above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource: making a team member responsible for a student, which is a distinct relationship-assignment action not duplicated by any sibling (list_team_members and list_students only supply ids). It is clear but does not explicitly contrast itself with adjacent student/team operations like update_student or invite_student.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'null removes it' implies the unassign path, so an agent can infer both directions of use. However there is no statement of prerequisites (e.g. the caller must own the team), no mention of when to prefer this over other student-member operations, and no explicit 'do not use for X' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_assessment_to_studentAttach an assessment to a studentAInspect
Turns an assessment without a student (trial class) into that student's first assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| student_id | Yes | The student_id from list_students. | |
| assessmentId | Yes | Id from list_unlinked_assessments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare a non-read-only, non-destructive, open-world mutation. The description adds useful context that the assessment is a trial-class assessment without a student, but it does not disclose failure conditions, reversibility, or whether prior linkage is rejected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted text. It immediately conveys the state transition and the relevant domain context (trial class).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with full schema descriptions and annotations, the description covers the core operation adequately. But it leaves behavioral gaps around preconditions, side effects, and result expectations that an agent might need before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters and points to list_students and list_unlinked_assessments. The description reinforces that the assessment is unlinked and becomes the student's first assessment, but adds little parameter-specific syntax or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific transformation verb and names both the source assessment state (without a student, trial class) and the target student relationship. It is distinguishable from sibling tools like create_assessment and link_assessment_to_class, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when an assessment has no student and should become that student's first assessment. However, the description does not explicitly state when not to use it, what to do if the assessment is already linked, or which sibling tools handle related cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_chat_userBlock someone in the chatAInspect
Stops a person from sending messages to the trainer. Unblocking is in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| otherUserId | Yes | The other person's user id (student_id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds a genuine behavioral fact beyond them: the action is effectively one-way because unblocking happens in the app, not through MCP. It does not cover idempotency or what happens to existing message history, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the effect and followed by the unblock routing note; nothing is filler. The phrase 'in the app' is slightly vague about which surface, but the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with annotations and no output schema, the description supplies enough to invoke it correctly, and the unblock note covers the main follow-up question. Success/failure behavior and any permission requirements are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single otherUserId parameter is documented there as the student's user id, so the schema carries the burden. The description adds no format, lookup, or constraint detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The definition uses a concrete verb and resource combination ('stops a person from sending messages to the trainer') and states the direction of the block, which differentiates it from read-only siblings like get_chat_block_status. It stops short of naming that sibling explicitly, so the boundary must be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'Unblocking is in the app' usefully implies there is no complementary API tool, but there is no explicit when-to-use guidance, no mention of get_chat_block_status for checking current state, and no stated preconditions such as whether the target must already be a student.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_classCancel a classADestructiveInspect
Cancels a class; the student gets a push, like in the app. Confirm with the person first.
| Name | Required | Description | Default |
|---|---|---|---|
| appointmentId | Yes | Appointment id from get_schedule. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: the student receives a push notification and the effect mirrors the in-app action. It stops short of stating reversibility or failure behavior, which is what 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses, front-loaded with the action and followed by the side effect and the confirmation requirement. "Like in the app" is slightly loose but earns its place by anchoring the behavior to a known surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, single-parameter tool with full annotations and full schema coverage, the description covers what gets affected (student notified) and the pre-call safety step. No output schema exists, so unexplained return values are acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is already documented as "Appointment id from get_schedule", a useful cross-reference the description does not need to repeat. The description adds nothing about parameter meaning, so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource, "Cancels a class", which an agent can distinguish from reschedule_class or confirm_class. It never names those siblings explicitly, so differentiation is inferred 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Confirm with the person first" is a genuine usage precondition that tells the agent to verify the human before invoking. However, it gives no guidance on when to cancel versus reschedule_class or reject_class_change, so the alternative-selection decision is left unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_public_linkCheck a page addressBInspect
Tells whether an address (slug) for the public page is free. Saves nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Lowercase letters, numbers and hyphens. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
'Saves nothing' is useful behavioral context (the check does not reserve or persist the slug, so it cannot guarantee later availability), but it sits in tension with readOnlyHint=false, which declares the tool is not read-only. The description also says nothing about what a positive/negative result looks like or whether the check is authoritative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two very short sentences, front-loaded with the core question the tool answers and followed by the one behavioral caveat. Nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A single-parameter, no-output-schema tool is nearly fully covered by 'tells whether ... is free.' The one gap is the tension around side effects and what the returned answer looks like, but for this complexity level the description is close to sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already specifies the allowed character set, so the schema carries the parameter burden. The description only adds the framing that the slug is the public page address; it adds no format or constraint detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and object: tells whether a slug for the public page is free. An agent immediately knows this is an availability check, not a create/update. It does not explicitly distinguish itself from nearby siblings like update_public_profile or get_public_profile, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the natural reading is 'call this before setting a public page address.' No explicit when-to-use, when-not-to-use, or named alternative is given, so the 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.
check_student_emailCheck a student e-mailAInspect
Whether an e-mail already has an account in Trainer Connect, before inviting the student. Changes nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=false but leave readOnlyHint=false; the description's 'Changes nothing' supplies the crucial safety fact the agent needs (this lookup is side-effect free) despite the default read-only flag. It does not say what the tool returns or how a 'no account' case is expressed, which the agent must know to act on 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the check is stated first, the timing guidance second, the no-side-effects guarantee last. The fragmentary opening sentence is slightly awkward but wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should indicate whether the answer comes back as a boolean, found/not-found status, or a student record. As written, the agent knows what to ask but not how to interpret the response, which is a meaningful gap for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One required parameter with 0% schema description coverage, so the description carries the burden: it makes clear the input is an e-mail address of a prospective student. Nothing is said about format or validation, but the semantics are fully inferable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific behavior: testing whether an e-mail already has an account in Trainer Connect. It distinguishes itself from the invite flow by framing itself as a pre-check. It is slightly indirect (a 'Whether...' fragment rather than a verb like 'Check'), but the 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'before inviting the student' gives a concrete trigger point and implicitly points at invite_student/create_student as the follow-up action. No explicit when-not or edge-case handling is given, but the calling context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comment_feature_requestComment on an ideaCInspect
Adds a comment to an idea.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| ideaId | Yes | Id from list_feature_requests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is known without the description. The description adds nothing beyond that: it does not say what is returned, whether the comment is publicly visible, whether the idea must already exist, or any length/permission constraints on posting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero filler and the verb-action front-loaded. It is efficient, though the 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple two-parameter mutation with no output schema, so the definition is minimally sufficient — annotations carry the safety profile and the schema carries the parameter names. Still, for a write tool the description should confirm the effect (comment is posted to the idea identified by ideaId) and whether it is publicly visible; that omission leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: ideaId is documented at the schema level while body is bare but self-explanatory in meaning. The description contributes no parameter detail at all, so the baseline of 3 applies — adequate, with the residual gap being content/length constraints on the comment body.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adds a comment to an idea'), which is clearly distinguishable from vote_feature_request, suggest_feature, and get_feature_request in the sibling list. The only weakness is terminological drift: it says 'idea' where every sibling uses 'feature_request', so the agent must infer they are the same object.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus adjacent tools (vote_feature_request, suggest_feature, get_feature_request, list_feature_requests) appears anywhere in the description. The only routing hint in the whole definition lives in the schema ('Id from list_feature_requests'), not in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_classConfirm a classAInspect
Accepts a class a student booked that is waiting for confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| appointmentId | Yes | Appointment id from get_schedule. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is a non-read-only, non-destructive, open-world operation. The description adds the prerequisite that the class is waiting for confirmation, which is useful behavioral context, but it does not describe the resulting state change, permissions, or external 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted text. It is appropriately sized for a simple one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation with full schema coverage and useful annotations, the description provides enough context to invoke the tool correctly. It is only slightly incomplete because it does not clarify how this differs from sibling tools that also accept or reject class-related requests.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the appointmentId parameter is already documented as coming from get_schedule. The description does not add any further meaning about the parameter, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: accepting a student-booked class that is awaiting confirmation. It is clear enough for an agent to understand the action, but it does not explicitly distinguish this from nearby siblings such as accept_class_change or reject_class_change.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'waiting for confirmation' implies the condition under which this tool applies, giving basic usage context. However, it does not state when not to use it or name an alternative sibling for change-request scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_diet_planCopy a diet planAInspect
Copies a plan or template to a student (student_id), or saves it as a template without student_id.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| planId | Yes | Id from list_diet_plans or list_diet_templates. | |
| student_id | No | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation profile is known. The description adds that omitting student_id yields a new template — a useful non-obvious side effect — but says nothing about what gets duplicated, whether the copy is independent of the source, or the result payload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the verb and both modes, with zero filler. Nothing could be cut without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter copy operation with no output schema, the description covers the essential decision (target student or template) and the source lookup is documented in the schema. Missing is any statement of what the tool returns (e.g., the new plan id) and the role of title, which matters for a mutation call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the source parameter (planId) plus student_id are already documented in the schema. The description clarifies the semantic effect of student_id (target student vs. template mode), but the title parameter has no description anywhere and is never mentioned, leaving one of three parameters undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (copies) and resource (diet plan/template) and crisply distinguishes two operating modes based on the presence of student_id. It does not name the sibling tools it competes with (copy_program, schedule_diet_plan, create_diet_plan), so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear, actionable rule: pass student_id to copy to a student, omit it to save as a template. That is real usage guidance for the branch point an agent faces. It doesn't say when to prefer this over schedule_diet_plan/activate_diet_plan or create_diet_plan, so no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_programCopy a training programAInspect
Duplicates a program, for another student (student_id) or as a new template (without student_id).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of the copy. | |
| programId | Yes | Id from list_programs. | |
| student_id | No | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so safety is already covered. The description usefully explains the template-vs-student branch, but says nothing about what content is duplicated (days, weeks, exercises), whether the copy inherits published state, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no filler, and the branching condition is front-loaded right after the verb. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a 3-parameter mutation with no output schema, but incomplete in ways that matter for calling it correctly: what gets copied, whether the copy is draft or published, and default naming behavior are unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, yet the description adds real meaning: omitting student_id is what produces a template, which the schema's "The student_id from list_students" does not convey. The optional name parameter is left unexplained (e.g. default naming).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Duplicates") and resource ("a program"), and the same sentence distinguishes the two modes of the operation. An agent can tell this apart from create_program (new program) 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear selection rule tied to the input: pass student_id to copy for another student, omit it to create a new template. It stops short of exclusions or prerequisites, e.g. whether the source program must belong to the caller or be published.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
counter_propose_class_changeSuggest another timeBInspect
Answers a student's class change request with another time.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Id from list_class_change_requests. | |
| response_note | No | Message to the student. | |
| proposed_date_time | Yes | ISO 8601 with the -03:00 offset (Brazil time). | |
| proposed_duration_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, open-world, non-destructive mutation, so the safety profile is covered. The description adds the notion of responding to a request with an alternative time, but it doesn't explain what happens to the original request, whether the student is notified, or whether the request remains pending.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It is efficient, though its brevity contributes to the under-specification noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating workflow tool with no output schema, the description omits important context: the state transition of the request, whether a note is sent, and what happens after the counter-proposal. Annotations cover mutation safety, but the description does not fill the remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, with good descriptions for requestId, response_note, and the ISO 8601 requirement for proposed_date_time. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies given the relatively high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: answering a student's class change request with an alternative time. It clearly conveys a counter-proposal action, though it doesn't explicitly differentiate itself from close siblings like accept_class_change or reschedule_class.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus accept_class_change, decline_class, reject_class_change, or reschedule_class. The only implied context is that it applies to class change requests, with no exclusions or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_anamnesis_formCreate an anamnesis formAInspect
Creates a health questionnaire; send_anamnesis sends it to a student.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| fields | Yes | ||
| description | No | ||
| send_to_new_students | No | Send automatically to every new student. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, so the safety profile is given. The description usefully adds that creation does not itself send the questionnaire, but says nothing about whether the new form is immediately active (a toggle_anamnesis_form sibling exists) or how send_to_new_students changes that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clauses, front-loaded with the action, zero filler; the semicolon pointer to the sibling is efficient. It is, however, terse to the point of omitting things the agent needs, so it is concision at the edge of under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, a nested fields array and no output schema, the description does not tell the agent what is returned (crucially, the form identifier needed to call send_anamnesis) or how the field objects map to questions. For a create tool in a multi-step workflow, that is a substantial gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, and the description adds no parameter meaning at all: it never mentions title, the fields array structure, or that options are needed for select/radio/checkbox field types. The agent must infer the whole form-authoring contract from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Creates a health questionnaire") and explicitly separates itself from send_anamnesis, which is the only sibling that could be confused with it. An agent can tell create vs. send vs. list/get 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence "send_anamnesis sends it to a student" tells the agent that authoring and distribution are two steps, which is the key routing decision here. It stops short of stating when-not to use it or that existing forms should be modified with update_anamnesis_form instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_assessmentRecord a physical assessmentBInspect
Saves a new physical assessment for a student: weight, body fat, circumferences (cm), skinfolds (mm), blood pressure. Send only what was measured.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | YYYY-MM-DD. | |
| notes | No | ||
| hip_cm | No | ||
| chest_cm | No | ||
| waist_cm | No | ||
| height_cm | No | ||
| weight_kg | No | ||
| abdomen_cm | No | ||
| student_id | Yes | The student_id from list_students. | |
| left_arm_cm | No | ||
| systolic_bp | No | ||
| diastolic_bp | No | ||
| left_calf_cm | No | ||
| right_arm_cm | No | ||
| left_thigh_cm | No | ||
| right_calf_cm | No | ||
| muscle_mass_kg | No | ||
| right_thigh_cm | No | ||
| body_fat_percent | No | ||
| resting_heart_rate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the useful behavioral fact that unspecified measurements may be omitted rather than defaulted, but says nothing about what happens on duplicate dates, whether this appends to an existing assessment, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence plus a short imperative, with the resource and field list front-loaded and no filler. The efficiency is good, but the skinfold reference points at fields that don't exist in the schema, which slightly undermines the density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter mutation tool with no output schema, the description covers only a subset of the accepted fields and never states what happens on success or failure. Combined with thin annotations, an agent still lacks enough information to call this confidently across all parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and it partially does: it supplies units (cm for circumferences, mm for skinfolds) that the schema lacks entirely. But it omits half the parameters (height_cm, muscle_mass_kg, resting_heart_rate, notes, systolic/diastolic pairing) and even references skinfolds that have no corresponding schema property, leaving many fields undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Saves a new physical assessment for a student') and enumerates the measurement categories it accepts, so the agent knows exactly what this creates. It does not explicitly contrast with update_assessment or attach_assessment_to_student, though the create/update distinction is inferable from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Send only what was measured' gives real guidance on partial payloads, which is the main usage ambiguity for a 20-parameter tool with 2 required fields. However, there is no guidance on when to use this versus update_assessment for an existing record, nor on prerequisites such as the student already existing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkin_templateCreate a check-in questionnaireAInspect
Creates a periodic check-in (up to 20 questions); send_checkin assigns it to students.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| questions | Yes | ||
| send_time | No | HH:MM. | |
| frequency_days | No | Every how many days, 1 to 90. | |
| send_day_of_week | No | 1 (Monday) to 7. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so safety is largely covered. The description adds one valuable behavioral fact — the 20-question cap. It omits whether the template is created in draft or active state, whether it is immediately sendable, and any permission/quota requirements, which matters since openWorldHint=true suggests server-side 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler, front-loading the action and its key constraint before the routing hint. Nothing here could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 5 params, no output schema and openWorldHint=true, the definition is thin on what comes back — an agent doesn't know whether it receives a template ID needed downstream for send_checkin. Annotations and inline schema cover the rest, so this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%: send_time, frequency_days and send_day_of_week are documented inline, but the two required params (name, questions) have no schema descriptions. The description only contributes the question-count cap; it says nothing about name uniqueness, whether questions is ordered, or how send_time/frequency_days combine to define the period.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Creates a periodic check-in") plus a concrete constraint (up to 20 questions). It separates itself from send_checkin, the assignment sibling, but does not distinguish itself from update_checkin_template or create_anamnesis_form, which are also creation/edit surfaces for questionnaires.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause "send_checkin assigns it to students" implies the workflow split — create here, assign there — which is genuinely useful routing. However, it never says explicitly when to choose this over update_checkin_template or create_anamnesis_form, and there are no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_competitionCreate a challengeCInspect
Creates a challenge among students, with points per workout and per minute.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| end_date | Yes | YYYY-MM-DD. | |
| start_date | Yes | YYYY-MM-DD, today or later. | |
| description | No | ||
| points_per_minute | No | ||
| points_per_workout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation/safety profile is covered. The description adds only that scoring is per workout and per minute; it does not say whether students are auto-enrolled, whether the competition is global or scoped, or what limits apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the core action is front-loaded. It is efficient, though the brevity contributes to the missing usage and behavior detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 output schema, the description omits return information, side effects on students, and validation rules (start_date 'today or later' lives only in the schema). It is not sufficient for an agent to call this confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema coverage, the description partially compensates by naming the two scoring parameters (points_per_workout, points_per_minute). It says nothing about the optional 'description' parameter or the meaning of the required 'name', leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('creates a challenge among students') plus the scoring basis. However, it calls the resource a 'challenge' while the tool name and siblings (get_competition, list_competitions, invite_to_competition) use 'competition', which muddies identification. No differentiation from those siblings is given.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus invite_to_competition, list_competitions, or create_workout/create_program. Prerequisites (e.g., whether students must exist first or are invited separately) are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_diet_planCreate a diet planAInspect
Writes a diet plan with meals and foods for a student (student_id), or a template without it. It starts as a draft: activate_diet_plan publishes it.
| Name | Required | Description | Default |
|---|---|---|---|
| meals | No | Sending meals replaces every meal of the plan. | |
| notes | No | ||
| title | Yes | ||
| student_id | No | The student_id from list_students. | |
| target_kcal | No | ||
| target_fat_g | No | ||
| target_carbs_g | No | ||
| target_protein_g | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, destructive=false), the description discloses the draft lifecycle and the tool required to publish — genuinely useful state information. It says nothing about whether targets are validated, what happens to an existing plan, permissions, or the response payload, and the meal-replacement behavior appears only in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and followed by the lifecycle caveat. Nothing redundant; every clause adds decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter write tool with a nested meals array and no output schema, the description covers creation intent and publication state but leaves the bulk of the contract (targets, meal semantics, replacement behavior) to the schema. Adequate, but thin for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% on 8 parameters, so the description needs to carry more weight. It clarifies student_id as optional-with-consequence (template mode), but the four target_* parameters, notes, and meal structure get no meaning from the description at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A concrete verb plus resource ("Writes a diet plan with meals and foods") with the student_id/template distinction spelled out, which is more than a restatement of the title. It does not explicitly separate itself from update_diet_plan or copy_diet_plan, which an agent must infer from the create semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Or a template without it" states the condition for omitting student_id, and "It starts as a draft: activate_diet_plan publishes it" names the follow-up tool and the state the object lands in. No explicit when-not or prerequisites (e.g. student must exist, foods come from search_foods), 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.
create_equipmentAdd equipment to my libraryAInspect
Adds a piece of equipment the trainer uses (e.g. a machine of their gym) to their own library. Returns the existing one if the name is taken.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds a genuine behavioral trait beyond that structure: duplicate names do not error and do not create a second record, they return the existing one, which is effectively name-based idempotency the agent would otherwise have to guess. It does not say anything about which account/library context is written to or what the returned record contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, with the dedup behavior front-loaded immediately after the core action. Nothing is repeated from the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter creation tool with no output schema, the description covers what it does, where it writes, and the one surprising edge case. The remaining gap is the return value's shape: an agent can't tell from the description whether the response includes the equipment id it would need for a follow-up rename_equipment call, only that 'the existing one' is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter and 0% schema description coverage, the description has to carry the semantics, and it does add one important fact: 'name' is the identity/uniqueness key, so supplying an existing name resolves to that existing record instead of failing. It does not state constraints on the name (length, allowed characters, whether it must be unique only within the trainer's library, or how fuzzy the match is). Partial compensation, so a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete verb (adds) and resource (a piece of equipment) and pins the destination scope ('their own library'), which distinguishes it from catalog-oriented siblings like list_catalog_categories or search_exercises. It doesn't explicitly name rename_equipment or list_library_equipment as related tools, but the scope wording carries enough signal to pick it out of 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to their own library' implies when to use this rather than a catalog operation, and the duplicate note implies an agent does not need to pre-check existence. However, there is no explicit when-to-use/when-not statement or named alternative (e.g. 'use list_library_equipment first to check, use rename_equipment to change'). 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.
create_exercise_templateAdd an exercise to my libraryCInspect
Saves an exercise in the trainer's library, with instructions and optional video link.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| equipment | No | Ids from list_equipment. | |
| image_url | No | ||
| video_url | No | ||
| description | No | ||
| instructions | No | ||
| muscle_groups | No | Ids from list_muscle_groups. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this is a non-read-only, non-destructive, open-world write operation. The description adds that the saved exercise can include instructions and an optional video link. It does not explain creation side effects, duplicate handling, required permissions, or what is returned after saving.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no filler. It states the core action first and then adds relevant content details. It is concise, though perhaps too sparse for a seven-parameter creation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven parameters, low schema coverage, and no output schema, the description should carry more context. It does not explain required fields beyond the schema, how to obtain equipment or muscle-group IDs, what happens after creation, or how this differs from updating an existing exercise template.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29%, so the description needs to compensate for several undocumented parameters. It mentions instructions and video_url but does not clarify name, description, image_url, equipment, or muscle_groups; the complex equipment and muscle_groups parameters are only explained by their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: it saves an exercise in the trainer's library, with instructions and an optional video link. This is more specific than a tautology. However, it does not distinguish this create operation from sibling tools such as update_exercise_template or add_exercise_to_program_day.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for adding an exercise to the trainer's library, but it gives no explicit when-to-use guidance. It does not mention alternatives such as update_exercise_template for edits or add_exercise_to_program_day for assigning exercises to a program.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_foodAdd my own food or dishBInspect
Adds a food with macros per 100 g, or a dish from ingredients (macros are summed).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| fat_g | No | ||
| carbs_g | No | ||
| fiber_g | No | ||
| category | No | ||
| protein_g | No | ||
| sodium_mg | No | ||
| energy_kcal | No | ||
| ingredients | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive create with openWorldHint, so safety is covered. The description adds genuinely useful behavior not in the annotations: values are per 100 g, and dish macros are computed by summing ingredients. It omits what happens when both macros and ingredients are supplied, permissions, and whether the created record is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the creation mode front-loaded and no filler; the parenthetical about summed macros earns its place by explaining computed output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation with no output schema and zero schema coverage, the definition is thin: an agent still doesn't know the unit/format for category, whether macros and ingredients are mutually exclusive, or what identifier comes back. The two authoring modes it does describe are the most important omission it fixes, keeping it at minimum-viable rather than inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 9 parameters at 0% schema description coverage, the description carries the full burden and only partially meets it. It explains the per-100 g unit convention and the ingredients summing behavior, but says nothing about category, sodium_mg, fiber_g, portion_label, quantity_grams, or the required/optional split.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adds a food') and distinguishes two creation modes: a food described by per-100 g macros, or a dish composed from ingredients. It does not name the sibling it contrasts with (update_food for edits, search_foods for finding food_ids), so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The two-mode phrasing ('with macros per 100 g, or a dish from ingredients') gives an agent an implicit branch for how to call it, but there is no explicit when-to-use versus update_food instead of create, 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.
create_goalSet a goal for a studentBInspect
Creates a goal: workouts (number of workouts), frequency (per week), load (target kg in one exercise) or custom.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| title | No | Required for custom. | |
| end_date | No | YYYY-MM-DD. | |
| studentId | Yes | The student_id from list_students. | |
| start_date | No | YYYY-MM-DD. | |
| target_value | No | Required for workouts, frequency and load. | |
| exercise_name | No | Required for load. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the conceptual meaning of each goal type (e.g. 'frequency (per week)', 'load (target kg in one exercise)'), which the annotations do not provide, but it says nothing about duplicate handling, validation failures, or whether the goal is editable afterward.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the type meanings are packed into parentheticals rather than spread across paragraphs. Slightly dense as a fragment, but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a mutation that is not destructive, the description covers the type dimension adequately but omits relationship context an agent would need: how this differs from update_goal, whether goals can coexist, and what is returned on success. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so a baseline of 3 applies, but the description genuinely adds meaning the schema lacks: the enum members are undocumented in the schema, and the description defines each one (workouts = count, frequency = per week, load = kg on one exercise). It does not add anything about start_date/end_date semantics, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb plus resource ('Creates a goal') and immediately enumerates the four supported goal types, so an agent knows exactly what will be created. It does not differentiate itself from siblings like update_goal or set_weekly_target, which is the only reason 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.
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 versus update_goal, set_weekly_target, or list_student_goals, and no mention of prerequisites (e.g. that studentId must come from list_students) or what happens if a goal of the same type already exists. Usage is only inferable from the verb 'create'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gym_unitAdd a gym unitCInspect
Adds a unit (branch) to the gym. Only the account owner can.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| address | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds one genuinely useful behavioral fact beyond that - the account-owner-only authorization requirement - but says nothing about duplicate-name handling, limits on unit count, or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, zero filler. The terse fragment "Only the account owner can." is slightly clipped but still earns its place by adding an authorization rule.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no output schema and fully undocumented parameters needs the description to explain inputs and side effects, and it does neither. It covers purpose and authorization but leaves an agent unable to know what a valid call looks like or what comes back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters, so the description carries the full burden, yet it never mentions 'name' (required) or 'address' (optional) or any format constraints. The parameter meanings are only guessable from the property names themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (adds) and resource (a unit/branch of the gym), with the parenthetical clarifying what a "unit" means. It is clearly the create counterpart to the sibling list_gym_units, though it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this versus other setup tools, no prerequisites beyond the owner restriction, and no mention of related operations such as list_gym_units or how units relate to schedule slots. Usage is only inferable from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_holidayAdd a day offBInspect
Blocks a date in the trainer's schedule (vacation, holiday).
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | YYYY-MM-DD. | |
| name | Yes | E.g. "Férias". | |
| is_recurring | No | Every year. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that the effect is on the trainer's schedule rather than a global calendar, but does not say whether blocking is absolute, whether existing scheduled classes are cancelled or flagged, and what happens on overlapping dates or recurring dates across years.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the effect and scope front-loaded and no filler. It is efficient, though arguably too terse given the tool mutates scheduling state.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter create tool whose annotations already state the mutation and openness profile, and with fully documented parameters, the description covers what the tool does to the schedule. What is missing — conflict handling with existing classes and how a different managing trainer's view is affected — is useful but not required to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: date format YYYY-MM-DD, name example, and 'Every year' for is_recurring are all documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a concrete verb and effect ('blocks a date') plus the resource ('the trainer's schedule') and parenthetical examples tying it to vacation/holiday. It is clearly distinguishable from most siblings, but it never distinguishes itself from the closely related update_holiday or list_holidays, nor from create_schedule_slot, which also writes to the schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus alternatives such as update_holiday (modify an existing block) or create_schedule_slot. No prerequisites, no exclusions, no mention of what happens if a class is already scheduled on the date being blocked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meal_templateSave a meal templateBInspect
Saves a reusable meal (name, time and foods) to drop into diet plans.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | E.g. "Pré-treino". | |
| time | No | HH:MM. | |
| items | No | ||
| notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that the saved meal is a reusable library object, but says nothing about duplicate-name behavior, ownership/scope, or whether the created template is immediately usable in a diet plan.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the object being created is front-loaded. It is efficient but borders on under-specified given the nested items payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with a nested items array, four parameters and no output schema, the description covers the basic shape but not the item payload semantics (catalog food vs custom food, macro fields) or what identifier comes back for reuse. Annotations carry the mutation profile, but meaningful context is still missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description names three of the four top-level parameters (name, time, foods/items), which helps map intent. However it says nothing about the 'notes' field or about the item-level choice between food_id and custom_name, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb ('Saves') and a concrete resource ('a reusable meal'), and enumerates what the template holds (name, time, foods). It is clear what the tool produces, though it does not explicitly differentiate itself from create_diet_plan or update_meal_template 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to drop into diet plans' implies the intended workflow (build a reusable meal first, then reference it in a plan), but there is no explicit when-to-use, no mention of list_meal_templates/update_meal_template as alternatives, and no statement about prerequisites such as needing a food_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_muscle_groupAdd a muscle group to my libraryAInspect
Adds a muscle group to the trainer's own library. Returns the existing one if the name is taken.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds two facts not present in the annotations: writes go to the trainer's own library (ownership scope), and a duplicate name returns the existing record rather than erroring. That dedupe behavior is genuinely non-obvious and useful for an agent. It doesn't cover validation errors or response shape, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the action and scope are front-loaded and the duplicate-name rule follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter write tool with no output schema, the return contract matters, and the description only implies the return (the existing record on collision) without saying what a successful create returns. Annotations cover the safety profile, so this is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single 'name' parameter, so the description has to compensate. 'If the name is taken' does convey that the name is a unique key and that collisions are deduped, which is real added meaning, but nothing is said about format, trimming, or naming constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Adds') and resource ('a muscle group') plus scope ('the trainer's own library'), which separates it from rename_muscle_group, list_muscle_groups and list_library_muscles. It stops short of naming a sibling tool explicitly, so it lands just below the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The create intent is clear from 'Adds', and the duplicate-name behavior hints at when calling it is safe, but there is no explicit statement of when to prefer this over rename_muscle_group or list_muscle_groups. 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.
create_programCreate a training programBInspect
Creates a program (weeks with training days and exercises) for a student (student_id) or as a template without it. Weeks and days can also be added later.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| weeks | No | ||
| status | No | ||
| category | No | ||
| difficulty | No | ||
| student_id | No | The student_id from list_students. | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world write, so the safety profile is covered. The description adds the useful behavioral fact that the entire nested tree (program → weeks → days → exercises) is created in one call and that structure can be extended afterward. It says nothing about what is returned (e.g. a new program id needed for follow-on calls) or whether status defaults to draft.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource, with the mode switch immediately following. The parenthetical structure is dense but every clause carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter nested create with no output schema, the definition conveys the creation model but omits what the agent gets back and how status/difficulty affect the result. An agent can form a reasonable call from it, but would have to guess at downstream wiring (program id) and default status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14%, so the description carries most of the burden, yet it only explains student_id and the general weeks concept. The top-level parameters status (draft vs active), category, difficulty, and the program-level description field get no semantic treatment in either place, and the meaning of a draft program versus an active one is left entirely unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Creates a program") and clarifies the payload shape (weeks with training days and exercises) plus the two modes: student-bound via student_id or a standalone template. It does not distinguish itself from create_workout or the incremental add_program_week/add_program_day siblings, so an agent must infer which builder to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause "or as a template without it" gives a concrete rule for omitting student_id, which is real usage guidance. However, "Weeks and days can also be added later" only hints at the incremental alternative (add_program_week/add_program_day) without naming it, and nothing explains when to use create_program versus create_workout or copy_program.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_schedule_slotAdd a fixed weekly slotBInspect
Adds a recurring weekly class slot to the trainer's schedule, for a student or as a personal block without student_id.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| location | No | ||
| is_online | No | ||
| start_time | Yes | HH:MM. | |
| student_id | No | The student_id from list_students. | |
| day_of_week | Yes | 0 (Sunday) to 6. | |
| duration_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive write in an open-world domain, so the safety profile is handled. The description adds that slots recur weekly, but says nothing about overlap/conflict handling, permission requirements, or what happens when an identical slot already exists — relevant for a recurrence-creating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence stating what is created and the one branching semantic that matters. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Seven parameters at 43% coverage and no output schema mean the description should carry more weight. It covers the key student_id branch but leaves the time/day/duration semantics and conflict behavior unaddressed, which is enough for a basic call but not for confident use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43%, so the description needs to compensate and mostly doesn't. It explains only student_id (and its omission meaning), leaving day_of_week, start_time, duration_minutes, title, location and is_online with no extra meaning beyond the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adds a recurring weekly class slot to the trainer's schedule') and clarifies the two modes: for a student, or a personal block when student_id is omitted. It never names the nearest siblings (schedule_class, update_schedule_slot, list_schedule_templates), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The student-vs-personal-block distinction is implied usage guidance, but there is no explicit when-not or alternative. Nothing tells the agent whether one-off sessions belong in schedule_class instead, or how this relates to update_schedule_slot for later edits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_studentAdd a studentAInspect
Adds a student to the trainer's account, like "Adicionar aluno" in the app: the student gets an e-mail invite to install the app and see workouts. Name and e-mail are required; goal, weight, height, birth date and sex are optional. Respects the student limit of the trainer's plan.
| Name | Required | Description | Default |
|---|---|---|---|
| sex | No | ||
| goal | No | Goal, e.g. hipertrofia, emagrecimento. | |
| name | Yes | Student full name. | |
| Yes | Student e-mail (the invite goes there). | ||
| phone | No | Phone with area code. | |
| height_cm | No | Height in cm. | |
| weight_kg | No | Weight in kg. | |
| birth_date | No | YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/safe profile (readOnlyHint=false, destructiveHint=false), and the description adds genuinely new behavior: an e-mail invite is sent and the plan's student limit is enforced. It stops short of describing what happens when the limit is exceeded or what identifier is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and side effect are front-loaded in the first clause, followed by required/optional fields and the plan constraint. The app-UI analogy ('like "Adicionar aluno"') is a small amount of filler but does not obscure the core information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only high-level annotations, the description covers the mutation's side effects, required inputs, and a key constraint, which is close to sufficient for an agent to call it correctly. Missing details are the response shape and limit-exceeded failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so the schema already documents each field including formats like YYYY-MM-DD and the email invite target. The description mostly restates the required/optional split that the schema's 'required' array already conveys, adding little beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Adds a student to the trainer's account') and immediately characterizes the effect: an e-mail invite to install the app. It is clearly distinct from sibling creation tools like create_workout and schedule_class.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States a real precondition ('Respects the student limit of the trainer's plan') and which fields are required vs optional, giving the agent clear context for when the call will succeed. It does not, however, name alternatives such as get_student for lookups or say what to do when the plan limit is hit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_training_goalAdd a training goal optionAInspect
Adds a training goal (e.g. "Corrida de rua") to the options the trainer picks from.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world write, so the safety profile is covered. The description adds useful scoping context — that the goal becomes a selectable option in the trainer's picklist — but says nothing about duplicate-name handling, validation, permissions, or what is returned, which matters for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the resource, the effect, and a concrete example. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter create tool with annotations present and no output schema, the description covers the core intent but leaves gaps: whether an existing goal with the same name causes an error, and what the call returns (e.g., the created goal with its id for later rename_training_goal calls).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 partially does by giving an example ('Corrida de rua') that implies the parameter is a human-readable display label. It does not state constraints such as uniqueness, max length, or whether the name is user-visible/localized.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Adds a training goal') with a concrete example value ('Corrida de rua') and the qualifier 'to the options the trainer picks from', which clarifies this creates a catalog option rather than assigning a goal to a student. It does not name the near-siblings create_goal or list_training_goals explicitly, so differentiation is inferred 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer this is for adding a new selectable goal option, but the description never states when to use this versus create_goal, update_goal, or rename_training_goal. No prerequisites, no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workoutCreate a workoutAInspect
Creates a workout, assigned to a student (student_id) or as a template when student_id is empty, with its exercises: sets, reps (or a range with reps_max), load, rest, duration for cardio, notes. Exercises are matched to the Trainer Connect library by name so the student sees the demo video (or pass edb_exercise_id from search_exercises). For a weekly program, call it once per day with the same program name and day_of_week. The student is notified, like in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Workout name, e.g. "Treino A - Peito e Tríceps". | |
| program | No | Program/week name that groups the days, e.g. "Hipertrofia outubro". | |
| exercises | Yes | Exercises in order. | |
| student_id | No | student_id from list_students. Empty = template in the trainer's library. | |
| day_of_week | No | monday … sunday. | |
| description | No | Notes for the student. | |
| estimated_minutes | No | Expected duration. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description adds non-obvious side effects the annotations cannot express: the student is notified, and each exercise is matched by name to the Trainer Connect library so the demo video appears. It doesn't discuss failure behavior on unmatched names, but the added context is real.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that front-loads the core action and mode distinction, then layers weekly-program and exercise-matching guidance. Slightly packed, but every clause carries operational detail rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 7 params at full coverage, the description supplies the missing behavioral layer: notification side effect, the template-vs-student branch, and the multi-call weekly-program pattern. It omits error handling for unmatched exercise names, which is a minor gap for a create tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds relational meaning the schema lacks: reps and reps_max combine into a range, duration is for cardio, weight is load, and edb_exercise_id is an alternative to name-based library matching. This clarifies how the flat fields interact, which the schema alone does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a workout') and immediately distinguishes its two modes: assigned to a student via student_id, or a library template when student_id is empty. An agent can tell this apart from siblings like create_student or schedule_class 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage context: pass edb_exercise_id from search_exercises if the library match is wrong, and call once per day with the same program name plus day_of_week for a weekly program. It names the relevant sibling (search_exercises) but stops short of explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decline_classDecline a class bookingAInspect
Declines a class a student booked that is waiting for confirmation; the student is told.
| Name | Required | Description | Default |
|---|---|---|---|
| appointmentId | Yes | Appointment id from get_schedule. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive mutation. The description adds meaningful behavioral context beyond them: the student is notified and only pending bookings are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted text. The key action and state constraint appear immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation with annotations and full schema coverage, the description covers the action, precondition, and side effect. It does not mention return behavior, but no output schema exists and this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter with 100% schema description coverage, and the schema already says the appointmentId comes from get_schedule. The description adds no further parameter semantics, which is acceptable at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: declining a class booking that is waiting for confirmation. It clearly distinguishes the pending-confirmation state, though it does not explicitly name sibling tools like cancel_class or confirm_class.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage condition: the booking must be waiting for confirmation. It does not explicitly state when not to use it or name alternatives, but the condition is specific enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_operationSee the fields of an operationARead-onlyInspect
Shows what one Trainer Connect operation accepts: route parameters and the validation rules of each field (required, type, allowed values). Use it before api_write so the request is right the first time.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path from list_operations, with or without ids filled in, e.g. /v1/workouts. | |
| method | Yes | HTTP method from list_operations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine behavioral value by disclosing what the call returns (route params plus per-field validation rules), which matters because there is no output schema to explain the response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first states what is returned, the second states when to call it. Nothing is padded and the payload (fields and validation rules) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only introspection tool with full schema coverage, the definition covers purpose, timing and return content. With no output schema present, the description's explanation of returned validation rules fills the only real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are fully documented there, including the enum of HTTP methods and the path example. The description adds only a light restatement ('route parameters'), so the schema is doing the heavy lifting and the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: shows what one Trainer Connect operation accepts, enumerating route parameters and per-field validation rules (required, type, allowed values). This clearly separates it from list_operations (which enumerates operations) and from api_read/api_write (which execute them).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it — 'before api_write so the request is right the first time' — which names a sibling alternative and the condition selecting this tool. It stops short of stating when not to bother (e.g. trivial GETs), so it is clear context rather than 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.
find_trainersFind a personal trainerARead-onlyInspect
Find personal trainers listed in the public Trainer Connect directory (most are in Brazil; some are Brazilian trainers abroad), by specialty, name, city or state, and online or in-person. Specialties are written in Portuguese, e.g. "musculação", "emagrecimento", "funcional", "corrida", "hipertrofia". Returns up to 10 trainers with their public profile link. Contact details are never returned: the person talks to the trainer through the profile page.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Specialty, goal or trainer name, in Portuguese when possible, e.g. "emagrecimento", "musculação", "gestante". | |
| location | No | City and/or Brazilian state (name or two-letter code), e.g. "Campinas", "SP", "Rio de Janeiro". Leave out for online coaching, which works from anywhere. | |
| modality | No | online for remote coaching, in_person for sessions at a gym or at home. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, and the description corroborates the closed-world scope by calling it the public directory. It adds real context beyond the annotations: results are capped at 10, include a public profile link, and contact details are never returned because contact happens through the profile page. Pagination behavior beyond the cap is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: scope and facets first, then the Portuguese-language caveat, then return-shape and privacy behavior. No filler and no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-parameter search tool with no output schema, the description covers what it searches, what comes back (up to 10 results with profile links), what is deliberately withheld (contact details), and the domain quirk (Portuguese specialties, mostly Brazil). Nothing needed 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters including the Portuguese-language guidance and the online/in-person enum. The description's Portuguese specialty examples and Brazil-centric framing largely restate what the schema provides, so it sits at the baseline rather than adding new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (find personal trainers in the public Trainer Connect directory) plus the searchable facets (specialty, name, city/state, modality) and the geographic scope. An agent can distinguish it from the singular get_trainer sibling 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames this as a directory search with the criteria that drive it, and gives one concrete routing hint (omit location for online coaching). It never explicitly names get_trainer as the alternative for fetching a single known trainer, so the when-not condition is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_dietsSee active dietsARead-onlyInspect
Which students have an active diet plan and since when.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety behavior is covered. The description adds useful scope by specifying that only active diets are returned and that the start date is included, but it does not describe ordering, pagination, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It communicates the core query and the key returned attribute efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter read tool, the description is mostly complete: it tells the agent it returns students with active diet plans and since when. It could be stronger by mentioning response organization or ordering, but the annotations and lack of parameters keep the remaining burden low.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics for the description to clarify. The baseline for a parameterless tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific retrieval target: students with an active diet plan and the date since when it has been active. It is clear enough to distinguish from generic diet-plan listing tools, but it does not explicitly name how it differs from siblings such as list_diet_plans or get_diet_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives, and no exclusions. The word active implies a current-state query, but an agent must infer when to choose this over list_diet_plans, get_diet_plan, or get_diet_adherence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ai_creditsSee my AI creditsBRead-onlyInspect
AI credits left for workout, diet and assessment generation in the app. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so 'Read only' merely repeats structured data. It adds nothing about return cadence, whether values are live or cached, what happens at zero credits, or what the payload contains — the useful behavioral context is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the resource stated first. The trailing 'Read only' is redundant with the annotations and earns no place, but otherwise there is no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-output-schema tool the description must at least imply the shape of the answer. It says credits exist for three categories but not whether the result is a single total, a per-category breakdown, or a balance object, and it does not resolve overlap with the three sibling quota/statement tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (remaining AI credits) and scopes it to the three generation categories (workout, diet, assessment). However, it does not distinguish itself from near-identical siblings such as get_ai_credits_statement, get_assessment_ai_quota, and get_workout_ai_quota, leaving an agent guessing which of the four to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no exclusions. Given three sibling tools about AI quota/credits, the description should say when this current-balance tool is preferred over the statement or the per-domain quota tools, but it is silent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ai_credits_statementSee my AI credits historyCRead-onlyInspect
What used and added AI credits. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so 'Read only' in the description is a pure restatement rather than added context. Nothing is said about what a statement contains (rows, date range, pagination, totals) even though there is no output schema to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
At two short sentences it is certainly compact, but the first sentence is not well-formed English and the second is redundant with annotations, so the brevity comes at the cost of clarity rather than from tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there are no parameters and no output schema, the risk of a wrong invocation is low, but the description leaves the agent unable to tell what comes back or how this differs from get_ai_credits. A single clause on scope (e.g. 'itemized history of credit consumption, newest first') would close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline of 4 applies. It does not claim any filtering capability that would need explaining.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gestures at the resource (AI credit usage/additions, i.e. a credit ledger) but the phrasing 'What used and added AI credits' is grammatically broken and never names a verb. It does not distinguish this statement/history view from the nearby get_ai_credits, get_balance, or get_statement siblings, so an agent must guess which one returns the history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the alternative get_ai_credits (likely current balance/quota), and no indication of the period covered. The only signal is the title phrase 'credits history', which the agent has to interpret on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_anamnesis_formSee an anamnesis formCRead-onlyInspect
The questions of one anamnesis form.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | Id from list_anamnesis_forms. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only a marginal hint that the payload is the form's questions rather than answers or metadata, which is a small contribution for a tool with no output schema to explain the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is certainly short and has no wasted words, but it is an incomplete sentence rather than a front-loaded explanation. Conciseness here shades into under-specification rather than economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with full schema coverage and annotations, an agent still cannot tell whether the response contains question text, options, ordering, or the student's answers (which have a separate sibling). With no output schema, the description needed to state what comes back, and it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single integer formId whose schema text already points to list_anamnesis_forms as the id source. The description adds no further semantics, so the baseline 3 for fully documented parameters applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"The questions of one anamnesis form" is a noun fragment with no verb; only the title ("See an anamnesis form") supplies the retrieval intent. It does hint at scope (questions of a single form) but doesn't clearly separate it from siblings like list_anamnesis_forms or list_anamnesis_answers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 tool, no prerequisites, and no mention of when to use list_anamnesis_forms or list_anamnesis_answers instead. The only routing hint sits in the parameter schema ("Id from list_anamnesis_forms"), not in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_anamnesis_overviewSee anamnesis statusBRead-onlyInspect
One line per student with an anamnesis pending or answered.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real value by disclosing that output is one row per student and that the set is filtered to pending-or-answered anamneses, though it says nothing about ordering, volume, or what fields each line contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single eleven-word sentence with no filler, and the key scoping fact (pending or answered) sits at the end where it is easy to catch. It is efficient, though it reads as a fragment rather than a front-loaded statement of purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter read tool with no output schema, the description carries the burden of explaining the return value, and it only partially does so: it never says what a "line" comprises (student identity, status, dates). Adequate to call it, but incomplete for interpreting the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 is nothing the description needs to disambiguate. The implicit filtering to pending-or-answered is worth noting but does not correspond to a parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence describes the result shape ("one line per student") and the scope (anamnesis pending or answered), which conveys that this is a status overview. But the action verb is only implied by the tool name, and it never distinguishes itself from nearby siblings like list_anamnesis_answers or list_anamnesis_forms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives, even though list_anamnesis_answers and list_anamnesis_forms are obvious candidates for related questions. The agent must infer that this is the aggregate view while those are the detailed views.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_anticipation_limitsSee what I can anticipateARead-onlyInspect
How much of the future receivables can be anticipated now and the fee. Read only: anticipating is in the app.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false. The description adds that the actual anticipation operation happens in the app, which is useful beyond the annotations, but otherwise repeats the read-only nature and gives no permission, rate-limit, or response-shape details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core purpose (receivable anticipation limit and fee). The second sentence clarifies read-only scope and where the action lives, with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema read operation, the description covers what is returned (available anticipation amount and fee) and clarifies that it does not perform the anticipation. It could specify scope (e.g., per account or per student) but is otherwise adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. The description does not need to compensate for schema gaps, and the baseline for zero-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (future receivables anticipation limit) and what is returned (how much can be anticipated now and the fee). It implicitly distinguishes from an action tool by noting that anticipating itself happens in the app, though it does not explicitly name sibling tools like list_anticipations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Read only: anticipating is in the app' signals that this is a read-only check and not an action tool, which gives some usage context. However, it does not explicitly say when to use this versus alternatives such as list_anticipations or get_receiving_status, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assessmentSee an assessmentBRead-onlyInspect
One physical assessment with every measurement and the photos.
| Name | Required | Description | Default |
|---|---|---|---|
| assessmentId | Yes | The id from list_assessments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered externally. The description adds genuine value by disclosing the payload ('every measurement and the photos'), but nothing about photo format (URLs vs. binary) or size of the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short clause with zero filler, and the distinguishing element (a single assessment with all measurements) is front-loaded. It is a fragment rather than a sentence, which costs nothing in a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read with no output schema, the description is minimally adequate: it tells the agent it will receive measurements and photos. It does not explain the response shape or what happens when the id is unknown, which is the main remaining gap given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single assessmentId parameter is documented with its source ('The id from list_assessments'). The description adds no additional meaning about the identifier, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('One physical assessment') plus what comes back ('every measurement and the photos'), which clearly separates it from the list_* siblings. The retrieval verb is implied rather than stated, but no agent could read this as anything other than a single-record fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no named alternative such as list_assessments or get_latest_assessments; the only routing hint lives in the schema ('The id from list_assessments'), not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assessment_ai_analysisSee the AI analysis of an assessmentARead-onlyInspect
The latest AI analysis written for one assessment, if there is one.
| Name | Required | Description | Default |
|---|---|---|---|
| assessmentId | Yes | The id from list_assessments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a crucial behavioral constraint: 'if there is one.' This informs the agent that the tool may return no data if no analysis has been written for the assessment, which is valuable context not provided by the readOnly/destructive hints in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief and front-loaded, capturing the core function and the essential edge case (existence) in a highly concise manner without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the input (1 parameter) and the high clarity of the purpose, the description is functionally complete for triggering the tool. It only lacks detail on the format of the analysis, which would typically be found in an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 100%, the parameters are well-documented by the schema itself. The description does not add specific meaning or nuance to the 'assessmentId' beyond confirming it refers to the ID of a specific assessment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the function (retrieving AI analysis) and the target object (an assessment). While the name is highly specific, the description adds a layer of intent by specifying the 'AI analysis' aspect, making it clear what kind of data is returned compared to general assessment data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The definition offers almost no usage guidelines. It does not tell the agent when to choose this tool over general tools like 'get_assessment' or when the analysis is actually expected to exist, leaving the agent to rely solely on execution and error handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assessment_ai_quotaSee my AI assessment quotaBRead-onlyInspect
How many AI assessment analyses the trainer has left. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so 'Read only.' merely repeats structured data and earns no credit. The only added signal is that the quota belongs to 'the trainer' (caller-scoped), with no mention of units, reset periods, or whether the count is shared across students.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core quantity front-loaded and no padding. The trailing 'Read only.' is redundant against the annotations, costing a small amount.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A zero-param read tool is inherently simple, but there is no output schema, so the description ideally would describe the returned shape (remaining count alone vs. limit/used/remaining). As written, an agent knows what it asks for but not what it gets back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4; there is nothing for the description to disambiguate at the parameter level. The description stays consistent with the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (AI assessment analyses) and the exact quantity returned (how many the trainer has left), so the verb+resource intent is clear. It fails to differentiate from close siblings such as get_workout_ai_quota and get_ai_credits, which an agent could easily confuse with this one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative is named. With three nearby quota/credit tools in the sibling list, the agent is left to infer that this one is assessment-specific purely 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_autopilotSee autopilot actionsBRead-onlyInspect
What the app's autopilot did or suggests (reminders, follow-ups) for the trainer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the useful distinction that the payload mixes completed actions ('did') with pending proposals ('suggests'), which matters for how the agent interprets results. It says nothing about volume, pagination, or timeframe, but with annotations present the bar is lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is arguably too compressed rather than bloated — the 'did or suggests' ambiguity and lack of usage routing are gaps in content, not verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool this is close to sufficient, but with no output schema the description should indicate the shape of what comes back (list of items? counts? both actions and suggestions in one array?) and whether it is scoped to the calling trainer. Those details are left unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 document and the baseline of 4 applies. The description's parenthetical examples are the only qualifiers available and they are used adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (the app's autopilot actions) and clarifies with concrete examples (reminders, follow-ups) plus the scope 'for the trainer'. The verb is implicit in the tool name rather than stated, but 'what the app's autopilot did or suggests' is specific enough to distinguish it from the many get_* list/detail tools around students, workouts, and diet plans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus other summary tools such as get_student_notices or list_notifications, which could plausibly surface similar automated reminders. No preconditions, no exclusions, and no alternatives are mentioned; the agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceSee my balanceCRead-onlyInspect
Balance available and to receive in the trainer's wallet. Read only: withdrawals stay in the app.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint, destructiveHint=false, and openWorldHint=false already cover the safety profile, so the description only needs to add context — but "withdrawals stay in the app" is unclear and could be read as implying this tool touches withdrawals, which muddies rather than clarifies the read-only nature. It says nothing about what the returned balance represents, currency, or freshness. Not a direct contradiction, but the added sentence subtracts value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the opening fragment is grammatically incomplete and not front-loaded with a verb, and the trailing clause about withdrawals is ambiguous enough that it does not earn its place. Two sentences with one clear idea and one confusing one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explaining the return value, and it only partially does — "available" and "to receive" are named but never defined, and no currency, timestamp, or shape is given. Safety is covered by annotations, so the remaining gap is the output explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; the description correctly implies no scoping inputs are needed. There is no parameter ambiguity to resolve.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Balance available and to receive in the trainer's wallet" identifies the resource (wallet balance, split into available and pending) but is a sentence fragment with no verb, and it gives no signal to distinguish it from financial siblings like get_statement or get_monthly_closing. The gist is inferable, but the agent must guess at the boundaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus get_statement, get_monthly_closing, or list_payments. The only second sentence ("withdrawals stay in the app") is not usage guidance and does not tell the agent under what circumstances to reach for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalog_workoutSee a catalog workoutBRead-onlyInspect
One catalog workout with every exercise.
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Id from list_catalog_workouts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral detail beyond them: the response includes every exercise, i.e. full detail rather than a summary. It says nothing about behavior for an unknown id or duplicate ids.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clause with no filler and the scope qualifier front-loaded. It is arguably over-terse rather than padded, which is the right failure mode.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations and no output schema, the essentials are covered. Missing are any statement about error/not-found behavior or whether the exercise payload is paginated, which an agent would want when the record could be large.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is self-documenting with its provenance ("Id from list_catalog_workouts"), so the schema carries the load. The description adds no format or constraint details beyond what is already structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"One catalog workout with every exercise" identifies the resource (a single catalog workout) and its scope (all exercises included), which distinguishes it from the sibling list_catalog_workouts. The retrieval verb is only implied rather than stated, keeping it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use or when-not guidance, and names no alternatives. The only routing signal — the id comes from list_catalog_workouts — lives in the schema, not the description text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chat_block_statusSee if a chat is blockedCRead-onlyInspect
Whether the trainer blocked a person in the chat, or was blocked.
| Name | Required | Description | Default |
|---|---|---|---|
| otherUserId | Yes | The other person's user id (student_id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful context beyond that: the check is bidirectional (blocked by trainer or blocked by the other person), which an agent wouldn't know from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key scope point (both directions of blocking) is front-loaded. It is arguably slightly too terse rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple closed-world read with complete schema coverage and clear safety annotations, so little is needed. However, the description doesn't indicate the shape of the answer (boolean, status object, which direction is blocked), which matters for a status-query tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single otherUserId parameter (student_id) is fully documented in the schema. The description adds nothing about the parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (chat block status) and the bidirectional nature of the check, but it's phrased as a sentence fragment with an implied verb and never says what the tool returns. It also doesn't distinguish itself from the sibling block_chat_user, which an agent could easily confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives such as block_chat_user (the mutation) or read_chat. The agent must infer that this is the pre-check read counterpart to blocking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checkins_overviewSee check-ins statusARead-onlyInspect
Active check-ins of every student: who answered and who is late.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and a closed world, so safety is covered. The description contributes the scope constraint 'active' (not historical) and 'every student' (no filtering), but says nothing about result size, ordering, or whether the overview aggregates by student.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the scope qualifier 'Active' leads and the return content is stated immediately after the colon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the burden of explaining what comes back, and it does partially ('who answered and who is late'). The remaining gap is the time window that defines 'active' check-ins, which an agent would need to interpret the results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 description correctly implies no filtering inputs exist by saying it covers 'every student'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: 'Active check-ins of every student', plus the payload shape 'who answered and who is late'. This distinguishes it from list_checkin_answers (raw answer records) and list_checkin_templates by implication, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'who answered and who is late', which suggests a status-dashboard use case. There is no explicit when-to-use guidance, no exclusion of alternatives like list_checkin_answers, and no stated preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checkin_statusSee who answered a check-inARead-onlyInspect
For one check-in questionnaire: which students got it, answered or are late.
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | Id from list_checkin_templates. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, non-destructive, closed-world behavior, so the description only needs to add the payload shape — and it does by enumerating the three status buckets (received, answered, late). It says nothing about ordering, counts, or pagination, so it is useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero padding. It is slightly telegraphic (no explicit verb like 'returns'), but every word contributes information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description supplies the key missing piece: the shape of the result. It lacks detail on edge cases (no students assigned, template not found), but nothing essential to invoking it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema coverage, including a cross-reference to list_checkin_templates, so the schema carries the load. The description adds no further meaning about the id (e.g. scope or permissions), which matches the baseline 3 for fully documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (one check-in questionnaire) and the returned content (which students received it, answered, or are late), so an agent knows exactly what it gets. It does not, however, separate itself from close siblings like get_checkins_overview or list_checkin_answers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scoping phrase 'For one check-in questionnaire' implies this is the per-template drill-down rather than the aggregate overview, which hints at when to use it. There is no explicit statement of when not to use it and no sibling is named as an alternative, so the guidance remains inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checkout_funnelSee my sales page funnelBRead-onlyInspect
How many people opened the plan checkout, started and finished it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds no behavioral context beyond what is in the annotations—no auth requirements, rate limits, or data freshness. With annotations covering the basics, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is efficient and front-loaded with the core metric. It could be slightly more structured (e.g., explicitly stating return format), but it avoids unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description should ideally explain the return format (e.g., counts per stage, time range, plan scope). It conveys the essence but leaves gaps about the shape and context of the data. For a zero-param read-only metric, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline score of 4 applies. There are no parameter semantics to clarify, and the description does not need to compensate for missing schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific measurement: counts of people who opened, started, and finished the plan checkout. It identifies the resource and the stages, but does not differentiate itself from potential siblings like get_financial_metrics or get_public_profile_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no mention of prerequisites, and no exclusions. The description only states what data it returns, leaving usage implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_competitionSee a challengeCRead-onlyInspect
One challenge with participants and ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| competitionId | Yes | Id from list_competitions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description contributes a modest amount of extra context by indicating the response bundles participants and ranking data, which is not visible from the schema, but it says nothing about scoping, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no padding, but the brevity reads as under-specification rather than discipline. It is front-loaded only in the trivial sense that there is nothing else.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-resource read with full annotation coverage and a fully documented one-parameter schema, the definition is minimally sufficient. It partially compensates for the missing output schema by naming participants and ranking as contents, but omits any mention of not-found behavior or the id source.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter carries a clear description ('Id from list_competitions'), so the schema does the heavy lifting. The description adds no further meaning about the id beyond what is already documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'One challenge with participants and ranking' identifies the resource as a single competition and hints at the returned payload, but it never states the retrieval verb and gives no signal distinguishing it from list_competitions, list_student_competitions, or update_competition. The intent is inferable but not stated with specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites, and no pointer to list_competitions as the way to obtain a valid id (that hint lives only in the schema). An agent must infer the workflow entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contractSee a planARead-onlyInspect
One of the trainer's plans/contracts with its terms. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| contractId | Yes | Id from list_contracts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the tool returns the plan/contract 'with its terms' and that it is trainer-scoped, but 'Read only' largely repeats the annotation and there is no additional detail on errors, permissions, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler and the object of the tool is front-loaded. 'Read only' is redundant with annotations, but overall the text is tightly sized for a simple single-resource read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read with one fully documented parameter and rich read-only annotations, the definition is minimally adequate. However, because there is no output schema, the description does not explain what contract 'terms' include, nor does it describe not-found behavior or return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single required contractId parameter is already documented as coming from list_contracts. The description adds no parameter-specific syntax or meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as a single trainer plan/contract with its terms, using the singular 'One of' to distinguish it from a list. However, it does not explicitly name the retrieval verb or contrast with siblings like list_contracts or get_contracts_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the singular framing and the schema note 'Id from list_contracts' suggest retrieving a specific contract after listing. The description itself gives no explicit when-to-use statement, alternatives, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contracts_overviewSee my plans overviewCRead-onlyInspect
Totals per plan: active students, revenue per month. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, and the description's only behavioral statement, "Read only," merely restates that. It adds no context about aggregation scope, freshness of the totals, or what a caller should expect beyond the two named fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments, with the substantive content (the metrics) front-loaded and no filler. The trailing "Read only" is the one element that does not earn its place, since the annotations already carry it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description is the sole source of information about what comes back, and it names only two of the likely fields without indicating shape, grouping keys, or time window. That is enough to roughly understand the tool but not enough to predict its response confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; the baseline for a parameterless tool applies. The description does not misrepresent any inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the returned metrics (active students, revenue per month) aggregated per plan, which gives some sense of the tool's output. However, it states no verb and shifts the resource name from "contracts" in the tool name to "plans" in the description, and it does not differentiate itself from close siblings like get_financial_metrics, get_monthly_closing, or list_contracts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 tool rather than get_financial_metrics, list_contracts, or get_monthly_closing, and no prerequisites or exclusions are given. The agent must infer the use case entirely from the metric list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diet_adherenceSee diet adherenceBRead-onlyInspect
Percentage of meals the student checked in the last days, day by day.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back, 7 by default, at most 30. | |
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety and scope are covered structurally. The description adds the meaningful behavioral detail that results are a per-day series rather than an aggregate, but says nothing about empty-history behavior or how days with no check-ins are represented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with zero padding, and the key qualifier 'day by day' is placed at the end where it reads as the granularity note. It is efficient, though the fragment style leaves room for a sharper lead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a fully documented schema, complete annotations, and no output schema, the description conveys enough to call it correctly: what is measured and at what granularity. The only residual gap is the absence of any sibling routing, which is a usage concern rather than a completeness one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'days' (default 7, max 30) and 'studentId' fully documented in the schema. The phrase 'in the last days' loosely echoes the days parameter but adds no format or edge-case detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence describes the returned measure precisely (percentage of meals checked in, broken out day by day), so an agent knows what data comes back. But it has no verb naming the operation and never distinguishes itself from nearby siblings like get_checkins_overview, list_checkin_answers, or get_diet_plan, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for this tool versus the check-in or diet-plan siblings, and no prerequisites or exclusions. The agent must infer usage purely from the noun phrase 'diet adherence'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diet_planSee a diet planARead-onlyInspect
One diet plan with meals, foods, amounts and macros.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Id from list_diet_plans. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful context about what the returned plan contains (meals, foods, amounts, macros), which helps the agent understand the response despite there being no output schema. No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single short sentence with no wasted words, and it front-loads the key fact that this returns one plan and what that plan includes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 rich safety annotations and a fully documented parameter schema, the description is nearly complete: it states scope and the main return contents. It slightly lacks explicit routing guidance relative to list_diet_plans, but the schema supplies the id source.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the sole parameter planId is documented as 'Id from list_diet_plans.' The description does not add syntax or meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('diet plan') and scope ('One'), and lists the contents returned: meals, foods, amounts and macros. It is clear enough to distinguish this from sibling list_diet_plans by singular retrieval, though it omits an explicit verb like 'get' or 'retrieve'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'One diet plan' suggests fetching details for a single plan, and the schema's planId description points to list_diet_plans. However, the description itself does not explicitly say when to use this versus list_diet_plans or other diet-related tools such as get_diet_adherence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_digital_account_balanceSee my digital account balanceBRead-onlyInspect
Balance of the digital account. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so 'Read only' merely repeats structured data. The description adds no behavioral context such as whether the balance is live or settled, what currency is used, or whether any permissions are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the purpose in the first sentence. The second sentence, 'Read only,' does not earn its place because it duplicates the readOnlyHint annotation, but the overall structure remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with no output schema, the description is minimally adequate: it says what balance is returned. However, the crowded sibling set includes get_balance and get_digital_account_statement, and the description gives no clue about which one an agent should choose in a given situation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100%, so there is no parameter semantics burden on the description. Baseline 4 applies for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and attribute: the balance of the digital account. It is clear what the tool returns, but it does not distinguish itself from close siblings such as get_balance, get_digital_account_status, or get_digital_account_statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The only extra sentence, 'Read only,' is a safety property rather than a usage condition, and an agent facing siblings like get_balance must infer the distinction on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_digital_account_statementSee my digital account statementCRead-onlyInspect
Entries and exits of the digital account in a period. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | ||
| end_date | No | YYYY-MM-DD. | |
| start_date | No | YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so 'Read only' merely repeats structured data. The description adds nothing about defaults when start_date/end_date are omitted (all three params are optional), how the offset pagination behaves, or how results are ordered or capped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and no filler. It is efficient, though the second sentence is redundant with the annotations rather than carrying new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a financial statement tool with no output schema, three optional params, and pagination, the description is too thin: it does not describe the shape of returned entries, what happens with no date filter, or how paging works. An agent can guess the call but not the results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: the two date params carry YYYY-MM-DD format in the schema, but offset has no description anywhere. The phrase 'in a period' loosely maps to start_date/end_date but adds no syntax or semantics, and the pagination parameter remains entirely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource and its scope unambiguously: transaction entries and exits of the digital account over a period, which an agent can map to a statement-listing tool. It stops short of distinguishing this from close siblings such as get_statement, get_digital_account_balance, or list_cash_entries, and it uses a noun fragment rather than a verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over get_statement, get_digital_account_balance, get_digital_account_status, or the specialized list_digital_account_* tools. 'In a period' implies the date-range use case but never states it as a condition or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_digital_account_statusSee my digital accountARead-onlyInspect
State of the trainer's digital account (Asaas): approved, pending documents or not opened. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so 'Read only' restates structured data rather than adding to it. The real value it contributes beyond annotations is the enumeration of possible account states, which matters because there is no output schema — but it says nothing about auth requirements or what happens when the account was never opened.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the resource and then the possible values, with 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, no output schema, and annotations already covering the safety profile, an agent has nearly everything it needs: what the tool reads and what values to expect. Only the preconditions (account existence, trainer authentication) are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; the scope note ('the trainer's') implicitly confirms there is no account ID or filter to supply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('the trainer's digital account') with the provider named (Asaas) and enumerates the exact statuses returned (approved, pending documents, not opened). It is clearly distinguishable from balance/statement siblings by being a state check rather than a numeric or transactional read, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says nothing about when to call this versus get_digital_account_balance, get_digital_account_statement, or get_receiving_status. The only usage signal is the trailing 'Read only', which is guidance about side effects, not about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feature_requestSee an ideaCRead-onlyInspect
One idea for the app with votes and comments.
| Name | Required | Description | Default |
|---|---|---|---|
| ideaId | Yes | Id from list_feature_requests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds useful output context by saying the idea includes votes and comments, which matters because there is no output schema. It says nothing about permissions, pagination, or error behavior, so with annotations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence fragment with no wasted words, which is appropriately brief for a simple read tool. It is concise but lacks a clear verb and front-loaded action, so it is not fully structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full schema coverage and safety annotations, the definition is minimally adequate. It usefully discloses that votes and comments are included, but it does not explain the retrieval context or how it relates to list_feature_requests and the comment/vote siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single ideaId parameter is documented as 'Id from list_feature_requests.' The description adds no additional parameter meaning or format detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase rather than a verb: 'One idea for the app with votes and comments.' It identifies a single feature request and says the response includes votes and comments, and 'one idea' distinguishes it from list_feature_requests. However, the description itself does not state the retrieval action; the title 'See an idea' supplies that verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 in the description. The only routing hint is in the parameter schema ('Id from list_feature_requests'), not the description, and the siblings list_feature_requests, comment_feature_request, and vote_feature_request are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fee_settingsSee who pays the feesBRead-onlyInspect
Fee settings per payment method: platform and processing fees and whether the student or the trainer pays them. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | Gateway; the active one by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, and 'Read only.' merely repeats them, earning no credit. The phrase 'per payment method' does add useful shape information about how results are grouped, but nothing is said about behavior when provider is unspecified or how many methods are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and its contents — efficient overall. The trailing 'Read only.' spends a sentence on something the annotations already convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read with one optional parameter, the annotations cover the safety profile and the description covers the returned fields adequately despite there being no output schema. What is missing is only the relationship to fee-preview tooling and default-provider behavior, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% on the single optional provider parameter, so the baseline is 3. The description's 'per payment method' helps map that parameter to gateway concepts, but it adds no detail about the active-gateway default beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource and enumerates its contents (platform fees, processing fees, payer attribution) per payment method, so an agent knows exactly what data comes back. It falls short of a 5 because there is no verb framing and it never distinguishes itself from the closely related sibling preview_payment_fees.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus preview_payment_fees or the other financial getters (get_financial_metrics, get_balance). The only directive sentence, 'Read only.', is a safety restatement rather than usage guidance, and nothing says when to pass provider or what happens when it is omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_metricsSee my business numbersBRead-onlyInspect
Monthly revenue, recurring revenue, default rate, average ticket and churn. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description merely repeats 'Read only.' It does not disclose the reporting period, currency, freshness, aggregation level, or whether the metrics are scoped to a business/account.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the metric names. The trailing 'Read only' is redundant with the annotations, so the fragment does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the metric list is helpful, but with no output schema the description should clarify the time window, currency, and relationship to overlapping financial reporting siblings. It is adequate but leaves important scope questions unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter meaning, and the empty schema is consistent with the lack of inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific metrics returned (monthly revenue, recurring revenue, default rate, average ticket, churn), so an agent knows the tool's data scope. It does not explicitly differentiate this broad metrics view from sibling financial tools such as get_monthly_closing, get_balance, or get_statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many sibling financial tools, nor any prerequisites or exclusions. 'Read only' does not help an agent choose between similar reporting endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_free_slotsSee free time slotsBRead-onlyInspect
The trainer's free time slots on a date, for booking a class.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that results are the trainer's availability intended for booking, but leaves a real behavioral gap: there is no trainer parameter, so it never says whether 'the trainer' means the authenticated caller or how that is resolved. No mention of slot granularity or timezone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource front-loaded and zero padding. Slightly terse rather than verbose — the brevity is efficient but leaves the ownership ambiguity unresolved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, annotations cover safety and the schema covers the input, so very little is strictly required. However, nothing is said about the shape of the returned slots (start/end times, granularity) or whose availability is being read, which is the main gap an agent would hit when interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter's format ('YYYY-MM-DD') is fully documented in the schema. The description only restates 'on a date' without adding constraints such as timezone or whether past dates are allowed, so the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('free time slots'), plus the owner ('the trainer's') and the scoping input ('on a date'), which cleanly separates it from list-y siblings like get_schedule or list_live_sessions. It stops short of naming any sibling tool or explaining how it differs from get_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trailing phrase 'for booking a class' implies the intended use case, so an agent can infer this is a pre-booking availability lookup. There is no explicit when-to-use/when-not guidance and no reference to alternatives such as get_schedule or schedule_class.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gym_reportSee gym indicatorsBRead-onlyInspect
Gym indicators: active members, plans with access, revenue per month and check-ins at the door.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, covering the safety profile. The description adds value by enumerating the specific metrics returned (active members, plans, revenue, check-ins), but it does not disclose important behavioral details such as the time range for revenue, permissions required, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that lists the key indicators without any filler. It is appropriately sized for a simple reporting tool, though it could be slightly more structured (e.g., using a bullet list for readability).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description must convey the return values. It lists the indicators but omits critical details like the aggregation period (e.g., current month vs. all-time) and the response structure. For a reporting tool, this leaves some ambiguity about what the agent will actually receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so parameter semantics are minimal. The description does not need to explain parameters, and the baseline score of 4 is appropriate for a zero-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool returns specific gym indicators: active members, plans with access, revenue per month, and check-ins at the door. This clearly defines the resource and scope, but it does not differentiate this tool from similar siblings like get_financial_metrics or get_checkins_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention any context, prerequisites, or exclusions, leaving the agent to infer usage from the name and listed indicators alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invite_linkGet my invite linkARead-onlyInspect
The trainer's shareable link: a student who opens it signs up already linked to this trainer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the returned value is a shareable link and opening it causes a linked signup. It does not cover link permanence, expiration, or reusability, which keeps it below 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that explains both what the resource is and what it does. There is no filler, and every clause carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter read-only tool with annotations covering safety and no output schema, the description gives an adequate conceptual account of the return value (a shareable link) and its effect. Minor gaps remain around link format, lifetime, and whether it is single-use or permanent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; the baseline for a parameterless tool is 4. The description correctly avoids inventing inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the specific resource (the trainer's shareable invite link) and explains its effect: a student who opens it signs up already linked to this trainer. That is clear enough to distinguish it from siblings like create_student or list_join_requests, though it uses a noun phrase rather than a direct verb and makes no explicit sibling comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The stated effect implies the use case — sharing the link with a prospective student so they sign up attached to this trainer — but there is no explicit when-to-use/when-not guidance and no named alternative (e.g., create_student, list_join_requests). Usage is inferable rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_assessmentsSee latest assessment of each studentARead-onlyInspect
The latest assessment of every student at once. Use it to compare students or find who is due a new one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description contributes the aggregation semantics (one latest record per student), but leaves open how 'latest' is determined, whether students without assessments are omitted, and how large the payload can be.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the first delivers scope, the second delivers usage, with nothing redundant or buried. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full annotation coverage, the description is nearly complete: an agent knows it gets one latest assessment per student and why it would call it. The absence of any hint about return shape or missing-data handling is the only remaining gap, and there is no output schema forcing that detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline applies. The schema is a bare empty object, consistent with the description's claim that everything comes back at once with no filtering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get), resource (latest assessment) and scope (of every student at once), which implicitly separates it from get_assessment and list_assessments. It does not name those siblings explicitly, so the differentiation is inferred 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it to compare students or find who is due a new one' gives two concrete use cases that justify the batch scope. There is no explicit when-not or named alternative, so an agent must infer that single-student lookups belong to get_assessment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_leadSee a leadBRead-onlyInspect
One lead: contact, origin, status, notes and the first message.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | Id from list_leads. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description's added value is the return payload (contact, origin, status, notes, first message), which is useful since there is no output schema, but it says nothing about behavior when the id is invalid or about message truncation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single eleven-word fragment with zero padding, and the scope marker 'One lead' is front-loaded. It is efficient but slightly telegraphic rather than a well-formed sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A one-parameter read tool with full schema coverage and annotations needs little more, and the description supplies the otherwise-missing return shape. Only the failure/empty case and the first-message semantics are left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the leadId parameter already documents its provenance ('Id from list_leads'). The description adds nothing about the parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'One lead: contact, origin, status, notes and the first message' makes the resource and single-vs-list scope clear, and enumerates what comes back. It lacks a verb ('retrieve') and doesn't distinguish it from read_lead_chat, which plausibly covers the same message content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus list_leads (browse) or read_lead_chat (conversation), even though those siblings create genuine ambiguity around the 'first message' field. The only hint is indirect, via the schema's 'Id from list_leads'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_leads_statsSee my leads numbersBRead-onlyInspect
Leads by status and origin, and how many became students.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond that: it does not say whether counts are time-bounded, scoped to the caller's team, or what aggregation window applies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no filler, and the key information (grouping dimensions, conversion count) is front-loaded. It is a grammatical fragment rather than a complete statement, which slightly reduces clarity for negligible length savings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description is the only source of information about the return value, and it only sketches it ('leads by status and origin, and how many became students'). Field names, totals, and whether the shape is a flat list or nested map remain unspecified, so an agent can pick the tool but cannot anticipate its output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline of 4 applies. No parameter documentation gap exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (leads) and the two breakdown dimensions (status, origin) plus the conversion count to students, which tells an agent this is an aggregate stats tool rather than a list. It does not explicitly name the siblings it differs from (list_leads, get_lead), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives such as list_leads for raw records or get_lead for a single lead. The agent must infer from the noun phrase 'stats' that this is the overview/aggregation path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_exerciseSee a library exerciseBRead-onlyInspect
One exercise of the app library with instructions, muscles, equipment and video.
| Name | Required | Description | Default |
|---|---|---|---|
| exerciseId | Yes | Id from list_library_exercises. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real value by enumerating what comes back (instructions, muscles, equipment, video), which matters since there is no output schema. It does not say what happens with an invalid or stale exerciseId, which is the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence, front-loaded with the resource and followed immediately by the fields returned. Nothing is wasted, though the terseness is part of why usage guidance is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with a fully documented single parameter and no output schema, the description does its main extra job: telling the agent what the response contains. Only error/empty-result behavior is missing, which is a minor gap at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents its provenance ('Id from list_library_exercises'), so the schema carries the load. The description adds no interpretation of exerciseId beyond what the schema states. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (a single app-library exercise) and enumerates the payload it carries: instructions, muscles, equipment, video. That distinguishes it from list-style siblings by implication, but it never names a verb like 'fetch' or references list_library_exercises/search_exercises, so the sibling differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance and no exclusions. A user only learns this is the drill-down from the schema's parameter note 'Id from list_library_exercises'; nothing distinguishes it from search_exercises or list_library_exercises in the description text itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monthly_closingSee the monthly closingBRead-onlyInspect
Classes given, missed and make-up credits per student in a month.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | YYYY-MM, current month by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful content scope (per student, monthly, three credit categories) but says nothing about whether all students are returned, how large the payload is, or whether results are paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler and the key scope data front-loaded. It is efficient, though it reads as a noun phrase describing output rather than a verb-led statement of action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter report the definition is adequate, and it does sketch the returned metrics even though no output schema exists. It remains silent on result scope (one student vs. all students) and volume, which an agent would need to plan the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents the YYYY-MM format and the current-month default. The description's phrase 'in a month' merely echoes that, adding no new syntax or edge-case detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource and its contents (classes given, missed, make-up credits per student for a month), so an agent knows this is a monthly per-student class report. It does not, however, distinguish itself from nearby reporting siblings such as get_statement, get_balance or get_student_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no named alternative. The agent must infer from the name alone whether this is for billing closings, attendance review, or per-student summaries, and whether to prefer get_statement instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_accountSee my accountARead-onlyInspect
The connected trainer's account: name, e-mail, phone, language, appearance and the app settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful scope by naming the account fields returned, but it does not mention authentication requirements, permissions, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single efficient sentence with the account scope front-loaded and no filler. The field list is compact and the sentence does not waste space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only account getter with no output schema, the description is mostly complete because it enumerates the main fields returned. It could be stronger by clarifying the exact return shape or distinguishing this tool from get_my_profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain and the baseline is 4. The description lists account fields rather than input parameters, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource, the connected trainer's account, and enumerates several fields it covers. However, it is a noun phrase rather than a verb-led statement and does not distinguish this tool from siblings such as get_my_profile or get_public_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives no explicit guidance on when to use this tool versus alternatives like get_my_profile, update_my_profile, or get_public_profile. The only implication is that it reads the connected trainer's own account data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_profileSee my profileBRead-onlyInspect
The trainer's profile in the app (name, contact, specialties).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description's added value is enumerating the profile fields returned (name, contact, specialties), which is useful given there is no output schema, but it says nothing about privacy, ownership, or what happens for an unauthenticated/locale-shifted caller.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero padding, and the field list is front-loaded. It loses a point only because the sentence is a fragment lacking an actionable verb, making it read as a label rather than an instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the field enumeration is enough to know roughly what comes back. However, against a large sibling set that includes get_trainer, get_public_profile, and get_my_team_role, the description never clarifies that this is the caller's own record, which is the one ambiguity that matters here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to disambiguate on the input side, and the schema is fully self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (the trainer's profile) and lists the returned fields (name, contact, specialties), but it is a noun phrase with no verb and it drops the crucial 'my' scoping, saying 'the trainer's profile' rather than the authenticated trainer's own profile. It reads largely as a restatement of the name/title and does not distinguish itself from siblings like get_trainer, get_public_profile, or get_my_team_role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_trainer or get_public_profile, and no prerequisites or context are stated. The agent must infer from the name alone that this returns the caller's own profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_team_roleSee my role in the teamARead-onlyInspect
Whether the connected user is the account owner or a team member, and what they can do.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only what content is returned; it says nothing about behavior when the caller is not in a team, or about the shape of the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loading the answer the tool provides. It is a noun fragment rather than a full statement of action, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full annotation coverage, the description roughly covers what the agent needs: it names the returned facts. With no output schema, though, it leaves the return shape and the not-a-team-member case unexplained, which an agent would want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the baseline is 4. There is nothing for the description to compensate for on the parameter side.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource and returned content precisely: the connected user's role (account owner vs. team member) plus their capabilities. It is clearly distinct from list_team_members in substance, but the distinction is implied rather than stated, so an agent must infer it from the wording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'What they can do' implies the use case is permission/role checks before attempting other operations, but there is no explicit when-to-use statement, no prerequisites, and no mention of alternatives such as list_team_members or get_my_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_trainer_connect_planSee my Trainer Connect planARead-onlyInspect
The trainer's own Trainer Connect plan: active, trial, grace period and renewal. Read only: changing the plan is in the app.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by naming the four plan states that can be returned and by explicitly stating that mutations live in the app rather than in this API, preventing a misdirected write attempt.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the resource and its possible states front-loaded before the read-only caveat. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 whose annotations already carry the safety profile, the description supplies the one thing still missing — the set of plan states the response can carry. No output schema is needed given that enumeration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. No param claims are made or needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (the trainer's own Trainer Connect plan) and enumerates the states it returns (active, trial, grace period, renewal), so an agent knows exactly what comes back. The 'own' scoping differentiates it from account-wide or student-facing plan tools, though no sibling (e.g. get_subscription, get_contract) is named as the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States a boundary — 'changing the plan is in the app' — which tells the agent this tool is not the path for plan changes. However, it never says when to prefer this over adjacent reads like get_subscription or get_my_account, and no prerequisites or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_partial_workout_logSee a workout left halfwayBRead-onlyInspect
What the student already did in a workout that was started and not finished (sets, loads).
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Id from list_workouts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds the useful scope detail that only unfinished workouts return data and that output is sets and loads, but it does not say what happens when the workout is actually complete (empty result, error, or fallback).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the qualifying condition front-loaded and no padding. It reads as a fragment rather than a complete statement, which costs it a point but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explaining return values and only gestures at them with '(sets, loads)'. It omits whether exercise names, timestamps, or completion state are included, and does not cover the finished-workout case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter at 100% schema coverage, already documented as 'Id from list_workouts.' The description adds no further semantics about workoutId, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (the partial log of a started-but-unfinished workout) and states what it contains (sets, loads), which lets an agent distinguish it from get_workout, get_workout_session, or get_workout_log_health. It never names those siblings explicitly, so differentiation is inferred 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is only implied by the phrase 'started and not finished' – an agent can guess this applies to in-progress sessions, but there is no explicit when-to-use, no guidance on what to call for completed workouts, and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paymentSee a paymentARead-onlyInspect
One payment: amount, due date, status, method and receipt. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Id from list_payments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and non-destructive, so the 'Read only' clause is redundant. The genuinely additive part is disclosing the returned fields, which matters because there is no output schema. It stops short of covering not-found behavior or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no filler, resource front-loaded. The phrasing is slightly clipped ('One payment: ...') and leaves the verb implicit, trading a bit of clarity for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-record read with full schema coverage and read-only annotations, the description covers what comes back — which is the main gap given no output schema. Only edge behavior (missing payment, receipt format) is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema coverage, the schema already documents paymentId including its provenance ('Id from list_payments'). The description adds no format, range, or lookup guidance beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description makes clear that this returns a single payment and enumerates the fields the agent will get back (amount, due date, status, method, receipt), which distinguishes it from the bulk list_payments sibling. The retrieval verb is only implied by the name/title rather than stated, and 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.
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 implicit 'one payment' scope. The alternative (list_payments, list_student_payments, get_statement) is never named; the only routing hint is inside the parameter schema ('Id from list_payments'), not in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_programSee a training programARead-onlyInspect
One training program with its weeks, days and exercises.
| Name | Required | Description | Default |
|---|---|---|---|
| programId | Yes | Id from list_programs or list_student_programs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the description doesn't need to restate it. What it does add is the shape of the result — that weeks, days and exercises come back nested — which is valuable given there is no output schema. It stops short of noting depth limits, ordering, or behavior for an id that doesn't exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the payload description (weeks/days/exercises) is front-loaded. It is a noun phrase rather than a verb-led statement, which slightly weakens the framing but costs nothing in length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter fetch with full annotation coverage and no output schema, the description is nearly sufficient: it establishes the resource and the nested return structure an agent will receive. The remaining gap is the missing cue that list_programs must be called first to obtain an id, which the schema covers only implicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, and the schema already explains that programId comes from list_programs or list_student_programs. The description adds no further meaning about the identifier, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('One training program') and enumerates its embedded contents ('weeks, days and exercises'), which tells an agent exactly what a retrieval yields. It does not explicitly distinguish itself from list_programs or list_student_programs, so sibling differentiation is left to the schema's parameter note rather than the prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Using 'One ... program' implies the singular-fetch counterpart to the list tools, but the description never states when to use this instead of list_programs or list_student_programs, nor any preconditions such as needing a valid id. The only routing hint lives in the schema's programId description, not the tool description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_public_profileSee my public pageARead-onlyInspect
The trainer's public page (bio, specialties, photos, link) as students see it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the returned view is the student-facing public representation and lists the fields included, which is useful behavioral context beyond the annotations. It does not cover edge cases such as missing or unpublished profiles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the resource and parenthetically lists the returned fields. Every element earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, annotations covering safety, and no output schema, the description provides enough context by naming the resource and its constituent fields. It could go further by clarifying whether this reflects the live published state or whether an unpublished profile returns an error, but the core information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline case for a score of 4. The description appropriately does not invent parameter details and instead focuses on what the no-argument call returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (the trainer's public page) and enumerates its contents (bio, specialties, photos, link). The phrase 'as students see it' distinguishes this read-only public view from related profile tools, though it does not explicitly name siblings like get_my_profile or update_public_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'as students see it', suggesting this returns the publicly visible profile rather than the editable/private one. However, there is no explicit guidance on when to use this instead of get_my_profile, get_public_profile_stats, or check_public_link, leaving the agent to infer the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_public_profile_statsSee my public page visitsCRead-onlyInspect
Visits and contacts the public page got.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered and the description carries only the burden of explaining what is returned. It hints at two data categories but says nothing about the aggregation window, whether counts are totals or time series, or whether 'contacts' means contact-form submissions, leads, or messages — all of which matter for a stats tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the single sentence is ungrammatical and not front-loaded with an action verb, which impairs readability rather than delivering efficient structure. Brevity here reflects under-specification, not disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description is the only place an agent can learn what this tool returns, and it does not say whether the result is a total visit count, a breakdown by period, contact records, or a funnel. That gap leaves the return shape essentially unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline of 4 applies. Nothing is missing on this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a resource ('the public page') and two metrics ('visits and contacts'), but it uses no verb and is grammatically broken ('Visits and contacts the public page got'), making it read more like a label than a statement of what the tool does. It also fails to distinguish itself from close siblings such as get_public_profile and get_leads_stats, which plausibly overlap with 'contacts'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this instead of get_public_profile, get_leads_stats, get_checkout_funnel, or get_referrals. An agent must guess between several analytics-adjacent siblings with only this terse label to go on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_receiving_statusSee my receiving accountBRead-onlyInspect
Which gateway receives the students' payments and what is still missing to receive. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, and the trailing 'Read only.' merely restates that. The description does add one piece of value beyond annotations: it says the response covers payment-gateway routing plus outstanding setup requirements, which tells the agent what kind of state it is inspecting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the outcome stated first and no filler. Slightly awkward grammar prevents a 5, but nothing here is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple, parameterless read with no output schema, so the description needs to convey what comes back; it sketches the returned state (gateway identity and missing prerequisites) adequately. A fuller statement of the return shape would be needed only if the agent had to parse the response without the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description describes the payload ('which gateway receives the students' payments and what is still missing to receive') rather than a verb+resource action, and the phrasing is awkward. It does imply a read-only account-status query that is distinguishable from get_balance or get_my_account, but only by inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus the many nearby siblings (get_my_account, get_balance, get_digital_account_status, get_subscription, get_contracts_overview). The agent has to guess from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_referralsSee my referralsBRead-onlyInspect
Trainers and students the trainer referred, and the rewards.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the response includes referred trainers/students and rewards, but it does not clarify whether this is scoped to the current trainer, how rewards are represented, or whether results are paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is very short with no filler, which is good, but the single fragment is under-specified and does not front-load a clear operation. The terseness comes at the cost of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter read tool, the description covers the core data returned, and annotations cover safety. However, with no output schema, the description should more clearly explain the return shape or scope of 'rewards' and whose referrals are being returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics for the description to explain. The empty schema and 100% schema description coverage make this the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource — referred trainers/students and rewards — but it is a sentence fragment with no verb such as 'list' or 'retrieve.' An agent can infer the domain, but the exact operation is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 related siblings like find_trainers or list_leads. The description gives no usage context, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scheduleSee my scheduleARead-onlyInspect
Lists the trainer's classes and appointments between two dates (today and the next 7 days by default): date and time, student, type, status, place and notes. Times are in Brazil time (America/Sao_Paulo).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last day, YYYY-MM-DD. Default: 7 days after "from". At most 62 days after "from". | |
| from | No | First day, YYYY-MM-DD. Default: today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful behavior beyond that: the results are returned in Brazil time (America/Sao_Paulo), which matters for interpreting 'today' and any date filtering, plus an enumeration of the fields returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tightly-packed sentence: resource and scope first, defaults second, return fields third, timezone last. No filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 fields and pins down the timezone, and the input limits live in the schema. It is nearly self-sufficient; only a note on result volume or ordering is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'from' and 'to' fully documented including defaults and the 62-day cap. The description only restates the default window, adding no syntax or format meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lists') and resource ('the trainer's classes and appointments') with an explicit scope (between two dates), which distinguishes it from the write-oriented sibling schedule_class. An agent can identify this as the read path for schedule data 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The default window (today plus the next 7 days) is given, which implies the common usage, but there is no explicit when-to-use/when-not guidance or routing to alternatives such as schedule_class or get_trainer. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_eventsSee what happened in a sessionBRead-onlyInspect
Set-by-set events of a workout session (sets done, loads, pauses).
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Id from list_student_sessions or list_live_sessions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful data-granularity context (per-set granularity, includes pauses) but says nothing about ordering, volume, or whether events are paginated or truncated for long sessions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero filler, and the most distinctive information (per-set granularity) is front-loaded. Nothing redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the right thing by sketching the return payload (sets, loads, pauses), but it omits result ordering, expected size, and how this differs from get_workout_session. For a read tool with one trivial parameter, that is adequate but leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sessionId property documents its own provenance ('Id from list_student_sessions or list_live_sessions'), so the description has nothing to compensate for. It adds no format or validation detail beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (per-set events of a workout session) and enumerates the payload shape (sets done, loads, pauses), so an agent knows what comes back. It stops short of differentiating from close siblings like get_workout_session or get_student_live_session, which also return session-level data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of what the sessionId should come from (that hint lives only in the schema), and no indication of when to prefer get_workout_session or list_student_sessions instead. The agent must infer the calling context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statementSee my statementBRead-onlyInspect
Wallet statement: what came in and the fees. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, and the description's 'Read only' merely restates the first. It adds no new behavioral context such as which period the statement covers, whose wallet it is, or whether it is paginated — the open questions for a financial read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments with the content definition front-loaded and no filler. The only redundancy is 'Read only', which duplicates the readOnlyHint annotation rather than adding information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, non-destructive read with no output schema, the annotations carry the safety profile, but the description leaves ambiguity about the time window, currency and account scope of the statement, and how it differs from the sibling balance/payment tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is no parameter surface for the description to explain or omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource (wallet statement) and its contents (inflows and fees), which is more specific than the bare name 'get_statement'. However, it offers no differentiation from financial siblings like get_balance, list_payments or get_monthly_closing, so an agent cannot tell which one to reach for from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus get_balance or list_payments, and no mention of scope or prerequisites. 'Read only' is a safety property, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_studentSee a studentARead-onlyInspect
Gets one of the trainer's students: profile (goal, age, weight, height), the active workouts with their exercises, sets, reps and load, and the latest logged sessions with how many in the last 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| student_id | Yes | The student_id returned by list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false). The description adds genuine payload context, spelling out the sections returned (profile fields, active workouts with sets/reps/load, last-30-day session count) and the ownership scoping, which is not stated in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the resource stated first and the payload details following; every clause carries information. It is a long sentence, but not padded or repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return contents, which is the main thing an agent needs. What is missing is failure/edge behavior (unknown id, student not owned by the trainer) and whether results are paginated or capped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself documents that student_id comes from list_students, so the schema carries the parameter burden. The description only adds the scoping notion that the student belongs to the trainer, without adding format or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets one of the trainer's students') and enumerates the returned payload (profile, workouts, logged sessions). It is distinguishable from list_students by the singular 'one of', but never names or contrasts with the sibling that returns the collection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: fetch one student's full detail rather than a list. There is no explicit when-to-use vs list_students, and no prerequisite such as the student having to belong to the authenticated trainer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_student_ai_consentSee a student AI consentBRead-onlyInspect
Whether the student agreed to have assessments analysed by AI, and when.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. In the absence of an output schema, the description does add value by disclosing the return content (consent flag + timestamp), but it says nothing about the behavior when no consent record exists — null, default, or error — which is the main behavioral question for a lookup like this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
An eleven-word fragment with zero waste, and the key concept (AI consent for assessments) is front-loaded. It is terse to the point of being a sentence fragment, but nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read with no output schema, the description covers what the tool returns, which is the essential piece. It is still thin on edge cases (missing consent record, student outside the caller's scope) that an agent would want before relying on the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single studentId parameter is documented in the schema as coming from list_students. The description adds nothing further about the parameter, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact data returned — whether the student consented to AI analysis of assessments plus the timestamp — which is specific enough to distinguish it from siblings like get_student_health or get_student_summary. It is phrased as a noun clause rather than a verb+resource, so the 'retrieve' action is only implied by the name get_student_ai_consent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives (e.g., get_student or get_student_summary), and no stated prerequisites such as needing the student to exist in the caller's team. The agent must infer usage purely from the topic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_student_diet_contextSee what the app knows to write a dietARead-onlyInspect
The student summary the app's AI uses to write diet plans (age, sex, goal, restrictions), plus the AI quota left.
| Name | Required | Description | Default |
|---|---|---|---|
| student_id | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioural information: the payload bundles the AI quota alongside the profile fields, which an agent wouldn't expect from the name. It does not say what the quota unit means or what happens for a student with no diet context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence that front-loads the resource and appends the quota detail. No filler, though the phrasing 'the student summary the app's AI uses' is slightly roundabout for what is fundamentally 'returns the diet-plan context'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 must carry the return shape, and it does: four named profile fields plus a quota figure. The only real gap is that quota semantics (per what period, consumed by what action) are left vague, which matters for an agent deciding whether it can still generate a plan.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema coverage is 100% – the schema already states student_id is an integer sourced from list_students. The description does not add any meaning on top of that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource: the student summary used for diet-plan generation, enumerating its fields (age, sex, goal, restrictions) plus remaining AI quota. That distinguishes it from near-neighbours like get_student_summary, get_student_training_context, and get_diet_plan by framing it as diet-specific. It never uses an explicit verb like 'retrieves' but the content is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is only implied: 'the app's AI uses to write diet plans' hints this is the context to fetch before creating a diet plan, but there is no explicit instruction, no when-not condition, and no pointer to a sibling to use instead. An agent must infer the call site.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_student_healthSee a student health dataBRead-onlyInspect
Latest health summary synced from the student's watch or phone (steps, sleep, heart rate, weight).
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the bar is lower. The description adds one genuinely useful behavioral fact: the values come from a device sync and represent the 'latest' snapshot, implying freshness/staleness behavior. It does not say what happens when no device has synced or whether historical data is available, leaving the main behavioral question unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the key qualifier ('latest … synced') is front-loaded. It reads as a fragment without a leading verb, which is a minor structural weakness but costs no clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 helpfully enumerate the returned metric categories, which is the right compensation. However, for a health-data read it omits whether results are a single snapshot or a range, what an empty/no-device response looks like, and any units or time window, so an agent can't fully predict the payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single studentId parameter is documented in-schema with an explicit provenance pointer to list_students, so the schema does all the work. The description adds nothing about the identifier or its constraints; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (a student's health summary) and enumerates the metrics it contains (steps, sleep, heart rate, weight), so an agent knows exactly what it retrieves. It lacks an explicit verb (it reads as a noun phrase) and never distinguishes itself from near-neighbors like get_student_summary or get_students_activity, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus the many sibling student-read tools; the description is purely a content label. The one implicit cue is 'synced from the watch or phone,' hinting at wearable data rather than assessment or activity data, but the agent must infer that routing rule itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_student_live_sessionSee if a student is training nowBRead-onlyInspect
The workout session a student has in progress, if any.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so safety is covered. The description's one piece of added context is 'if any', which tells the agent the result may be absent when the student is not training — a genuinely useful behavioral hint, though the tool's response shape and null-vs-empty semantics remain unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero filler, and the qualifying condition ('in progress, if any') is front-loaded where the agent reads it first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read with annotations covering safety and no output schema, the description tells the agent what it returns and that it may be absent. Only minor gaps remain, such as what the session object or the no-session case actually looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter studentId is already documented with a cross-reference to list_students. The description adds nothing about the parameter, which is acceptable at this coverage level but contributes no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and scope: the workout session a student has *in progress*, which distinguishes it from historical-session siblings like list_student_sessions and list_recent_sessions. However, it never differentiates from get_workout_session or list_live_sessions, and it is phrased as a noun fragment rather than a verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many adjacent session-retrieval siblings (get_workout_session, list_live_sessions, list_student_sessions, get_session_events). The 'in progress' framing implies a use case, but the agent must infer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_student_noticesSee automatic notices to studentsBRead-onlyInspect
Which class notices the students get (new class, cancelled, status, time change).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds the notice categories, but does not disclose what the response contains or whether it reflects current settings versus historical notices.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single compact sentence that front-loads the resource and enumerates the relevant notice categories without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations covering safety, the description is close to adequate, but it leaves ambiguous whether the result is a list of notice types or actual sent notices, and does not differentiate read behavior from update_student_notices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the parameter semantics baseline is 4; there is nothing additional for the description to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (class notices) and lists the notice categories (new class, cancelled, status, time change), so an agent can infer it retrieves student notice settings. However, it is a sentence fragment without an explicit verb and does not clarify whether it returns configured notice types, sent notices, or settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites, and no mention of the sibling update_student_notices tool, which is the obvious alternative for changing notice settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_students_activitySee who trainedARead-onlyInspect
Days each student trained in the last 30 days, by student_id. Use it to find students who stopped training.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds the fixed 30-day lookback window, which is genuinely useful behavioural context, but says nothing about pagination, whether all students are returned or only active ones, or what a zero-activity student looks like in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: what it returns, then when to use it. Front-loaded with the payload and the time window, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the full burden of conveying the return shape for a 50-plus-sibling read API. It hints at the shape (per-student day counts) but leaves ambiguous whether the value is a numeric count or a list of dates, and whether inactive students appear at all.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero input parameters, so the baseline applies. The mention of "by student_id" is useful not as a parameter but as a statement about how results are keyed, compensating slightly for the absent output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Days each student trained in the last 30 days, by student_id" gives a specific metric, a fixed time window, and a grouping key, so the agent knows exactly what is produced. It does not explicitly differentiate itself from neighbours like get_student_summary or get_student_health, which is why 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it to find students who stopped training" supplies one concrete scenario, which is more than nothing. However, no exclusions or alternatives are named among many closely related read tools (get_student_summary, list_students, get_student), so the routing decision 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_student_streakSee a student streakCRead-onlyInspect
How many days or weeks in a row the student trained, and the weekly target.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds nothing behavioral beyond the annotations: it does not say whether the streak is computed live, whether it counts current versus longest streak, or how a student with no sessions is handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no padding, and the core subject (streak length) is front-loaded. It is slightly under-structured for a tool description, being a fragment rather than a complete statement of action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple single-parameter read with good annotations, so the bar is modest, but with no output schema the description should clarify the return shape, e.g. whether days and weeks are both returned and what the weekly target field represents. As written, the agent knows roughly what it gets but not its structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented as 'The student_id from list_students', which is a useful cross-reference. The description only mentions 'the student' generically and adds nothing beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource: a training streak measured in consecutive days or weeks, plus the weekly target. That is concrete enough for an agent to know what comes back. It is a noun phrase rather than a verb+resource statement and does not distinguish the tool from related reads like get_student_summary or get_workout_leaderboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives such as get_student_summary or get_students_activity, and no mention of prerequisites or companions like set_weekly_target. Usage is only inferable from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_student_summarySee a student summaryARead-onlyInspect
Summary of one student as the app dashboard shows it: active workouts, sessions, assessments, payments and the next class.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that the result is an aggregation across multiple domains, which is genuinely useful context, but says nothing about data scoping, freshness, cost, or behavior when a section is empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler, and the identity of the resource plus its contents are front-loaded. The colon list is dense but each item earns its place as a preview of the payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the return value and does so by enumerating the five content areas. That is sufficient for a single-parameter read, though it leaves open whether each section is always present or may be null.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter with 100% schema description coverage, and the schema's own note ('The student_id from list_students') already bins the semantics. The description adds nothing about studentId, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (one student) and enumerates the five domains the summary aggregates (workouts, sessions, assessments, payments, next class), which tells an agent this is a composite read rather than a single-domain fetch. It is clear but never explicitly contrasts itself with close siblings like get_student, get_student_health, or get_students_activity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'as the app dashboard shows it' implies the intended context — a consolidated overview instead of several targeted calls — but no when-to-use rule, prerequisites, or alternative is stated. An agent must infer that it should prefer this over stacking get_balance, list_student_sessions, and get_latest_assessments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_student_supplement_daySee a student supplements on a dayBRead-onlyInspect
Which supplements the student had to take on a date and which were taken.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | YYYY-MM-DD. | |
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered externally. The description adds value by disclosing that results include both assigned and completed supplements (adherence status), which the annotations do not convey. It says nothing about history depth, missing-day behavior, or empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no filler, and the day-scoping qualifier is placed up front. Minor grammar awkwardness ('a student supplements') slightly hurts readability but not length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey what comes back; it does partially by noting both required and taken supplements. It does not say whether a supplement absent from the date is omitted or flagged, nor the shape of the response. Adequate but with a clear gap for a 2-required-param lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: 'date' is documented as YYYY-MM-DD and 'studentId' points to list_students, so the schema carries the load. The description only implies that date scoping is the key parameter and adds no format or edge-case semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-resource pairing: it reports which supplements a student had to take on a given date and which were actually taken. That covers both the planned and completion aspects, which is more than a title restatement. It does not name or differentiate from the sibling list_student_supplements, 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.
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_student_supplements, which clearly covers the same supplement domain. The per-day framing is only implicit in the word 'on a date'. No prerequisites, no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_student_training_contextSee what the app knows to write a workoutARead-onlyInspect
The student summary the app's AI uses to write workouts: age, sex, goal, anamnesis, injuries and the last weeks of training with loads. Use it before writing a workout yourself.
| Name | Required | Description | Default |
|---|---|---|---|
| student_id | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnly/closed-world annotations already cover the safety profile, and the description adds real value by disclosing exactly which data categories come back (anamnesis, injuries, recent training loads). It omits any caveat about consent or data sensitivity, which matters here given a sibling get_student_ai_consent exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight clauses: what it returns, then when to call it. Front-loaded with the payload contents, with no filler. Slightly compressed phrasing ("the student summary the app's AI uses") costs a small amount of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the return payload and does so by enumerating fields. It doesn't indicate structure, granularity, or volume of the training history, which leaves minor ambiguity for a tool whose whole purpose is its return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and the schema already documents it fully ("The student_id from list_students"), so coverage is 100%. The description adds nothing about the parameter beyond the schema, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete resource and enumerates its contents: age, sex, goal, anamnesis, injuries, and recent weeks of training with loads. It is distinguishable from the many list_* siblings, though it never contrasts with near-neighbors like get_student_summary, get_student_health, or get_anamnesis_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it before writing a workout yourself" gives an explicit trigger condition tied to a concrete task. It stops short of saying when not to use it or naming the alternative summaries to pick instead when the task isn't workout authoring.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscriptionSee a subscriptionBRead-onlyInspect
One subscription: plan, price, period, next charge, signature. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Id from list_subscriptions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so 'Read only' merely restates structured data. The description adds value by naming the returned fields, partially compensating for the absence of an output schema, but says nothing about not-found behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Eight words, no filler, return fields front-loaded. Slightly telegraphic ('One subscription:' as a fragment) and 'Read only' duplicates the annotations, costing a little precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with full schema coverage, the field enumeration substitutes adequately for the missing output schema. Only the handling of a nonexistent subscription id is left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage, where the schema itself explains it is an id from list_subscriptions. The description contributes no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource ('one subscription') and enumerates what it returns (plan, price, period, next charge, signature), which distinguishes it from the list_* siblings. The retrieval verb is only implicit in the title ('See') rather than in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance: nothing tells the agent to pick this over list_subscriptions or list_student_subscriptions, nor what to do when the ID is unknown. The only routing hint ('Id from list_subscriptions') lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_anamnesis_answersSee the anamnesis answers of a subscriptionCRead-onlyInspect
What the student answered in the anamnesis of the plan. Id from list_subscriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Id from list_subscriptions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds no further behavior: nothing about what the answer payload contains, whether it's empty when no anamnesis was submitted, or how it relates to the form definition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and no filler. The second sentence, however, merely duplicates the parameter description already present in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A single required parameter and a clean annotation set mean the basics are covered, but there is no output schema and the description does not describe the shape of the returned answers, which is the main thing an agent would need to know to use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the description simply repeats the schema text ('Id from list_subscriptions') verbatim, adding no format, source-detail or edge-case guidance. Baseline 3 applies when the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (a subscription's anamnesis answers) and its scope, and the title supplies the verb 'see'. However, it never distinguishes itself from nearby siblings such as get_subscription_anamnesis_form, list_anamnesis_answers or get_anamnesis_overview, so an agent must still guess between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is where the ID comes from (list_subscriptions); there is no statement of when to call this versus the several anamnesis-related siblings, and no prerequisites or exclusions. 'of the plan' hints at context but doesn't tell the agent when this is the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_anamnesis_formSee the anamnesis form of a subscriptionBRead-onlyInspect
The anamnesis form a student must fill when joining a plan. Id from list_subscriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Id from list_subscriptions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, non-destructive, and closed-world, so the safety profile is covered. The description adds the domain context that this is the form a student fills when joining a plan, but says nothing about return shape or whether unpublished/toggled forms are included. With annotations carrying the behavioral load, this is an acceptable middle score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two very short sentences with the resource defined first and the ID source second. Efficient, though the second sentence duplicates the schema field rather than adding information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 should indicate what is returned, but it never clarifies whether the result is a form template, its fields, or a completed submission. For a read tool surrounded by near-identical siblings, that omission leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter already documents itself as "Id from list_subscriptions"; the description merely repeats that phrase. No added meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource (the anamnesis form tied to a subscription) and its domain role in joining a plan, so the agent knows what it fetches. It does not, however, distinguish this from the close siblings get_subscription_anamnesis_answers, get_anamnesis_form, or list_anamnesis_forms, leaving ambiguity about whether it returns form structure or submitted answers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is where to obtain the ID ("Id from list_subscriptions"), which is a prerequisite, not a when-to-use rule. Nothing tells the agent when to pick this over get_subscription_anamnesis_answers or get_anamnesis_form, even though those siblings overlap heavily.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_support_chatSee my support chatARead-onlyInspect
The trainer's chat with the Trainer Connect support, with the history.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description contributes only the extra detail that the full message history is returned; it says nothing about paging, ordering, or what happens when no chat exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key qualifier ("with the history") is placed at the end where it is still easy to scan. Minor awkwardness in "with the Trainer Connect support" is the only flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read with no output schema, the description should say roughly what comes back (a list of messages with timestamps/senders, or a single conversation object). "With the history" gestures at this but leaves the response shape and empty-state behavior unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline of 4 applies. Schema coverage is 100% and the empty object schema matches the parameterless nature of the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (the trainer's chat with Trainer Connect support) and adds that the full history is included, which tells an agent this is a read of a conversation rather than a single ticket. It does not explicitly distinguish itself from nearby siblings like get_support_ticket or list_support_tickets, so an agent still has 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the possessive framing ("the trainer's chat") suggests retrieving the current user's own support conversation. There is no statement of when to prefer this over list_support_tickets/get_support_ticket, nor any note that send_support_chat_message is the write counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_support_ticketSee a support ticketCRead-onlyInspect
One support ticket with every message.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | Id from list_support_tickets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description's only addition is that the full message thread is returned, which is useful but minimal — no mention of pagination, truncation of long threads, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Six words with zero waste, and the scope-defining detail ('with every message') is front-loaded. It is terse to the point of under-specification, but that is penalized elsewhere rather than for verbosity here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only single-record fetch with annotations and full schema coverage, the essentials are present. It still leaves gaps an agent might care about — whether the message list is complete or paginated, and how it relates to get_support_chat — which a single additional sentence could have closed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single ticketId parameter is fully documented in the schema, including where to obtain it ('Id from list_support_tickets'). The description adds nothing beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (a single support ticket) and adds that all messages are included, which goes slightly beyond the title. However, it contains no explicit verb and does not differentiate itself from nearby siblings like list_support_tickets or get_support_chat — the ticket-id linkage only appears in the schema, not the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides no guidance on when to use this tool versus list_support_tickets or get_support_chat. No prerequisites, no context, and no exclusions are stated; the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_support_unread_countCount unread support messagesARead-onlyInspect
How many messages from Trainer Connect support the trainer has not read.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful scope by specifying that the count is for unread Trainer Connect support messages, though it does not describe the return shape or whether the scope is chat, tickets, or both.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single, front-loaded sentence with no wasted text. The key scope (unread support messages) appears immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter schema, read-only annotations, and absence of an output schema, the description is nearly complete for a simple count operation. A minor gap is that it does not clarify whether the count covers support chat messages, support tickets, or both.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema semantics are not a concern; the baseline for no parameters is 4. The description does not need to explain parameter meaning in this case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific quantity and resource: the number of unread messages from Trainer Connect support. It is clearly distinct from siblings like get_support_chat or list_support_tickets, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: call it when you need an unread support-message count. However, there is no explicit guidance on when to use this instead of get_support_chat or list_support_tickets, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tabSee a tabARead-onlyInspect
One tab (comanda) with its items, payments and total. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| tabId | Yes | Id from list_tabs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so "Read only" merely restates them. The one added piece of value is the disclosure that the result includes items, payments and total, which is useful given there is no output schema, but nothing is said about permissions or missing/deleted tabs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what the tool returns. The "Read only" clause is mild redundancy against the annotations but costs almost nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers both the resource and the payload shape (items, payments, total). Only the relationship to list_tabs and any error behavior remain unstated, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema description coverage ("Id from list_tabs"), the schema already carries the semantics. The description adds nothing about the tabId, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"One tab (comanda) with its items, payments and total" gives a specific resource and even enumerates the return contents, which clearly separates it from the sibling list_tabs (singular vs plural). It stops short of naming list_tabs explicitly as the counterpart, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use statement. Usage is only implied by "One tab" versus the list-style siblings, and the routing hint ("Id from list_tabs") lives in the schema rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trainerSee a trainer's profile and plansARead-onlyInspect
Show the public profile of one personal trainer from the Trainer Connect directory: bio, specialties, where they work, online or in person, and the plans they publish with price and billing period. The person contacts the trainer or signs up for a plan on the profile_url page; this connector never books, pays or sends messages.
| Name | Required | Description | Default |
|---|---|---|---|
| trainer | Yes | The trainer id ("trainer" field) returned by find_trainers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful non-obvious context: this connector never books, pays or sends messages, so the agent should not expect any side effect or write path. It doesn't mention pagination or rate/visibility limits on the public profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, and front-loaded: the return contents come first, the action boundary second. Every clause earns its place by telling the agent what it receives and what it cannot do.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 returns, and it does so thoroughly (profile fields plus plan price and billing period). Combined with the explicit note that the profile_url page handles contact and signup, an agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is documented in the schema as the trainer id returned by find_trainers. The description adds no syntax, format or validation detail beyond 'one personal trainer', so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Show the public profile of one personal trainer from the Trainer Connect directory') and enumerates the concrete contents returned (bio, specialties, work location, online/in-person, published plans with price and billing period). The word 'one' implicitly distinguishes it from the sibling find_trainers, which searches the directory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use (retrieving a single trainer's public profile) and draws an explicit when-not boundary: booking, paying and messaging never happen here, they happen off-connector via profile_url. It stops short of stating the prerequisite that the trainer id must first come from find_trainers, though the schema covers that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workoutSee a workoutARead-onlyInspect
One workout with every exercise, sets, reps, load and rest.
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Workout id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe read (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds value by disclosing the returned payload contents (exercises, sets, reps, load, rest), which matters because no output schema exists. It omits behavior for a nonexistent workoutId, but is otherwise solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded fragment that enumerates the returned fields with zero filler. It is telegraphic rather than prose, but every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-entity read with full schema coverage and explicit safety annotations, the description covers what an agent needs: what is returned. Remaining gaps (not-found behavior, position relative to list_workouts) are minor for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema fully documents workoutId. The description adds nothing beyond implying the tool operates on a single identified workout; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"One workout with every exercise, sets, reps, load and rest" clearly identifies the resource (a single workout) and what it contains, distinguishing it implicitly from the plural list_workouts. It never names the sibling explicitly, but the singular framing plus detail enumeration makes the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the singular "One workout" – an agent can infer this is the detail-fetch counterpart to list_workouts and requires an id. There is no explicit when-to-use/when-not, no mention of prerequisites, and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workout_ai_quotaSee my AI workout quotaARead-onlyInspect
How many AI-generated workouts the trainer still has this period. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the 'Read only' sentence adds nothing structured data doesn't. The description does add useful domain context — the value is per-period, trainer-scoped, and about AI-generated workouts — but says nothing about the response shape or how the period boundary 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the quota semantics front-loaded and the safety note trailing. No filler, every clause carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A zero-parameter read tool with full annotation coverage needs little more, and the description names the metric and its period. It could be richer about the return value (a count versus an object), but for this tool's complexity it is nearly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema is fully self-describing at 100% coverage, so the baseline for a no-param tool applies. Nothing in the description conflicts with or needs to compensate for the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States precisely what the tool returns: the remaining count of AI-generated workouts the trainer has in the current period. This is a specific resource (workout AI quota), but the description does not distinguish it from siblings such as get_assessment_ai_quota or get_ai_credits, so an 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.
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, even though get_ai_credits, get_ai_credits_statement, and get_assessment_ai_quota are plausible competing calls. The phrase 'this period' implies period scoping but never defines it or when to prefer this tool over the credit endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workout_health_summarySee training heart rate and caloriesCRead-onlyInspect
Heart rate, calories and duration of the student's recent workouts, from the watch.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered structurally. The description adds one genuinely new fact — the data originates from the watch/wearable — but omits how many workouts 'recent' covers, whether values are aggregated or per-session, and what happens if no watch data exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short fragment with no wasted words, and the returned fields are front-loaded. However, the brevity stems from under-specification rather than tight editing — the sentence is too small for a tool whose scope (time window, aggregation) is ambiguous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey what comes back, and it only lists three metrics without saying whether the response is a per-workout list or an aggregate, what the 'recent' period is, or how the studentId scopes it. For a data-retrieval tool with zero output schema, this leaves material gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter includes a cross-reference ('The student_id from list_students'), so the schema carries the semantics. The description adds nothing about the parameter, which is acceptable at baseline but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the data fields (heart rate, calories, duration) and the source ('the watch'), so the resource is identifiable, but it is a noun phrase with no verb and no differentiation from close siblings like get_workout_log_health, get_student_health, or get_workout_session. An agent can guess it reads a health summary but cannot articulate why it beats those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 tool, no prerequisites, and no mention of the several overlapping siblings (get_workout_log_health, get_student_health, list_student_workouts). The only hint is 'recent workouts', which implicitly excludes other time windows but is not framed as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workout_leaderboardSee a workout rankingCRead-onlyInspect
Ranking of the students who did one workout (loads, time).
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Workout id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing further — no ranking metric definition, ordering, scope (all students vs. only finishers), or size limits, which are exactly the behaviors an agent would need to interpret a leaderboard.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler; nothing is redundant. It is front-loaded, though the '(loads, time)' parenthetical is too terse to earn its place as written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explaining what a 'ranking' returns — entry fields, ordering, how loads and time combine — and it does none of that. For a read tool whose entire value is its return shape, this is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema coverage is 100% ('Workout id.'), so the schema does the heavy lifting. The description adds no further meaning about what a valid workout id refers to or how it relates to the returned ranking, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as a ranking of students for a single workout, which distinguishes it from get_workout and get_workout_session. However, it is a bare noun phrase that largely restates the title 'See a workout ranking', and the parenthetical '(loads, time)' is cryptic rather than clarifying what is being ranked.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives such as get_workout_session, get_student_summary, or list_student_workouts. There are no prerequisites, exclusions, or context cues, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workout_log_healthSee heart rate of a finished workoutARead-onlyInspect
Heart rate and calories recorded by the watch for one finished workout.
| Name | Required | Description | Default |
|---|---|---|---|
| logId | Yes | Id from list_student_sessions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful context that the data comes from the watch and applies to a finished workout, but it does not disclose behavior for invalid IDs, unfinished workouts, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states what is returned, the data source, and the scope. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with full parameter documentation and annotations covering safety, the description provides enough context to call it correctly. The only minor gap is that return format or edge-case behavior is not described, but no output schema exists and the tool is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single logId parameter is fully documented in the schema as coming from list_student_sessions. The description does not add anything beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns heart rate and calories recorded by the watch for one finished workout. It is specific about the resource and scope, though it does not explicitly name or differentiate itself from the sibling get_workout_health_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for one finished workout' implies the intended use case, distinguishing it from aggregate or live-session tools. However, it never explicitly says when to use this versus alternatives like get_workout_health_summary or get_workout_session, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workout_sessionSee a workout sessionARead-onlyInspect
One workout session in detail: exercises done, sets, loads and timing.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Id from list_student_sessions or list_live_sessions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds real value by disclosing what the response contains: exercises done, sets, loads and timing. It does not mention error behavior for invalid session IDs, but for a simple read that is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that describes the object and its contents with no filler. Every phrase ('exercises done, sets, loads and timing') conveys concrete detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full annotation coverage and a documented ID source, this is close to sufficient. The described payload fields compensate for the absent output schema, though it could state what happens when the session ID is invalid or from another student.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sessionId description already names list_student_sessions and list_live_sessions as sources. The description adds no parameter details beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource ('One workout session') and enumerates the detail returned (exercises, sets, loads, timing). It implicitly contrasts with list tools by emphasizing 'in detail', though it never states the verb or names a sibling alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus list_student_sessions, list_live_sessions, or get_student_live_session. The only routing hint lives in the schema's sessionId description, not the tool description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workout_weeksSee the weeks of a workoutBRead-onlyInspect
Which weeks a workout is planned for (periodization), by the Monday of each week.
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Workout id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is carried structurally. The description adds one genuinely useful behavioral detail — that weeks are keyed by the Monday of each week — but says nothing about ordering or behavior when no weeks are planned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with zero filler; the core identity and the Monday-keying convention are both front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should carry return-value semantics; it gives the Monday key format but not ordering, empty-state behavior, or whether it returns dates versus week indices. Adequate but leaves real gaps for a tool whose entire purpose is its return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter at 100% schema description coverage, so the schema already documents workoutId fully. The description adds no parameter-level detail, which is acceptable given the coverage but earns only the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and question: which weeks a workout is planned for, with the parenthetical '(periodization)' anchoring the domain concept. It is clearly a read of week data for a workout, though it does not explicitly distinguish itself from set_workout_weeks or get_workout.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of the sibling set_workout_weeks as the mutation counterpart, and no preconditions (e.g., workout must be periodized). The agent must infer read-vs-write from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_studentInvite a student by e-mailAInspect
E-mails an invitation to sign up already linked to the trainer. Confirm the address with the person first.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| locale | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true and destructiveHint=false, so the bar is lower. The description still adds real context: an actual e-mail is dispatched outside the system, the resulting sign-up is pre-linked to the trainer, and the address should be verified beforehand. It omits whether invites can be re-sent, expire, or are rate-limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the core action is front-loaded and the safety caution follows. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, no-output-schema tool, the description covers the action and one caution. It leaves open what the response contains, what happens if the address is already invited or already a student, and the meaning of the locale parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only implicitly documents the required 'email' field via 'address' and says nothing at all about 'locale', whose five enum values (pt_BR, en, es, fr, de) an agent must infer control the invitation e-mail's language.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource: e-mails an invitation to sign up, and adds the key qualifier that the invite is already linked to the trainer. That distinguishes it from get_invite_link (retrieves a link) and create_student (creates a record), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers a precondition/caution ('Confirm the address with the person first') but no explicit when-to-use framing or alternatives such as create_student versus sharing an invite link via get_invite_link. Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_to_competitionInvite students to a challengeBInspect
Invites students to a challenge; they get a push.
| Name | Required | Description | Default |
|---|---|---|---|
| student_ids | Yes | student_id values from list_students. | |
| competitionId | Yes | Id from list_competitions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it as a non-destructive, open-world write, so the bar is lower. The description adds one genuinely useful side effect — invitees receive a push notification — but says nothing about idempotency, duplicate invites, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. However, it is terse enough that the lack of further detail reads as under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter write tool with annotations present and no output schema, the essentials (what it does, side effect) are covered. Missing the competitive edge cases an agent would want — duplicate invites, whether students must already be linked — keeps it at minimum viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both competitionId and student_ids documented as coming from list_competitions and list_students. The description adds no additional parameter meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (invites) and resource (students to a challenge/competition), mapping the title's 'challenge' to the competitionId parameter. It doesn't distinguish itself from the sibling invite_student, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this versus invite_student or create_competition, and no prerequisites such as needing a competition to already exist or the student being linked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_assessment_to_classLink an assessment to a classCInspect
Records that an assessment was done in a given class.
| Name | Required | Description | Default |
|---|---|---|---|
| appointmentId | Yes | Appointment id from get_schedule. | |
| assessment_id | Yes | The id from list_assessments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this is a non-read-only, non-destructive, open-world operation, so the safety profile is covered. The description adds only the bare meaning of 'records', and says nothing about idempotency, what happens if the link already exists, or whether the assessment must currently be unlinked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and no wasted words. It is efficient, though the brevity contributes to the missing behavioral detail rather than reflecting well-chosen compression.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation whose schema and annotations are fully populated, this is minimally adequate. It still leaves out the unlink/idempotency behavior and the relationship to attach_assessment_to_student, which 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters already document their source tools (get_schedule and list_assessments). The description adds no extra meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Records that an assessment was done in a given class.' However, it does not distinguish the tool from the very similar sibling attach_assessment_to_student, so an agent cannot tell the two apart from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given at all. Notably, the sibling list contains both attach_assessment_to_student and list_unlinked_assessments, which strongly imply prerequisites and alternatives the description never mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_library_videosAdd library videos to exercisesAInspect
Matches exercises of the trainer's workouts or programs that have no video to the library by name, so the student sees the video. Returns what was linked and what had no match.
| Name | Required | Description | Default |
|---|---|---|---|
| exercise_ids | Yes | Exercise ids from get_workout or get_program (up to 500). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond annotations by explaining that matching happens by name, only exercises without videos are targeted, and the result reports both linked and unmatched items. It does not conflict with the annotations and usefully clarifies the mutation's scope, though it does not discuss authorization needs or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the core action and result. The first sentence is slightly dense, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema, the description provides enough context: it explains the matching behavior, the condition that exercises lack videos, and the shape of the result as linked versus unmatched. It could do a bit more to clarify edge cases, but the essential information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the single exercise_ids parameter, including its source from get_workout or get_program and the 500-item limit. The description does not add parameter-level detail beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: matching exercises without videos to library videos by name so students see them. It clearly explains the outcome, but it does not explicitly distinguish itself from nearby tools such as list_my_exercise_videos or list_library_exercises.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying it targets exercises in the trainer's workouts or programs that have no video. However, it gives no explicit when-to-use versus alternatives guidance, nor does it say when not to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_anamnesis_answersSee a student anamnesisCRead-onlyInspect
Anamnesis questionnaires the student filled in, with every answer.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the response includes 'every answer,' which is useful return-completeness context, but it says nothing about pagination, ordering, or behavior for a student with no filled questionnaires.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, economical sentence with no filler or repetition. The only weakness is that it is a noun phrase rather than a front-loaded action statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one required parameter and no output schema, the definition covers the basic idea. However, the lack of any distinction from get_anamnesis_overview and list_anamnesis_forms leaves an agent without enough information to confidently choose this tool in the presence of siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented as 'The student_id from list_students.' The description does not add meaning beyond the schema, but with full schema coverage this is the baseline expected score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (anamnesis questionnaires filled in by the student) and notes that every answer is included, which distinguishes it somewhat from an overview. However, it never states the verb/action (list/retrieve) and does not differentiate from siblings like get_anamnesis_overview or list_anamnesis_forms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_anamnesis_overview or list_anamnesis_forms, and no preconditions or exclusions are mentioned. The agent must infer usage entirely from the name and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_anamnesis_formsSee my anamnesis formsARead-onlyInspect
The trainer's anamnesis (health questionnaire) forms; send_anamnesis needs one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the scoping fact that these are the trainer's own forms, but says nothing about return shape, ordering, pagination, or whether forms are shared across students. Given annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses with no wasted words, and the resource identification is front-loaded ahead of the send_anamnesis dependency. It is a sentence fragment rather than a full statement of purpose, which slightly undercuts clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description could usefully say what a form entry contains (e.g., an ID and name) so the agent knows it can pass an identifier to send_anamnesis. The scoping to the trainer's own forms is stated, but the return contract is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema is trivially complete and there is nothing for the description to disambiguate. Baseline 4 applies; no parameter-level misinformation is present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (the trainer's anamnesis health-questionnaire forms) and, via the send_anamnesis reference, implicitly identifies this as the listing tool that feeds form selection. It distinguishes itself from list_anamnesis_answers and get_anamnesis_overview by scoping to forms rather than answers or overview. The only gap is that it never uses an explicit listing verb, leaving the 'list' action to be inferred from the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'send_anamnesis needs one' gives a concrete downstream condition for calling this tool, which is more than most list tools provide. It does not state when not to use it (e.g., versus list_anamnesis_answers or get_anamnesis_overview), so the routing is helpful but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_anamnesis_requestsSee anamnesis sent to a studentBRead-onlyInspect
Anamnesis forms sent to one student, answered or waiting.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact — results include both answered and waiting forms, i.e. no implicit status filter — but says nothing about ordering, pagination, or volume. That is modest added value on top of the annotations, so a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the key scoping information front-loaded and no wasted words. It is a fragment rather than a complete sentence, but nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description is the only place to learn what a returned 'request' contains (form name, status, sent date, submission link), and it does not say. Combined with no routing guidance against sibling anamnesis tools, it is functional but leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents that studentId comes from list_students. The description reinforces the single-student scoping but adds no format, default, or constraint beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific resource (anamnesis forms) plus scope (sent to one student) and status (answered or waiting), so the agent knows it is a per-student listing rather than a global one. It does not name or contrast with the very similar siblings list_anamnesis_forms, list_anamnesis_answers, and get_anamnesis_overview, leaving disambiguation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no alternative named, despite five siblings sharing the anamnesis prefix. The usage can only be inferred from the phrase 'sent to one student,' which is thin for a family of near-identical tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_announcementsSee Trainer Connect newsARead-onlyInspect
News and announcements from Trainer Connect to trainers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the content source and audience, but does not describe pagination, freshness, or what an empty result means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with the resource front-loaded and no wasted wording. Every word contributes to identifying the content being retrieved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only news feed, the description covers the essential identity and audience. It could be stronger by clarifying whether this is a feed versus a one-time list, or how it relates to notification tools, but nothing critical is missing for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema coverage, so there are no parameter semantics to explain. The baseline score of 4 applies for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (news and announcements) and source/audience (Trainer Connect to trainers), so an agent can tell this is a read/list tool. It does not distinguish the content from notification-related siblings such as list_notifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 exclusions, and no mention of alternatives like list_notifications. The implied use is to fetch news, but tool selection is left almost 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_anticipationsSee my anticipationsBRead-onlyInspect
Anticipations of future receivables requested by the trainer. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds useful domain context that these are future receivables requested by the trainer, but 'Read only' merely repeats the annotation and no other behavioral details are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is two short sentences and front-loads the resource being listed. The 'Read only' sentence is redundant with the annotations, but the overall text remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with full annotation coverage and no output schema, the description provides enough domain context to call it. It does not explain the returned anticipation fields, but the output schema is absent and the description need not do so under these conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to explain. The schema is empty and no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as anticipations of future receivables requested by the trainer, which is more specific than the bare name. It does not explicitly distinguish this from the related get_anticipation_limits sibling, but the resource is clear enough for selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as get_anticipation_limits or list_payments. 'Read only' confirms the safety profile already present in annotations but does not clarify the selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_archived_assessmentsSee archived assessmentsCRead-onlyInspect
Assessments of one student that were archived.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only that results are restricted to a single student and to archived records, and says nothing about ordering, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence-fragment with zero filler and the scoping words ('archived', 'one student') front-loaded. Its brevity is efficient, though the missing verb makes it read like a title restatement rather than a definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only list tool with no output schema, the description is minimally adequate: an agent knows it returns archived assessments for the given student. It is silent on result shape, ordering, and how archived differs from deleted or unlinked assessments, which are the likely points of confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single studentId parameter is fully documented in the schema, including where to source the value. The phrase 'of one student' is consistent with that but adds no new meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource (archived assessments) scoped to a single student, but it is a bare noun phrase that largely restates the name/title rather than stating what the tool does. It offers no differentiation from close siblings such as list_assessments, get_latest_assessments, or list_unlinked_assessments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over list_assessments or get_latest_assessments, nor any mention of preconditions (e.g., needing a studentId obtained from list_students). The only implicit cue is the word 'archived'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assessmentsSee a student assessmentsBRead-onlyInspect
Physical assessments of one student (weight, body fat, measurements, skinfolds), newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely useful behavior — results are ordered newest first — but says nothing about pagination, result limits, or what happens for a student with no assessments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the resource and field list; every clause carries information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 this is nearly sufficient, but with no output schema the description should say more about the shape of results (history size, pagination, empty case) and how it differs from get_latest_assessments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage, which already explains that studentId comes from list_students. The description adds no meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (physical assessments) plus concrete fields (weight, body fat, measurements, skinfolds) and scopes it to one student, so the verb+resource is clear. However, it does not distinguish itself from the close siblings get_assessment and get_latest_assessments, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 is given, and none of the obvious alternatives (get_assessment, get_latest_assessments) are named. The agent must infer from the name alone whether this returns history or a single record.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_contractsSee plans I can offerARead-onlyInspect
Plans (contracts) the trainer has available to offer a student.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, non-destructive, closed-world operation. The description adds useful scope by saying these are contracts the trainer has available to offer, but it does not disclose return shape, pagination, or any other behavioral details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded phrase with no wasted words. It puts the resource first and then qualifies it by availability for offering to a student.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool with annotations covering safety, the description is largely complete: it identifies what is returned and the scope. It does not explain the return shape, but the tool is simple enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. The schema is empty and the description does not need to compensate for any parameter documentation gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource and scope precisely: plans/contracts the trainer can offer to a student. It distinguishes this from broader contract tools such as list_contracts by emphasizing availability for offering to a student, though it does not explicitly name an alternative sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrase 'available to offer a student,' which suggests this is the list to consult when selecting an offerable plan. However, it gives no explicit when-to-use guidance, no exclusions, and no named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cancellation_requestsSee cancellation requestsBRead-onlyInspect
Students asking to cancel a plan. Read only: answering stays in the app.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds one genuinely useful behavioral constraint — that the reply/answering workflow lives in the app rather than through an MCP tool — but says nothing about ordering, volume, or what a cancellation request record contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments, no filler, with the read-only constraint front-loaded in the second clause. The telegraphic style is efficient but borders on under-specification, which keeps it just below a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema read tool, the description supplies the minimum an agent needs to pick the tool. It stops short of saying what the returned requests look like (student, plan, reason, date) or roughly how many, leaving a gap that would help an agent decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline of 4 applies. The description does not introduce any misleading parameter expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'Students asking to cancel a plan,' which narrows it against sibling lists such as list_join_requests or list_class_change_requests. However, it omits an explicit verb (the action is only implied by the name) and never specifies which plan type is being cancelled, so the agent must infer the listing behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Read only: answering stays in the app' gives a partial when-not signal by telling the agent that responses cannot be sent through this tool. There is no explicit guidance on when to select this over the many adjacent list_* request tools, and no named alternative for acting on a request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cash_entriesSee my cash bookARead-onlyInspect
Money the trainer recorded by hand (cash, Pix outside the app, expenses). Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so 'Read only' simply restates structured data. The description does add real context by disclosing the provenance and composition of the dataset (hand-recorded, cash/Pix outside the app, expenses), but says nothing about scope, ordering, or volume of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what the data is. The trailing 'Read only' is redundant with the annotations and does not earn its place, a minor waste rather than a structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list tool with no output schema, the description should convey what an entry contains (amount, date, type, description), but it only names the source of the data. The agent knows the domain but not what shape of records comes back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline of 4 applies — there is no parameter semantics to explain and the description does not introduce confusing implicit filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely — money entries the trainer recorded by hand, explicitly enumerating cash, out-of-app Pix, and expenses — which distinguishes it from automated siblings like list_charges and list_payments. The listing verb itself is only carried by the tool name, not the description text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is implied by the data provenance clause: an agent can infer this is for manual/off-system money records rather than automated charges. However, no alternative is named (get_balance, get_statement, list_charges, list_payments all exist) and no when-not condition is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_catalog_categoriesSee workout catalog categoriesARead-onlyInspect
Categories of the ready-made workout catalog, to filter list_catalog_workouts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only that the catalog is 'ready-made', saying nothing about how many categories come back or their shape — adequate but thin given annotations carry the load.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded clause with zero filler; the resource is stated first and the downstream use second. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-argument read tool with full annotations this is nearly complete; the only missing piece is a hint at the return values (e.g. category id/name pairs), which matters slightly because there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. Schema coverage is 100% and the empty object matches the description's implication of a no-argument lookup.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (categories of the ready-made workout catalog) and implicitly contrasts it with the sibling list_catalog_workouts, which it feeds. It is a noun phrase rather than a verb+resource, but an agent can still tell exactly what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'to filter list_catalog_workouts' gives a concrete use context and names the sibling consumer, so the agent knows to call this before/alongside list_catalog_workouts. There is no explicit when-not guidance or statement of prerequisites, keeping it just below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_catalog_workoutsBrowse the workout catalogCRead-onlyInspect
Ready-made workouts from the Trainer Connect catalog, by search, category, muscle group, difficulty or length.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| category | No | ||
| difficulty | No | ||
| max_minutes | No | ||
| muscle_group | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the full safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the description only needs to add catalog-specific context. It adds essentially nothing: no note on pagination, result ordering, result limits, or whether unpublished catalog items are excluded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with zero wasted words, which is good for front-loading the filter list. But that brevity comes from being a sentence fragment with no verb and no structural separation between what the tool returns and how it can be filtered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter discovery tool with 0% schema coverage and no output schema, the description is too thin: it never explains what a result contains, how the catalog differs from the user's own workouts, or that get_catalog_workout is the follow-up for details. The annotations cover safety, but the parameter and return context an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it partly does by naming all five filters in plain language ('search, category, muscle group, difficulty or length'). However, it gives no value domains for category, difficulty, or muscle_group, and no unit or range for max_minutes ('length'), leaving an agent to guess acceptable inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase rather than a verb-led statement, so the action (list/browse) is only inferable from the name and title. It does identify the resource (ready-made Trainer Connect catalog workouts) and its filter axes, which separates it loosely from list_workouts, but it never states that it returns a collection of catalog entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance. It does not say to use this to discover a catalog workout before calling get_catalog_workout for detail, nor how it differs from list_workouts, list_student_workouts, or apply_catalog_workout. Usage is only implied by 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_chargesSee my chargesCRead-onlyInspect
Charges the trainer created for students. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
"Read only" simply restates readOnlyHint=true and destructiveHint=false, adding no value beyond the annotations. Nothing is said about volume, ordering, pagination, or whether the list is scoped to the calling trainer — all of which matter for a zero-parameter 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two very short sentences with no padding, and the resource identification comes first. However, the second sentence duplicates the annotations and the whole thing is under-specified rather than genuinely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations cover the safety profile and there is no output schema or parameters to explain, but the description leaves the agent unsure of the list's scope (all charges? unpaid? this trainer's students only?) and how it relates to the near-identical payment listing tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing the description could clarify; baseline 4 applies. No filtering or pagination arguments exist, which is itself consistent with the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Charges the trainer created for students" identifies the resource and its owner scope, but there is no verb and no differentiation from the many financial siblings (list_payments, list_student_payments, list_cash_entries, get_balance). An agent can guess it lists charges, but cannot tell why it would pick this over the others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives named despite a crowded set of payment/billing tools. The agent must infer everything about selection from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checkin_answersSee a student check-insARead-onlyInspect
Check-in answers of one student (weight, sleep, energy, photos...), newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a safe, read-only, closed-world operation. The description adds the useful behavioral detail that results are ordered newest-first and lists example fields returned, but it does not cover pagination, result limits, or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the resource, scope, example fields, and ordering. Nothing is redundant or wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotation coverage and no output schema, the description sufficiently conveys what is returned and how it is ordered. Minor gaps remain around pagination and alternative tools, but core needs are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the sole parameter is documented as 'The student_id from list_students.' The description adds no parameter-level meaning beyond the schema, which is acceptable at this coverage level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns check-in answers for one student, with example fields and ordering. It distinguishes itself from the aggregate get_checkins_overview by scoping to a single student, though the verb is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: fetch a specific student's check-in answers. However, it does not explicitly say when to use this versus get_checkins_overview, get_student_summary, or list_checkin_templates, nor does it mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checkin_templatesSee my check-in questionnairesARead-onlyInspect
The trainer's periodic check-in questionnaires; send_checkin needs one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds only the fact that these are periodic trainer questionnaires and feed send_checkin; it says nothing about return shape, pagination, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the resource and ending with the actionable dependency on send_checkin. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list this is adequate, but with no output schema the description could explain what a template record contains or roughly what the list returns. As written, an agent knows the resource and one use case but not the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The baseline for a zero-parameter tool is 4, and no parameter information is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (the trainer's periodic check-in questionnaires) and distinguishes it implicitly from answer-oriented siblings like list_checkin_answers. However, it never states the verb 'list' explicitly and does not clearly separate itself from get_checkins_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete usage signal: send_checkin needs a template from here. That is useful routing, but it provides no explicit when-not guidance and does not mention alternatives such as get_checkins_overview or list_checkin_answers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_class_change_requestsSee class change requestsARead-onlyInspect
Requests from students to move a class, waiting for the trainer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful scoping context by stating the results are limited to requests 'waiting for the trainer,' but it says nothing about ordering, pagination, or whether historical requests are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded with the core entity and contains no filler. It is slightly fragmentary, but that is appropriate for a zero-parameter list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no parameters and no output schema, the description provides enough to understand that it returns pending class-change requests. It would be stronger with a note on return ordering or pagination, but those gaps are minor for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty at 100% coverage, so there are no parameter semantics to explain. The baseline for a parameterless tool is 4, and nothing in the description creates confusion about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (requests from students to move a class) and its scope (waiting for the trainer), so an agent can tell what the tool returns. It does not explicitly differentiate itself from siblings like accept_class_change or reject_class_change, and it uses a noun phrase rather than a verb, which keeps it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'waiting for the trainer,' which signals this is the pending-review view, but the description gives no explicit when-to-use guidance, prerequisites, or alternatives. It does not tell the agent to use accept/reject_class_change after reviewing, leaving routing to sibling inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_class_filesSee files of a classBRead-onlyInspect
Files attached to a class (photos, exams).
| Name | Required | Description | Default |
|---|---|---|---|
| appointmentId | Yes | Appointment id from get_schedule. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only the file-type examples (photos, exams) and says nothing about pagination, return ordering, or file metadata. With annotations carrying the safety burden, this is a modest but valid addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded phrase with no wasted words. It is appropriately compact for a simple read tool, though its noun-phrase form lacks an explicit action verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 one fully documented parameter and annotations covering safety, the description is largely complete. The main missing piece is usage guidance and any mention of return shape, but the core calling information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single appointmentId parameter is documented as coming from get_schedule. The description adds no parameter semantics beyond what the schema already supplies. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource precisely as files attached to a class and adds examples (photos, exams). It does not use an explicit verb like 'list', but the scope and domain are clear enough without opening the schema. It also does not explicitly distinguish itself from list_student_files, which keeps it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as list_student_files or link_assessment_to_class. It states only what the resource is, leaving routing entirely to the tool name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_coached_sessionsSee sessions coached in personBRead-onlyInspect
Sessions the trainer ran with the student in person, from the app's coach mode.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds the sourcing detail (coach mode, in person), which is genuine context beyond annotations, but says nothing about ordering, pagination, or result volume for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that identifies the resource and its scope with zero filler. Nothing is wasted and the key qualifier ('in person, coach mode') leads.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter at full schema coverage, no output schema, and annotations carrying the safety profile, the description covers what the agent needs to select and call it. It stops slightly short on result behavior (ordering, volume), which an agent might still want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself says studentId comes from list_students. The description adds no additional meaning beyond that, so the baseline 3 for a fully documented schema applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines a specific resource: in-person sessions run by the trainer via coach mode. That distinguishes it from generic session lists by scope, but it does not explicitly name which of the many session siblings (list_student_sessions, list_recent_sessions, list_live_sessions) this replaces or complements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative tool is named. The phrase 'from the app's coach mode' implies context but never tells the agent when to pick this over list_student_sessions or list_recent_sessions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_competitionsSee challengesARead-onlyInspect
Challenges/competitions the trainer created among students, with ranking.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful scope and mentions that ranking is included, but it does not describe ordering, pagination, or whether historical/archived competitions are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single compact sentence with no wasted text. It front-loads the resource and scope immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, no-parameter list tool with annotations covering safety, the description gives enough context to understand what is returned: trainer-created competitions among students, with ranking. Minor gaps remain around result scope and ranking format, but no output schema exists to carry that burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to explain. Baseline 4 applies for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource (challenges/competitions created by the trainer among students) and notes that ranking is included, which helps distinguish it from a single-competition getter. It does not explicitly name what it does not cover versus siblings like list_student_competitions or get_competition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as list_student_competitions or get_competition. The phrase 'the trainer created among students' implies a scope, but it does not state the selection condition or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_contractsSee my plans and contractsARead-onlyInspect
The plans/contracts the trainer sells (price, period, classes) and how many students are on each. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered; 'Read only' merely restates it. The description does add value by disclosing that results include pricing and per-plan student counts rather than bare plan records, but says nothing about ordering or volume of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence carries the resource and its returned fields, with no filler. The trailing 'Read only.' is pure redundancy against the readOnlyHint annotation and is the only wasted token.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 by naming price, period, classes and student counts. For a zero-parameter read tool with full annotation coverage, that is nearly enough; result ordering or whether inactive plans are included would be the only remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline is 4. No parameters are misdescribed or left ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (the plans/contracts the trainer sells) and enumerates the payload fields (price, period, classes, student counts), which tells an agent exactly what it gets back. It does not, however, distinguish itself from plausible near-neighbors such as list_subscriptions or list_programs, which an agent browsing these siblings could easily confuse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The name and the phrase 'the plans/contracts the trainer sells' imply the read-catalog use case, but there is no explicit when-to-use statement, no exclusion of alternatives like list_subscriptions, and no prerequisite mentioned. Usage is inferable rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_contract_subscribersSee who is on a planBRead-onlyInspect
Students subscribed to one plan. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| contractId | Yes | Id from list_contracts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description only repeats 'Read only' and does not add behavioral detail such as result size, pagination, or behavior when the contract has no subscribers; a 3 reflects minimum viability with little added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the returned resource. 'Read only' duplicates the annotation rather than adding new information, but the overall structure is efficient with no bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only list tool, the definition covers the core scope. However, with no output schema and no description of return shape or empty-result behavior, it leaves some gaps that an agent might otherwise need to infer from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single contractId parameter is already documented as 'Id from list_contracts.' The description's phrase 'one plan' loosely reinforces the contract scope but adds no format or lookup guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the returned resource and scope: students subscribed to one plan. However, it does not explicitly distinguish this tool from related siblings such as list_student_subscriptions or list_subscriptions, which also deal with subscription membership.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. The only usage hint is in the schema, where contractId says 'Id from list_contracts,' but the description itself offers no context, 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_conversationsSee my chatsARead-onlyInspect
The trainer's chats with students, with the last message and unread count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a safe read-only operation, and the description adds useful context about returned fields (last message and unread count). However, it does not disclose ordering, pagination, or whether all conversations are returned, so it adds only moderate behavioral clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no wasted wording, and it front-loads the core scope before listing the included summary fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter read-only list tool, the description adequately states what is returned and for whom. It could be more complete by mentioning ordering, pagination, or how it differs from read_chat, but the core context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 burden. The baseline score for a parameterless tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource and scope: the trainer's chats with students, including last message and unread count. It is understandable as a list-style tool, but it does not explicitly differentiate from siblings such as read_chat or send_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives like read_chat, send_message, or other list_* tools. The intended use is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_couponsSee my couponsCRead-onlyInspect
Discount coupons for the trainer's plans. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The only behavioral claim, 'Read only,' merely restates readOnlyHint=true and destructiveHint=false already in the annotations, adding zero new information. Nothing is said about pagination, ordering, whether expired coupons are included, or what a returned coupon contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the resource front-loaded. The second sentence ('Read only') is redundant with the annotations and is the only wasted text, but the overall length is appropriate for a trivial read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and safety covered by annotations, the description is minimal but not obviously incomplete. It nonetheless leaves an agent unable to predict what a coupon object holds or whether plan association matters, which is the kind of context a description should supply when no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 description correctly implies no filtering input is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('discount coupons for the trainer's plans') but is a bare noun phrase with no verb, so the listing/retrieval action only comes from the tool name. It is unambiguous enough because no sibling tool deals with coupons, but it does not state scope (all coupons? active only? by plan?).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Read only' describes safety, not when to call the tool. There is no guidance on when to use it versus e.g. get_subscription or list_subscriptions when an agent needs to know what a trainer's plans cost after discounts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_deleted_assessmentsSee deleted assessments of a studentBRead-onlyInspect
Assessments of one student that were deleted and can still be restored.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful context that these are deleted-but-restorable records, hinting at a recovery workflow, but says nothing about return contents 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight clause with no waste, front-loading the resource and the restorable qualifier. It reads as a fragment rather than a leading verb phrase, which is a minor stylistic weakness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full schema coverage and covering annotations, the description supplies enough context to call it correctly. The main missing piece is sibling differentiation, which is a modest gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single studentId parameter is fully documented in the schema (including a pointer to list_students). The description adds no additional meaning about the parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: deleted assessments belonging to one student, adding the nuance that they can still be restored. It doesn't explicitly distinguish itself from close siblings like list_archived_assessments or list_assessments, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives named. The phrase 'deleted and can still be restored' implies a context (recovery), but the agent is left to infer it versus list_archived_assessments and restore_assessment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_deleted_workoutsSee deleted workoutsARead-onlyInspect
Workouts in the trash, which restore_workout brings back.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only that the items are trash-resident and restorable; it gives no ordering, pagination, or volume information for what could be an unbounded list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero filler, and the key qualifier ('in the trash') arrives immediately. Nothing would be gained by lengthening it for this simple read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and full annotation coverage, the description supplies the essential facts: what is returned and how it connects to restore_workout. The remaining unknown, whether results span all athletes or are scoped to a caller, is not addressed but is minor for a no-arg read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; the baseline of 4 applies. The description does not need to explain arguments that do not exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Identifies a specific resource and scope: workouts that are in the trash. This distinguishes it from list_workouts by virtue of the deleted/trash qualifier, though the description never uses an explicit verb like 'list' or 'returns'. An agent can still tell what it retrieves 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Frames the use case as the pre-restore view by pointing to restore_workout as the tool that brings items back, which gives clear context for the follow-up action. It stops short of any when-not guidance (e.g., use list_workouts for active workouts) or scope constraints, so it is not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diet_feedbackSee a student diet feedbackBRead-onlyInspect
What the student said about meals of the diet (liked, swapped, skipped).
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint=true, destructiveHint=false, and openWorldHint=false, the safety profile is covered. The description adds that feedback includes liked, swapped, and skipped meals, which is useful context, but it omits details like permissions, pagination, or what happens if no feedback exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information with no wasted words. It is appropriately sized for a simple read-only list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a read-only list with one parameter and annotations covering safety, the description is minimally adequate. However, it lacks usage guidance and does not clarify how the feedback is structured or whether it is paginated, which would be helpful even without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the studentId parameter. The description adds no additional parameter information beyond what the schema already provides, which is a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the resource (diet feedback) and what it contains (liked, swapped, skipped meals), but it does not explicitly state the verb 'list' or clarify that it returns a list for a single student. It also fails to distinguish this from similar siblings like get_diet_adherence or get_diet_plan, leaving the purpose somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when-not-to-use cases, or related tools such as get_diet_adherence, leaving the agent to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diet_plansSee a student diet plansCRead-onlyInspect
Diet plans the trainer wrote for one student.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds only the ownership scope ('the trainer wrote'), which confirms the caller only sees their own authored plans. It says nothing about ordering, pagination, or whether inactive/archived plans are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short fragment with no wasted words, so it is maximally concise. However, it is under-specified rather than well-structured: there is no clause that helps an agent decide between this and neighboring diet tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should indicate what a returned diet plan looks like (fields, count, ordering) and whether inactive plans are included; it provides neither. For a one-parameter read tool with annotations this is thin, leaving the agent to call it without knowing the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single studentId parameter is documented with a cross-reference to list_students. The description's 'for one student' merely restates the one-parameter scope without adding format or lookup detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence pairs a concrete resource (diet plans) with a clear scope (written by the trainer, for one student), so the agent knows exactly what comes back. It does not explicitly name how it differs from the singular get_diet_plan or get_diet_adherence, leaving sibling differentiation to inference from 'plans' vs 'plan'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus get_diet_plan (a single plan) or get_diet_adherence, and no stated prerequisites beyond the studentId requirement baked into the schema. The agent must guess the intended situation from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diet_templatesSee my diet templatesBRead-onlyInspect
Diet plan templates the trainer saved to reuse.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety and scope are covered. The description adds one useful piece of context beyond them: these are templates the trainer personally saved for reuse, i.e. an owner-scoped collection. It does not mention ordering, result size, or what a template contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the most important qualifier ('templates ... saved to reuse') is right up front. It is slightly elliptical in omitting a verb, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list, the definition plus annotations are nearly sufficient, and no output schema exists so return values need not be described. The remaining gap is disambiguation from the several other template/plan listing siblings, which a caller needs in order to choose correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 is nothing for the description to disambiguate about inputs, and schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (diet plan templates saved by the trainer for reuse), but it is a bare noun phrase with no verb, relying on the tool name to convey the 'list' action. It also does not distinguish this from closely named siblings such as list_meal_templates, list_diet_plans, or list_checkin_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this rather than list_diet_plans, list_meal_templates, or get_diet_plan. The only hint is 'saved to reuse', which a careful reader can infer means saved templates rather than assigned plans, but no alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_digital_account_bill_paymentsSee bills paid by the digital accountBRead-onlyInspect
Bills (boletos) paid from the digital account. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so 'Read only' just restates structured data. The one piece of added context is the domain term 'boletos', which clarifies the kind of bill involved, but nothing is said about scope, ordering, or volume of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments, front-loaded with the resource and followed by the safety note; nothing is wasted. The terseness borders on under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter read tool with annotations covering safety, the definition is adequate but thin: it says nothing about whether all history is returned, ordering, or pagination limits, which the agent would need in order to interpret results. No output schema exists to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is no parameter semantics for the description to compensate for. A note about whether the result set is bounded or unfiltered would have pushed this higher.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (bill payments / boletos made from the digital account), and the 'list_' verb in the name confirms the operation. It implicitly distinguishes itself from list_digital_account_pix_payments and list_digital_account_transfers by calling out bills, but 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.
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 versus alternatives such as get_digital_account_statement or list_digital_account_pix_payments. Usage is only inferable from the resource noun; the description offers no exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_digital_account_pix_paymentsSee Pix paid by the digital accountBRead-onlyInspect
Pix payments made from the digital account. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description only repeats 'Read only' and adds no behavioral context such as result scope, pagination, ordering, or timeframe handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the resource being returned. However, the second sentence largely repeats annotation information, so it is not maximally economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter read-only list tool, the description is minimally adequate. It still omits return scope details such as whether all Pix payments are returned, their ordering, and whether any implicit time window applies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The empty schema means there are no parameter semantics for the description to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource: Pix payments made from the digital account. It is distinguishable from siblings such as bill payments and transfers by resource, though it does not explicitly use the verb 'list' or call out sibling boundaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like list_digital_account_bill_payments, list_digital_account_transfers, or get_digital_account_statement. The only usage signal is the generic 'Read only' phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_digital_account_transfersSee digital account transfersCRead-onlyInspect
Transfers made from the digital account. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the description's only behavioral claim, 'Read only', is pure repetition. Nothing is said about ordering, pagination, volume, or date scoping of the returned transfers, which is the kind of context annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the resource identification is front-loaded. It is not padded, though the second sentence is wasted on restating an annotation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description is the only place that could explain what a 'transfer' is versus a bill payment or pix payment, and it does not. For a zero-argument tool sitting among several similar digital-account list endpoints, that omission leaves a real selection gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline of 4 applies. The absence of any filtering parameters is itself notable but not a description failure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (transfers from the digital account) but uses a bare noun phrase with no verb, so the listing action is only inferred from the tool name. It also fails to distinguish this from the near-identical siblings list_digital_account_bill_payments and list_digital_account_pix_payments, which are also digital-account movement listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 tool rather than the bill-payments or pix-payments siblings, and no preconditions or exclusions are given. The agent is left to guess which of the three digital-account listing tools fits a given query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_equipmentSee equipmentCRead-onlyInspect
Equipment list used to tag exercises.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so safety is covered. The description adds only that this is reference data for tagging, without saying whether it is a fixed global catalog, tenant-specific, or cacheable — the traits that would actually change agent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no padding or repetition, front-loading the resource name. It is efficient, though its brevity is close to under-specification rather than tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the return shape — yet it never says what an equipment item contains (id, name, category) or whether the list is paginated. For a reference-lookup tool this leaves a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly implies no filtering arguments are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'Equipment list used to tag exercises' does convey the resource (equipment) and its purpose (tagging exercises), but it is a noun phrase with no verb and no scope statement. It does not differentiate from adjacent reference-list siblings such as list_muscle_groups or list_exercise_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'used to tag exercises' implies a downstream use case but gives no explicit when-to-use guidance, no prerequisites, and no named alternative. An agent must infer that this is the lookup to call before creating or filtering exercises.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_exercise_templatesSee my exercise libraryARead-onlyInspect
Exercises the trainer saved in their own library, with muscles and equipment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so safety is covered. The description adds that results include muscles and equipment, which is useful return context given there is no output schema, but it says nothing about ordering, pagination, or result size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short phrase that front-loads the resource scope with zero filler. It is a sentence fragment rather than a full sentence, which is slightly awkward but costs nothing in clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-param, read-only list tool with full annotation coverage, the description supplies the scope (trainer's own library) and a hint at returned fields (muscles, equipment). Only pagination/ordering details are absent, a minor gap for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. No misleading parameter hints are present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (exercise templates) and scopes it to the trainer's own saved library, which distinguishes it from broad catalog/search siblings like search_exercises and list_catalog_workouts. It does not name those siblings explicitly, but the 'own library' qualifier makes the scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrase 'the trainer saved in their own library' – an agent can infer this is the browse-my-saved-exercises call. However, there is no explicit when-to-use vs. when-not, and no mention of when to prefer search_exercises or list_favorite_exercises instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_favorite_exercisesSee my favorite exercisesCRead-onlyInspect
Exercises the trainer marked as favorite.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds only the ownership nuance ('trainer marked') and says nothing about return shape, ordering, pagination, or whether the list is scoped to the calling trainer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is brief and waste-free, but it is a fragment rather than a front-loaded statement of action plus resource, and its brevity is achieved by omitting information rather than by tightening it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description is the only place an agent could learn what comes back (IDs only? exercise names, muscle groups, media?) and whether the result is paginated or trainer-scoped. None of that is present, so an agent can identify the tool but cannot predict its behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 document beyond what the empty schema already conveys. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment identifies the resource (exercises flagged as favorite) and specifies whose favorites they are (the trainer's), which slightly disambiguates from a member-facing favorite list. But it lacks a verb — it never states that the tool lists/returns them — and it does not differentiate from nearby siblings such as search_exercises or list_exercise_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus search_exercises, list_exercise_templates, or list_my_exercise_videos, all of which could plausibly surface exercises. No prerequisites, no exclusions, no mention of what to do if the favorite list is empty.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_favorite_foodsSee my favorite foodsBRead-onlyInspect
Foods the trainer marked as favorite.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description contributes the one non-obvious fact that these are the trainer's favorites rather than a broader food catalog, but says nothing about ordering, result size, or whether results are per-trainer or global.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, but it is a noun phrase rather than a front-loaded action statement, which slightly weakens orientation. Nothing is wasted, though little is delivered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read with full annotation coverage this is close to adequate, but the description leaves ambiguous whether results are the trainer's own favorites, a student's, or a shared list, and gives no sense of the returned food shape. A short clause on scope would close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; the baseline for a parameterless tool applies. No parameter text is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment "Foods the trainer marked as favorite" names the resource and adds an ownership detail (the trainer's favorites, not a student's), but omits an explicit verb and never states the listing scope. It is close to a restatement of the title "See my favorite foods" and does not differentiate the tool from siblings such as list_favorite_exercises or search_foods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus search_foods, list_food_categories, or list_favorite_exercises, and no stated preconditions. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_feature_requestsSee ideas for the appARead-onlyInspect
Ideas for Trainer Connect that are open for votes, most voted first; mine=true lists only the trainer's own.
| Name | Required | Description | Default |
|---|---|---|---|
| mine | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine behavioral detail beyond that: results are sorted most-voted-first and the default scope is limited to ideas still open for votes, which tells the agent what it will and won't see.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with the resource and ranking stated first, then the filter exception. No filler, though the semicolon-joined filter clause is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-optional-parameter list tool with no output schema, the description covers scope, ordering and filtering, which is what an agent needs to call it correctly. It omits result limits or pagination behavior, a minor gap for a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter has 0% schema description coverage, so the description must compensate, and it does: mine=true is defined as returning only the trainer's own ideas. It doesn't state the default (mine=false) explicitly, but the contrast is clear enough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource concretely (Trainer Connect feature ideas open for votes) and the ordering, so an agent can distinguish it from get_feature_request, suggest_feature and vote_feature_request. The list verb itself is only implied by the tool name rather than stated, which keeps it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It signals the use case (browsing ideas that are open for votes) and explains that mine=true narrows to the trainer's own ideas, which is useful routing context. It never explicitly names an alternative or says when not to use it (e.g. get_feature_request for a single request's detail), leaving that inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_food_categoriesSee food categoriesBRead-onlyInspect
Food categories used by search_foods and create_food.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description's only added behavior context is that this is a shared reference dataset consumed by search_foods and create_food, which is a modest but genuine addition. Nothing is said about the size or shape of the returned list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the identifying noun 'Food categories' is front-loaded. Nothing is redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description is the only place a caller could learn what comes back — and it says nothing about whether categories carry ids, names, or ordering. For a simple zero-param lookup the tool is still callable, but the return shape and the intended use of the returned values (e.g., passing a category id into search_foods) remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty at 100% coverage, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter-related gaps exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase, 'Food categories used by search_foods and create_food,' with no explicit verb stating that it returns the category list. The name and title supply the 'list/see' verb, but the description alone only identifies the resource and its consumers. It does at least make clear this is not the food search itself, distinguishing it from search_foods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming search_foods and create_food as consumers implies the tool exists to discover valid category values before searching or creating foods, which is a real usage signal. However, there is no explicit 'use this when' statement, no exclusion of alternatives (e.g., list_favorite_foods), and no ordering or prerequisite guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gym_access_logsSee gym check-insBRead-onlyInspect
Who entered the gym and when, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD. | |
| limit | No | Up to 200. | |
| member_user_id | No | Only this student (student_id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds one useful behavioral fact — results are ordered newest first — but says nothing about default result size, pagination, or which gym units are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, and the ordering detail is front-loaded. It is efficient but borders on under-specified for a cross-member log tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 should say more about what a log entry contains (member identity, timestamp, gym unit) and default page size. With zero required params and simple flat inputs, the definition is workable but leaves real gaps about the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, documenting date, limit, and member_user_id, so the baseline is 3. The description adds no parameter semantics beyond implying scope ('who entered'), and notably doesn't clarify whether omitting member_user_id returns all members' entries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear resource (gym entry logs) with scope and ordering ('who entered the gym and when, newest first'). The verb is implicit from the title rather than the description, and it doesn't explicitly distinguish itself from siblings like get_checkins_overview or get_checkout_funnel, which sound related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of the many adjacent siblings (get_checkins_overview, get_checkout_funnel, get_student_activity, list_recent_sessions) that an agent would need to choose between. The agent must infer the niche from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gym_unitsSee my gym unitsBRead-onlyInspect
Units (branches) of the trainer's gym.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The only added context is the implicit tenancy scoping ('the trainer's gym'), which largely restates the title 'See my gym units' — nothing about ordering, completeness, or whether inactive units are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is efficiently sized, though the terseness borders on under-specification rather than pure concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations covering safety there is no output schema, so the description could have said what a unit contains or whether the list is complete/paginated. It is minimally adequate but leaves that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; the description correctly implies an unfiltered full listing with no arguments to supply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource precisely and disambiguates jargon by equating 'units' with 'branches', but it is a bare noun phrase with no verb and never mentions the sibling create_gym_unit, so an agent infers 'list' only from the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to call this versus alternatives, no prerequisites, no mention of what to do with the returned units (e.g. passing an id to another tool). Usage must be inferred entirely from the name and annotations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_holidaysSee my days offARead-onlyInspect
National holidays and the trainer's own days off, when classes are not booked.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered; the description adds genuine context by disclosing the two sources of entries (national calendar + trainer's own days off) and the inclusion rule that a day off must have no booked classes. It does not say whether past holidays are returned or how results are ordered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with no filler, and the content scope is front-loaded where the agent reads it first. Nothing repeats the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full annotation coverage and no output schema, the description supplies the essential scope. The one meaningful gap is the time window of returned entries (upcoming only vs. all history), which an agent would still need to discover by calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 description correctly implies no filtering input exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource pair implicitly through scope: it enumerates exactly what the list contains (national holidays plus the trainer's personal days off) and the condition attached to them (classes not booked). An agent can tell this apart from create_holiday/update_holiday by the listing semantics. It stops short of explicitly contrasting with those sibling mutators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for checking availability / days off before scheduling. There is no explicit when-to-use statement, no mention of create_holiday or update_holiday as the write-side alternatives, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_join_requestsSee students asking to joinARead-onlyInspect
Students who asked to train with this trainer and are waiting for an answer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the data is a pending queue of students waiting for an answer, but does not mention permissions, pagination, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It immediately states who is returned and why they are relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list tool with read-only annotations and no output schema, the description gives enough context to understand the returned population. A minor gap is that it does not explicitly state the response shape or whether student details are included.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. The baseline score of 4 applies because the schema and description do not conflict and no parameter-level guidance is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as students who requested to train with this trainer and are awaiting a response. It distinguishes this pending-request list from broader sibling tools like list_students, though it does not explicitly use the verb 'list' or name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrase 'waiting for an answer,' which signals this is for reviewing pending join requests rather than all students. However, there is no explicit guidance on when to choose this over list_students or what to do with the results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_leadsSee my leadsBRead-onlyInspect
People interested in training with the trainer (site, catalog, public page). Filter by status or search.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Name, e-mail, phone or message. | |
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful provenance — leads arrive from site, catalog and public pages — but says nothing about ordering, result size, pagination, or whether all leads or only recent ones are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments with no filler, and the resource definition is front-loaded ahead of the filtering note. The clipped phrasing ('People interested in training...') costs a little clarity but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-required-parameter read tool with annotations and no output schema, the essentials are present. Gaps remain on result ordering/limits and on how this list relates to the per-lead tools, which an agent would need when deciding between them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'search' is documented in-schema while 'status' relies on its enum. The description only restates that these two filters exist and adds no matching behaviour, default status, or combinability detail, so it does not compensate for the uncovered half.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource concretely — people interested in training with the trainer, sourced from site, catalog and public page — which goes beyond restating the name. It does not explicitly contrast itself with get_lead/update_lead, but the plural-listing vs single-record distinction is clear from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 tool versus get_lead (fetch one), list_join_requests, or read_lead_chat. 'Filter by status or search' describes how to filter, not when the tool is the right choice, so usage must be inferred from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_body_partsSee library body partsARead-onlyInspect
Body parts used to filter list_library_exercises.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds only the filtering context; it says nothing about whether this is a static reference list, its ordering, or whether callers need any library setup first.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short fragment with the resource and its use front-loaded, zero waste. It is terse enough that it reads slightly under-specified rather than polished, but every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument reference lookup this covers the essentials, but there is no output schema, so the description is the only source of return-shape information and it never says whether results are names, ids, or objects — details an agent needs to build a filter for list_library_exercises.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies no input is needed, leaving nothing about parameters to mislead an agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (body parts) and its concrete function as filter values for list_library_exercises, so the agent knows what it gets and why. It does not differentiate from the nearby sibling list_library_muscles, which could look like an alternative source of the same filter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase "used to filter list_library_exercises" suggests calling this before/alongside that tool, but there is no explicit 'use when' statement, no statement that it takes no arguments, and no guidance on choosing between body parts and muscle-based filtering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_equipmentSee library equipmentBRead-onlyInspect
Equipment used to filter list_library_exercises.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered and the description can't be faulted for omitting it. The description adds a small amount of context by framing the result as filter values, but says nothing about pagination, ordering, or whether the set is static per catalog.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence fragment with no padding, so there is no wasted text. It is under-specified rather than bloated, and the key relational hint (filtering list_library_exercises) is placed up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and annotations covering the safety profile, the remaining burden is disambiguating this from list_equipment and confirming it returns a static option set. The description does neither, leaving a meaningful gap for a tool with an almost-identical sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 description does not introduce any confusion about inputs either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (equipment) and ties it to filtering list_library_exercises, but never states a verb or that it returns a list of options, despite the name being list_library_equipment. It also fails to distinguish this catalog-style tool from the sibling list_equipment, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Used to filter list_library_exercises" implies the use case: fetch these values when you want to narrow an exercise search. However, there is no explicit when-to-use phrasing, no mention of list_equipment as the alternative for gym-owned equipment, and no guidance on whether this must be called before list_library_exercises.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_exercisesBrowse the exercise libraryARead-onlyInspect
Exercises of the app library (each with video), filtered by name, body part, target muscle, equipment, type or difficulty. The id is the edb_exercise_id that create_workout and add_exercise_to_program_day accept.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | No | From list_library_exercise_types. | |
| muscle | No | From list_library_muscles. | |
| search | No | Part of the name, in Portuguese or English. | |
| bodyPart | No | From list_library_body_parts. | |
| per_page | No | Up to 100. | |
| equipment | No | From list_library_equipment. | |
| difficulty | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered; the description adds return-shape context that no output schema provides — every exercise carries a video and the identifier field is named edb_exercise_id. It does not mention pagination behavior or ordering, which the per_page/page params imply but never explain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both dense and front-loaded: what the tool returns first, then the ID hand-off to consumers. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an eight-param read tool with no output schema, the description gives the entity shape, all filter facets, and the ID's downstream use. Missing only pagination/total-count behavior, which matters given page and per_page exist but is a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and the description covers the remaining gap by enumerating all six filter dimensions (name, body part, target muscle, equipment, type, difficulty), making the purpose of each clear even where the schema just says "From list_library_*." It also clarifies that the returned id is edb_exercise_id. Pagination params are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb (list/browse) implicitly and the resource precisely: exercises from the app library, each with a video, filterable by six named dimensions. The sibling list contains near-neighbors like search_exercises, list_exercise_templates, list_my_exercise_videos and list_favorite_exercises, but the description never distinguishes this tool from them, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives a concrete downstream use: the returned id is the edb_exercise_id accepted by create_workout and add_exercise_to_program_day, which tells an agent exactly when to reach for this tool. It offers no exclusions, though — nothing says when to prefer search_exercises or list_exercise_templates instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_exercise_typesSee library exercise typesARead-onlyInspect
Exercise types (strength, cardio, stretching...) used to filter list_library_exercises.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that the values serve as filter inputs elsewhere and shows sample values, but says nothing about whether the set is static or what an individual entry contains. For a zero-parameter static lookup the bar is low, so this is adequate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with zero waste, and the core purpose is front-loaded. It is a noun phrase rather than a verb-led statement, which slightly weakens the opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and annotations covering safety, the definition only needs to convey purpose and downstream role, both of which it does. An agent has everything required to select and call it, though it must infer the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description nonetheless adds value by illustrating the returned value domain (strength, cardio, stretching...) beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely ('exercise types') and gives concrete member examples (strength, cardio, stretching), so an agent knows this is the enumeration of exercise-type filter values. It is distinguishable from siblings like list_library_muscles or list_library_equipment by the resource noun, though it never uses an explicit verb such as 'list' or 'returns'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'used to filter list_library_exercises' ties the tool to a concrete downstream workflow, which is genuine usage context. However, it never states when to call it versus the sibling lookup tools (list_library_body_parts, list_library_muscles, list_library_equipment) and gives no explicit 'call this before filtering' instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_musclesSee library musclesBRead-onlyInspect
Target muscles used to filter list_library_exercises.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds one piece of real context — that these values feed the filter of list_library_exercises — but does not describe the shape of the returned items (names vs. IDs) or whether it is static catalog data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the most useful information (relationship to list_library_exercises) is front-loaded. It is perhaps too terse — a few more words stating the return value would have cost little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter lookup with no output schema, the description should at least say what comes back (a list of muscle options with identifiers). It conveys the linkage to list_library_exercises but leaves the return shape unspecified, which is the main remaining gap for an agent building a filter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is an empty object, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly implies no arguments are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (target muscles) and its role as filter values for list_library_exercises, which does distinguish it from siblings like list_library_body_parts or list_library_equipment. However, it is a noun fragment with no verb — it never states that the tool returns a list of muscles, leaving the actual operation implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tying the output to filtering list_library_exercises implies when to use it (to discover valid muscle filter values). But there is no explicit instruction, no mention of when a sibling list like list_muscle_groups would be preferred, and no statement that this takes no arguments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_live_sessionsSee who is training nowBRead-onlyInspect
Workout sessions in progress right now among the trainer's students.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered without description help. The description adds the scoping trait that results are limited to the trainer's own students and are a live snapshot, but says nothing about result size, ordering, or whether an empty response means 'nobody training'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single twelve-word sentence with no filler, and the discriminating qualifier ('right now') is placed early. It is a sentence fragment rather than a front-loaded verb-first statement, which slightly weakens the opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only, closed-world list tool with no output schema, the description conveys the entity, the time window, and the population scope, which is close to sufficient. It could say whether results include per-student detail, but the anatomy of this tool is simple enough that little is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema imposes no explanatory burden and the baseline is 4. The description still contributes by defining the implicit filter (trainer's students, currently in progress) that would otherwise be an unstated default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence names the exact resource (workout sessions) and its temporal scope ('in progress right now') plus the population ('the trainer's students'), which is specific enough to distinguish it from generic session lists. It stops short of an explicit verb ('list') and never names the near-twin sibling list_recent_sessions, so the right-now vs. recent distinction must be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to call this versus list_recent_sessions, list_student_sessions, or list_students_activity. The 'right now' phrasing hints at a real-time check, but the agent is left to infer the selection condition from a single adjective.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_meal_templatesSee my meal templatesBRead-onlyInspect
Meal templates the trainer saved (breakfast, snacks...).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety and locality profile is fully covered. The description adds only that entries are trainer-saved and gives example template kinds; it says nothing about ordering, volume, or whether student-created templates are excluded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loaded on the resource. It is nearly too terse rather than padded, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description is the only place scope and return shape could be described, and it only partially is. An agent still cannot tell whether this returns the trainer's own templates only, what fields appear, or how it differs from list_diet_templates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline of 4 applies. No parameter-level claims are made that could mislead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says these are meal templates saved by the trainer and gives parenthetical examples (breakfast, snacks), so the resource is identifiable. However it is largely a restatement of the name/title and does nothing to distinguish it from the closely named sibling list_diet_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 list_diet_templates, list_favorite_foods, or search_foods, all of which an agent could plausibly reach for. The only contextual cue is 'the trainer saved', which hints at scope but is not framed as a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_muscle_groupsSee muscle groupsBRead-onlyInspect
Muscle groups used to tag exercises.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description's help. The description's only added value is clarifying that the returned values are exercise-tagging vocabulary, not e.g. student-specific data; it says nothing about ordering, size, or whether the list is static or account-scoped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler, appropriately sized for a zero-argument lookup. It is a noun fragment rather than a front-loaded verb phrase, which slightly weakens scannability, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial parameterless read with a rich set of annotations, the description is nearly sufficient. The remaining gap is the return shape (e.g. whether each group has an id/name or nesting), which matters because there is no output schema and the agent cannot see it from structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 description does not need to explain any input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'Muscle groups used to tag exercises' identifies the resource and its role as a taxonomy for tagging, so an agent can infer it returns the list of muscle-group values. However, it never states a verb (list/retrieve) and does not distinguish itself from near siblings like list_equipment or list_food_categories, which have the same shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance. The phrase 'used to tag exercises' hints that the values are relevant when creating or filtering exercises, but the agent must infer the call context rather than being told to call this before search_exercises or create_exercise_template.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_exercise_videosSee my exercise videosCRead-onlyInspect
Videos the trainer recorded for exercises.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds only that the videos are trainer-recorded for exercises, with no word on whether it returns media URLs, metadata, counts, or ordering — minimal value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no padding, though it opens with the object rather than the action the tool performs. Nothing is wasted, but it is also under-loaded rather than front-loaded with actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description is the only place to explain what comes back (e.g., video URLs, exercise names) and whose videos are returned, and it does neither. For a simple read tool this is thin even by low-complexity standards.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the description to explain; the baseline for 0 params is 4. Nothing in the description misleads about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence identifies the resource (videos recorded by the trainer for exercises) but is a noun fragment with no verb telling the agent it lists/returns them. The tool name carries the action ('list'), so the description only restates the object rather than adding a specific verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this versus related siblings such as list_exercise_templates, list_favorite_exercises, or list_student_workouts. An agent must infer the distinction ('my' videos vs. catalog/exercise templates) purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_mediaSee my photo galleryBRead-onlyInspect
Photos the trainer posted in the app (workout posts, student photos), newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | E.g. workout_post. | |
| limit | No | Up to 200, 50 by default. | |
| workout_log_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context by stating that results are photos and are ordered newest first, but it does not describe pagination behavior or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no wasted words. It front-loads the resource and scope, followed by the relevant ordering information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, read-only gallery listing tool with no output schema, the description gives the essential content and ordering. It is slightly incomplete because it does not clarify filter semantics, especially workout_log_id, but the annotations and schema cover most other needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with kind and limit partially documented, while workout_log_id has no schema description. The tool description does not explain the parameters or how to use them, and only loosely hints at kind through examples like 'workout posts, student photos'. It does not compensate for the undocumented workout_log_id filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource: photos the trainer posted in the app, including workout posts and student photos. It also specifies ordering (newest first), making the tool's purpose concrete. It does not explicitly distinguish this from close siblings such as list_my_exercise_videos or list_student_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives enough context to infer that this is the gallery/photos listing tool, but it provides no explicit when-to-use guidance, exclusions, or alternatives. It does not tell the agent when to prefer this over related media or file listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notificationsSee my notificationsBRead-onlyInspect
The trainer's app notifications, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a safe, read-only, closed-world operation. The description adds useful context that results are scoped to the trainer's app and sorted newest first, but it does not disclose pagination, read/unread inclusion, or result limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single compact sentence with no wasted wording. However, it is a noun phrase rather than a verb-led statement, so it is slightly less front-loaded than an action-oriented description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers scope and ordering for a simple no-parameter read tool. With no output schema, it could still say more about what notifications include, whether read and unread are mixed, or whether results are paginated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. The description appropriately avoids inventing parameter details, matching the baseline for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource precisely as the trainer's app notifications and adds the ordering (newest first). The tool name supplies the list verb, but the description does not explicitly differentiate this from notification-marking siblings such as mark_notification_read or mark_notifications_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies this is how to retrieve notifications, but gives no explicit when-to-use or when-not-to-use guidance. It also does not mention alternatives like mark_notification_read, mark_notifications_read, or other notice-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_operationsList everything Trainer Connect can doARead-onlyInspect
Lists the Trainer Connect app operations this connection can run (method, path, summary): students, workouts and programs, exercise library, schedule and classes, workout sessions and history, physical assessments, anamnesis, diet plans and nutrition, check-ins, chat, contracts, charges and payments, team, public page, AI generation and more. Filter with a keyword (Portuguese or English, e.g. "workout", "assessment", "diet", "appointment", "charge"). Then use describe_operation to see the fields and api_read or api_write to run it. Also returns the connected trainer_id, used in paths like /v1/trainers/{trainerId}/students.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | No | Part of the path or summary, e.g. "workout", "assessment", "diet". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds value beyond them: it discloses that the response also carries the connected trainer_id and that it must be interpolated into paths like /v1/trainers/{trainerId}/students — a non-obvious behavioral detail. It does not mention pagination or result-size limits, keeping 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose, filter mechanics and next-step routing are all front-loaded, and the domain list is compact prose rather than bullets. The long catalogue of domains (check-ins, chat, contracts, charges and payments, team, public page, AI generation and more) is somewhat sprawling, though it doubles as keyword hints. Appropriate overall length for a catalog/discovery tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 burden — and it does: it names the returned fields (method, path, summary) plus the trainer_id. Combined with the keyword semantics and the downstream tool routing, an agent has everything needed to call this correctly on the first try.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single keyword parameter is already documented, so the baseline is 3. The description goes further by stating the filter accepts values in Portuguese or English and listing concrete example keywords ("workout", "assessment", "diet", "appointment", "charge"), which is genuinely useful semantics the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lists) and resource (Trainer Connect app operations this connection can run), and further specifies the returned shape (method, path, summary). The enumeration of covered domains and the explicit hand-off to describe_operation/api_read/api_write makes it immediately distinguishable from every sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit workflow: filter with a keyword, then call describe_operation for fields, then api_read or api_write to execute. It names the alternative tools and the condition that selects each, which is exactly the discovery-to-execution routing an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_payment_remindersSee reminders of a paymentARead-onlyInspect
Reminders already sent to the student about one payment. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Id from list_payments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so 'Read only' largely restates structured data. The one piece of added value is the qualifier 'already sent', which clarifies that this returns historical reminder records rather than pending or scheduled ones; no pagination or ordering behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the resource stated first and the scope qualifier immediately after. The trailing 'Read only.' is redundant given readOnlyHint=true and is the only sentence that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with full annotation coverage and no output schema, the description covers what the tool returns and the entity it is scoped to. Missing only minor details such as ordering or whether results are bounded in count.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the paymentId property already documents its source ('Id from list_payments.'). The description adds only the confirmation that the scope is 'one payment', which matches the schema without extending it, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource (reminders sent to a student about a single payment) and scopes it precisely to one paymentId. It lacks an explicit verb like 'List' and does not distinguish itself from nearby siblings such as get_payment or list_student_payments, which could also surface payment-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer it should call this after obtaining a paymentId when it wants the reminder history. There is no explicit when-to-use, no mention of how this differs from get_payment or list_student_payments, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_paymentsSee payments from my studentsARead-onlyInspect
Lists what the trainer's students paid or owe: amount, student, due date, paid date and status. Use status "overdue" for unpaid charges past their due date (oldest first, with days_overdue), "open" for everything not paid yet, "paid" for received payments. Pass student (part of the name) to see one student only. Totals are in BRL.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Due or paid on or before, YYYY-MM-DD. | |
| from | No | Due or paid on or after, YYYY-MM-DD. | |
| status | No | "overdue", "open", "paid" or "all" (default). | |
| student | No | Only this student: any words of the name, in any order ("souza ana"). Totals then cover just them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, non-destructive, closed-world profile, and the description still adds real behavioral detail beyond them: overdue results are returned oldest-first with a days_overdue field, totals are scoped to the filtered student, and amounts are in BRL. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, each carrying distinct information (return fields, status semantics, student filter, currency), with the core purpose front-loaded. Nothing is redundant or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 naming the returned fields and the currency, and it covers all four optional parameters. It does not mention defaults for the date range or any result limits/pagination, which keeps it from fully complete for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description earns extra credit by explaining the semantic consequence of the filters — status 'overdue' adds days_overdue and sorts oldest-first, and passing student narrows the totals to that student. It adds meaning over the raw schema rather than restating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource plus the returned fields (amount, student, due/paid date, status), so the agent knows exactly what this returns. It does not, however, distinguish itself from close siblings such as list_student_payments, list_charges or list_subscription_payments, leaving overlap for the agent to resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly maps each status value to a use case ('overdue' for unpaid past due date, 'open' for anything unpaid, 'paid' for received) and explains when to pass student. It stops short of naming an alternative tool or stating when not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_programsSee my training programsBRead-onlyInspect
The trainer's training programs (workout sheets with weeks).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds only a shape hint ('workout sheets with weeks') and says nothing about whether all programs are returned, ordering, or pagination behavior for a zero-parameter 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key identifying detail (weeks/sheets) is front-loaded. It is telegraphic and verbless, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema and annotations covering the safety profile, little is required — but the description never says what a returned program looks like beyond 'weeks' or whether filtering by student is possible. Adequate, with a clear remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate. Baseline 4 applies for a zero-param schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (the trainer's training programs) and disambiguates it from list_workouts by glossing it as 'workout sheets with weeks'. The noun-phrase framing leaves the listing action implicit, but an agent can still tell what domain object this tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this versus list_workouts, get_workout, or create_workout, nor any stated preconditions. The parenthetical hints that programs contain workouts, which only weakly implies the program-vs-workout distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_receivable_banksSee supported banksBRead-onlyInspect
Banks accepted for receiving payments. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false; the description's 'Read only' merely repeats that. It adds nothing on whether the list is global or account-scoped, whether it is cached, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the purpose front-loaded and no filler. Nothing redundant beyond the short 'Read only' tag.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial zero-param read tool with full annotation coverage this is close to sufficient, but with no output schema the description never indicates what the returned bank entries contain (names, codes, logos, availability flags), leaving the agent guessing about response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters there is nothing to disambiguate, so the baseline of 4 applies. The description correctly implies a no-argument call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific resource and scope: banks accepted for receiving payments. An agent can tell it returns a static reference list of supported banks, distinct from get_receiving_status, which reports status rather than options. It lacks an explicit verb, but the noun phrase is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives such as get_receiving_status, nor any prerequisites or sequencing (e.g., call before configuring a payout account). The payment-receiving context implies usage but nothing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_sessionsSee latest finished workoutsARead-onlyInspect
Latest workouts finished by all the trainer's students at once, newest first, with rating and notes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, non-destructive and closed-world, so the description's contribution is return-shape context: results are sorted newest first and include rating and notes. That is real added value beyond structured fields, but it omits the result count / window for 'latest', which an agent would want before relying on it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads scope ('latest workouts finished by all the trainer's students at once') and then ordering and payload. No filler, nothing repeated from the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read with annotations covering the safety profile and no output schema, the description covers what it returns and in what order. The remaining gap is the implicit page size or time window for 'latest', which the agent cannot infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and the schema is an empty object, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly avoids inventing filter arguments that do not exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (finished workouts) and scope (across all of the trainer's students), plus ordering and payload ('newest first, with rating and notes'). It is clearly distinct from per-student siblings like list_student_sessions or list_live_sessions, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'latest workouts finished by all the trainer's students at once' — an agent can infer this is the cross-student activity feed. There is no explicit when-to-use guidance, no exclusion of similar tools such as list_student_sessions or list_workouts, and no statement about how many results come back.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedule_templatesSee my weekly scheduleBRead-onlyInspect
The trainer's recurring weekly class slots per student.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered and the description adds no contradiction. It does contribute a small amount of scope context — that results are the trainer's recurring weekly slots grouped per student. It says nothing about ordering, completeness, or whether inactive/deleted slots are included, which would be the genuinely useful additions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero filler or repetition. It is arguably over-trimmed — a fragment with no verb — but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A zero-parameter read tool with full annotation coverage and no output schema needs little, but this description leaves the key ambiguity unresolved: what exactly is a 'template' versus a scheduled slot or a class, and how it differs from get_schedule. For a crowded schedule namespace, that gap matters more than it would for an isolated tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is no schema semantics left for the description to compensate for. The phrase 'per student' is the only parameter-adjacent hint, suggesting results are grouped rather than filtered by an argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrasing is a noun fragment ('The trainer's recurring weekly class slots per student') rather than a verb+resource, though it does pin down the resource as recurring weekly class slots scoped per student. It gives no signal distinguishing it from close siblings such as get_schedule, list_student_schedule_slots, list_student_classes, or create_schedule_slot. An agent can guess it's a read of schedule templates but not confidently separate it from the other schedule-listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusion of alternatives, and no prerequisites. Given four-plus sibling tools that surface schedule-related data, the absence of any routing hint leaves selection ambiguous. The title 'See my weekly schedule' is the only contextual nudge, and it is in the annotations rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_classesSee a student classesBRead-onlyInspect
All classes and appointments of one student, past and future.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description's only added behavioral information is the past-and-future temporal scope; it says nothing about ordering, pagination, limits, or what fields each class record carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the scope qualifier in plain view and no filler. It is efficient, though so terse that it borders on under-specification rather than being genuinely well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description covers the essentials of what is listed and the time horizon. It leaves gaps on result shape, ordering, and volume, which matter because the tool returns 'all' classes with no stated bound.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema coverage, and the schema itself explains it comes from list_students. The description adds no further semantics about the identifier or filtering, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource (classes and appointments) for a single student and adds a useful scope qualifier (past and future). It is clear what the tool returns, but it does not distinguish itself from closely related siblings such as list_student_sessions or get_schedule, so an 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It never states when to reach for this tool versus the many overlapping siblings (list_student_sessions, get_schedule, list_class_change_requests). Usage is only implied by the name and the phrase 'of one student'; there are no exclusions or alternatives given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_competitionsSee a student challengesCRead-onlyInspect
Challenges one student is in, with their status.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, non-destructive, closed-world, so safety is covered. The description adds that each entry carries a participation status, which is useful, but says nothing about ordering, pagination, or whether inactive/past challenges are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loaded on the resource. The phrasing 'Challenges one student is in' is slightly awkward but not costly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations, the core need is covered. Still missing is disambiguation from list_competitions and any note on scope (active only vs historical), which matters for a per-student enumeration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already tells the agent to source studentId from list_students, so the baseline applies. The description adds no format or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It says what is returned (challenges a given student belongs to) plus their status, which is more than a tautology. But the verb is only implied by the tool name, and it uses 'challenges' while the tool name and siblings (list_competitions, get_competition, create_competition) use 'competitions', leaving the domain object ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus list_competitions (all competitions) or get_competition (single competition detail). The agent must infer the student-scoped filtering from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_filesSee a student filesBRead-onlyInspect
Files the trainer attached to a student (exams, reports, photos).
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds real context by saying the files are trainer-attached and enumerating their kinds, but says nothing about ordering, pagination, or what happens when no files exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the scope-defining phrase comes first. It reads as a noun-phrase fragment rather than a sentence, which slightly blunts front-loading of the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full annotation coverage and no output schema, this is close to adequate, but the agent still doesn't know whether results are paged, sorted, or what fields each file entry carries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the studentId description already points to list_students as the source. The prose adds nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (files attached to a student) and gives concrete examples (exams, reports, photos), so the agent knows what comes back. It lacks an explicit verb and never distinguishes this from the sibling list_class_files, which covers the analogous scope for classes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus get_student, list_student_sessions, or the sibling list_class_files. Usage is only inferable from the name, and no prerequisites (e.g. that the student must be one the trainer has access to) are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_goalsSee a student goalsCRead-onlyInspect
The student's goals and progress (weight, body fat, workouts per week...).
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered and the bar is lower. The description contributes by sketching the returned content (weight, body fat, workouts per week), which annotations cannot express, but says nothing about whether values are current vs historical, whether progress is a trend or a snapshot, or what happens if the student has no goals set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler. It is front-loaded with the resource, though the trailing ellipsis makes the field list feel unfinished rather than deliberately bounded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 strong annotations, this is close to sufficient, and the absence of an output schema means return details are not strictly required. Still, 'goals and progress' is ambiguous enough that an agent cannot tell whether it gets current targets, longitudinal measurements, or adherence percentages — a gap that matters given four or five overlapping student-data siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains that studentId is 'The student_id from list_students' — a useful provenance hint. The description adds nothing about the parameter, so the schema does all the work; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('the student's goals and progress') and gives example fields (weight, body fat, workouts per week), but it is a noun phrase with no verb and never clarifies that it is a read operation or how 'goals' differ from the many other student-data siblings. An agent can guess the content, but cannot confidently separate it from get_student_summary, get_student_health, or get_assessment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no reference to any alternative. With siblings like get_student_health, get_student_summary, get_assessment, and get_diet_adherence all returning student-level data, the agent is left to infer which one answers a 'goals/progress' question.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_health_historySee a student health historyBRead-onlyInspect
Daily health summaries synced from the student's watch or phone (steps, sleep, heart rate).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back, 30 by default. | |
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful context about what the data is and where it comes from (daily summaries synced from watch or phone, with specific metrics), but does not disclose sync delays, availability limitations, or return behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the key content: daily health summaries, data source, and included metrics. There is no redundant or padding language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with no output schema, the description gives a reasonable indication of the data returned (daily summaries with steps, sleep, heart rate). However, it does not describe return structure, date grouping, ordering, or how the days parameter affects output, leaving the agent to infer those details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the input schema, including days defaulting to 30 and studentId coming from list_students. The description does not add parameter-specific semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific resource and content: daily health summaries synced from a student's watch or phone, including steps, sleep, and heart rate. It is clear what data the tool exposes, but it does not differentiate this history tool from sibling tools like get_student_health or get_workout_health_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as get_student_health or get_workout_health_summary. It implies a health-history use case through the name and data description, but provides no explicit conditions, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_paymentsSee a student paymentsBRead-onlyInspect
Payments of one student, paid, pending and overdue. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the description's 'Read only' adds little. It does add useful behavior context by saying the results include paid, pending, and overdue payments, but it omits pagination, return format, and permission details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with no unnecessary detail or tangential explanation. The only minor inefficiency is that 'Read only' duplicates the readOnlyHint annotation rather than adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the schema and annotations already cover the parameter and safety profile, and the description covers the payment status categories. However, it does not explain how this differs from list_payments, list_subscription_payments, or get_payment, and it provides no return or pagination context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is fully documented in the schema, including that studentId comes from list_students. The description adds only the 'one student' framing and no additional format or semantic detail beyond the schema, so the high schema coverage supports a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: payments for one student, including paid, pending, and overdue statuses. It is clear enough to distinguish from all-payments tools, but it does not explicitly name or differentiate itself from close siblings such as list_payments or list_subscription_payments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the required studentId and the 'one student' scope, so an agent can infer it is for a known student's payments. However, there is no explicit when-to-use guidance, no exclusions, and no named alternatives for choosing between this and related payment-listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_programsSee a student programsBRead-onlyInspect
Training programs (sheets with weeks and days) assigned to one student.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds useful context that programs are structured as sheets with weeks and days, but it does not mention pagination, sorting, or what is omitted from the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. Its fragment style is slightly less clear than a full verb-led statement, but it is appropriately sized for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a fully documented single parameter and annotations, the description is mostly adequate. However, with no output schema, it could say more about whether the result is a list of programs, whether inactive programs are included, and whether any pagination applies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter and the schema description coverage is 100%; the schema explains that studentId comes from list_students. The description does not add anything beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (training programs) and scope (assigned to one student), which distinguishes it from the general list_programs sibling. It lacks an explicit verb, but the noun phrase still makes the tool's purpose understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The student-specific scope implies when to use this tool, but it does not explicitly compare it with alternatives such as list_programs, get_program, or list_student_workouts. Usage is inferable from the description rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_studentsList my studentsARead-onlyInspect
Lists the connected personal trainer's students with status, goal and start date. Optionally filter by part of the name. Use the returned student_id with get_student.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Part of the student's name. | |
| status | No | "active" (default) or "all", which includes pending and inactive students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/non-destructive/non-open-world, so the safety profile is covered. The description adds the scope (only the connected trainer's own students) and the returned fields, which matters since there is no output schema. It says nothing about ordering, pagination, or result-size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no padding; the core scope and returned fields come first, then filtering, then the downstream pointer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-param, zero-required list tool with full schema coverage and annotations, this is nearly sufficient: scope, filtering, and the follow-up call are all covered. Only ordering/pagination behavior and the status filter are left implicit (the latter is at least in the schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, giving a baseline of 3. The description reinforces the name filter but never mentions the status enum (active vs. all, including pending/inactive), which is the parameter that most changes the result set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lists) and resource (the connected personal trainer's students), plus the fields returned (status, goal, start date). It also distinguishes itself from the single-record sibling by noting the returned student_id is the input for get_student.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use and a concrete next step ('Use the returned student_id with get_student'), which routes the agent through the list→detail flow. It stops short of stating when not to use it versus siblings like find_trainers or search_exercises, so it doesn't reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_schedule_slotsSee a student fixed slotsBRead-onlyInspect
The recurring weekly class slots of one student.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, read-only, closed operation. The description adds that the slots are recurring weekly fixed slots for one student, which is useful domain context, but it does not disclose pagination, permissions, or output behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It conveys the core resource and scope immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter list tool with full schema coverage and read-only annotations, the description is mostly complete. It could clarify whether it returns slot metadata or class details, but no major gap prevents correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and studentId is already described as coming from list_students. The description does not add any parameter meaning beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource and scope: recurring weekly class slots for one student. It is specific enough to distinguish schedule slots from one-off classes, but it does not explicitly differentiate itself from siblings like list_student_classes or get_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives, and no prerequisites. The description only names the returned resource, leaving the agent to infer the appropriate context from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_sessionsSee a student workout historyARead-onlyInspect
Every workout session a student logged: date, workout, duration, rating, notes and the loads used.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real value by disclosing the returned fields (date, workout, duration, rating, notes, loads), which matters since there is no output schema. It omits pagination/limit behavior, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the resource, followed by a compact field list. Every clause earns its place, and the field enumeration does double duty as return-value documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations and no output schema, the description covers both the resource and the returned fields. Only gaps are result-set size/pagination and any ordering (e.g., most recent first), which an agent calling a history list might want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('The student_id from list_students'), so the schema carries the meaning. The description adds nothing about the parameter — no format, no cross-reference to list_students — which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely ('every workout session a student logged') and enumerates the payload fields, so an agent knows exactly what it returns. It doesn't explicitly differentiate from nearby siblings like list_recent_sessions or list_student_classes, which keeps it out of the 5 tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope (single student's full history) implies when to reach for it, but there is no explicit when/when-not statement and no mention of alternatives such as list_recent_sessions (which presumably spans all students or a recency-limited window). Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_subscriptionsSee a student subscriptionsCRead-onlyInspect
Plans one student subscribed to, with status and renewal. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the agent knows this is a safe closed-world read. The description repeats 'Read only' but also adds that results include status and renewal, which is useful context. It does not disclose pagination, return shape, or auth/rate details, but with annotations covering the safety profile, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is only two short sentences, but the first is grammatically awkward and the second ('Read only') duplicates annotations without adding new information. It is not verbose, but the wording reduces clarity rather than front-loading a precise purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, annotations cover safety and the schema covers the sole parameter. However, there is no output schema, and the description never clearly states that it returns a list of subscription plans for the given student, leaving return expectations implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter is documented in the schema as the student_id from list_students. The description adds no parameter-specific meaning, so the baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (subscription plans) and mentions status and renewal, but the verb is unclear ('Plans one student subscribed to') and it does not distinguish this tool from sibling tools like list_subscriptions or get_subscription. An agent can infer it lists a student's subscriptions from the name and studentId, but the description alone is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives are given; it does not say to use this instead of list_subscriptions when scoped to an individual student. The required studentId implies per-student scope, but the description leaves comparison to siblings unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_supplementsSee a student supplementsCRead-onlyInspect
Supplements and water the student takes, with adherence over the last 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered and the description does not need to repeat it. The description does add a genuine behavioral detail the annotations lack: the adherence window is fixed at the last 30 days, which tells the agent the temporal scope is not configurable. It says nothing about return shape, pagination, or behavior for a student with no supplements, so it is additive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, which is appropriate for a one-parameter read tool. It loses a point for awkward construction ('Supplements and water the student takes') that slightly obscures whether 'water' is a tracked item type or something else.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one required param, read-only, no output schema), and the description does name the returned content and the adherence window, which is most of what an agent needs. It is still incomplete on the questions that matter for a list tool with no output schema: whether results are paginated, the ordering, and what an item looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter and 100% schema description coverage, the schema already explains that studentId comes from list_students. That chaining hint is the most valuable part of the parameter story and it lives in the schema, not the description, so the baseline 3 applies. The description contributes no additional meaning about the identifier or its origin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The resource is stated specifically (a student's supplements and water plus 30-day adherence), which is more informative than the title alone. However, there is no verb ('list'/'retrieve') and the phrasing 'Supplements and water the student takes' is grammatically loose, so the agent must infer that this returns a collection rather than a single record. It only weakly distinguishes itself from nearby tools such as get_diet_adherence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like get_diet_adherence, get_student_health, or get_student_summary, all of which touch adjacent adherence/health data. The agent is left to infer the selection criteria from the tool name and the resource noun alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_student_workoutsSee a student workoutsARead-onlyInspect
Every workout assigned to one student, active and past, with the exercises.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and closed-world scope, so safety is covered. The definition adds useful context that both active and past assignments are returned and that exercises are embedded, but says nothing about ordering, pagination, or size limits on a potentially large history.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; scope and content are stated immediately. It is efficient but stops short of any routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read with full schema coverage, no output schema and closed-world annotations, only the result scope needs explaining, and the description does that by noting active plus past workouts with exercises. Pagination behavior on large histories is the one remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single studentId parameter is documented in-schema as coming from list_students. The description adds no further meaning such as whether other identifiers are accepted, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (workouts for one student) with scope (active and past) and content depth (with exercises). It is differentiable from list_workouts and get_workout, but 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrase 'assigned to one student' - the agent can infer this is the per-student view versus the global list. There are no explicit when-to-use/when-not conditions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscription_paymentsSee payments of a subscriptionBRead-onlyInspect
Every charge of one subscription. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Id from list_subscriptions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so "Read only" merely restates structured data. The description does add one behavioral fact that results are the complete set of charges for a single subscription (implying no cross-subscription filtering), but says nothing about ordering, volume, or pagination for a potentially unbounded list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with zero padding, and the scoping statement comes first. The second sentence ("Read only.") duplicates the annotations and therefore does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full schema coverage and complete safety annotations, most of what an agent needs is present. However, with no output schema there is no disclosure of what a "charge" record contains or whether the list is paginated or time-bounded, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already carries a chaining hint ("Id from list_subscriptions"), so the schema does the heavy lifting. The description contributes no additional meaning about subscriptionId such as its scope or what happens with an invalid or foreign id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Every charge of one subscription" names the resource (charges/payments) and its scope (a single subscription), which distinguishes it from the broader list_payments and list_charges siblings without naming them. It stops short of an explicit verb-plus-resource phrasing or a direct comparison to those siblings, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use, when-not-to-use, or alternative-tool guidance. The only routing hint in the whole definition ("Id from list_subscriptions") lives in the schema, not the description, so callers get no help choosing between this and list_payments, list_student_payments, or get_payment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscriptionsSee students subscriptionsBRead-onlyInspect
Each student's subscription to the trainer's plans, with status and next charge. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so 'Read only.' repeats structured data rather than adding value. The description does add the returned fields (status, next charge), but says nothing about scoping, ordering, or pagination for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the returned content front-loaded. The trailing 'Read only.' earns no place since annotations already carry that fact, but overall there is no bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description's listing of returned fields (status, next charge) is genuinely helpful. However, for a list tool it omits anything about result volume, pagination, or which students are covered, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 document and the baseline applies. The description implicitly clarifies that the listing is scoped to the caller's trainer plans.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource and the returned content: each student's subscription to the trainer's plans, plus status and next charge. The purpose is unambiguous, but it offers no differentiation from the many other list_* siblings (list_contracts, list_payments, list_student_classes) that could plausibly overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 tool versus alternatives such as list_contracts or list_payments, nor any precondition or scope note (e.g. which trainer's roster). Usage is only inferable from the noun 'subscription'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_support_ticketsSee my support ticketsARead-onlyInspect
Support tickets the trainer opened with the Trainer Connect team, with status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a safe, read-only, non-destructive operation, so the description only needs to add scope. It adds that only tickets opened by the trainer with the Trainer Connect team are returned and that status is included, but it does not describe ordering, pagination, or whether closed tickets are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the resource, ownership scope, and included field without any waste. Every clause adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter, read-only list tool whose safety profile is already covered by annotations, the description is nearly complete. It tells the agent what tickets are returned and that status is included, though it could mention ordering or whether all statuses are shown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain and the baseline is 4. The description does not need to compensate for schema gaps because the schema is empty and fully described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (support tickets) and scope (opened by the trainer with the Trainer Connect team, with status), so the agent can tell it is a listing tool. It does not explicitly contrast itself with get_support_ticket or the open/reply siblings, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the title and the resource scope, but there is no explicit instruction on when to use this versus get_support_ticket for a single ticket or open_support_ticket to create one. The agent can infer the use case, but no alternatives or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tab_classesSee classes that can go on a tabBRead-onlyInspect
Classes of one student in a month that can be added to a tab, with the price per class. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | YYYY-MM, this month by default. | |
| student_id | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so 'Read only' in the description is pure repetition with no added value. What does add value is disclosing that each result carries a price per class and that results are scoped to a single student and month. No mention of pagination, ordering, or what makes a class tab-eligible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence covering scope and payload, with no filler. The only waste is the trailing 'Read only', which merely echoes the annotations instead of earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a fully documented schema and no output schema, the essentials are present. However, the defining concept — what makes a class eligible to be added to a tab — is never explained, which is the one thing an agent cannot derive from structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are documented in the schema, including the YYYY-MM format and the default-to-current-month behavior. The description adds no format or semantics beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (list) and a well-scoped resource: classes of one student in a month that are eligible to be added to a tab, including the price per class. This is clearly distinct from list_tabs (tabs themselves) and distinguishable from list_student_classes by the 'can be added to a tab' scoping, though it never names the nearest siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'can be added to a tab' implies the workflow (call this before populating a tab), but the description never states when to prefer it over list_student_classes, list_tabs, or list_student_sessions, nor does it give prerequisites. 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.
list_tabsSee open tabsCRead-onlyInspect
Tabs (comandas) of students: products and services consumed. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so 'Read only' is largely redundant. The description adds no behavioral context beyond the annotations, such as scope, pagination, filtering, or what 'open' means in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the domain concept before the safety note. It wastes little space, though 'Read only' repeats an annotation and could have been replaced by more useful scoping information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with no output schema, the description is minimally adequate. It explains what tabs are but does not say whether it lists all students' tabs, only open tabs, or how results are shaped, leaving a meaningful informational gap for an agent choosing among many list tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics burden on the description. Per the rubric, a zero-parameter tool gets a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'Tabs (comandas) of students' and says they contain 'products and services consumed,' which gives useful domain context. However, it does not use an explicit verb or state scope, and it does not distinguish this tool from the many other list_* siblings. The title adds 'open tabs,' but the description itself leaves the action implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, when not to use it, or which alternative list tool to choose. The phrase 'Read only' indicates safety but does not help an agent route between similarly named list operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_team_membersSee my teamBRead-onlyInspect
Team members (other trainers, interns) of the trainer's account and what they can do.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, closed-world, so the safety profile is covered. The description adds useful scoping ('of the trainer's account') and notes the result carries role/permission information, but says nothing about ordering, pagination, or whether it includes the caller.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler. Slightly awkward phrasing ('of the trainer's account') and a dangling 'what they can do' that could be stated more precisely as roles/permissions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 bears responsibility for describing the return shape; 'what they can do' gestures at roles/permissions but does not describe the fields. For a trivial no-param read tool this is adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (team members — other trainers and interns) scoped to the trainer's account, plus their capabilities. Verb is only implied by the name ('list'), and siblings like get_my_team_role and find_trainers are not differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to call this versus get_my_team_role (own role) or find_trainers/search tools. The agent must infer the use case entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_training_goalsSee training goalsBRead-onlyInspect
Training goals (hypertrophy, weight loss...) used in the library.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds that these are library-level goal types (a static taxonomy), but says nothing about result size, ordering, or whether the list is user- or account-specific.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that is front-loaded with the resource name. The leading ellipsis in 'hypertrophy, weight loss...)' is slightly sloppy but costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only lookup with annotations covering safety and no output schema, the description is sufficient to call it correctly. Minor gap: it does not state that the returned values are the valid keys to pass to goal-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline of 4 applies. The description correctly implies no input is required to retrieve the goal list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (training goals) and gives concrete examples (hypertrophy, weight loss) that identify it as a fixed option catalog rather than a per-student record. The qualifier 'used in the library' hints it is the taxonomy behind other tools, though it never explicitly contrasts with list_student_goals or create_goal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement, no prerequisites, and no mention of alternatives. An agent can only infer that this is the source of valid goal values; nothing states when to call it versus list_student_goals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_unlinked_assessmentsSee assessments without a studentARead-onlyInspect
Assessments done before the person became a student (trial class), waiting to be attached.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, closed-world behavior. The description adds useful domain context about what these records are (pre-student trial assessments waiting to be attached), but it does not describe the return shape, ordering, or whether the list is complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no filler. It is appropriately sized for a zero-argument tool, though it could front-load an explicit verb like 'List' to improve scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter read-only list tool with no output schema, the description defines the set being returned well enough to call it. It could add return-value detail, but the missing pieces are minor given annotations and the absence of inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters are defined, so the baseline is 4. The description does not need to explain parameter semantics; it appropriately stays silent on nonexistent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as assessments completed before a person became a student (trial class) and waiting to be attached. It is specific about the state of the assessments, but it never uses an explicit action verb and does not contrast with list_assessments or list_archived_assessments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies these are assessments awaiting attachment, but does not explicitly say when to call it versus list_assessments or attach_assessment_to_student. The trial-class context gives a usable cue, but no exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wallet_withdrawalsSee my withdrawalsCRead-onlyInspect
Withdrawals from the wallet to the bank, with status. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so 'Read only' is pure repetition. The only added signal is 'with status', which vaguely suggests a status field per item, but nothing about ordering, pagination, or whether history is bounded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments, front-loaded with the resource. It is efficient, though the second fragment ('Read only') spends space on information already carried by the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 should at least sketch what comes back — status values, date coverage, or pagination. 'With status' gestures at the payload but leaves the agent guessing about the shape and recency of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is no argument semantics for the description to compensate for. Nothing in the description contradicts or misleads about the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Withdrawals from the wallet to the bank, with status' identifies the resource and hints at the returned field, but it is a noun phrase with no explicit verb and no differentiation from near-siblings like list_digital_account_transfers, list_operations, or get_statement. An agent can guess the direction (wallet → bank) but not precisely why this list exists versus those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 tool, what time window it covers, or which alternative to pick for statements/transfers. 'Read only' restates the annotation rather than providing usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workout_copiesSee who got a templateBRead-onlyInspect
Students who received a copy of a workout template, and whether their copy was customized.
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Template workout id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe read-only operation with no destructive or open-world behavior. The description adds useful domain behavior by saying it reports both recipients and whether their copy was customized, but it does not mention pagination, ordering, or other list-specific behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the resource and the key behavioral detail. There is no filler, and every phrase contributes to understanding what the tool returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only listing tool with full schema coverage and annotative safety hints, the description is nearly complete: it explains the population and the customization signal. The only minor gap is the absence of any note about return shape or pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single required parameter, and the schema already explains that workoutId is a template workout id. The description reinforces that the tool operates on a workout template, but adds no syntax, constraints, or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the exact result set: students who received a copy of a workout template and whether their copy was customized. That distinguishes it usefully from mutation-oriented siblings such as sync_workout_copies, though it does not explicitly name the alternative or state the verb form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies you would use it to inspect recipients of a template, but it gives no explicit when-to-use guidance, no exclusions, and no comparison to alternatives such as sync_workout_copies. An agent has to infer the usage context from the name and returned data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workoutsSee all my workoutsARead-onlyInspect
Every workout the trainer wrote, for all students, with the exercises.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact — that exercises are embedded in the results — but says nothing about result volume, ordering, or pagination for an unfiltered 'all' query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the scope ('every workout... all students') front-loaded and the payload detail ('with the exercises') appended. Nothing is wasted and nothing needs to be scanned for.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 mention exercises being included, but omits shape details an agent would want for an unbounded list — ordering, approximate size, or whether student identity is attached to each workout.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the baseline of 4 applies. No parameter-related gaps exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: every workout the trainer wrote, across all students, including the exercises. That is concrete enough to know what comes back, but it never contrasts itself with get_workout (single) or list_workout_suggestions, so sibling disambiguation is left to the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for all students' implies this is the broad overview rather than a single-record lookup, which is a usable but indirect signal. There is no explicit when-to-use, no when-not, and no named alternative such as get_workout.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workout_suggestionsSee students workout change requestsARead-onlyInspect
Changes students suggested to their workouts (load, exercise swap), waiting for the trainer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the description only needs to add context. It does add that these are pending items awaiting trainer action, which is a meaningful filter, but it says nothing about ordering, scope across students, or whether resolved suggestions are excluded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the resource and parenthetical detail on change kinds. It is terse to the point of being a fragment, but nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list with no output schema, the description conveys enough to call it correctly and to know what kind of items come back. Its main gap is the absence of any hint about result shape or volume, which matters slightly more because no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. Mentioning the change types (load, exercise swap) loosely characterizes results rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource precisely: pending student-suggested workout changes (load adjustments, exercise swaps). Combined with the name it is unambiguous, but it never says the verb 'list' explicitly and relies on the name to convey that it retrieves rather than mutates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Waiting for the trainer' implies this is the queue that precedes approve_workout_suggestion / reject_workout_suggestion, but neither sibling is named and no explicit when-to-use or when-not-to-use guidance is given. The agent must infer the pending-only scoping and the review workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_announcement_seenMark an app announcement as seenAInspect
Marks a Trainer Connect announcement from list_announcements as seen.
| Name | Required | Description | Default |
|---|---|---|---|
| announcementId | Yes | Id from list_announcements. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive write (readOnlyHint=false, destructiveHint=false) with open-world behavior. The description adds the domain context that this is a Trainer Connect announcement but does not disclose idempotency, side effects, permissions, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words, clearly stating the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation with no output schema, the description combined with annotations and the fully described schema is complete enough for correct invocation. A bit more detail on what marking as seen changes would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single announcementId parameter is already fully documented in the schema. The description restates that the ID comes from list_announcements, matching the schema description without adding new syntax or format detail; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (marks), resource (Trainer Connect announcement), and resulting state (seen), and references list_announcements as the source. It is clear what the tool does, but it does not explicitly differentiate itself from sibling mark_* tools such as mark_notification_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: mark an announcement as seen after obtaining its ID from list_announcements. The description gives no explicit when-to-use guidance, no exclusions, and does not name alternatives like mark_notification_read.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_chat_readMark a chat as readCInspect
Marks the chat with one student as read.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive mutation. The description adds nothing beyond repeating that it marks something as read—no side effects, rate limits, or auth requirements are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words, appropriate for a simple one-parameter tool. It could be slightly richer, but it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with clear annotations and no output schema, the description is minimally adequate but leaves out sibling differentiation and any behavioral context about what 'read' actually changes (e.g., unread counters).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single studentId parameter is fully documented in the schema itself. The description's phrase 'with one student' slightly reinforces the scoping but adds no meaningful syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Marks ... as read') and resource ('the chat with one student'), making the operation clear. It does not, however, distinguish itself from the sibling 'read_chat' or 'mark_notification_read', so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus 'read_chat' or 'mark_notifications_read', nor any prerequisites or exclusions. The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_lead_readMark a lead as readBInspect
Marks a lead from list_leads as read.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | Id from list_leads. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as a non-read-only, non-destructive, open-world mutation, so the description could have added value by explaining what 'read' actually changes (unread counter, stats, notifications). Instead the single sentence restates the name and the parameter's provenance, adding essentially no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler. It is efficient, though its brevity is the reason behavioral detail is missing rather than a sign of tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter state-change tool with annotations present and no output schema, the definition is minimally sufficient: the agent knows which id to pass and where it comes from. It leaves the effect of the mutation and any re-call behavior unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself says 'Id from list_leads,' which is exactly what the description says. The description adds no format, range, or error semantics beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Marks ... as read') plus a specific resource ('a lead'), which cleanly separates it from the read-marking siblings mark_chat_read, mark_notification_read, and mark_notifications_read. It also names the source list (list_leads), so the agent knows the lead must be one already retrieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'from list_leads' hints that the prerequisite is a prior list_leads (or get_lead) call, but there is no explicit when-to-use, no note on idempotency, and no mention of whether read state affects get_leads_stats or lead unread counts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_notification_readMark a notification as readCInspect
Marks one notification as read.
| Name | Required | Description | Default |
|---|---|---|---|
| notificationId | Yes | Id from list_notifications. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: no statement about idempotency, reversibility (can it be marked unread?), or whether an already-read notification errors or no-ops.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient, though so terse that the sizing leans toward under-specification rather than optimal density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with full schema coverage and annotations, the definition is minimally adequate. It is still missing the sibling routing (single vs bulk mark-read) and any note on what the call returns or how failures behave.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema property already explains the id comes from list_notifications, so the description need not repeat it. It contributes no additional semantics (e.g., integer format, invalid-id behavior), so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Marks') and resource ('one notification') and the word 'one' implicitly separates it from the bulk sibling mark_notifications_read. It never names that sibling, so the distinction is inference rather than explicit, but the core 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.
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 versus mark_notifications_read (bulk) versus mark_chat_read, nor any prerequisite (e.g., obtain the id first). The only hint that the id comes from list_notifications lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_notifications_readMark notifications as readAInspect
Marks every notification of the trainer as read.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world mutation. The description adds useful scope detail by specifying that all of the trainer's notifications are affected, but it does not explain reversibility, result behavior, or any constraints beyond the bulk scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with no wasted words. The action and scope are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter mutation with annotations covering the safety profile, the description is largely complete: it identifies the resource and confirms bulk scope. It could be slightly richer by clarifying how this differs from mark_notification_read, but no critical information is missing for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description appropriately does not introduce parameter semantics where none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Marks') and resource ('every notification of the trainer as read'), so the action and scope are clear. It implicitly distinguishes bulk marking from the sibling mark_notification_read by saying 'every notification', but it does not explicitly name that sibling or clarify the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this bulk-marking tool versus mark_notification_read or list_notifications. The word 'every' implies a bulk operation, but there are no exclusions, prerequisites, or stated alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_support_ticketOpen a support ticketAInspect
Opens a ticket with the Trainer Connect team (bug, question, account...). Show the text to the person before sending.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Up to 5000 characters. | |
| subject | Yes | ||
| category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare write semantics (readOnlyHint=false) and openWorldHint=true, so the bar is lower; the description still adds real value by naming the external recipient (Trainer Connect team) and imposing a human-confirmation step before the message leaves the system. It omits what happens after submission (ticket id, follow-up), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and recipient. The parenthetical category hint with an ellipsis is slightly cryptic but does useful double duty as a category cue, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-param creation tool with annotations and no output schema, this is mostly adequate. It does not mention what the caller gets back or how to follow up with get_support_ticket, and it leaves the subject field entirely unexplained, which is a real gap for ticket creation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema description coverage, the description partially compensates: the parenthetical (bug, question, account...) maps loosely onto the category enum values, and the team name clarifies who receives the text. Subject format and the 5000-char message limit remain documented only in the schema (message) or not at all (subject), so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource ("Opens a ticket") and names the recipient (Trainer Connect team), which distinguishes it from list_support_tickets/get_support_ticket/reply_support_ticket. It does not explicitly call out that it creates a new ticket rather than replying to an existing thread, which is the one sibling an agent could confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the parenthetical examples (bug, question, account...), which hint at triggers without stating when to use this instead of reply_support_ticket or a chat message. The workflow instruction "Show the text to the person before sending" is useful guidance but is about confirmation, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_payment_feesSimulate the fees of a chargeARead-onlyInspect
How much the student pays and the trainer receives for an amount, method and installments. Only a simulation: nothing is charged.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | ||
| amount_cents | Yes | Amount in cents (R$ 300,00 = 30000). | |
| installments | No | Card installments, 1 by default. | |
| payment_method | Yes | ||
| pass_platform_fee | Yes | Student pays the platform fee. | |
| pass_processing_fee | Yes | Student pays the processing fee. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the bar is lower, yet the description adds the key operational fact that no charge is created and clarifies the response semantics (student-side vs trainer-side amounts). It does not mention auth/permission requirements or fee-configuration dependencies, keeping it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the outcome stated first and the safety caveat second; no filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Six parameters, no output schema, and the description does not explain the fee-passing booleans or the provider field, which are precisely the knobs an agent could set wrongly. It is adequate for a read-only simulation but leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description only echoes three of the inputs (amount, method, installments) that the schema already documents. The two required booleans pass_platform_fee and pass_processing_fee, which materially change the result, are never explained in the description, nor is 'provider'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the exact resource and output split ('how much the student pays and the trainer receives') plus the inputs that drive it (amount, method, installments). 'Only a simulation: nothing is charged' confirms it is a preview rather than a charge. It does not name a sibling to contrast with (e.g. get_fee_settings, get_payment), so it stops short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'only a simulation' implies the tool is for pre-charge estimation, but the description never says when to use it versus get_fee_settings or before list_charges/get_payment. Usage is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_workoutShare a template in the catalogAInspect
Publishes a workout template (no student) to the Trainer Connect catalog other trainers browse. Confirm with the person first.
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Template workout id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, openWorldHint=true and destructiveHint=false. The description usefully adds the audience ('other trainers browse') and the confirmation requirement, but says nothing about reversibility/undo or what publishing does to existing copies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the core action is front-loaded and the caveat follows. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema, the definition covers action, target, visibility, and a confirmation guardrail. It stops short of stating the resulting state or how to revert, which would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single param is documented as 'Template workout id.' The description's 'no student' note reinforces that a template id is required, but adds no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Publishes) plus resource (workout template) and destination (Trainer Connect catalog other trainers browse). The parenthetical '(no student)' clarifies the template scope, but it never names publish_workout's direct counterpart unpublish_workout, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Confirm with the person first' gives one real prerequisite, but the description never states when to publish vs. when not to, nor points to unpublish_workout or apply_catalog_workout as alternatives. Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reactivate_studentReactivate a studentAInspect
Brings back a student who was inactive, with the history kept.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-destructive mutation (readOnlyHint=false, destructiveHint=false), so the bar is lower. The description adds useful context that history is kept, clarifying data retention, but it does not cover permissions, side effects such as notifications or access restoration, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and the key retention outcome with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation whose annotations already carry the safety profile, the description covers the main action and important outcome (history kept). It omits prerequisites such as confirming the student is inactive and any side effects, which prevents a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, and schema description coverage is 100%, so the schema already documents studentId and its source ('from list_students'). The description adds no parameter-level detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('brings back a student') and resource ('student'), plus the key condition ('who was inactive') and outcome ('history kept'). It does not explicitly distinguish the tool from the sibling update_student, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'who was inactive' implies the tool is for inactive students, but there is no explicit guidance on when not to use it, no alternatives named (e.g., update_student), and no prerequisites or permissions mentioned. This is minimum-viable implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_chatRead a chat with a studentCRead-onlyInspect
Messages between the trainer and one student, newest last.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds one genuine behavioral fact beyond them — messages are returned oldest-to-newest — but says nothing about volume, pagination, or whether unread state is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the key constraint (one student, ordering) front-loaded and zero filler. It is efficient, though the terseness sits close to under-specification rather than disciplined brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read tool with one fully documented parameter and annotations covering safety, so the bar is modest. Still, for a chat log an agent would benefit from knowing whether the full history is returned, whether there is a limit, and roughly what a message contains — none of which is mentioned, and no output schema exists to cover it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, including a pointer back to list_students. That fully documents the only input, so the baseline of 3 applies; the description adds no further meaning about studentId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely ('messages between the trainer and one student') and its ordering, but it is a bare noun phrase with no verb and never contrasts itself with sibling readers like list_conversations or read_lead_chat. An agent can infer this fetches a chat, but must rely on the title to know it is a read operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling set contains list_conversations (to discover chats) and read_lead_chat (for leads), yet the description says nothing about choosing among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_lead_chatRead a lead conversationBRead-onlyInspect
The conversation with a lead, oldest first; marks the lead's messages as read, like opening it in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | Id from list_leads. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The statement 'marks the lead's messages as read' is genuinely valuable behavioral disclosure (a state-changing read receipt), but it conflicts with the declared readOnlyHint=true. Beyond that one clause, nothing is said about the response shape, pagination, or history depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence-clause pair; the ordering guarantee ('oldest first') and the side effect are both front-loaded with no filler. Nothing extraneous, though it is terse to the point of omitting routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read with no output schema, the description covers ordering and side effects, which is the essential part. It leaves the agent guessing about the return contents (sender attribution, timestamps, attachments) and whether there is any limit on how much history is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter and the schema already documents it fully ('Id from list_leads'), so the baseline is 3. The description adds no further meaning about leadId, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource precisely: 'the conversation with a lead', which distinguishes it from the student-oriented read_chat and list_conversations siblings. It reads as a retrieval, though no explicit verb is used, so it lands just short of a full verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (open a lead's conversation to read messages), but the description never says when to prefer this over read_chat or list_conversations, nor any prerequisite such as having a leadId from list_leads. The analogy 'like opening it in the app' gestures at intent without giving selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_class_changeReject a class changeAInspect
Declines the student's request; the class stays where it was.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Id from list_class_change_requests. | |
| response_note | No | Message to the student. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, and the description adds the useful consequence that the class schedule is unchanged. It does not disclose whether the student is notified, whether the action is reversible, or what happens if the request was already handled — meaningful gaps for a state-changing, externally-visible action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short clause that front-loads the action and states the resulting state. No filler, nothing redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter action with annotations and no output schema, the description covers the essential effect but omits the pending-state prerequisite, the delivery of response_note to the student, and any failure behavior. Adequate to invoke, not complete enough to predict side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both requestId and response_note are documented in the schema, including the pointer to list_class_change_requests. The description adds no additional parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (declines a request) and its outcome (the class stays where it was), which is exactly what distinguishes it from the paired accept_class_change sibling. It never names that sibling explicitly, so the differentiation is inferred from symmetry 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: you reject a pending class change request. There is no explicit statement of when to prefer this over accept_class_change, no precondition that the request must still be pending, and no note about what to do first (list_class_change_requests only appears in the schema, not the description).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_join_requestDecline a student requestCInspect
Declines a request to train with the trainer.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Id from list_join_requests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the bar is lower, but the description adds nothing beyond them: it does not say whether the student is notified, whether the request can be re-submitted, or whether the decline is reversible. For a mutation with an open-world flag, that is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the action front-loaded. It is efficient, though the space saved could have carried usage or side-effect information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema, the annotations cover the safety profile and the schema covers the parameter, so the definition is callable as-is. It stops short of describing the outcome for the student or the resulting request state, which would be the remaining useful content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and the schema already documents it fully (100% coverage) including the pointer to list_join_requests. The description adds no additional meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb (declines) with a specific resource (a request to train with the trainer), and the title reinforces that it is a student join request. This distinguishes it from accept_join_request without needing to open either schema, though it never names the join-request object explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 accept_join_request, no prerequisite that a pending request must exist, and no note that the requestId comes from list_join_requests (that hint lives only in the schema). The agent must infer the workflow entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_workout_suggestionReject a workout changeAInspect
Rejects a student's suggestion; the workout stays as it is.
| Name | Required | Description | Default |
|---|---|---|---|
| suggestionId | Yes | Id from list_workout_suggestions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it non-read-only but non-destructive, and the description usefully confirms the workout is left unchanged — reinforcing that nothing is deleted. It does not say whether the rejection is final, whether the student is notified, or what happens if the suggestion was already resolved, which matters 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short clause pair, front-loaded with the action and immediately followed by its consequence. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema, the description covers what happens to the workout but omits side effects and post-conditions (notification, finality, error cases). Adequate to make the call, thin on consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself explains that suggestionId comes from list_workout_suggestions, so the description adds no parameter detail. Baseline 3 applies when the schema does the full job.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Rejects') and resource ('a student's suggestion') and adds the resulting state ('the workout stays as it is'). It is clearly distinct from the sibling approve_workout_suggestion by name and effect, though it never names that counterpart explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reject versus approve, nor any prerequisite or exclusion. The only workflow hint is implicit, coming from the schema's pointer to list_workout_suggestions as the id source.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_equipmentRename my equipmentCInspect
Renames equipment from list_equipment.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| equipmentId | Yes | Id from list_equipment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it doesn't say the old name is replaced, whether the change is immediately visible, or whether the call fails if the equipmentId doesn't exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero waste and the resource front-loaded, but the terseness crosses into under-specification for a mutation tool rather than achieving efficient completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only half the parameters documented, the description should carry more weight than one sentence. For a write operation, an agent still has no information on return value, error behavior, or confirmation semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: equipmentId is documented as "Id from list_equipment", and the description merely repeats that hint. The name parameter has no schema description, and the description only weakly implies it is the new name, so it fails to fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Renames equipment") and ties the identifier source to list_equipment, which distinguishes it from create_equipment and list_equipment. It does not differentiate from the other rename_* siblings (rename_muscle_group, rename_training_goal), but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is the implied prerequisite that the equipmentId comes from list_equipment. There is no statement of when to rename versus update/delete equipment, and no mention of preconditions such as ownership or permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_muscle_groupRename my muscle groupBInspect
Renames a muscle group from list_muscle_groups.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| muscleGroupId | Yes | Id from list_muscle_groups. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare that this is not read-only and not destructive, so the agent knows it is a mutation. The description adds only the source of the ID and says nothing about what the rename affects, whether it is reversible, or any permission requirements. It does not contradict the annotations, but it provides little behavioral context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It is appropriately concise for the tool, though it could carry slightly more useful context without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and no output schema, and the description correctly points to list_muscle_groups for the ID. However, it does not explain the new-name parameter or the mutation's behavioral implications, leaving an agent to infer key details from the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: muscleGroupId is documented as coming from list_muscle_groups, but the name parameter is undocumented in both the schema and the description. The description repeats the ID source but does not clarify that 'name' is the new name or add any constraints for it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: renames a muscle group. It also identifies the source list for IDs, which helps distinguish it from create_muscle_group and list_muscle_groups. It is clear, though it does not explicitly contrast with the sibling rename tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from list_muscle_groups' implies the prerequisite that the ID must come from that list. However, there is no explicit when-to-use guidance, no exclusions, and no explanation of when to choose rename_muscle_group versus create_muscle_group or other rename tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_training_goalRename a training goal optionBInspect
Renames a training goal from list_training_goals.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| goalId | Yes | Id from list_training_goals. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description confirms a rename operation but adds no behavioral context such as permissions required, reversibility, side effects, or whether other goals are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler, and the core action is front-loaded. It is appropriately sized, though the phrase "from list_training_goals" is slightly awkward and carries most of its meaning through implication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool, the description is minimally adequate: it identifies the action and the source of goalId. However, it leaves half the schema undocumented and does not clarify the name parameter or the operation's behavioral expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, with only goalId documented as "Id from list_training_goals." The description restates that source and implies that "name" is the new name, but it adds no constraints or format details for the name parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: "Renames a training goal," and ties it to the source list via "from list_training_goals." It is clear what the tool does, though it does not explicitly distinguish itself from siblings such as create_training_goal or update_goal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer that an existing training goal must first be obtained from list_training_goals. The description gives no explicit guidance about when to rename versus create or update a goal, and no exclusions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_program_daysReorder the days of a weekAInspect
Puts the days of a program week in the order given (every day id of the week, first to last).
| Name | Required | Description | Default |
|---|---|---|---|
| weekId | Yes | Week id from get_program. | |
| day_ids | Yes | Day ids from get_program, in the new order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive, open-world mutation, and the description adds a genuinely useful constraint: the list must contain every day id of the week, first to last — i.e. this is a wholesale reorder, not a partial move. It does not say what happens if ids are missing or foreign, but the core behavioral contract is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the ordering semantics front-loaded and the completeness constraint in parentheses; nothing is redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with full schema coverage, annotations, and no output schema, the description supplies what an agent needs to call it correctly. Only edge-case behavior (invalid or incomplete id lists) is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters already document their source (get_program) and that day_ids is 'in the new order.' The description's parenthetical reinforces the all-ids requirement but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (reorders the days of a program week) and specifies the ordering semantics. It is distinguishable from update_program_day and add_program_day, though it never names the closely related reorder_program_weeks sibling it mirrors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the tool for reordering rather than editing or adding days. There is no explicit statement of when to use it instead of update_program_day, or what prerequisite state (week must already contain the days) is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_program_weeksReorder the weeks of a programBInspect
Puts the weeks of a program in the order given (every week id of the program, first to last).
| Name | Required | Description | Default |
|---|---|---|---|
| week_ids | Yes | Week ids from get_program, in the new order. | |
| programId | Yes | Id from list_programs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this mutates without deleting. The description adds real behavior — that this is a whole-list reordering requiring every week id, first to last — but it never says what happens to weeks omitted from the list (ignored, dropped, appended), which is the key risk for a reorder operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the operation front-loaded and no filler. It is dense but every clause carries information; a small structural split would have made the completeness constraint more scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two required params, full schema coverage, and annotations covering the safety profile, the description covers the essentials. It still leaves out the consequence of an incomplete or invalid week_ids list and whether the reordered weeks are returned, which matters for a full-replacement mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond the schema by stating that week_ids must contain 'every week id of the program' in 'first to last' order — a completeness constraint the schema's 'in the new order' does not spell out.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('puts ... in the order given') and a specific resource ('the weeks of a program'), so the operation is unambiguous. It does not name or contrast with adjacent siblings such as reorder_program_days or set_workout_weeks, so an agent must infer the boundary from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no mention of alternatives. The only usage hint ('week ids from get_program') lives in the schema, not the description, and nothing says when reorder is preferred over update_program_week or set_workout_weeks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_support_ticketReply to a support ticketBInspect
Adds a message to one of the trainer's support tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| ticketId | Yes | Id from list_support_tickets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the useful detail that this appends a message rather than replacing anything, but says nothing about whether the trainer is notified, whether the ticket state changes, or whether closed tickets accept replies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and zero filler. It is efficient, though its brevity is part of the reason usage and behavioral gaps remain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter write tool with no output schema and annotations covering the mutation profile, this is minimally adequate. An agent still lacks confirmation of what happens on success (new message id? ticket status change?) and whether replying requires the ticket to be in an open state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: ticketId is documented ('Id from list_support_tickets') while message is a bare string. The description implies the message is free-text content added to a specific ticket, which is consistent but adds little beyond the schema. Baseline 3 for partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Adds') and resource ('a message to ... support tickets'), which cleanly separates it from list_support_tickets, get_support_ticket and open_support_ticket. It does not, however, distinguish itself from the near-identical send_support_chat_message sibling, so an agent still has to infer which channel applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance and no prerequisites (e.g. that the ticket should already be open, or that the id comes from list_support_tickets). The only disambiguating hint lives in the schema's ticketId description, not in the tool description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_leadReply to a leadAInspect
Sends a message to a lead (in-app notification or e-mail). Show the text to the person before sending.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | Id from list_leads. | |
| message | Yes | The reply, up to 2000 characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), so the bar is lower, and the description still adds two things beyond them: that delivery happens via in-app notification or e-mail, and that the text should be reviewed with the user before sending. It stops short of saying whether the message is external-facing/irreversible or how the channel is chosen.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the action front-loaded and the confirmation requirement immediately after. Nothing could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers what the tool does and the key safety behavior. The one unresolved gap an agent would hit is how the in-app vs e-mail channel is determined, since no parameter exposes it and the description does not say.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so leadId ("Id from list_leads") and message (2000 char limit) are already fully documented. The description adds no meaning beyond the schema for either parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Sends a message to a lead") and scopes it to lead outreach, which separates it from the generic send_message and from read-only siblings like read_lead_chat. It does not explicitly name which sibling to prefer, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction "Show the text to the person before sending" is a genuine pre-send confirmation guideline, which is real usage guidance for a mutating tool. However, it gives no guidance on when to use this versus send_message or read_lead_chat, and no prerequisites (e.g. must the lead be in a specific state).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reschedule_classReschedule a classAInspect
Proposes a new time for a class, like in the app: the student accepts it there, or the class moves at once if the trainer turned on "my changes apply immediately". The student is notified.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Message to the student. | |
| appointment_id | Yes | Appointment id from get_schedule. | |
| proposed_date_time | Yes | New start, ISO 8601 with the -03:00 offset (Brazil time). | |
| proposed_duration_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, open-world operation. The description adds genuinely useful behavior: the result is conditional on the trainer's "changes apply immediately" setting, and the student is notified — information the agent cannot get from the schema or annotations. Permissions and failure modes are not covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the action and then explains the conditional outcome; no filler. The phrase "like in the app" is slightly informal but earns its place by anchoring the mental model.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the key behavioral ambiguity (immediate move vs pending student acceptance) and the side effect (notification), which is what an agent most needs. It does not say what the call returns or whether a pending request id can be retrieved afterwards.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, with appointment_id, proposed_date_time (ISO 8601, -03:00) and reason already documented in the schema. The description mentions the new time only implicitly and says nothing about proposed_duration_minutes, so it adds no meaning beyond the structured fields; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Proposes a new time for a class" gives a concrete verb and resource, and the caveat that the class may move at once clarifies the actual effect better than the tool name alone. It does not name siblings like schedule_class or cancel_class, so the agent must infer the boundary from names rather than the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the downstream flow (student accepts, or auto-applies) which implies when the tool is appropriate, but it never states a when-to-use rule or contrasts with accept_class_change / reject_class_change / schedule_class. Usage 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.
restore_anamnesis_formRestore a deleted anamnesis formBInspect
Brings back a deleted anamnesis form of the trainer.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | The anamnesis form id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is known without the description. The description adds the meaningful state change (a soft-delete is being reversed), but says nothing about failure behavior when the form is not deleted, permissions required, or whether associated answers are restored.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler and no redundant restatement of the name. It is efficient, though the terseness borders on under-specification rather than deliberate brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the core action but omits outcome information an agent would want: what the restored form's state is afterward, whether it errors on a non-deleted id, and whether related records come back with it. Annotations cover safety, so the gap is moderate rather than severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage, so the schema fully documents formId as an integer. The description does not add any constraint the schema lacks, such as whether the id must reference an already-deleted form. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('brings back') and resource ('a deleted anamnesis form'), with ownership scope ('of the trainer'). It does not distinguish this from sibling restore tools (restore_assessment, restore_program, restore_workout) or from the adjacent update_anamnesis_form, but the resource name makes the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus update_anamnesis_form or get_anamnesis_form, nor any stated precondition (e.g. that the form must currently be deleted, or how to discover deleted form IDs via list_anamnesis_forms). The agent is left to infer the entire invocation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_assessmentRestore a deleted assessmentAInspect
Brings back an assessment from list_deleted_assessments.
| Name | Required | Description | Default |
|---|---|---|---|
| assessmentId | Yes | Id from list_deleted_assessments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is largely covered. The description adds that this reverses deletion by restoring an assessment from the deleted list, but it does not mention permissions, failure conditions, or post-restore effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. For a one-parameter restore tool, this is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus annotations and schema are enough to invoke the tool, but it leaves gaps around how it differs from unarchive_assessment and what the restore operation returns. With no output schema, a brief note on the result would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single assessmentId parameter has 100% schema description coverage, and the schema already says it comes from list_deleted_assessments. The description repeats that same source without adding format, constraints, or validation details, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ("Brings back") and resource ("assessment") and ties it to deleted assessments from list_deleted_assessments. It is understandable, but it does not explicitly distinguish this from sibling unarchive_assessment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by "from list_deleted_assessments," which tells the agent the assessment must first be found in the deleted list. However, there is no explicit when-to-use guidance, no exclusions, and no comparison to unarchive_assessment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_programRestore a deleted programCInspect
Brings back a program that was deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| programId | Yes | Program id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutating-but-safe profile is known. The description adds nothing beyond that: it does not say whether nested days/weeks/workouts come back with the program, whether a non-deleted or unknown programId errors out, or whether the restoration is immediate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no waste, which is appropriate for a single-parameter tool. However, the brevity crosses into under-specification rather than efficient communication, so it earns only minimal credit here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description omits what the agent actually needs: whether descendant entities are restored, what happens on an invalid or non-deleted programId, and whether permissions or a specific program state are required. The definition is not sufficient to call confidently beyond the happy path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single required integer programId, so the schema already carries the parameter contract. The description adds no meaning about what ID is expected (e.g., a deleted program's ID from list_programs) beyond what is structured. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb plus resource and scope ('Brings back a program that was deleted'), so an agent can tell it apart from create_program or update_program. It does not distinguish itself from the closely related restore_workout or from get_program/list_programs, which the sentence could easily have anchored it against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'that was deleted' weakly implies the target state, but there is no guidance on when to call it versus retrieving a program, no precondition that the program must actually be in a deleted state, and no mention of the obvious alternative path of recreating the program via create_program.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_workoutRestore a deleted workoutCInspect
Brings a workout back from the trash.
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Id from list_deleted_workouts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered; the description's only addition is the "trash" framing. It says nothing about what actually happens after restore (does it return to its original folder/program, is it blocked if the trash expired, what errors surface), which matters 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short front-loaded sentence with no padding or repetition. It is efficient, though its brevity comes at the cost of the guidance and behavioral detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter mutation with annotations and no output schema, so the description needn't cover return values. Still, it omits the essential precondition (the workout must be in the trash) and the failure mode, leaving the agent to infer basic call semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage and a single required parameter documented as "Id from list_deleted_workouts," the schema does the work. The description adds no meaning about the id's range, format, or behavior when the id is not a deleted workout.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Brings a workout back from the trash" restates the name/title (restore a deleted workout) rather than adding specificity, though "from the trash" does imply recovery of a soft-deleted item. It gives no signal to distinguish this from the sibling restore_program or from list_deleted_workouts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no mention of the alternative path (list_deleted_workouts to find the id, or create_workout if the user wants a fresh copy). The precondition that the workout must currently be deleted is only implied by the metaphor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_classSchedule a classAInspect
Books a class or appointment on the trainer's schedule (Brazil time, America/Sao_Paulo), with a student or as a personal block when student_id is empty. The student is notified, like in the app. To move or cancel it later use reschedule_class or cancel_class.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| title | No | ||
| location | No | ||
| date_time | Yes | Start, "YYYY-MM-DD HH:MM" in Brazil time. | |
| student_id | No | student_id from list_students; empty for a personal block. | |
| duration_minutes | No | Default 60. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a non-read-only, non-destructive, open-world write. Beyond that, the description discloses the key side effect ('The student is notified, like in the app'), the timezone the booking is interpreted in, and the personal-block case — all things the schema does not say. It stops short of covering double-booking/conflict behavior or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core operation, then the mode variant, then the routing hint. Every clause carries information; nothing is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation with annotations covering safety, the description supplies the things annotations cannot: notification side effect, timezone interpretation, personal-block mode, and where to go for moves/cancellations. Remaining gaps (conflict handling, permission requirements, meaning of notes/title/location) keep it from full marks but do not block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: notes, title and location are bare strings with maxLength and remain unexplained in both places. The description reinforces date_time timezone and the empty-student_id rule, but those points already appear in the schema, so it adds little net meaning for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Books a class or appointment on the trainer's schedule') and adds the two supported modes: with a student or as a personal block. It names the sibling tools it is not (reschedule_class, cancel_class), so the agent can place it in the scheduling family 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent away from this tool for later modifications: 'To move or cancel it later use reschedule_class or cancel_class.' It does not address adjacent create-style siblings such as create_schedule_slot or update_class, so the guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_diet_planSchedule the next diet phaseAInspect
Schedules a diet plan to become the student's active diet on a future date.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Id from list_diet_plans. | |
| starts_on | No | YYYY-MM-DD, after today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is not read-only, is open-world, and is not destructive. The description adds the meaningful behavior that the plan becomes active on a future date, but it does not say what happens to any currently active or already scheduled diet plan.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly written sentence with no wasted words, and the key outcome is front-loaded. It is appropriately sized for a two-parameter scheduling tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a scheduling mutation, the description should clarify whether this replaces the current active diet or merely queues a future phase, and how it differs from activate_diet_plan. Annotations cover the safety profile, but the lifecycle behavior remains underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so planId and starts_on are already well documented, including that planId comes from list_diet_plans and starts_on must be after today. The description adds no meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (schedules a diet plan) plus the concrete outcome: it becomes the student's active diet on a future date. This separates it from activate_diet_plan implicitly, but it does not name or explicitly contrast with that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The future-date framing implies when to use it rather than activate_diet_plan, but the description gives no explicit when/when-not guidance and names no alternatives. The agent must infer the scheduling versus immediate-activation distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_exercisesSearch the exercise libraryARead-onlyInspect
Searches the Trainer Connect exercise library (with demo videos), in Portuguese or English: "supino", "agachamento", "remada", "glúteo", "esteira". Returns the exercise id to pass as edb_exercise_id in create_workout, so the student sees the video.
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes | Exercise name or muscle. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already specify readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that it searches a 'library (with demo videos)' and returns an ID for use in another tool, which is helpful context, but it does not disclose anything about result limits, ranking, or failure modes. That makes a 3 appropriate: it adds some operational context but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mainly a single sentence, with the core purpose front-loaded. The examples and integration detail are somewhat parenthetical but still relevant. It could be slightly tighter, but no part is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter search tool with full schema coverage and clear annotations, the description covers the essential purpose, usage, and return value linkage. It lacks any boundaries on result count or error handling, but those are minor for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the 'search' parameter is already fully documented as 'Exercise name or muscle.' The description only provides surface examples, which add little beyond what the schema already says. The baseline of 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Searches the Trainer Connect exercise library') and adds useful scope ('with demo videos'), which is more specific than the sibling tools. An agent can confidently identify this as a read-only search operation distinct from all others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the context by detailing exactly what it returns and how to use it ('Returns the exercise id to pass as edb_exercise_id in create_workout'), implicitly telling the agent to use it before creating a workout. It also gives language examples. However, it does not explicitly state when *not* to use it or contrast it with alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_foodsSearch foodsARead-onlyInspect
Foods from the TACO table and the trainer's own, with macros per portion. Each word must appear in the name.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Food name, e.g. "arroz integral". | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the description's added value is the match semantics and the shape of results (macros per portion). It does not state whether results are capped or paginated, but the core behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the scope statement comes first. The phrase "Foods from the TACO table and the trainer's own" is slightly elliptical but still readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, two-parameter search with no output schema, the essentials are present, but result limits, pagination, and empty-match behavior are unaddressed, and the "recipe" source remains unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, and the description partially compensates: it explains that multiple words are ANDed, which is genuinely beyond the schema, and it hints at source values. But the source enum's third value, "recipe", is never mentioned or reconciled with the description's two origins, leaving one parameter's semantics incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource precisely, including the two data origins (TACO table and the trainer's own foods) and that macros are returned per portion. It does not explicitly name alternatives such as list_favorite_foods or search_exercises, so sibling differentiation relies on the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Each word must appear in the name" implies the search is an AND-of-terms lookup, which is useful implied usage context. However, there is no explicit guidance on when to choose this over list_food_categories or list_favorite_foods, nor when to set the source filter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_anamnesisSend an anamnesis to a studentBInspect
Sends an anamnesis form for the student to fill in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. | |
| expires_at | No | Deadline, YYYY-MM-DD. | |
| notify_student | No | Push the student now (default true). | |
| anamnesis_form_id | Yes | Form id from list_anamnesis_forms. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered and the bar is lower. The description adds the delivery context (the form appears in the app for the student), but never discloses the push-notification side effect, the default expiry behavior, or what happens if a form is already pending.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is appropriately sized. It is arguably too thin for a mutation with a notification side effect, but that is a completeness issue rather than wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a fully documented 4-parameter schema and safety annotations, the essentials are present, but the description omits the main behavioral facts an agent needs: that the call may push a notification to the student, what a successful send returns (no output schema exists), and how it relates to list_anamnesis_forms and get_anamnesis_overview in the workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so studentId, aamnesis_form_id, expires_at and the notify_student default of true are all documented in the schema. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Sends an anamnesis form') and adds the delivery channel ('for the student to fill in the app'), so it is distinguishable from siblings like send_checkin or send_message. It does not explicitly contrast itself with those siblings, keeping it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus send_checkin or send_message, nor any preconditions such as the student needing to exist or the form needing to come from list_anamnesis_forms. Usage is only implied by the verb itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_checkinSend a check-in to studentsBInspect
Assigns a check-in questionnaire to one or more students; they answer in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | Template id from list_checkin_templates. | |
| student_ids | Yes | student_id values from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuine value by disclosing the asynchronous, out-of-band effect — students answer in the app later, not in this call's response. It still omits what the call returns, whether notifications are sent, and whether duplicate assignments are possible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the action and the post-call behavior front-loaded; nothing is wasted. It is arguably too terse rather than too long, but structurally sound.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, fully-documented schema with no output schema, the description covers the core effect. However, an agent calling a side-effecting assignment tool would benefit from knowing what is returned (assignment confirmation? ids?) and whether recipients are notified — neither annotations nor description address this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in-schema, including the source tools for each id. The description only reinforces the array/plural nature of student_ids and adds no syntax or format detail beyond the schema, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Assigns') and resource ('a check-in questionnaire') and states the recipient scope ('one or more students'). It is clearly distinct from list/get siblings, though it does not explicitly distinguish itself from the near-identical send_anamnesis, which is the closest ambiguous alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus send_anamnesis, list_checkin_templates, or get_checkins_overview, and no prerequisites stated. The schema hints that templateId comes from list_checkin_templates, but the description itself gives no when/when-not framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageMessage a studentAInspect
Sends a chat message to a student, who gets a push. Show the text to the person before sending.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The message, up to 5000 characters. | |
| receiver_id | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true; the description adds value beyond that by disclosing the external side effect ('who gets a push'), which is exactly the kind of real-world consequence an agent needs. It still omits delivery failure behavior, rate limits, or whether messages can be recalled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and effect, then the confirmation constraint. No wasted words, though the second sentence is phrased as an instruction to the agent rather than as tool behavior, which is slightly ambiguous in register.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, non-destructive send tool with no output schema, the definition covers what it does, who receives it, the push side effect, and the confirmation protocol. Only minor gaps remain around failure modes and whether a message identifier is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% – both content (up to 5000 characters) and receiver_id (student_id from list_students) are documented in the schema. The description only reinforces 'to a student' and adds no format or syntax detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and recipient ('Sends a chat message to a student'), which clearly distinguishes it from read-only siblings like read_chat and list_conversations. It does not explicitly name the lead-facing alternative (reply_to_lead), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'Show the text to the person before sending' gives a genuine pre-send confirmation workflow, which is useful operational guidance. However, there is no explicit when-to-use vs. when-not guidance, and no routing to reply_to_lead or other messaging tools for different recipient types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_student_password_reset_linkSend a student the password linkAInspect
E-mails one of the trainer's students the link to create a new password (when the student forgot it). Returns the address it went to.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, open-world, non-destructive operation, so the safety profile is covered. The description adds the return value ('the address it went to') and the ownership constraint, but says nothing about link expiry, rate limiting, or what happens if the student has no e-mail on file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste: the action and recipient scope come first, then the return value. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, non-destructive e-mail trigger with annotations and no output schema, the description covers action, trigger condition, recipient scope and return value. Only failure modes (no e-mail on record, delivery failure, link lifetime) are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains that studentId comes from list_students. The description only adds the ownership nuance ('one of the trainer's students'), which is marginal added meaning over the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (e-mails) plus the exact resource (link to create a new password) and the recipient scope ('one of the trainer's students'). It is unmistakable against siblings like send_message, send_checkin or invite_student, though it never explicitly names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(when the student forgot it)' gives a clear triggering condition, and the ownership phrasing limits it to the trainer's own students. It stops short of stating exclusions, e.g. what to do if the student never had an account or already has a valid link.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_support_chat_messageWrite to supportCInspect
Sends a message in the trainer's chat with the Trainer Connect support.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it doesn't say whether the message is delivered live, whether it creates or appends to a ticket, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no waste and the key resource front-loaded. It is efficient but under-specified rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter send tool with annotations covering the safety profile, the description is minimally adequate. It still leaves ambiguous how this differs from other support and message tools, which is the main thing an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter ('message') with 0% schema description coverage, and the description provides no constraints on its content, length, or format. A baseline of 3 is fair for a single trivial string parameter, but the description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (sends a message in the trainer's chat with support), which is clearer than a tautology. However, it does not distinguish itself from close siblings such as send_message, reply_support_ticket, or get_support_chat, leaving the agent to guess which channel to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives like reply_support_ticket or open_support_ticket. The agent must infer that this is for the support chat specifically rather than a ticket thread.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_weekly_targetSet a student weekly targetCInspect
How many workouts per week the student should do (1 to 7); null goes back to automatic.
| Name | Required | Description | Default |
|---|---|---|---|
| studentId | Yes | The student_id from list_students. | |
| weekly_training_target | Yes | 1 to 7, or null for automatic. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered; the description adds no behavioral context such as permission requirements, side effects on existing programs, or what happens to already-scheduled workouts. The one behavioral claim ('null goes back to automatic') merely restates the schema's 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no padding, but it is a fragment keyed to the parameter rather than an action statement, so it is not optimally front-loaded for tool selection. Brevity here comes at the cost of specificity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and openWorldHint=true, the description should say what is changed, what the effect on downstream planning or scheduling is, and what context is required. None of that is present, leaving significant gaps beyond the parameter value itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are documented including the 1-7 range and null-for-automatic behavior. The description duplicates the schema rather than adding meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title supplies the verb ('Set a student weekly target'), but the description itself is a noun phrase describing the quantity rather than stating the action the tool performs. It reads as documentation of the parameter value, so an agent must infer the operation from the title and name. It also gives no differentiation from siblings like update_student.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 update_student, or on preconditions like whether the student must already exist or have an active plan. The only conditional hinted at (null for automatic) is a value semantic, not a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_workout_weeksPlan the weeks of a workoutAInspect
Sets the weeks a workout is planned for; an empty list means every week.
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Workout id. | |
| week_start_dates | Yes | YYYY-MM-DD of the Monday of each week. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive write with openWorldHint, so safety is largely covered. The description adds one genuinely non-obvious behavior – an empty list means every week – but does not say whether sessions already planned in weeks that get dropped survive the call, which is the key risk for a mutation like this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the primary action first and the edge case after a semicolon. No filler to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small, well-annotated two-parameter mutation with no output schema, the core is present. What's missing is side-effect disclosure: whether existing planned weeks/sessions are removed, and confirmation of replace-versus-append semantics of 'sets'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are documented in the schema (including the Monday YYYY-MM-DD format). The description nonetheless adds meaning the schema lacks: the empty-array edge case from week_start_dates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource – what is being set (the planned weeks of a workout) – which is clear enough to distinguish the write operation from the read-side sibling get_workout_weeks. It stops short of naming or contrasting with any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: replace the week schedule of an existing workout. There is no explicit statement of when to use this versus get_workout_weeks or update_workout, and no prerequisites (e.g. workout must exist) are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_featureSuggest an idea for the appAInspect
Sends an idea to the Trainer Connect team; it goes public for votes after review.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | 4 to 120 characters. | |
| category | No | ||
| description | Yes | 10 to 2000 characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, so the write and public-reach profile is covered. The description adds real context beyond that: the submission goes to the Trainer Connect team and becomes public only after a review step, which tells the agent about moderation delay and public visibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the post-submission consequence is packed into one clause. It is efficient rather than padded, though the very short length leaves room unused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter submission tool with annotations covering the safety profile, a documented schema and no output schema, the description supplies the one thing structured data cannot: what happens to the idea after it is sent. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% with title and description length bounds documented and the category enum enumerated, so the schema carries most parameter meaning. The description adds no guidance on category choice (e.g. that 'outro' is a catch-all) or on how title vs description should differ, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific action (sending an idea) and a specific destination (the Trainer Connect team), which separates it from vote_feature_request, list_feature_requests and comment_feature_request in the sibling set. It stops short of naming those siblings explicitly, so an agent must infer the boundary from the phrasing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the sentence conveys that this is the entry point for new suggestions and that voting comes later. There is no explicit when-to-use, when-not-to-use, or pointer to the read/vote/comment siblings that operate on existing requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_workout_copiesUpdate the students copies of a templateBInspect
Copies the chosen fields of a template to the students who got it. Copies the trainer customized for a student are left as they are.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| workoutId | Yes | Template workout id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds a genuinely useful protection rule beyond the annotations: copies the trainer individually customized are skipped. However, it omits the overwrite semantics (listed fields on student copies are replaced, not merged), whether the call is idempotent, how many students are affected, and what happens with partially customized copies. Annotations cover the safety profile reasonably (mutating, non-destructive, open-world).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the main action first and the exception second; nothing is padded. The second sentence is slightly awkwardly phrased ('Copies the trainer customized...'), which costs a little clarity but no length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter bulk mutation with no output schema, the description should say what the agent gets back (counts, failures) and whether some students can be skipped silently. It covers the core selective-copy and custom-preservation rules but leaves the outcome contract unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: workoutId is documented in the schema, `fields` is not. The phrase 'chosen fields' links the array to selective propagation, which is a small value-add over the enum list, but it does not explain that unlisted fields are untouched or how nested values like exercises are handled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (copies selected fields) and resource (template workout → student copies), which is meaningfully distinct from update_workout and publish_workout. It never names those siblings, so an agent must infer from the name alone that this propagates rather than edits the template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use case is implied: push template changes out to the students who already received the workout. There is no explicit 'use this instead of X' routing to update_workout or list_workout_copies, and no stated preconditions (e.g. template must be published or have copies).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_anamnesis_formTurn an anamnesis form on or offBInspect
Switches an anamnesis form between active and inactive.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | Id from list_anamnesis_forms. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, destructiveHint=false, openWorldHint=true, and the toggle wording is consistent with a non-destructive reversible state flip. The description does not disclose what happens to existing answers or pending requests when a form is deactivated, nor whether any permission is required, so it adds only modest context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero filler and the core behavior front-loaded. It is efficient, though the terseness leaves no room for the state-change consequences an agent would find useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter toggle with annotations covering the safety profile and full schema coverage, the essentials are present. However, with no output schema the agent gets no hint of what the call returns, and the effect of deactivation on existing submissions is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single formId parameter already has a complete schema description pointing at list_anamnesis_forms, so the schema does the work. The description adds no extra meaning about the parameter — no note on whether it identifies by id versus slug or what happens with an invalid id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (switches) plus the resource (anamnesis form) and names the two states it moves between, so the agent knows this is a binary activation toggle. It stops short of differentiating itself from the close sibling update_anamnesis_form, which likely can also change activation state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 wants a form turned on or off. There is no explicit statement of prerequisites (does the form need to exist first?), no mention of update_anamnesis_form as the alternative for other edits, and no guidance for the already-active/already-inactive case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unarchive_assessmentUnarchive an assessmentBInspect
Brings an archived assessment back to the history.
| Name | Required | Description | Default |
|---|---|---|---|
| assessmentId | Yes | The id from list_archived_assessments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so safety framing is covered. The description adds the useful effect — the assessment returns to the visible history — but says nothing about whether archiving is reversible, what happens if the id is not archived, or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no wasted words. It is appropriately sized for a trivial one-parameter tool, though it leaves room for one clarifying clause about the source of the id.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-param mutation with annotations covering safety and no output schema, the description covers the core effect. It stops short of explaining edge behavior (id not archived, visibility to the student) that would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema description coverage, the schema already tells the agent to take the id from list_archived_assessments. The description adds no further meaning about the id's scope or format; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — unarchive an assessment — matching the title and clearly the inverse of the sibling archive_assessment. It does not name that sibling or list_archived_assessments explicitly in the description, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent must infer that this applies to assessments previously archived and discoverable via list_archived_assessments. That pointer lives in the schema, not the description, and no when-not or alternative path (e.g. unlinked vs archived) is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpublish_workoutRemove a template from the catalogAInspect
Takes a workout template out of the public catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| workoutId | Yes | Template workout id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the description adds little behavioral burden. It usefully clarifies that the effect is catalog visibility rather than deletion, but does not say whether the template remains available elsewhere or whether publish_workout reverses it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the action and effect. It contains no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic mutation and its catalog scope, and the schema/annotations cover the parameter and safety profile. For a publish/unpublish lifecycle operation, however, it omits whether the action is reversible and what happens to existing assignments or links.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter and schema description coverage is 100%, so the schema fully documents 'workoutId'. The description adds no further parameter meaning, which is acceptable at this baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb ('takes out') and resource ('workout template') plus the specific scope ('public catalog'). It implicitly distinguishes from publish_workout, but does not explicitly name that sibling or otherwise 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and description: use this to remove a template from public visibility. However, there is no explicit when-to-use guidance, no exclusions, and no pointer to publish_workout or restore_workout as related alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_anamnesis_formEdit an anamnesis formCInspect
Changes the title or questions of an anamnesis form. Sending fields replaces every question.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| fields | No | ||
| formId | Yes | Id from list_anamnesis_forms. | |
| description | No | ||
| send_to_new_students | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Sending fields replaces every question,' which describes a destructive replacement of existing form questions. This directly conflicts with the annotation destructiveHint=false, which declares the operation non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted text. The key replacement warning is front-loaded and easy to act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with five parameters, no output schema, and low schema description coverage. The description covers the core title/questions behavior but omits semantics for two optional parameters and gives no usage guidance relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate, but it only explains the title and fields/replacement behavior. It says nothing about the optional description or send_to_new_students parameters, leaving important semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it changes the title or questions of an anamnesis form. This is clear enough to distinguish it from create_anamnesis_form and read-only siblings, though it does not explicitly name any alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by 'Changes the title or questions,' and the warning that sending fields replaces every question is useful. However, it does not explicitly say when to use this versus create_anamnesis_form, toggle_anamnesis_form, or other form-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assessmentCorrect an assessmentBInspect
Fixes values of an assessment already saved. Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD. | |
| notes | No | ||
| hip_cm | No | ||
| waist_cm | No | ||
| weight_kg | No | ||
| assessmentId | Yes | The id from list_assessments. | |
| muscle_mass_kg | No | ||
| body_fat_percent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose that this is a non-read-only, non-destructive, open-world operation. The description adds useful partial-update behavior ('Send only what changes'), but it does not mention validation behavior, failure modes for invalid assessment IDs, permission requirements, or side effects beyond changing supplied fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted wording, and the key purpose and partial-update instruction are front-loaded. It is appropriately sized for the amount of information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an eight-parameter mutation tool with low schema description coverage and no output schema, the description is quite sparse. It establishes the update intent and partial-update convention, but it leaves the meaning of most editable fields, the required assessmentId dependency, and update constraints unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, with just date and assessmentId described in the schema, while six optional measurement/notes fields lack documentation. The description's 'Send only what changes' helps explain that fields are optional and partial, but it does not identify or clarify the editable fields themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: fixing values of an assessment that is already saved. The phrase 'already saved' helps distinguish it from create_assessment, though it does not explicitly name siblings or enumerate editable fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: use this on an existing assessment, and 'Send only what changes' indicates partial-update behavior. It does not explicitly state when to choose update_assessment over related tools like create_assessment or archive_assessment, but the existing-record condition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_checkin_templateEdit a check-in questionnaireBInspect
Changes questions, frequency or pauses (is_active false) a check-in. Sending questions replaces them all.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| is_active | No | ||
| questions | No | ||
| send_time | No | HH:MM. | |
| templateId | Yes | Id from list_checkin_templates. | |
| frequency_days | No | ||
| send_day_of_week | No | 1 (Monday) to 7. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the genuinely important detail that sending questions replaces them all, plus that is_active=false pauses. However, it does not state whether omitted fields are preserved (partial vs full update) or what permissions are needed, which is the main behavioral ambiguity for a PATCH-style tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the replacement hazard is stated up front. Minor deduction for the garbled phrasing 'pauses (is_active false) a check-in', which slightly slows parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 output schema, the description covers the headline hazard (question replacement) but omits whether the update is partial or full and how the scheduling fields interact. It is adequate to avoid the biggest mistake but not complete enough to call it confidently without reading the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, so the description should compensate more than it does. It does add meaningful semantics for 'questions' (replace-all) and is_active (pause), but it leaves name, send_time, frequency_days and send_day_of_week undocumented beyond the schema, including how send_time interacts with frequency_days.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (a check-in template) and the fields being changed (questions, frequency, pause via is_active), so the verb+resource pairing is clear despite awkward grammar. It doesn't name a sibling like create_checkin_template or list_checkin_templates, but the 'changes' verb distinguishes it from creation without that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use / when-not guidance and no mention of the prerequisite that templateId must come from list_checkin_templates (that lives only in the schema). Usage is only inferable from the word 'Changes'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_classMark attendance or edit a classAInspect
Marks a class as completed, no-show or confirmed, or changes its notes or place. To change the time use reschedule_class.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| status | No | ||
| location | No | ||
| is_online | No | ||
| appointmentId | Yes | Appointment id from get_schedule. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation profile is known. The description adds which fields change, but does not say whether setting notes replaces existing text, whether status changes are reversible, or what permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the primary capability stated first and the alternative last. Nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 output schema and thin schema descriptions, the description covers the main paths but leaves is_online unexplained and gives no indication of what the response contains or how partial updates behave.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20%, so the description must compensate; it names the status values, notes and 'place' (location), and the schema documents appointmentId via get_schedule. However is_online is never mentioned and the enum values are only partly enumerated in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs and resources: setting status (completed, no-show, confirmed) or editing notes/location on a class. This is concrete enough to distinguish it from reschedule_class and from list/get tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes time changes to reschedule_class, which is helpful. But the sibling list contains confirm_class, cancel_class and decline_class, which appear to overlap with the status values this tool sets, and the description gives no guidance on which to prefer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_competitionEdit a challengeAInspect
Changes a challenge's dates, points or status (active, draft or canceled). Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| status | No | ||
| end_date | No | ||
| start_date | No | ||
| description | No | ||
| competitionId | Yes | Id from list_competitions. | |
| points_per_minute | No | ||
| points_per_workout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare that this is a non-read-only, non-destructive, open-world mutation. The description adds the allowed status values and the partial-update behavior, but it does not explain permissions, validation rules, side effects of changing status to canceled, or whether changes are reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted words. The core action is front-loaded, and the partial-update instruction follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low schema coverage, missing output schema, and mutation behavior, the description is adequate but thin. Annotations help establish safety, but the description should say more about permissions, expected return behavior, or consequences of status changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is very low at 13%, so the description must compensate. It does add meaning for dates, points, status, and partial updates, but it omits name, description, and does not elaborate on competitionId beyond the schema's own note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, 'Changes', names the resource as a challenge, and lists the main editable dimensions: dates, points, and status. It is clear what the tool does, though it does not explicitly distinguish itself from siblings such as create_competition or get_competition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Send only what changes' gives useful partial-update guidance for this mutation tool. However, the description does not state when to use this tool versus create_competition, get_competition, or list_competitions, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_diet_planEdit a diet planAInspect
Changes a diet plan's title, targets or meals. Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| meals | No | Sending meals replaces every meal of the plan. | |
| notes | No | ||
| title | No | ||
| planId | Yes | Id from list_diet_plans. | |
| target_kcal | No | ||
| target_fat_g | No | ||
| target_carbs_g | No | ||
| target_protein_g | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations supply the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), so the lower bar applies. The description adds PATCH-style semantics, but it omits the most consequential behavior — that the meals field replaces ALL existing meals — which sits only in the schema and partially undercuts the "send only what changes" advice. No mention of auth requirements or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the editable surface front-loaded and the patch instruction immediately after. Nothing could be removed without losing signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with eight parameters, a deeply nested meals array, and no output schema, the description is thinner than ideal: it never warns that sending meals wholesale overwrites the plan, nor does it indicate what a successful call returns. Annotations cover the safety headline, so this is workable but visibly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at only 25%, the description carries extra weight, and it does map the three documented categories (title, targets, meals) onto the eight parameters. However, notes and the target_* variants are never named, and the partial-vs-replacement distinction between scalar fields and meals is left to the schema rather than stated here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (changes) plus the exact editable facets of the resource (title, targets, meals), so the agent knows precisely what scope of mutation this is. It does not differentiate itself from siblings such as create_diet_plan, copy_diet_plan, or activate_diet_plan, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Send only what changes" is real usage guidance for a partial-update call, but there is no explicit statement of when to choose this tool over create_diet_plan / copy_diet_plan / schedule_diet_plan, and no prerequisite such as the plan having to exist or the caller needing edit rights.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_exercise_templateEdit an exercise of my libraryCInspect
Changes an exercise of the trainer's library; name is always sent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| equipment | No | ||
| image_url | No | ||
| video_url | No | ||
| exerciseId | Yes | Id from list_exercise_templates. | |
| description | No | ||
| instructions | No | ||
| muscle_groups | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this is a non-read-only, non-destructive, open-world mutation. The description adds that 'name is always sent,' but does not explain partial-update behavior, what happens to omitted fields, or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and wastes no words. It is very terse for an eight-parameter mutation, but conciseness itself is strong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an eight-parameter mutation with very low schema description coverage, the description is too thin. Annotations cover the safety profile, but the description does not explain how the optional fields behave or how updates are applied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13%, and the description mentions only that 'name' is always sent. It does not compensate for the undocumented optional fields such as equipment, image_url, video_url, description, instructions, or muscle_groups.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it changes an exercise in the trainer's library. That is clear enough to distinguish an update operation from create/list/search siblings, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus create_exercise_template, list_exercise_templates, or search_exercises. The update intent is implied by the verb 'Changes,' but no conditions, prerequisites, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_foodEdit my food or dishCInspect
Renames one of the trainer's own foods or changes a dish's ingredients.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| foodId | Yes | Id from search_foods (source custom or recipe). | |
| category | No | ||
| ingredients | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag it as a non-read-only, non-destructive, open-world mutation, and the description is consistent with that. However, it doesn't disclose whether the ingredients array replaces or merges existing data, whether changes are reversible, or permission requirements — meaningful gaps for an edit tool that overwrites fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Efficient, though arguably too terse for a four-parameter mutation tool with low schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with 25% schema coverage, no output schema, and an uncovered category parameter plus ambiguous ingredients semantics, the description does not supply enough for an agent to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%; foodId is documented in the schema. The description covers two of four parameters (name via 'renames,' ingredients via 'dish's ingredients') but leaves 'category' undocumented and gives no replace-vs-append semantics for ingredients.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs and resource: 'renames' a food or 'changes a dish's ingredients,' and scopes it to 'the trainer's own foods.' An agent can distinguish this edit operation from create_food or search_foods implicitly. It omits the category-editing capability, so it isn't fully exhaustive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use vs alternatives guidance and no prerequisite (e.g., obtain foodId via search_foods, which the schema hints at). 'Trainer's own foods' narrows scope but is not framed as a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_goalUpdate a goalAInspect
Changes a goal's target, dates or progress, or marks it done (completed_at). Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| goalId | Yes | Id from list_student_goals. | |
| end_date | No | YYYY-MM-DD. | |
| completed_at | No | YYYY-MM-DD when it was reached. | |
| target_value | No | ||
| manual_progress | No | 0 to 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the bar is lower, and the description adds real value by disclosing patch semantics (omitted fields are left untouched rather than cleared) and clarifying that completion is expressed through completed_at. It stops short of saying what happens to progress values once a goal is marked done, or whether updates are reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the mutation scope front-loaded and the usage constraint ("send only what changes") placed last as a rule. Nothing could be cut without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with annotations, a required goalId, and no output schema is adequately covered: the agent knows it is a partial update, which fields it can change, and how completion is expressed. The unmentioned title parameter is the only remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description partially compensates by naming target_value, the date fields, manual_progress, and the meaning of completed_at. Critically, the title parameter is never mentioned in the description and has no schema description, leaving one parameter wholly undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (changes/updates) and resource (a goal), and enumerates the mutable facets: target, dates, progress, and completion. An agent can distinguish it from create_goal and list_student_goals, but the description 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Send only what changes" implies patch-style usage and rules out full-object replacement, which is useful. However, there is no explicit statement of when to prefer this over create_goal, no prerequisite (e.g., goalId must come from list_student_goals), and no guidance on error or not-found conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_holidayEdit a day offBInspect
Renames or moves a day off the trainer added.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD. | |
| name | No | ||
| holidayId | Yes | Id from list_holidays. | |
| is_recurring | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. However the description never says whether this is a partial patch (unmentioned fields preserved) or a full replace, what happens to invalid dates, or whether rename/move is the full extent of mutation — meaningful gaps for an edit tool. It does not contradict the annotations (an edit is non-destructive), but it adds little operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and zero filler. It is efficient, though the brevity here reflects under-specification rather than tightly packed information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no output schema and half the parameters undocumented in the schema, the description should explain partial-update behavior and the is_recurring flag. Instead it covers roughly two of the four editable facets and says nothing about the result of the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: date and holidayId are documented inline, while name and is_recurring are bare types. The description maps "renames" to name and "moves" to date, which partially compensates, but it is entirely silent on is_recurring, leaving one undocumented parameter with no semantics anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb pair (renames or moves) applied to a specific resource (a day off), so the agent knows this is an edit operation on an existing record. It implies a distinction from create_holiday/list_holidays, though it never names them explicitly, and it omits one editable facet (recurrence) that the schema exposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"the trainer added" narrows the scope to holidays the caller owns, which is implicit but useful eligibility context. Beyond that there is no explicit when-to-use guidance, no mention of the list_holidays → update_holiday flow beyond the schema's holidayId note, and no statement about when to create a new day off instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_leadUpdate a leadCInspect
Moves a lead in the funnel and/or saves notes.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| leadId | Yes | Id from list_leads. | |
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read, non-destructive, open-world write. The description adds nothing beyond that — critically, it doesn't say whether 'saves notes' overwrites or appends to existing notes, nor whether funnel moves are validated or reversible, which matters 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero padding, which is good, but its brevity is achieved through under-specification rather than tightness — the one clause carries almost no actionable detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation with no output schema and low schema coverage, the description should cover what the update returns or affects. Instead, the agent must guess at note-replacement semantics and whether status changes have side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: leadId has a description and status has an enum, but 'notes' is bare. The description's phrase 'saves notes' adds no semantics — whether it replaces the field, its size limits, or its format is left completely ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource ('update a lead') is clear, and it names two effects (funnel movement, note saving). But it does not distinguish the tool from siblings like get_lead, reply_to_lead, or list_leads, so the agent gets only a rough sense of purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not guidance, and no mention of alternatives (e.g., use reply_to_lead for chat messages instead of notes). The 'and/or' hints that status and notes are independently optional, but that's the only clue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_meal_templateEdit a meal templateAInspect
Changes a meal template from list_meal_templates. Sending items replaces every food of the template.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| time | No | HH:MM. | |
| items | No | ||
| notes | No | ||
| templateId | Yes | Id from list_meal_templates. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly=false, destructive=false, openWorld=true; the description adds the critical side effect that passing items overwrites every existing food in the template — behavior an agent could not infer from the structured fields. It stops short of saying whether omitted fields (name, time, notes) are preserved 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and immediately followed by the one dangerous behavior. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 40% schema coverage and no output schema, the definition covers the riskiest part (items replacement) but leaves open whether non-items fields are optional, whether omissions preserve existing values, and what the call returns on success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 40%, so the description must carry weight: it explains templateId's origin and the replace-all semantics of items, which is genuinely useful. But name, notes, and most numeric fields are undocumented in both places, and it never clarifies partial-update behavior for those.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Changes a meal template") and names the sibling tool that supplies the identifier. It does not distinguish itself from create_meal_template or update_diet_plan, but an agent can tell what it mutates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Points the agent at list_meal_templates as the source of a valid template, which is useful routing. However, there is no explicit when-to-use/when-not guidance versus create_meal_template or delete-style flows, and no prerequisite/permission context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_media_captionEdit a photo captionBInspect
Changes the caption of a photo from list_my_media.
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Up to 5000 characters. | |
| mediaId | Yes | Id from list_my_media. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds one genuinely useful behavioral fact: the photo must come from list_my_media, implying ownership scoping. It does not say whether the old caption is overwritten, whether the change is reversible, or what is returned, which matters for 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loaded with the action and target. It is efficient, though arguably too terse for a mutation tool — nothing is wasted but little is offered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, full schema coverage, annotations present, no output schema), so little is required. Still, an agent calling a write tool benefits from knowing that the caption is replaced wholesale and roughly what the call returns; both are absent, leaving it merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters including the 5000-character limit and the mediaId provenance. The description merely restates the mediaId source, adding no syntax, format, or validation detail beyond structured data; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('changes') and a specific resource ('caption of a photo'), and anchors the tool to the list_my_media workflow so an agent knows exactly which object class it targets. It is clear, though it doesn't contrast against any near-alternative beyond the read tool it references.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from list_my_media' implies the prerequisite step (fetch mediaIds first) which is useful workflow guidance. However, there is no explicit when-to-use vs when-not, no statement about permissions, and no alternative named — usage is inferred 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_my_profileUpdate my profileAInspect
Changes the trainer's name, phone, language or app appearance. E-mail, password and autopilot stay in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| phone | No | Brazilian phone with area code. | |
| locale | No | ||
| ui_theme | No | ||
| ui_font_scale | No | 0.85 to 1.6 (1 is normal). | |
| narration_enabled | No | Voice narration during workouts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, openWorld=true, so the safety profile is covered. The description adds the valuable constraint that credentials and autopilot are out of scope, but says nothing about partial-update behavior (all six params are optional), permissions, or what a successful change returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, editable scope front-loaded before the exclusion, zero filler. The phrase 'stay in the app' is slightly colloquial where 'must be changed in the app' would be unambiguous, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation with no annotations gaps and no output schema, the description covers scope and exclusions but leaves the key operational question unanswered: whether omitted fields are left untouched or cleared. Partial-update semantics matter a lot for a sparse-update tool and are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema coverage, the description does real work: it groups all six parameters into four user-facing concepts (name, phone, language→locale, app appearance→ui_theme/ui_font_scale/narration_enabled). It could be sharper—'app appearance' is a loose umbrella for narration_enabled, a workout-behavior flag rather than visual styling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (changes) and a specific resource (the trainer's own profile), then enumerates the editable facets: name, phone, language, app appearance. The possessive 'the trainer's' plus the name make it distinguishable from update_student and update_public_profile without opening the schema, though neither sibling is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a useful exclusion ('E-mail, password and autopilot stay in the app'), which tells the agent what not to attempt here. However, it never routes to alternatives: no mention that public-facing data belongs to update_public_profile, or that reading current values should use get_my_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_programEdit a training programAInspect
Renames a program or changes its status, notes or difficulty. Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| status | No | ||
| category | No | ||
| programId | Yes | Id from list_programs. | |
| difficulty | No | ||
| description | No | ||
| warmup_notes | No | ||
| cooldown_notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-destructive, writable, open-world behavior. The description adds the partial update semantic ('Send only what changes'), which is useful, but does not disclose permissions, side effects, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste, front-loading the action and following with the key update constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters and no output schema, the description is minimal. It covers the essential partial-update behavior and some fields, but leaves several parameters and potential side effects unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 13%, so the description must compensate. It adds meaning for name, status, notes, and difficulty, but omits category, description, and explicit mention of programId as required. It helps but is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (renames/changes) and resource (program), and lists several updatable fields. It does not explicitly differentiate from siblings like update_program_day/update_program_week, but the program-level editing purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Send only what changes' gives a useful partial-update directive, but there is no explicit when/when-not guidance or mention of alternatives such as update_program_day for adding days.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_program_dayEdit a training dayCInspect
Renames, moves or changes the notes of a training day.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| dayId | Yes | Day id from get_program. | |
| status | No | ||
| position | No | ||
| day_of_week | No | 0 (Sunday) to 6. | |
| warmup_notes | No | ||
| cooldown_notes | No | ||
| estimated_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so safety is covered, but for a partial-update mutation the description never says whether omitted fields are preserved or cleared, nor whether the day must belong to the caller's program. It adds essentially nothing behavioral beyond what the annotations state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single ten-word sentence, front-loaded with the action verbs and free of filler. It is efficiently built but so terse that brevity shades into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 25% schema coverage and no output schema, the description leaves major gaps: partial-update semantics, the status enum's effect, and whether moving a day can cross weeks. An agent could not call this confidently without opening the schema and guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% across 8 parameters, so the description must compensate; it partly does by mapping 'renames' to name, 'moves' to position, and 'notes' to the warmup/cooldown note fields. But status (an enum) and estimated_minutes get no meaning from either source, and positional/move semantics remain unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses concrete verbs (renames, moves, changes notes) against a specific resource (a training day), which distinguishes it from siblings like add_program_day or update_program_week. However, the enumeration is incomplete — it omits status changes and estimated_minutes, understating what the tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use context, no prerequisites, and no alternatives (e.g. update_program_week vs. this tool, or add_exercise_to_program_day for contents rather than metadata). The only pointer — 'Day id from get_program' — lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_program_weekEdit a program weekBInspect
Renames, moves or annotates one week of a program.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| notes | No | ||
| weekId | Yes | Week id from get_program. | |
| position | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is mostly covered. The description adds that the operation renames, moves, or annotates a week, which usefully implies a partial-update mutation, but it omits side effects such as whether moving a week reorders other weeks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately compact for a simple edit operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with four parameters, low schema coverage, and no output schema, the description is too thin. It does not clarify partial-update behavior, side effects of changing position, or what happens when only some fields are supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description needs to compensate; its verbs map reasonably to the fields: 'renames' to name, 'moves' to position, and 'annotates' to notes. However, it does not explain position semantics or ordering behavior, and the required weekId is only documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb set and resource: 'Renames, moves or annotates one week of a program.' It clearly scopes the operation to a single program week, though it does not explicitly distinguish itself from nearby siblings such as update_program_day or add_program_week.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool edits an existing program week, but gives no explicit when-to-use guidance, no prerequisites, and no alternatives. It never says when to use update_program_week instead of update_program_day, add_program_week, or set_workout_weeks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_public_profileEdit my public pageAInspect
Changes the trainer's public page: name, bio, contacts, link, lead form and trial booking. Show the text to the person before saving. Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Page address, lowercase letters, numbers and hyphens. | |
| modality | No | ||
| public_bio | No | Up to 1000 characters. | |
| tiktok_url | No | ||
| website_url | No | ||
| youtube_url | No | ||
| instagram_url | No | ||
| is_discoverable | No | Show in the trainer search. | |
| whatsapp_number | No | ||
| lead_form_active | No | ||
| public_page_active | No | ||
| show_student_count | No | ||
| public_display_name | No | ||
| trial_booking_active | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations it discloses two behaviors that matter and are not in structured data: the write is a partial/patch-style update ('send only what changes') and it requires human confirmation before persisting. It doesn't cover what a slug change does to existing public links, or what happens if everything is omitted — gaps for an openWorldHint mutation, but the added behavioral context is real.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, purpose front-loaded, followed by the two operational rules. No filler; the field enumeration is dense but each item maps to a real capability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter, zero-required mutation with no output schema and only 21% schema coverage, the description is directionally right but leaves an agent guessing about the undocumented half of the parameters and about the absence of required fields. It's the minimum viable for this complexity, not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 21%, so the description needs to carry more weight, and it groups only some fields (name, bio, contacts, link, lead form, trial booking). Several parameters — modality, slug, is_discoverable, public_page_active, show_student_count — have no meaning in either the schema or the description. Partial compensation, not full.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Changes') plus the exact resource ('the trainer's public page') and enumerates the editable field groups (name, bio, contacts, link, lead form, trial booking). The distinction from get_public_profile / get_public_profile_stats is implied by 'Changes' rather than stated, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Show the text to the person before saving' and 'Send only what changes' give concrete operating conditions for when and how to call it. It does not name a sibling alternative or state when not to use it, so it is clear context without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_schedule_slotEdit a fixed weekly slotBInspect
Moves, pauses (is_active false) or edits a recurring weekly slot. Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| slotId | Yes | Id from list_schedule_templates. | |
| location | No | ||
| is_active | No | ||
| is_online | No | ||
| start_time | No | HH:MM. | |
| day_of_week | No | 0 (Sunday) to 6. | |
| duration_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation/safety profile is covered. The description adds real value by stating the partial-update contract and decoding is_active=false as 'pause', but it omits what happens to already-booked occurrences when a slot moves, and what 'moves' actually means against existing sessions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with zero preamble; the action set is front-loaded and the partial-update rule is the closing imperative. Nothing is padded or repeated from the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter partial-update mutation with no output schema, the description covers the shape of the call but not the side effects an agent needs to reason about: impact on existing bookings when a slot moves, whether re-activating a paused slot restores lost occurrences, and permission requirements. Adequate to invoke, thin on consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%; slotId, start_time, and day_of_week are documented in the schema, but title, location, is_online, and duration_minutes carry no descriptions at all. The description compensates for exactly one field (is_active meaning pause) and adds nothing for the four undocumented ones, leaving the agent to guess semantics such as timezone or units.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verbs (moves, pauses, edits) paired with a concrete resource (a recurring weekly slot), and the parenthetical '(is_active false)' even names the mechanism for pausing. It does not distinguish itself from the very similar create_schedule_slot, schedule_class, reschedule_class, or update_class siblings, so an agent still has 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Send only what changes' is genuinely useful partial-update guidance that implies this is a PATCH-style operation. However it says nothing about when to prefer this over reschedule_class or update_class, nor about any prerequisites such as ownership or whether the slot must be inactive before moving.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_session_reportEdit the report of a coached sessionBInspect
Sets the rating (1 to 5) and notes of a session the trainer coached in person.
| Name | Required | Description | Default |
|---|---|---|---|
| logId | Yes | Id from list_coached_sessions. | |
| notes | No | Up to 2000 characters. | |
| rating | No | 1 to 5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive write in an open-world domain, so the safety profile is covered. The description usefully narrows scope to writes of rating and notes only, but it does not say whether omitted fields are preserved, whether the report must pre-exist, or who is authorized to edit it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler that front-loads the two mutable fields and the resource scope. Nothing in it is redundant with the schema beyond the brief rating range, and it is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with full schema coverage and no output schema, the description is minimally sufficient to call correctly. It is missing the two things a caller would still wonder about: when to choose it over sibling update tools and whether partial updates are safe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so logId provenance, the 2000-character notes limit, and the 1-5 rating range are all documented in the schema. The description merely restates the rating range, adding no semantics beyond the structured fields; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action (setting rating and notes) on a concrete resource (a session report for an in-person coached session), which is more specific than the bare name. It does not distinguish itself from nearby update_* tools or clarify that this only applies to coached sessions rather than live/self-serve logs, so it stops short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus alternatives (e.g. update_assessment, get_workout_session), nor any prerequisite such as the session already having a report. The only implicit guidance is the schema note that logId comes from list_coached_sessions, which is not in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_studentUpdate a studentAInspect
Updates a student's profile. Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| sex | No | ||
| goal | No | Training goal. | |
| name | No | Full name. | |
| phone | No | Phone with area code. | |
| height_cm | No | ||
| studentId | Yes | The student_id from list_students. | |
| weight_kg | No | ||
| birth_date | No | YYYY-MM-DD. | |
| service_mode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already define this as a non-read-only, non-destructive, open-world write. The description adds the important behavioral detail that this is a partial update rather than a full replacement, but it does not describe permissions, side effects, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and immediately followed by the key partial-update instruction. There is no redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an update tool with 9 parameters, annotations covering safety, and no output schema, the description gives the essential patch semantics. It remains sparse about field behavior, omitted-field handling, and when to choose this over related student tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 56%, with studentId and several fields documented in the schema. The description adds only the general patch-style rule of sending changed fields, without clarifying individual fields or the undocumented enum/numeric parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Updates a student's profile." It is clearly distinct from read-only siblings like get_student, but it does not explicitly contrast with create_student or explain when updating is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Send only what changes" gives useful partial-update guidance and implies the tool is for modifying existing students. However, it does not state when to use this versus create_student or get_student, nor does it list prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_student_fileRename a student fileAInspect
Changes the name or description of a file from list_student_files.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Id from list_student_files. | |
| file_name | No | ||
| studentId | Yes | The student_id from list_students. | |
| description | No | Up to 500 characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation profile is largely covered. The description adds that either the name or the description can be targeted (a partial update), but says nothing about permissions, whether both fields can be sent at once, or consequences of a rename.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that front-loads the action and the affected fields with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter mutation with no output schema, the definition is minimally sufficient. It does not clarify that both mutable fields are optional, that at least one should be supplied, or what the call returns, leaving real ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (fileId, studentId, and the 500-char description limit are documented). The description only loosely maps to the undocumented file_name parameter, so it adds no semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (changes) plus the exact mutable fields (name, description) and the resource (a file from list_student_files). An agent can distinguish it from unrelated update_* siblings, though it doesn't contrast with the closest analogues like update_media_caption.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Referencing list_student_files implicitly establishes the discover-then-update flow, which is useful. However there is no explicit when-to-use/when-not guidance, no statement about prerequisites such as file ownership, and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_student_noticesTurn class notices on or offBInspect
Turns on or off the automatic class notices students get. Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| cancelled | No | ||
| new_class | No | ||
| time_change | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, open-world mutation. The description adds useful partial-update behavior ('Send only what changes'), implying omitted fields remain unchanged, but does not clarify scope (all students, a class, or an academy-wide setting) or what happens immediately after the toggle.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste, front-loading the action and immediately following with the key partial-update instruction. Nothing superfluous is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter mutation tool with no schema descriptions and no output schema, the description is too thin. It omits what each boolean toggles, the scope of the update, and any indication of the result or side effects, leaving important gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the four boolean parameters are documented only by their property names. The description does not explain what 'status', 'cancelled', 'new_class', or 'time_change' individually control, leaving the agent to infer their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('turns on or off') and resource ('automatic class notices students get'), making the basic purpose clear. It does not explicitly differentiate this mutation tool from the sibling read tool get_student_notices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage instruction is 'Send only what changes,' which explains partial-update payload behavior but not when to use this tool instead of get_student_notices or other notice-related tools. There are no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_student_supplementEdit a student supplementAInspect
Changes dose, times, days or pauses (is_active false) a supplement of a student. Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| notes | No | ||
| times | No | HH:MM list. | |
| end_date | No | YYYY-MM-DD. | |
| dose_unit | No | ||
| is_active | No | ||
| studentId | Yes | The student_id from list_students. | |
| dose_amount | No | ||
| days_of_week | No | 1 (Monday) to 7. | |
| supplementId | Yes | Id from list_student_supplements. | |
| units_per_take | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), so the description is not carrying that burden. It still adds real behavioral context beyond the annotations: this is a partial/patch update where only supplied fields change, and is_active=false is the documented way to pause a supplement without deleting it. It stops short of saying what else is destroyed or which permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the partial-update rule is placed at the end as an instruction the agent will act on. The phrasing "pauses (is_active false) a supplement" is grammatically awkward and costs a beat of comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with no output schema, the definition covers the headline edits and the patch semantics but omits several supported fields entirely and says nothing about the response or whether pausing preserves scheduling data. Adequate to call correctly in the common case, incomplete at the edges.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 45% across 11 parameters, so the description has to compensate. It does explain dose, times, days-of-week and the is_active pause flag, but leaves name, notes, dose_unit, dose_amount, units_per_take and end_date undocumented outside the sparse schema — more than half the surface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (changes) and resource (a student's supplement), and enumerates the editable dimensions: dose, times, days, and pausing via is_active false. It is clearly distinct from add_student_supplement, though it never explicitly names the sibling the way a top-tier definition would.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Send only what changes" gives useful partial-update guidance, implying that omitted fields are left untouched. However, it never states when to reach for this tool versus add_student_supplement, nor any prerequisite such as reading the supplement first via list_student_supplements (that hint only appears in the schema).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workoutEdit a workoutAInspect
Changes a workout: name, notes, day, length, difficulty. Sending exercises replaces the whole exercise list, so send all of them. Send only what changes.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| status | No | ||
| category | No | ||
| exercises | No | ||
| week_name | No | ||
| workoutId | Yes | Workout id. | |
| difficulty | No | ||
| day_of_week | No | ||
| description | No | Notes for the student. | |
| warmup_notes | No | ||
| cooldown_notes | No | ||
| estimated_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, destructiveHint=false, openWorldHint=true — they say nothing about partial-update semantics. The description adds genuinely non-obvious behavior: omitted fields are preserved and sending exercises replaces the entire exercise list. That is exactly the kind of context the annotations cannot convey, though it stops short of stating permission requirements or what a partial-vs-full replacement returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, with the core edit semantics and the most dangerous side effect (exercises replacement) front-loaded before the partial-update rule. Nothing repeats what the schema or annotations already state.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the highest-risk behavior (list replacement) and the patch model, which are the essentials for a 12-parameter mutation with no output schema. It still leaves most editable fields undocumented at a 17% schema coverage level and omits any mention of authorization or what happens if workoutId is unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is very low (17%) across 12 parameters, so the description carries the burden — but it names only about five fields, in non-matching terminology, and says nothing about status, category, week_name, warmup_notes, cooldown_notes, or estimated_minutes units. The one strong addition is the replace-whole-list semantics for exercises, which clarifies a nested array the schema leaves undescribed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ("Changes a workout") and enumerates the editable facets, so the agent knows it is an edit rather than a create/publish. However, the field list is stated in loose synonyms ("name, notes, day, length") that don't match the actual schema keys (title, description, day_of_week, estimated_minutes), and it omits status, category, week_name and the note fields entirely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Send only what changes" plus the warning about exercises replacement gives real operational guidance for invoking it correctly. But it never says when to use this over siblings like create_workout, publish_workout, or set_workout_weeks, so the alternative-selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vote_feature_requestVote for an ideaAInspect
Votes for an idea; calling again removes the vote. Returns whether the vote counts now.
| Name | Required | Description | Default |
|---|---|---|---|
| ideaId | Yes | Id from list_feature_requests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false; the description adds the genuinely important behavior that this is a toggle, not a one-way write, and that removed votes are possible. It notes the boolean-ish return without detailing the payload, and says nothing about permissions or rate limits, keeping it off 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses, zero waste, with the toggle behavior front-loaded ahead of the return-value note. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter toggle with full schema coverage and annotations declaring the write profile, the description supplies the only missing pieces: repeat-call semantics and return meaning. No output schema exists, so a slightly richer statement of the returned value would have closed the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter with 100% schema description coverage, including the source of the id ("Id from list_feature_requests"). The description adds no further meaning about ideaId, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("votes for an idea") plus the non-obvious toggle semantics (calling again removes the vote). It does not name or distinguish itself from adjacent siblings like comment_feature_request or suggest_feature, but the action itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: call once to vote, call again to un-vote, which is the key usage fact an agent needs. It stops short of naming alternatives (e.g., commenting on or creating a request via suggest_feature), so there is no explicit when-not guidance.
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 tool update
- Removed
list_inactive_students
2 tool updates
- Added
list_inactive_students - Changed
list_payments1 field changed- added
Input schema / properties / studentAdded value: +{ + "description": "Only this student: any words of the name, in any order (\"souza ana\"). Totals then cover just them.", + "maxLength": 120, + "type": "string" +}
5 tool updates
- Added
get_subscription_anamnesis_answers - Added
get_subscription_anamnesis_form - Added
get_support_unread_count - Added
list_available_contracts - Added
list_receivable_banks
23 tool updates
- Added
block_chat_user - Added
check_student_email - Added
get_anticipation_limits - Added
get_chat_block_status - Added
get_digital_account_balance - Added
get_digital_account_statement - Added
get_digital_account_status - Added
get_fee_settings - Added
get_library_exercise - Added
get_my_account - Added
get_my_trainer_connect_plan - Added
get_partial_workout_log - Added
get_receiving_status - Added
link_library_videos - Added
list_anticipations - Added
list_digital_account_bill_payments - Added
list_digital_account_pix_payments - Added
list_digital_account_transfers - Added
list_wallet_withdrawals - Added
mark_announcement_seen - Added
preview_payment_fees - Added
send_student_password_reset_link - Added
update_my_profile
46 tool updates
- Added
add_favorite_exercise - Added
add_favorite_food - Added
comment_feature_request - Added
create_equipment - Added
create_gym_unit - Added
create_meal_template - Added
create_muscle_group - Added
create_training_goal - Added
create_workout_share_link - Added
get_feature_request - Added
get_gym_report - Added
get_student_diet_context - Added
get_student_training_context - Added
get_support_chat - Added
get_support_ticket - Added
get_tab - Added
list_catalog_categories - Added
list_deleted_assessments - Added
list_feature_requests - Added
list_gym_access_logs - Added
list_gym_units - Added
list_library_body_parts - Added
list_library_equipment - Added
list_library_exercise_types - Added
list_library_exercises - Added
list_library_muscles - Added
list_my_media - Added
list_support_tickets - Added
list_tab_classes - Added
mark_lead_read - Added
open_support_ticket - Added
rename_equipment - Added
rename_muscle_group - Added
rename_training_goal - Added
reorder_program_days - Added
reorder_program_weeks - Added
reply_support_ticket - Added
restore_anamnesis_form - Added
restore_assessment - Added
send_support_chat_message - Added
suggest_feature - Added
update_meal_template - Added
update_media_caption - Added
update_session_report - Added
update_student_file - Added
vote_feature_request
140 tool updates
- Added
accept_join_request - Added
activate_diet_plan - Added
add_exercise_to_program_day - Added
add_program_day - Added
add_program_week - Added
add_student_supplement - Added
apply_catalog_workout - Added
approve_all_workout_suggestions - Added
archive_assessment - Added
assign_student_to_member - Added
attach_assessment_to_student - Added
check_public_link - Added
copy_diet_plan - Added
copy_program - Added
counter_propose_class_change - Added
create_anamnesis_form - Added
create_assessment - Added
create_checkin_template - Added
create_competition - Added
create_diet_plan - Added
create_exercise_template - Added
create_food - Added
create_goal - Added
create_holiday - Added
create_program - Added
create_schedule_slot - Added
decline_class - Added
get_active_diets - Added
get_ai_credits - Added
get_ai_credits_statement - Added
get_anamnesis_form - Added
get_assessment_ai_analysis - Added
get_assessment_ai_quota - Added
get_autopilot - Added
get_catalog_workout - Added
get_checkin_status - Added
get_checkout_funnel - Added
get_competition - Added
get_contract - Added
get_contracts_overview - Added
get_financial_metrics - Added
get_leads_stats - Added
get_my_profile - Added
get_my_team_role - Added
get_payment - Added
get_program - Added
get_public_profile - Added
get_public_profile_stats - Added
get_referrals - Added
get_session_events - Added
get_student_ai_consent - Added
get_student_live_session - Added
get_student_notices - Added
get_student_streak - Added
get_student_supplement_day - Added
get_subscription - Added
get_workout_ai_quota - Added
get_workout_health_summary - Added
get_workout_leaderboard - Added
get_workout_log_health - Added
get_workout_session - Added
get_workout_weeks - Added
invite_student - Added
invite_to_competition - Added
link_assessment_to_class - Added
list_anamnesis_requests - Added
list_announcements - Added
list_archived_assessments - Added
list_cancellation_requests - Added
list_cash_entries - Added
list_catalog_workouts - Added
list_charges - Added
list_class_files - Added
list_coached_sessions - Added
list_competitions - Added
list_contract_subscribers - Added
list_coupons - Added
list_deleted_workouts - Added
list_diet_feedback - Added
list_diet_templates - Added
list_equipment - Added
list_exercise_templates - Added
list_favorite_exercises - Added
list_favorite_foods - Added
list_food_categories - Added
list_holidays - Added
list_meal_templates - Added
list_muscle_groups - Added
list_my_exercise_videos - Added
list_notifications - Added
list_payment_reminders - Added
list_schedule_templates - Added
list_student_competitions - Added
list_student_files - Added
list_student_health_history - Added
list_student_payments - Added
list_student_programs - Added
list_student_schedule_slots - Added
list_student_subscriptions - Added
list_student_workouts - Added
list_subscription_payments - Added
list_tabs - Added
list_team_members - Added
list_training_goals - Added
list_unlinked_assessments - Added
list_workout_copies - Added
mark_chat_read - Added
mark_notification_read - Added
mark_notifications_read - Added
publish_workout - Added
reactivate_student - Added
reject_join_request - Added
restore_program - Added
restore_workout - Added
schedule_diet_plan - Added
search_foods - Added
set_weekly_target - Added
set_workout_weeks - Added
sync_workout_copies - Added
toggle_anamnesis_form - Added
unarchive_assessment - Added
unpublish_workout - Added
update_anamnesis_form - Added
update_assessment - Added
update_checkin_template - Added
update_class - Added
update_competition - Added
update_diet_plan - Added
update_exercise_template - Added
update_food - Added
update_goal - Added
update_holiday - Added
update_program - Added
update_program_day - Added
update_program_week - Added
update_public_profile - Added
update_schedule_slot - Added
update_student_notices - Added
update_student_supplement - Added
update_workout
52 tool updates
- Added
accept_class_change - Added
approve_workout_suggestion - Added
cancel_class - Added
confirm_class - Added
get_anamnesis_overview - Added
get_assessment - Added
get_balance - Added
get_checkins_overview - Added
get_diet_adherence - Added
get_diet_plan - Added
get_free_slots - Added
get_invite_link - Added
get_latest_assessments - Added
get_lead - Added
get_monthly_closing - Added
get_statement - Added
get_student_health - Added
get_student_summary - Added
get_students_activity - Added
get_workout - Added
list_anamnesis_answers - Added
list_anamnesis_forms - Added
list_assessments - Added
list_checkin_answers - Added
list_checkin_templates - Added
list_class_change_requests - Added
list_contracts - Added
list_conversations - Added
list_diet_plans - Added
list_join_requests - Added
list_leads - Added
list_live_sessions - Added
list_programs - Added
list_recent_sessions - Added
list_student_classes - Added
list_student_goals - Added
list_student_sessions - Added
list_student_supplements - Added
list_subscriptions - Added
list_workout_suggestions - Added
list_workouts - Added
read_chat - Added
read_lead_chat - Added
reject_class_change - Added
reject_workout_suggestion - Added
reply_to_lead - Added
reschedule_class - Added
send_anamnesis - Added
send_checkin - Added
send_message - Added
update_lead - Added
update_student
14 tool updates
- First observed
api_read - First observed
api_write - First observed
create_student - First observed
create_workout - First observed
describe_operation - First observed
find_trainers - First observed
get_schedule - First observed
get_student - First observed
get_trainer - First observed
list_operations - First observed
list_payments - First observed
list_students - First observed
schedule_class - First observed
search_exercises
Related MCP Connectors
Client, workout, body composition, retention and finance management for personal trainers.
Groups, class packs, sessions, attendance and payments for fitness trainers and clubs.
Manage fitness coaching clients, workouts, programs, chats and funnels from your assistant.
Manage clients, plans, sessions, habits, and billing on Trainzilla via one-click OAuth.
Related MCP Servers
- AlicenseCqualityAmaintenanceEnables reading training history and planning complete workouts on a personal calendar, including exercises with videos, sets, reps, per-set weights, supersets, notes, and block instructions. It also supports searching the exercise library, copying or moving sessions, and retrieving performance stats, personal records, and feedback.29MIT
- AlicenseNot gradedqualityCmaintenanceEnables personal trainers to query and summarize client management data—active clients, workouts, physical assessments, retention, check-ins, feedback, and finances—through MCP-compatible AI clients in read-only mode.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables agents to track workouts, body metrics, and training stats for registered users through a JSON-RPC MCP endpoint, with scoped agent permissions and a web dashboard.-
- AlicenseAqualityBmaintenanceConnects MCP clients to your gym training data so you can review weekly set volume, stall trends, session history and body measurements, and make previewed, backed-up edits to your workout plan. Includes fractional set counting and e1RM progress tracking.13MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.