Skip to main content
Glama

Server Details

Read-only bodyweight workout builder and exercise form cues from the Upfit iPhone app.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a clearly distinct purpose: app metadata (about_upfit), exercise catalog (list_exercises), per-exercise coaching details (get_exercise_form_cues), and session generation (build_home_workout). There is no overlap between listing, detail, and generation, so an agent can route reliably.

Naming Consistency4/5

Three tools follow a clean verb_noun snake_case pattern (build_home_workout, get_exercise_form_cues, list_exercises). 'about_upfit' deviates slightly by starting with a preposition rather than a verb, but it is still readable and unambiguous.

Tool Count4/5

Four tools is on the lean side but each earns its place for a narrow, read-only workout-building scope. It is slightly thin—no tool for saving or browsing prior sessions—but not deficient enough to be a problem.

Completeness4/5

The surface covers the core lifecycle: learn about the app, enumerate exercises, inspect coaching cues, and generate a session. Minor gaps exist (no way to fetch full details or difficulty rationale for a single exercise, or to persist/share a workout), but the main workflows are covered.

Available Tools

4 tools
about_upfitAbout UpfitA
Read-onlyIdempotent
Inspect

Use this when the user asks what Upfit is, how it works, or what it cannot check. Returns a short description and links to Upfit's own explanation pages.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds useful context beyond that: the response is a short description plus links, and it notably covers what Upfit 'cannot check', which pre-empts user expectations about limits.

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?

Two sentences, both earning their place: the trigger is front-loaded and the return value follows. No filler or repetition of the title.

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?

For a zero-parameter, read-only info tool with no output schema, the description supplies everything an agent needs: when to invoke it and the nature of the response. Nothing material 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?

The tool takes no parameters, so there is nothing to document; baseline for a zero-parameter tool is 4. The description correctly implies a parameterless invocation.

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 the specific resource (Upfit) and states exactly what is returned: a short description plus links to Upfit's own explanation pages. This clearly separates it from the sibling tools (build_home_workout, get_exercise_form_cues, list_exercises), which all deal with exercise data rather than product-level information.

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 trigger: use when the user asks what Upfit is, how it works, or what it cannot check. That is concrete when-to-use guidance. It does not name an alternative tool or state when not to use it, so it stops 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.

build_home_workoutBuild a home workoutA
Read-onlyIdempotent
Inspect

Use this when the user wants a bodyweight, no-equipment home workout session. Builds a 15-move session the way the Upfit iPhone app builds one: 2 warm-ups, 10 main moves balanced around the chosen level, then 3 harder finishers. Returns each move's name, phase, set length and rest. Read-only; collects no personal data and needs no body measurements. The same seed returns the same session.

NameRequiredDescriptionDefault
seedNoOptional. Any word or number; the same seed rebuilds the same session. Leave out for a fresh random one.
levelYesTraining experience: beginner, intermediate or advanced.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile needs no restating. The description still adds real context beyond them: no personal data collected, no body measurements needed, and that the same seed reproduces the same session. It omits any failure/edge behavior, so not a 5.

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?

Four short sentences, front-loaded with the trigger condition before the mechanics. The session composition is stated compactly and nothing is redundant.

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 compensates by naming exactly what each returned move contains (name, phase, set length, rest). Combined with the annotations and a fully documented input schema, an agent has everything needed to call it correctly.

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 both parameters are already fully documented in the schema, including the seed's determinism note. The description's mention of 'the chosen level' and a repeatable seed restates rather than extends that, making the baseline 3 correct.

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 ('Builds a 15-move session') and pins the exact output shape: 2 warm-ups, 10 main moves, 3 finishers. It is unmistakably distinct from siblings like list_exercises or get_exercise_form_cues.

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?

Opens with an explicit trigger — 'Use this when the user wants a bodyweight, no-equipment home workout session' — which tells the agent when it applies. It does not name a sibling as an alternative or state when not to use it, so it stops short of 5.

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

get_exercise_form_cuesGet an exercise's form cuesA
Read-onlyIdempotent
Inspect

Use this when the user asks what Upfit's coach says or checks for a specific bodyweight exercise (for example 'squat' or 'low plank hold'). Returns the app's real spoken coach lines for that exercise and, for exercises that have an Upfit page, what the camera checks and does not check. If the exercise is unknown it says so and lists close matches. It never invents form advice.

