Run Coach
Fetches recent activities and all-time stats from the Strava API, including rides, runs, distance, and suffering index, to power a run coaching dashboard.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Run Coachwhat should my run be today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Run Coach
An MCP server that pulls your Strava data and gives you a run recommendation from Claude, rendered as a dashboard.

What it does
Fetches recent activities and all-time stats from the Strava API
Shows them in a Prefab UI dashboard (rides, runs, distance, suffering index)
Has a button that sends your last N days of runs to Claude and gets back a plain-English recommendation for today's run
Related MCP server: fitness-mcp-server
Stack
FastMCP — the MCP server itself, with
FastMCPAppfor the UI-facing toolsPrefab — the dashboard UI, written in Python instead of JSX
Anthropic API — generates the run recommendation
httpx— talks to Stravauv— dependency management and running the thing
Setup
1. Install dependencies
uv add fastmcp anthropic httpx2. Strava API access
You need a Strava API app (create one at strava.com/settings/api) and a one-time OAuth flow to get a refresh token. Scope needs to include activity:read_all — the default read scope isn't enough.
Run the setup script (not part of the server itself) to get your first refresh_token, then it lives in strava_tokens.json.
3. Environment variables
Create a .env:
ANTHROPIC_API_KEY=sk-ant-...
STRAVA_CLIENT_ID=...
STRAVA_CLIENT_SECRET=...
STRAVA_TOKEN_PATH=./strava_tokens.json4. Run it
uv run --env-file .env --with fastmcp fastmcp dev apps mcpserver.py --reloadProject structure
mcpserver.py # the server: tools, UI, everything
strava_auth.py # token refresh logic
strava_tokens.json # your access/refresh token (gitignored)
.env # secrets (gitignored)How the recommendation flow works
Dashboard loads → fetches Strava data server-side, renders stats
Click "Get Recommendation" → calls
get_run_recommendation, a private tool the UI can hit but the model can't call directly in chatThat tool re-fetches recent runs, trims to the fields that matter (distance, pace, HR, suffer score), sends them to Claude with a coaching system prompt
Response comes back, gets dropped into the page via state
Considerations
Strava rate limits are tight (100 req/15min, 1000/day)
max_tokensneeds headroom if thinking is ever turned on — thinking and output share the budget
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Strava MCP tools for AI: athletes, activities, segments, clubs, routes. Powered by HAPI MCP server.
Pace is a remote MCP server that exposes wearable and fitness data to Claude via the Model Context Protocol. It connects to Garmin, Oura, Whoop, Polar, Fitbit and 20+ devices and provides 15 tools for querying sleep, activity, recovery, and training data. Hosted on Google Cloud Run, OAuth 2.1 authentication, Streamable HTTP transport. Instructions: First you need to create an account at: https://pacetraining.co and connect your wearables. After that you can connect the remote Server via Custom Connector in Claude and OAuth 2.1 Flow startet.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Claude MCP server that lets users query and analyze their Strava activity data by connecting to the Strava API.3Apache 2.0
- FlicenseNot gradedqualityDmaintenanceProvides MCP servers for Claude to access fitness data from Strava and intervals.icu, enabling natural language queries for activity analysis, advanced training metrics, and wellness tracking.1-
- FlicenseNot gradedqualityCmaintenanceMCP server that gives Claude access to real-time Garmin Connect and Strava data for analyzing training and suggesting sessions.-
- FlicenseAqualityCmaintenanceExposes Strava training data to Claude for coaching, planning, and analysis via a read-only MCP server with OAuth and Docker support.13-