Skip to main content
Glama

MoveMate: Gym Workout Tracker

List workouts

list_workouts
Read-only

Browses MoveMate's workout catalog — both the shared library and the user's own custom workouts, together by default. Use this to find an existing workout to schedule (with create_planned_workout) rather than building one from scratch, to browse by body focus ("give me a leg workout" — use category), or to look up one the user just opened in the app by its workout_id. Not the user's calendar (see list_planned_workouts) and not training history (see get_recent_workouts).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoRestrict to only the shared library or only the user's own custom workouts. Omit for both.
limitNoHow many workouts to return. Default 20, max 50.
queryNoMatches workout titles and exercise names inside them — e.g. "push day" (a title) or "deadlift" (finds any workout containing it, even if the title doesn't mention it).
categoryNoBody focus, style, or goal — e.g. "legs", "upper body", "full body", "core", "cardio", "hiit", "strength", "bodyweight", "stretching", "muscle gain", "get shredded", "recovery", "home workout", "beginner". Use this for "give me a leg workout"-style requests; use query instead for a specific exercise or title. Not for own/saved workouts — use type: "custom" for those.
workout_idNoLook up one specific workout by its id — from an earlier result, a deep link, or context the app handed off. Overrides query.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
totalYesTotal workouts matching the filter, which can exceed the returned list — narrow with query or type if it does.
localeYes
workoutsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered and the bar is lower. The description still adds useful behavioral context — that the shared library and custom workouts are returned together by default, and that this tool is a discovery step feeding create_planned_workout. It stops short of describing pagination or result shaping, which keeps it from 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.

Conciseness4/5

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

Roughly three sentences of dense content, front-loaded with the tool's scope before routing guidance. The parenthetical examples ('give me a leg workout') earn their place as disambiguation, though the list of siblings at the end makes it slightly list-heavy.

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?

An output schema exists, so return values need no explanation, and annotations cover the read-only safety profile. With usage, routing, and default-merging behavior all covered, an agent has everything required to call this tool 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 description coverage is 100%, so every parameter (type, limit, query, category, workout_id) is already documented, including the category-vs-query distinction and workout_id overriding query. The description largely restates that routing guidance ('give me a leg workout — use category'), adding little beyond the structured fields. Baseline 3 applies when the schema does the heavy lifting.

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 (browses the workout catalog) and immediately defines scope: shared library plus the user's custom workouts, merged by default. It explicitly distinguishes itself from list_planned_workouts and get_recent_workouts, so an agent can differentiate it from siblings without opening a schema.

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?

It gives three concrete use cases (find a workout to schedule with create_planned_workout, browse by body focus via category, look up by workout_id) and two explicit exclusions with named alternatives (calendar → list_planned_workouts, history → get_recent_workouts). This is close to the ideal when/when-not/alternatives structure.

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