MCP Integration Overview
FitRepo exposes a Model Context Protocol (MCP) server that lets AI assistants query your training data directly. Once configured, you can ask questions like:
“What was my CTL when I started my marathon block?” “Show me my best 20-minute power over the last 6 months.” “How does my HRV trend around hard training weeks?”
How it works
Section titled “How it works”FitRepo supports two MCP transports — choose the one that fits your client:
Remote (HTTP) — claude.ai, ChatGPT, Claude Code, OpenAI Codex, Cursor, Windsurf
Section titled “Remote (HTTP) — claude.ai, ChatGPT, Claude Code, OpenAI Codex, Cursor, Windsurf”claude.ai ──HTTPS──► mydatafor.life/api/mcp-server │ │ Bearer token auth ▼ Your Supabase databaseNo local install required. Add the URL and your API key directly in the client’s settings — it connects over HTTPS to the FitRepo server.
Local (stdio) — Claude Desktop, Claude Code
Section titled “Local (stdio) — Claude Desktop, Claude Code”Claude Desktop ──stdio──► npx @fitrepo/mcp-server (runs locally) │ │ HTTPS + Bearer token ▼ mydatafor.life API │ ▼ Your Supabase databaseA small Node.js process runs on your machine and communicates with Claude over stdin/stdout. Requires Node.js 18+.
Your training data is stored in your FitRepo account and is only sent to your AI client as query results when you explicitly ask for it. When you use a hosted AI client (such as claude.ai), those query results are transmitted to that provider’s servers as part of your conversation — the same as any other text you share with an AI assistant. For local MCP clients (Claude Desktop, Claude Code), the data stays on your machine. Review your AI client’s privacy policy to understand how it handles conversation content.
Available tools
Section titled “Available tools”Both transports expose the same 18 tools. Each one can be switched off in Settings.
Your training data
| Tool | Description |
|---|---|
get_activities | Paginated activity list with sport/date filters |
get_activity | Full detail for a single activity |
get_activity_streams | Per-second power, HR, cadence, altitude and more inside a ride |
get_activity_laps | Device laps and auto-detected climbs |
get_fitness_timeline | CTL/ATL/TSB for a date range |
get_best_efforts | All-time and per-activity mean-maximal power |
get_wellness | HRV, RHR, sleep, and readiness logs |
get_thresholds | FTP and LTHR history |
get_athlete_profile | Athlete profile (DOB, sex, height) |
Imports
| Tool | Description |
|---|---|
get_backfill_status | Connected sources, latest activity, import progress |
start_backfill | Import new or missing workouts from Wahoo or Intervals.icu |
Intervals.icu calendar
| Tool | Description |
|---|---|
create_planned_workouts | Push planned workouts and race/note markers |
get_planned_workouts | Read planned events back, to reschedule or edit them |
Coaching documents
| Tool | Description |
|---|---|
get_active_documents | Which coaching skill and plan are active (names and versions only) |
get_document | Load a skill or plan |
upsert_document | Save a new version of a skill or plan |
set_active_document | Switch the active skill or plan |
list_documents | Browse skills, plans and their history |
On connect, the server sends a short instruction pointing Claude at the coaching documents tools; it never sends document content, so casual questions stay cheap. See the Tools Reference for full parameter documentation.
Some clients (including claude.ai) cache the tool list per connection. If a newly released tool doesn’t appear, disconnect and reconnect FitRepo, then start a new chat.
Prerequisites
Section titled “Prerequisites”- A FitRepo account with at least one synced activity
- An MCP API key (generated in Settings)
- For the local transport: Node.js 18 or later
Next step
Section titled “Next step”Follow the Setup guide to generate your API key and connect your client.