Skip to content

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?”

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 database

No 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 database

A 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.

Both transports expose the same 18 tools. Each one can be switched off in Settings.

Your training data

ToolDescription
get_activitiesPaginated activity list with sport/date filters
get_activityFull detail for a single activity
get_activity_streamsPer-second power, HR, cadence, altitude and more inside a ride
get_activity_lapsDevice laps and auto-detected climbs
get_fitness_timelineCTL/ATL/TSB for a date range
get_best_effortsAll-time and per-activity mean-maximal power
get_wellnessHRV, RHR, sleep, and readiness logs
get_thresholdsFTP and LTHR history
get_athlete_profileAthlete profile (DOB, sex, height)

Imports

ToolDescription
get_backfill_statusConnected sources, latest activity, import progress
start_backfillImport new or missing workouts from Wahoo or Intervals.icu

Intervals.icu calendar

ToolDescription
create_planned_workoutsPush planned workouts and race/note markers
get_planned_workoutsRead planned events back, to reschedule or edit them

Coaching documents

ToolDescription
get_active_documentsWhich coaching skill and plan are active (names and versions only)
get_documentLoad a skill or plan
upsert_documentSave a new version of a skill or plan
set_active_documentSwitch the active skill or plan
list_documentsBrowse 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.

  • 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

Follow the Setup guide to generate your API key and connect your client.