Skip to main content
Glama

Update the coaching profile

update_coach_profile
Idempotent

Save confirmed user details to update coaching profile and personalize plan, immediately confirming saved changes.

Instructions

Persist facts the user confirmed (goal, experience, schedule, equipment, injuries, preferences). Call as soon as a fact is confirmed — one fact per call is fine, don't batch or wait for the end of the conversation; works mid-workout too. Injuries: add via add_injuries, close via resolve_injury_areas. An explicitly null field is CLEARED; omitted fields are untouched. Returns the updated profile, changed fields, and ui_impact — the app surfaces this write feeds; confirm to the user that their answer was saved and now shapes their plan.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
patchYesOne patch = the facts confirmed in conversation right now. Everything optional.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.1

TDQS

A5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important side-effect behavior: null fields are CLEARED while omitted fields are untouched, and the write is persisted and feeds the app's UI. It also explains what is returned (updated profile, changed fields, ui_impact) and instructs the agent to confirm to the user that the answer was saved. This is consistent with readOnlyHint=false and idempotentHint=true.

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

Conciseness5/5

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

The description is dense but every sentence carries essential guidance: when to invoke, how to batch, how to handle injuries, patch semantics, return value, and required user confirmation. It is front-loaded with the core purpose and action trigger.

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

Completeness5/5

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

For a complex tool with a large nested schema and an output schema, the description covers invocation timing, field-level semantics, special injury routing, return information, and expected user-facing confirmation. Nothing critical is missing for an agent to call this tool correctly.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds crucial semantics the schema cannot express: null means clear, omitted means untouched, and the patch should contain only the facts confirmed in the current turn. It also clarifies that injuries are handled through specific sub-fields rather than generic profile fields.

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

Purpose5/5

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

The description states a specific verb ('Persist facts the user confirmed') and a clear resource (coaching profile), enumerating the fact types (goal, experience, schedule, equipment, injuries, preferences). It distinguishes itself from sibling update/upsert tools by clearly scoping to the coaching profile and its confirmed-facts use case.

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

Usage Guidelines5/5

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

The description gives explicit when-to-call guidance: 'Call as soon as a fact is confirmed', with one fact per call, no batching, and mid-workout support. It also routes injury updates explicitly via add_injuries versus resolve_injury_areas, and clarifies patch semantics with null-clearing versus omission.

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