Skip to main content
Glama

A single run or strength session, in the Mindful Runner Way

get_single_workout
Read-onlyIdempotent

One session built the Mindful Runner Way. A run (kind "run", the default) is warm-up, main work and cool-down, each step with its length and its effort on a 0–10 scale (RPE) with words for how it feels, because Sigwren does not know the person's zones or paces. Use it for "give me a 45-minute easy run", "a hill session for an hour", "a threshold workout". Pass focus (easy, recovery, long, strides, hills, fartlek, tempo, threshold, speed, vo2max, race_pace, progression, downhill, descent_tempo, descent_skill, sustained_climb, power_hike) and optionally minutes. A strength session (kind "strength") is one of three: Runners Strength (session runners_strength — squat, hinge, single-leg, push, pull and core; variant "full" is six exercises, "short" the first four), Runners Glutes (runners_glutes) or Max Strength (max_strength — heavy lifting, only for people who already lift with good technique). Each exercise comes with sets, reps, rest and its effort in reps left in the tank, because Sigwren does not know the person's maxes. The answer states how long the session takes. Use it for "a strength session for runners", "a quick strength routine" (variant short), "a glute workout". It needs no account and knows nothing about the person. It returns the session and the Mindful Runner workout contract: present the session in that order — a brief description, then Intent, Focus, Practice and Reflect as one short paragraph each, then the steps or exercises — in the Mindful Runner voice, with the numbers only in the steps or exercises, never in the paragraphs. You write the words; the sessions are Sigwren's. For Max Strength, open with its safety line.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_single_workout"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindNo"run" (the default) or "strength".
focusNoWhat the run is for: easy (the default), recovery, long, strides, hills, fartlek, tempo, threshold, speed, vo2max, race_pace, progression, downhill, descent_tempo, descent_skill, sustained_climb, power_hike.
minutesNoHow long the run should be, in minutes. Leave it out to get the length the Mindful Runner Way builds for this session. Runs only: strength sessions are chosen with session and variant, and say how long they take.
sessionNoFor kind "strength": runners_strength (the default — squat, hinge, single-leg, push, pull and core), runners_glutes, or max_strength (heavy lifting, for people who already lift with good technique).
variantNoFor runners_strength only: "full" (the default, six exercises) or "short" (the first four: squat, hinge, single-leg, push). The answer says how long it takes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / focus / description
      Previous value: -"What the run is for: easy (the default), recovery, long, strides, hills, fartlek, tempo, threshold, speed, vo2max, race_pace, progression, downhill, descent_tempo, descent_skill."New value: +"What the run is for: easy (the default), recovery, long, strides, hills, fartlek, tempo, threshold, speed, vo2max, race_pace, progression, downhill, descent_tempo, descent_skill, sustained_climb, power_hike."
  2. Changed1 schema field changed
    • changedInput schema / properties / focus / description
      Previous value: -"What the run is for: easy (the default), recovery, long, strides, hills, fartlek, tempo, threshold, speed, vo2max, race_pace, progression, downhill, descent_tempo."New value: +"What the run is for: easy (the default), recovery, long, strides, hills, fartlek, tempo, threshold, speed, vo2max, race_pace, progression, downhill, descent_tempo, descent_skill."
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real behavioral context on top: no account or personal data required, RPE-based effort because zones/paces/maxes are unknown, strength sessions self-report duration, and a mandated presentation contract plus a Max Strength safety line. That is well beyond what the structured fields convey.

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

Conciseness3/5

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

Front-loaded with the core purpose, which is good, but it is a single dense block that mixes tool semantics with lengthy output-formatting instructions (paragraph order, voice, numbers placement). The rationale "because Sigwren does not know the person's zones or paces / maxes" is repeated near-verbatim for runs and strength, which could be collapsed.

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

Completeness5/5

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

With no output schema, the description fully compensates by explaining what comes back (the session plus the Mindful Runner workout contract), the required presentation order, and the voice constraints. Nothing an agent needs in order to call it or render the result is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all five parameters, including the focus and session value lists. The description mostly restates those values, adding only marginal semantics — that omitting `minutes` yields the Way's built-in length, and that `minutes` applies to runs only, while `variant` applies only to runners_strength.

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

Purpose5/5

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

States a specific verb and resource — returns one training session in the Mindful Runner Way, either a run (warm-up/main work/cool-down) or one of three named strength sessions — and explicitly separates the two branches with the `kind` discriminator. It is clearly distinguishable from siblings like build_race_day_plan or get_fitness_test.

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

Usage Guidelines4/5

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

Gives concrete triggering utterances for both branches ("give me a 45-minute easy run", "a hill session for an hour", "a strength session for runners", "a quick strength routine") and states prerequisites ("It needs no account and knows nothing about the person"). It does not name an alternative sibling or say when NOT to use it, so it stops short of full routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources