WorkoutX MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WORKOUTX_API_KEY | Yes | Your WorkoutX API key used to authenticate requests. | |
| WORKOUTX_MCP_URL | No | The WorkoutX MCP endpoint URL. | https://api.workoutxapp.com/mcp |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_exercise_filtersA | Every valid value (with counts) for body parts, target muscles, equipment, categories and muscles. Call this before search_exercises when unsure of a value. |
| search_exercisesA | Search 1,900+ exercises. Filters are optional and case-insensitive; combining two or more filters needs the Starter plan or higher. Results include instructions, tips, muscles, equipment, difficulty, calories and signed MP4/thumbnail links. |
| get_exerciseA | One exercise by v2 id: instructions, tips, muscles, equipment, sets/reps guidance, calories and signed media links. |
| get_exercise_mediaA | Fresh signed MP4 and thumbnail links for one exercise (links expire; call again rather than storing them). |
| find_exercise_alternativesA | Ranked swaps that train the same muscles, e.g. when equipment is missing. Optionally require or exclude equipment. |
| find_similar_exercisesA | Exercises most similar to the given one (same pattern, muscles and equipment), ranked by score. |
| estimate_caloriesB | Calories burned for an exercise from its MET value, body weight and duration. |
| map_v1_exerciseA | Find the v2 exercise for an old v1 id (e.g. "0025"), with the match quality: exact, equivalent, alternative, closest or none. |
| generate_workoutB | One complete session built from movement patterns: warm-up, main work with sets/reps/rest, cool-down and swap suggestions. Needs the Growth plan or higher. |
| generate_programC | A multi-week program with periodisation, deloads and weekly volume targets. Needs the Scale plan. |
| search_supplementsA | Supplements with evidence ratings, dosage and timing. Filter by category, goal, timing, evidence or free text. Needs the Growth plan or higher. |
| get_supplement_stackA | A recommended stack for a goal with dosages and timing. Needs the Scale plan. |
| export_exercise_seedA | Exercise ids, names, muscles and equipment without media, as JSON or CSV, to seed your own database or fixtures. Does not use the distinct-exercise media limit. Page with offset; plan caps per call apply (Free 10, Starter 100, others 200). |
| get_usage_statsA | Your account's API usage: requests, success rate, response times (avg and p95), errors by status code, top endpoints, daily counts, live quota, rate limit and media-limit usage. Use it to answer "why am I getting 429s?" or "when will my quota run out?". Uses one request. |
| get_trending_exercisesA | The exercises and filters (body parts, muscles, equipment, categories) requested most across WorkoutX apps in the last 30 days. Anonymised: only values at least 3 different accounts asked for, filters as shares. Good for deciding what to feature in an app. Uses one request. |
| get_endpoint_referenceA | Parameters, response shape, errors and a curl example for any v2 endpoint, straight from the OpenAPI spec. Call with no endpoint to list them all. Uses one request. |
| generate_typesA | Ready-to-paste TypeScript, Swift (Codable), Kotlin (kotlinx.serialization) or Dart models for v2 responses, generated from the OpenAPI spec. Uses one request. |
| get_code_exampleA | A working snippet for a platform and task: listing and paging exercises, playing the looping MP4 and refreshing its signed link, the workout generator, error and rate-limit handling, or a backend proxy that keeps your key off the device. Uses one request. |
| diagnose_requestA | Paste a failing WorkoutX request (curl, URL or "GET /v2/...") and optionally the status and response body: explains what is wrong (wrong host, key in the URL, missing header, unknown or repeated parameter, invalid value, v1 id, plan gate, rate limit, quota, expired media link) and how to fix it. Only reads the text; never sends the request. Uses one request. |
| check_api_keyA | Confirm the configured API key works and show the plan and remaining quota. Uses one request. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
Most tools target clearly distinct actions (search vs get vs media vs generate vs diagnose). The one real risk is find_exercise_alternatives vs find_similar_exercises, which sound nearly identical, though the descriptions differentiate them (equipment-swap ranking vs pattern/muscle/equipment similarity). Descriptions resolve most would-be confusion.
Names follow a strong verb_noun snake_case pattern throughout (list_exercise_filters, get_exercise, search_exercises, generate_workout, diagnose_request, check_api_key). No camelCase or mixed-verb drift; 'generate_types' and 'list_exercise_filters' are minor but readable variations.
20 tools is slightly heavy but each maps to a distinct capability across search, media, generation, supplements, developer tooling and account diagnostics. It sits just above the comfortable 3-15 band but no tool feels redundant.
The surface covers discovery (filters, search, trending), retrieval (get, media), derivation (alternatives, similar, calories, v1 mapping), content generation, supplements, export and rich dev/ops tooling. Minor gaps exist (no favorites/profile or retrieval of previously generated workouts/programs), but agents can work around them.