stravamcp

one athlete one worker 15 read-only tools

Your Strava,
over MCP.

One Cloudflare Worker reads your Strava activities, routes, segments, streams, and gear, and lets your AI assistant query them through the Model Context Protocol.

Read the source
100.3 kmdistance +1,856 melevation 6:31moving stylised profile, decorative

Fig. 1: request path

stravamcp.didiktrisusanto.dev
MCP client Your assistant url + bearer token
MCP / HTTPS
Cloudflare Worker stravamcp
D1Response cacheTTL per tool. Concurrent misses share one load.
usage_events24h, 7d, 30dTool, API, and cache counts. Kept 90 days.
bearer authinput validationread-only, no writes
Strava API
Strava Read-only activities, routes, segments, gear

What MCP is

An open standard that lets AI assistants call tools. This Worker implements MCP, so your assistant can ask for Strava data directly instead of copying exports into a chat.

The server is one Cloudflare Worker with one Strava account and fifteen read-only tools. Responses are cached in D1 with per-tool TTLs.

Compact stream summaries keep full arrays on the server unless you ask for them. It has no write tools, webhooks, or multi-account support.

The tools

Fifteen read-only tools. Each port in Fig. 1 points to a group below. Use id_str for routes and large IDs.

Activities

05 tools
  • list_activitiesRecent activities with sport and commute filters
  • get_activityDetailed data for one activity
  • get_activity_streamsTime-series data by stream key
  • get_activity_zonesHeart-rate and power time-in-zone
  • summarize_activity_streamsCompact metrics without sending full arrays

Athlete

04 tools
  • get_athleteConnected athlete profile
  • get_athlete_statsYTD, recent, and all-time totals
  • get_athlete_zonesHeart-rate and power zone ranges
  • get_gearBike or shoe detail by id

Routes

02 tools
  • list_athlete_routesSaved routes with id_str-safe identifiers
  • get_routeFull route detail by id_str

Segments

03 tools
  • list_starred_segmentsSegments saved by the athlete
  • get_segmentDetail for one segment
  • list_segment_effortsYour efforts on a segment

Usage

01 tool
  • get_usageTool, API, and cache counts for 24h, 7d, and 30d

Counts cover rolling 24h, 7d, and 30d windows. Usage rows contain no Strava data and are kept for 90 days.