Skip to main content
Glama

Almost Fire

Make a training plan

make_plan
Read-onlyIdempotent

Use this when someone asks for a strength, gym, weightlifting or muscle-building program or workout plan, at a gym or at home. Builds all 26 weeks from Almost Fire's plan engine, the one the app uses: the split for their days, each session's exercises with sets, reps, rest and effort, a lighter week to end each block, and gentler swaps for anything they protect. No account needed. Ask how many days they can train first; fill the rest from what they've said and leave the others null. Do not use for running or race plans, sport-specific conditioning, diet plans or injury rehab.

Input Schema

NameRequiredDescriptionDefault
goalNostrength, muscle or fat_loss; null when they haven't said.
splitNofull, upper_lower, ppl or body_part; auto or null picks the one that suits their days.
styleNoHow they like to train: supersets, straight sets, heavy, pump, machines, free weights, a finisher.
protectNoAreas to go easy on (a sore knee, a shoulder): the plan picks gentler options there.
equipmentNocommercial (a full gym), home (a home gym with a rack) or dumbbells only.
loveLiftsNoLifts they want in.
skipLiftsNoLifts they don't want.
daysPerWeekYesTraining days a week.
sessionMinutesNoHow long a session can be.
buildPrioritiesNoUp to two areas to build most.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely new behavior: the plan comes from the same engine the app uses, spans 26 weeks, requires no account, and includes per-block lighter weeks and injury-friendly substitutions. It does not say whether the generated plan is persisted or returned transiently, which matters given the sibling save_plan.

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?

Front-loaded with the trigger condition, then the output contract, then the exclusion list, and closing with the elicitation rule. Every sentence carries information, though the middle sentence is a dense run-on that could be split for faster scanning.

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 an output schema present, return values need no explanation, and the description instead covers the parts an agent cannot infer: the trigger, the excluded domains, the ask-days-first protocol, and null-filling for unknowns. Given 10 parameters, one required field and full enum coverage, nothing essential to a correct call 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 100%, so the baseline is 3 and the schema already documents every field and enum. The description still adds operational meaning beyond the schema: only daysPerWeek is worth asking about, and unspecified fields should be passed as null rather than guessed. That null-filling policy is not encoded in the schema.

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 and resource ("Builds all 26 weeks ... a training plan") and enumerates what the output contains: split for their days, per-session exercises with sets/reps/rest/effort, a lighter week per block, and gentler swaps. It also names the domains it is not for (running, race plans, sport-specific conditioning, diet, rehab), which separates it from any adjacent planning request.

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?

Explicit when-to-use ("Use this when someone asks for a strength, gym, weightlifting or muscle-building program ... at a gym or at home") and explicit when-not-to-use in the final sentence. It also dictates a conversational prerequisite: "Ask how many days they can train first," and how to handle the remainder ("fill the rest from what they've said and leave the others null").

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