Plan My Workout
Server Details
A workout plan for your goal, level, days and equipment, and how to do any exercise.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- GoodTurnStudio/goodturn-mcp
- GitHub Stars
- 0
- Server Listing
- goodturn-mcp
TDQS
Scored across 3 tools
Each tool serves a distinct purpose: get_exercise for single-exercise instructions, list_exercises for discovering exercises by muscle/equipment, and get_workout_plan for generating a plan. Descriptions clearly delineate boundaries, leaving no realistic confusion.
All tool names follow a consistent verb_noun snake_case pattern (get_exercise, get_workout_plan, list_exercises). The verbs accurately reflect the action and are used consistently.
Three tools is on the lean side for a workout planning service, but each is broad and well-scoped, covering exercise lookup, exercise discovery, and plan generation. A few more focused tools could add value without redundancy.
The surface covers core planning needs: exercise details, exercise listing, and workout/running plan generation. Minor gaps exist (e.g., no tool to retrieve or modify a previously generated plan), but users can work around these by re-generating with adjusted parameters.
Available Tools
3 toolsget_exerciseHow to do one exercise, the muscles it works and a pictureARead-onlyIdempotentInspect
How to do one exercise, the muscles it works and a picture. Use for "how do I do a Romanian deadlift?", "what is a goblet squat?", "what muscles do face pulls work?". Understands everyday names like RDL, press-up and lat pulldown. muscles.main lists the muscles the move mainly works (hand-checked for the main lifts) and muscles.also the ones that help
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The exercise, for example Romanian deadlift or push-up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuinely new behavioral detail: it resolves everyday aliases (RDL, press-up) and explains the shape of the muscles result (muscles.main vs muscles.also, hand-checked for main lifts), which is valuable since there is no output 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?
Purpose is front-loaded in the first sentence, followed by usage examples, then alias handling and result structure. Four short clauses and no filler; only mild redundancy between the title and the opening 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?
For a single-param read tool with no output schema, the description adequately covers input tolerance (aliases) and the key return fields (muscles.main/also). Annotations carry the safety profile, so nothing critical is missing, though the promised picture/instructions return is not described.
Complex tools with many parameters or behaviors need more documentation. 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 'name' parameter, giving a baseline of 3. The description exceeds that by disclosing that informal names like RDL or lat pulldown are understood, which tells the agent the parameter tolerates aliases rather than requiring canonical names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: fetch how to do one exercise, its worked muscles, and a picture. The phrase 'one exercise' implicitly contrasts with the sibling list_exercises, but no sibling is named explicitly, 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 'Use for ...' clause supplies three concrete example questions that define the intended query shape, which is clear context. However it gives no when-not-to-use guidance or alternatives (e.g., list_exercises for browsing all moves), so it lacks explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workout_planA weekly workout plan with sets, reps and restARead-onlyIdempotentInspect
A weekly workout plan with sets, reps and rest. Use for "make me a 3 day beginner gym plan", "home workout with just dumbbells, 30 minutes", "a 5 day muscle building split", "I have a pull-up bar and dumbbells", "a 20 minute workout" (days=1 gives a single session), "a workout plan to lose weight", "couch to 5K" or "a 10K running plan" (a 10K or longer goal gets the build-up plan unless the user says they are a beginner), or "give me another one" (send the same inputs with seed plus one). Either pass the fields, or pass the user's words in q and the service reads days, minutes, level, goal and equipment from them. Fields win over q. Running plans also return weeks: every week's sessions (a 9-week walk-run build to 30 minutes of running for beginners; easy, interval, tempo and long runs for intermediates), with week 1 laid out in days.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | The user's request in their own words, for example "3 day beginner gym plan, 45 minutes". | |
| days | No | Days per week, 1 to 6 (1 gives a single session). More than 6 (or "every day") is planned as 6 with a rest day, and the answer says so in say and in plan.days_asked and plan.days_note. Default 3. | |
| goal | No | strength, muscle, general (default), conditioning (use this for fat loss or weight loss requests), running or mobility. | |
| seed | No | 0 to 9999. Change it for a different mix of exercises with the same setup. Default 0. | |
| level | No | beginner (default) or intermediate. Advanced is treated as intermediate. | |
| country | No | Two-letter country code for kit links (US, GB, IE, CA, AU). Defaults to the visitor's country. | |
| minutes | No | Minutes per session including warm-up, 15 to 120. Default 45. | |
| equipment | No | Comma separated: none (default), dumbbells, barbell, gym, bands, kettlebell, pullupbar (a pull-up bar), jumprope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, but the description adds real context: days>6 is planned as 6 with a rest day and surfaced via say, plan.days_asked and plan.days_note; days=1 yields a single session; running goals return weeks of sessions. It does not discuss rate limits, auth, or failure modes, so it is strong 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?
Front-loaded with a one-sentence purpose before any examples, and every example corresponds to a real routing decision. The middle sentence is a long run-on listing of sample prompts, which makes it less scannable than it could be, but the content largely earns its place given 8 optional fields and no output 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 an optional-parameter generator with no output schema, the description covers defaults, field-vs-q precedence, seed-based regeneration, day clamping behavior, and running-plan week structure. An agent has enough to call it correctly without further 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?
Schema description coverage is 100% and already documents defaults, ranges and enums, which establishes a baseline of 3. The description meaningfully adds interaction semantics the schema cannot: q is interpreted by the service but is overridden by explicit fields, and seed reuse produces a different mix of exercises with the same setup.
Input schemas describe structure but not intent. Descriptions should explain 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 ('a weekly workout plan with sets, reps and rest') and anchors it with concrete request examples. It is clearly distinguishable from siblings get_exercise and list_exercises, which return individual exercises rather than a generated 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?
Gives explicit when-to-use triggers across many example utterances, plus the alternative paths for input ('pass the fields, or pass the user's words in q'), the tie-break rule ('Fields win over q'), and the regeneration convention ('send the same inputs with seed plus one'). Special-case routing for 10K/running vs beginner is also spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_exercisesExercises for a muscle and the equipment the user hasARead-onlyIdempotentInspect
Exercises for a muscle and the equipment the user has. Use for "what can I do for chest with no equipment?", "glute exercises with bands", "back exercises with dumbbells", "some mobility moves". Give a muscle, equipment or both
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | beginner leaves out harder moves. | |
| limit | No | 1 to 10. Default 8. | |
| muscle | No | chest, back, shoulders, arms, biceps, triceps, legs, quads, hamstrings, glutes, calves, core (or abs), cardio or mobility. Also forearms (grip) and traps. | |
| equipment | No | none, dumbbells, barbell, gym, bands, kettlebell, pullupbar or jumprope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safe-read profile is fully covered without the description's help. The description adds only the filterable dimensions, which is parameter framing rather than behavioral disclosure (no mention of result volume, ranking, 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?
Two short sentences, front-loaded with purpose then examples, with no wasted prose. The opening largely echoes the title, which is a minor redundancy rather than 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 readonly filtered-list tool with zero required params, 100% schema coverage and safety fully covered by annotations, and no output schema to explain, the description supplies enough to call it correctly. It omits any note that all arguments are optional and that omitting muscle/equipment returns an unfiltered list, a small 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 muscle/equipment enumerations plus the level and limit semantics are documented in the schema itself. The description restates muscle and equipment but says nothing about level or limit, so it adds no meaning 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?
The first sentence names a specific resource (exercises) and its two filters (muscle, equipment), so an agent knows exactly what this returns. It is distinguishable from get_exercise (single detail) and get_workout_plan (programs) by implication, 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 example queries ("what can I do for chest with no equipment?", "glute exercises with bands") give concrete trigger conditions, and "Give a muscle, equipment or both" clarifies that filters are optional and combinable. No explicit when-not-to-use or alternative-tool routing, which keeps it short of a 5.
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.
3 tool updates
- First observed
get_exercise - First observed
get_workout_plan - First observed
list_exercises
Related MCP Connectors
Calories and nutrition for any food, chain meal or barcode, and meal ideas for a goal and diet.
31Plan workouts, find exercises and gyms, log sessions and track progress with Gym Navigator.
Log workouts and meals by telling your AI. 873 exercises, muscle diagrams, food lookup.
Track workouts, nutrition, body metrics, habits, and SMART goals with insights and trends. Connect…
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables users to search and retrieve fitness exercise information from the Api Ninjas database. It supports filtering by exercise name, target muscle, type, and difficulty level.1MIT
- FlicenseAqualityDmaintenanceEnables workout logging, volume calculation, exercise database search with 1500+ exercises, and AI-powered workout plan generation with DynamoDB persistence.14-
- FlicenseNot gradedqualityAmaintenanceEnables Claude or ChatGPT to act as a personalized fitness coach with persistent goals, conversational workout logging, and weekly generated training plans.-
- AlicenseNot gradedqualityBmaintenanceEnables creating workout plans, tracking progress, suggesting exercises, and calculating training volume through natural language, compliant with MCP protocol.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.