TrainingDojo MCP for Claude, ChatGPT, and Gemini Training Apps
Connect Claude or eligible Gemini Spark accounts with browser sign-in; ChatGPT support follows directory approval. Then use 26 endurance tools with inference in your AI provider account.
TrainingDojo MCP connects Claude on the web or desktop and eligible Gemini Spark accounts directly to your training platforms. ChatGPT web and desktop support follows OpenAI directory approval. Developer tools such as Claude Code, the OpenAI Responses API, and Gemini CLI remain available as advanced setup paths. Once connected, your AI stops being a chat window you copy-paste plans out of and becomes a working endurance coach: it reads your TrainingPeaks, Intervals.icu, and Strava history, checks your sleep and HRV, builds structured workouts and multi-week plans, pushes them straight onto your calendar, and adapts the week when life happens.
This page is the complete user guide: what the MCP can do, supported setup paths for Claude, ChatGPT/OpenAI, and Gemini, a full reference for every tool, and troubleshooting. TrainingDojo MCP is included with TrainingDojo Pro.
What the MCP Actually Does
MCP (Model Context Protocol) is an open standard that lets AI apps call external tools. TrainingDojo runs a remote MCP server at https://trainingdojo.app/api/mcpthat exposes 26 coaching tools to whatever AI you already use. The AI app and provider you choose handle every conversation, inference, and generation under your account. TrainingDojo MCP never calls TrainingDojo's AI models or uses TrainingDojo AI credits; it provides the platform connections and tool pipeline. TrainingDojo receives authenticated tool inputs and returns their data or action results, not the rest of your provider conversation. This MCP boundary is separate from TrainingDojo's web AI features, which remain TrainingDojo-hosted.
The coaching loop it unlocks looks like this:
- Understand. Your AI pulls your training history, recent activities, and wellness data (sleep, HRV, fatigue, weight) from your connected platforms.
- Plan. It designs a training block grounded in your real load — then pushes the whole plan to TrainingPeaks or Intervals.icu in one call.
- Build. It constructs precise structured workouts (intervals, ramps, power and pace targets), validates them for free, and pushes them to your calendar.
- Adapt. After a session: "How did I do in yesterday's threshold workout?" After a rough night: "I slept terribly — ease off the next two days." The AI reads the completed activity, checks your wellness data, and updates or reschedules the upcoming workouts on the platform.
Requirements
- A TrainingDojo Pro subscription. Connecting and using the MCP require Pro. Creating and using advanced developer keys both require Pro. If Pro lapses, you can still disconnect AI apps and list or revoke developer keys.
- At least one connected platform — TrainingPeaks, Intervals.icu, or Strava — set up in Settings → Integrations.
- A supported AI app: Claude web/desktop, eligible Gemini Spark on the web, or ChatGPT web/desktop after directory approval.
Getting Started
Open TrainingDojo MCP setup, choose your AI app, and follow its short connection steps. The normal flow opens TrainingDojo in your browser so you can sign in and approve access; you do not create or paste a developer key.
- Server URL:
https://trainingdojo.app/api/mcp - Authorization: secure browser sign-in. Claude or Gemini stores the connection after you approve it; ChatGPT does the same once its directory listing is approved.
Choose Your Client Guide
- Claude setup — custom connector on Claude web or desktop; Claude Code is the advanced path.
- ChatGPT setup — TrainingDojo app from the app directory on ChatGPT web or desktop after approval; the Responses API is the advanced path.
- Gemini setup — custom app in Gemini Spark; Gemini CLI is the advanced path.
A ChatGPT directory listing is still subject to OpenAI review, and Gemini custom apps are currently limited by Google's Gemini Spark eligibility rules.
Platform Capabilities
Not every platform supports every operation. Your AI can call get_connected_platforms at any time to discover exactly what's available on your account; this is the current matrix:
| Capability | TrainingPeaks | Intervals.icu | Strava |
|---|---|---|---|
| Training history analysis | Yes | Yes | Yes |
| Recent activities + activity detail | Yes | Yes (with per-interval breakdown) | Yes |
| Wellness data (sleep, HRV, fatigue, weight) | Yes | Yes | No |
| Read upcoming calendar | Yes | Yes | No |
| Push structured workouts + plans | Yes | Yes | No |
| Update / delete planned workouts | Yes | Yes | No |
Strava is read-only by design — it's a history and activity source, not a calendar. New platforms plug into the same capability system, so this matrix grows without the tools changing.
Pro Access and AI Usage
MCP is included with Pro. All 26 tools use no TrainingDojo AI or structured-workout credits. MCP request safety limits and platform pacing still apply.
Your connected AI builds plan rows or structured-workout JSON in its own context, checks workout JSON with validate_structured_workout, and publishes it with the appropriate push tool. Tool results include structured content plus a readable text fallback for clients that cannot render structured output.
Tool Reference
All 26 tools, grouped the way the server registers them. Optional parameters are marked; every tool returns structured content and a readable text fallback.
Discovery & Profile
| Tool | What it does | Parameters | Returns |
|---|---|---|---|
get_connected_platforms | Lists your connected platforms and each one's capability flags. The recommended first call in any coaching conversation. | none | Per-platform connection status, athlete info, and capabilities |
get_athlete_profile | Reads your profile: body weight, FTP (from Strava if connected), and workout-builder preferences. | none | Profile fields + builder preferences (warmup/cooldown durations and intensities) |
update_athlete_profile | Persists profile settings surfaced in conversation. Only fields you pass are changed. | body_weight_kg?, workout_builder_settings? | Updated profile |
Training History & Analysis
| Tool | What it does | Parameters | Returns |
|---|---|---|---|
get_strava_history / get_trainingpeaks_history / get_intervals_history | Fetches and analyzes recent training history from that platform. | weeks_back? (1–52, default 13) | Volume totals, weekly averages, sport mix, CTL/ATL/TSB trend, consistency, long-session patterns |
list_recent_activities | Lists completed activities with summary metrics so the AI can find a session to discuss. | platform, days_back? (1–90, default 14) | Rows with date, name, sport, duration, distance, TSS/load, avg power/HR, and activity IDs |
get_activity_detail | Full detail of one completed session — the "how did I do?" tool. | platform, activity_id, include_intervals? (Intervals.icu) | Complete activity data; optionally the per-interval power/HR breakdown |
get_wellness | Daily wellness metrics — the "should we ease off?" signal. | platform, from_date?, to_date? (default last 14 days) | Sleep, HRV, resting HR, fatigue, weight, fitness/fatigue (varies by platform) |
Calendar & Adaptive Coaching
| Tool | What it does | Parameters | Returns |
|---|---|---|---|
get_upcoming_workouts | Reads planned workouts from your calendar; the source of IDs for update/delete. | platform, from_date?, to_date? (default next 14 days) | Planned workouts with platform workout/event IDs, dates, durations, TSS |
update_platform_workout | Moves, retitles, or re-scopes a planned workout. Only passed fields change. | platform, workout_id, then any of title?, description?, workout_date?, duration_hours?, tss? | The updated workout |
delete_platform_workout | Permanently deletes a planned workout. It is marked destructive; your AI client controls its confirmation behavior. | platform, workout_id | Deletion confirmation |
Structured Workouts
| Tool | What it does | Parameters | Returns |
|---|---|---|---|
validate_structured_workout | Validates AI-built workout JSON. The iteration loop is build, validate, fix, then push. | workout (draft JSON) | Either precise per-field issues, or a validity confirmation with duration/IF/TSS summary and the normalized structure |
push_structured_workout | Pushes one structured workout (intervals, ramps, targets) to your calendar. | platform, workout, workout_date, title, description?, sport | Platform workout/event ID + workout summary |
push_structured_workouts_bulk | Pushes up to 40 structured workouts sequentially with progress updates. | platform, workouts[] (each with workout, date, title) | Per-workout results with IDs or errors |
The workout JSON format is fully documented in the tool's own input schema and in the trainingdojo://schema/simple-workout-structure resource, so a capable AI can construct valid workouts: steps with second- or meter-based lengths, intensity ranges as percentages of FTP, threshold HR, or threshold pace, and repetition blocks for interval sets.
Training Plans
| Tool | What it does | Parameters | Returns |
|---|---|---|---|
get_workout_types | Lists valid sport/subtype values for a platform before building a plan. | platform | Sport types and subtypes |
create_training_plan | Validates and previews a full plan (day-numbered workout rows) before anything is pushed. | plan_name, start_date, platform, workouts[] | Preview with calculated calendar dates for review |
push_training_plan | Queues the plan for a reliable, platform-paced calendar push; each call accepts up to 180 workouts. | plan_name, start_date, platform, workouts[], athlete_id? (coach accounts), idempotency_key (UUID) | A durable job ID and initial job status |
list_plans | Lists plans previously imported through TrainingDojo. | none | Plan IDs, names, platforms, workout counts |
delete_plan | Queues removal of every workout in an imported plan, then clears the plan record. It is marked destructive; your AI client controls confirmation. | plan_id, idempotency_key (UUID) | A durable job ID and initial job status |
get_plan_job | Reads durable progress and per-workout results for a queued plan push. | job_id? (UUID), offset? (default 0), limit? (default/max 50) | Job status, counts, timestamps, and item results |
cancel_plan_job | Requests cancellation of a queued or running plan-push job. | job_id (UUID) | Updated cancellation status |
retry_plan_job | Retries the failed work from a completed plan-push job without duplicating successful items. | job_id (UUID), idempotency_key (UUID), include_unknown? (default false) | A new durable job ID and initial status |
Workout Vault
| Tool | What it does | Parameters | Returns |
|---|---|---|---|
list_vault_workouts | Browses your Workout Vault — the library of proven workouts harvested from your history. | batch_id? (defaults to latest batch) | Batches + workout rows with structure/publish status |
get_vault_workout | Fetches one vault workout including its generated structure. | row_id | Full row detail + canonical structured workout when generated |
publish_vault_workout | Schedules a vault workout onto your calendar for a given date without using credits because the structure already exists. | row_id, platform, workout_date | Platform ID + workout summary |
Resources and the Coaching Prompt
Beyond tools, the server exposes two MCP resources and one prompt:
trainingdojo://schema/simple-workout-structure— the complete JSON Schema for structured workouts, plus the cross-field rules (integer seconds, ramp monotonicity, distance-step requirements). This is how your AI learns to build valid workouts on its own.trainingdojo://guide/coaching— the recommended tool flow: discover platforms → understand history and wellness → plan → reuse the vault → adapt.coaching_sessionprompt — a one-click starting point that walks the AI through a full coaching conversation.
Things to Try
- "Look at my last 12 weeks of training and tell me what you'd change."
- "Build me a 6-week block for my gravel race on September 12 and push it to Intervals.icu."
- "Make a 3x10min threshold workout for tomorrow and put it on my TrainingPeaks calendar."
- "How did I do in yesterday's intervals? Compare it to the plan."
- "I slept 5 hours and my HRV is down. Adjust the next two days."
- "Find my best VO2 sessions in the Workout Vault and schedule one for Thursday."
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| 401 Unauthorized | The AI app connection is missing, expired, or revoked | Disconnect and reconnect TrainingDojo in the AI app. Advanced developer-key clients can generate a replacement at /mcp. |
| 403 Forbidden | The TrainingDojo account does not have active Pro access | Upgrade to Pro; the connected app starts working immediately |
| The AI app returns to setup without connecting | The consent request expired, was denied, or the provider has not enabled the integration | Start again from the matching setup card. For ChatGPT, confirm the TrainingDojo directory listing is available to your plan or workspace. |
| "No saved connection" errors from tools | The platform isn't connected to your TrainingDojo account | Connect it in Settings → Integrations |
| A large plan is not finished yet | The durable job paces real provider requests and may continue after the chat turn ends | Call get_plan_job for progress, then retry only failed rows if needed |
| 429 Too Many Requests | The MCP operational safety limit was reached | Wait for the response's retry window, then continue |
For technical connection debugging: the consumer flow uses OAuth 2.1 discovery, dynamic client registration, PKCE, rotating refresh tokens, and revocation. Most users never need to configure these protocol details manually.
Security Notes
- Browser connections use short-lived signed access tokens and rotating refresh grants. You can disconnect them anytime at /mcp. Advanced developer keys are shown once, stored hashed, and revocable.
- Your AI never sees your platform passwords or tokens — credentials stay encrypted on TrainingDojo's side and every tool resolves them server-side per request.
- Strava access is read-only. Delete-workout and delete-plan tools are marked destructive, but the AI client controls whether and when it asks for confirmation.
Set It Up
Head to trainingdojo.app/mcp to choose your AI app and connect your platforms — the setup takes about two minutes. If you're not on Pro yet, see what's included. Your next coach might be the AI you already talk to every day.
Frequently Asked Questions
What is TrainingDojo MCP?
TrainingDojo MCP is a remote Model Context Protocol server for Claude web and desktop and eligible Gemini Spark accounts; ChatGPT support follows OpenAI directory approval. Advanced users can also connect Claude Code, the OpenAI Responses API, or Gemini CLI. Its 26 tools let your AI read training history and wellness data, validate workouts and plans, publish them, and adapt the calendar.
Which AI apps work with TrainingDojo MCP?
Claude can add the remote connector on the web or desktop. ChatGPT will use the TrainingDojo app from its app directory after OpenAI approves and publishes the listing. Gemini custom apps currently require Gemini Spark eligibility. All three use TrainingDojo browser sign-in; advanced developer-key paths remain available separately.
Is TrainingDojo MCP free?
MCP access is included with TrainingDojo Pro. Creating and using advanced developer keys both require an active Pro subscription; if your subscription lapses, you can still list and revoke existing keys. All 26 MCP tools use no TrainingDojo AI credits. Conversation inference and generation happen in the AI app and provider account you choose; MCP never calls TrainingDojo's AI models.
What can my AI actually do with the MCP?
Twenty-six tools across six groups: read training history and recent activities from TrainingPeaks, Intervals.icu, and Strava; read wellness data like sleep, HRV, and fatigue; read your upcoming calendar; validate and push structured workouts; create and publish multi-week training plans; update or delete planned workouts; and browse and publish from Workout Vault.
Is my training platform login shared with the AI?
No. Browser connections use revocable OAuth grants, while advanced clients use a revocable TrainingDojo developer key whose hash is stored server-side. Platform credentials stay encrypted on TrainingDojo's servers and are resolved server-side for each request—they are never exposed to the AI app.
Does TrainingDojo MCP work with Strava?
Yes, as a read-only source: your AI can analyze Strava history and pull recent activities and activity details. Strava has no training calendar, so workout pushes, calendar reads, and wellness data come from TrainingPeaks or Intervals.icu instead.