Skip to main content
Glama

Add or update an exercise

upsert_exercise
DestructiveIdempotent

Create or update an exercise in the user's catalog (keyed by its id/name). Prefer a pool exercise: call search_exercise_pool first and pass its slug as the id plus pool_slug, so the movement keeps one identity and one history. Only hand-write an exercise when the pool genuinely has nothing for it — then always set instructions (2-3 short technique cues, in the user's language), primary_muscles, category and equipment: the muscle map and the app UI are blank without them. Fields you omit are left as they are, so a partial update is safe.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
exerciseYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Discloses merge semantics beyond what annotations provide: 'Fields you omit are left as they are, so a partial update is safe' — this is exactly the behavioral trait an agent needs for an upsert. The description also adds identity/history preservation context and the consequence of missing fields (blank muscle map/UI). consistent with readOnlyHint=false, destructiveHint=true, and idempotentHint=true; no contradiction.

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

Conciseness5/5

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

Roughly 110 words with no filler. The core action is front-loaded, followed by the preferred route, the fallback route with conditional requirements, and the merge safety note. Each sentence earns its place and the structure mirrors the agent's decision flow.

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?

Complete for a write tool of this complexity: it covers the primary decision (pool vs hand-written), the merge behavior, and the fields that must be set in the fallback case. The output schema exists so return-value explanation isn't needed, and the input schema carries detailed field semantics. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does for the critical parameters: id (pass pool slug as it), pool_slug, instructions, primary_muscles, category, and equipment. It adds meaning beyond the schema by explaining the conditional requirement ('the muscle map and the app UI are blank without them') and the id/slug relationship. It doesn't cover every field, but the schema's own rich per-property descriptions carry the rest.

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?

Opens with a specific verb+resource: 'Create or update an exercise in the user's catalog (keyed by its id/name)'. It clearly distinguishes itself from siblings by naming search_exercise_pool as the lookup step and explaining the relationship, so an agent can tell exactly what this tool does versus list_exercises or update_session.

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

Usage Guidelines5/5

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

Gives explicit when/when-not guidance: 'Prefer a pool exercise: call search_exercise_pool first...' and 'Only hand-write an exercise when the pool genuinely has nothing for it'. It names the alternative tool directly and specifies the exact call pattern (pass slug as id plus pool_slug), leaving nothing to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.