NameRequiredDescriptionDefault
exerciseYesExercise name, such as 'squat', 'jumping jacks' or 'low plank hold'.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses return content (spoken coach lines, camera checks and non-checks), fallback behavior for unknown exercises (says so and lists close matches), and a strong behavioral guarantee that it never invents form advice. This is exactly the extra context annotations cannot carry.

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?

Four tight sentences: trigger first, then return payload, then error path, then the honesty guarantee. No filler and everything is front-loaded where an agent will read it.

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 covers what comes back, what happens on unknown input, and the scope limit (bodyweight exercises). Nothing needed to call this correctly 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 description coverage is 100% with a single documented 'exercise' parameter, so the baseline is 3. The description's examples ('squat', 'low plank hold') mirror the schema's own examples and add no new format or constraint detail beyond it.

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+resource ('Get an exercise's form cues') and immediately specifies the payload: the app's real spoken coach lines plus camera checks for exercises with an Upfit page. It is clearly distinct from siblings like list_exercises and about_upfit, since it retrieves per-exercise coaching content rather than a catalog or brand info.

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 an explicit trigger: 'Use this when the user asks what Upfit's coach says or checks for a specific bodyweight exercise', with concrete example utterances. It does not contrast against list_exercises for the discovery case or state what to do when the user wants a full workout, but the invocation context is clear.

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

list_exercisesList Upfit exercisesA
Read-onlyIdempotent
Inspect

Use this when the user wants to see which bodyweight exercises Upfit can run. Returns the enabled exercises with Upfit's own difficulty rating (1 easiest to 9 hardest) and, where Upfit documents it, how you stand to the phone (facing it, side-on to it, or on the floor). Optional difficulty filters.

NameRequiredDescriptionDefault
max_difficultyNoOnly exercises at or below this difficulty.
min_difficultyNoOnly exercises at or above this difficulty.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds return-value semantics the annotations cannot: exercises carry Upfit's 1-9 difficulty rating and a camera orientation that is only present 'where Upfit documents it', which correctly warns the agent that the field may be missing.

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?

The trigger is front-loaded, the return contents follow, and the filter mention closes the paragraph. Three sentences, no filler, and the caveat about orientation being documented only sometimes is stated compactly rather than hedging across multiple clauses.

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?

With no output schema, the description carries the return contract and does so adequately: enabled exercises, difficulty scale, and orientation enum. It stops short of covering result-set behavior such as empty results when a filter excludes everything or any ordering/pagination, which are minor gaps for a two-parameter read.

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 description coverage is 100%, so both bounds are already documented in the schema, including their inclusive semantics. The description only says 'Optional difficulty filters', confirming the bounds are optional but adding no range or interaction detail, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('see which bodyweight exercises Upfit can run') and pins the scope to enabled exercises with the exact return content. Sibling tools are not named or contrasted, so an agent must infer that this is the catalog lister rather than get_exercise_form_cues or build_home_workout.

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?

The leading clause 'Use this when the user wants to see which bodyweight exercises Upfit can run' gives an explicit trigger condition, which is more than most definitions. It offers no when-not guidance and does not point to a sibling for form cues or workout building, so routing between the four tools is left implicit.

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.

  1. 4 tool updates
    • First observedabout_upfit
    • First observedbuild_home_workout
    • First observedget_exercise_form_cues
    • First observedlist_exercises

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables searching a catalogue of over 1,400 video-backed exercises by text, muscle group, equipment and difficulty, fetching full details for any exercise, and generating structured workouts or multi-week periodized programs. It also exposes the muscle-group and exercise-type vocabularies with their counts, returning the upstream API's JSON unchanged.
    MIT
  • A
    license
    C
    quality
    A
    maintenance
    Enables reading training history and planning complete workouts on a personal calendar, including exercises with videos, sets, reps, per-set weights, supersets, notes, and block instructions. It also supports searching the exercise library, copying or moving sessions, and retrieving performance stats, personal records, and feedback.
    29
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to plan, build, and log calisthenics workouts in a user's own account, including searching exercises, managing custom workouts and plans, reading progress and coaching data, and logging completed sessions. Account mutations require explicit confirmation, and workouts can be displayed as interactive cards in the chat.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources