Skip to main content
Glama

mark_exercise

Set or clear a lasting exercise preference: preferred, avoided, or none, by group_id or name; avoided moves stay out of programming unless requested.

Instructions

Mark a movement ★preferred, ⊘avoided, or clear it ("none"). Identify it by group_id, or by name when you have no id (an ambiguous name marks nothing and lists candidates). Use when the user makes a LASTING per-exercise preference clear (it always hurts / they love it). Avoided moves are never programmed unless the user asks for them by name. reason: optional short note on why (e.g. 'left shoulder'), shown to you and in the web app.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
markYes
nameNo
reasonNo
group_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it discloses that an ambiguous name marks nothing and returns candidates, that avoided moves are never programmed unless requested by name, and that the reason note is surfaced to the user in the web app. Auth/error behavior is unstated, but the key side effects and failure mode are covered.

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

Conciseness4/5

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

The core behavior, identification strategy, and trigger condition are front-loaded in the first three sentences, with the optional reason note trailing appropriately. The inline ★/⊘ glyphs add density without much cost, but the passage is otherwise waste-free.

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

Completeness4/5

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

For a 4-parameter mutation tool with no annotations and no output schema, the description supplies the missing pieces: state values, id/name resolution, ambiguity outcome, and downstream effect on programming. Nothing critical for correct invocation is obviously absent, though it never states the return shape or error behavior.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it largely does: it defines the legal `mark` values (preferred/avoided/none), explains `name` as the fallback when no id exists plus its ambiguity behavior, and clarifies `reason` as an optional short note shown to the user. `group_id` is named but not further characterized.

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

Purpose5/5

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

The description names a specific verb (mark) and resource (a movement), and enumerates the exact states it can set: 'preferred', 'avoided', or clear ('none'). It is clearly distinguishable from siblings like set_preferences or remember_fact, which operate on global settings and facts rather than per-exercise markers.

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

Usage Guidelines4/5

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

It gives an explicit triggering condition: 'Use when the user makes a LASTING per-exercise preference clear (it always hurts / they love it)', which sharply separates it from transient reactions. It also explains the id-vs-name routing path. It stops short of naming alternatives (e.g. remember_fact, set_preferences) or stating when NOT to use it.

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