What is the io.github.ljcl/strava-mcp MCP server?
Remote MCP server for your Strava activities, segments, and routes
How to install io.github.ljcl/strava-mcp
Copy-paste configuration for popular MCP clients.
transport: stdio
Config generated by PluginBench — verify against the source before use.Environment / auth
STRAVA_CLIENT_IDrequiredStrava API client ID
STRAVA_CLIENT_SECRETrequiredsecretStrava API client secret
PUBLIC_URLrequiredPublic HTTPS URL used for the Strava OAuth callback
STRAVA_ACCESS_TOKENsecretOptional initial access token from setup-auth
STRAVA_REFRESH_TOKENsecretOptional initial refresh token from setup-auth
MCP_AUTH_TOKENsecretShared secret gating /mcp and the OAuth web routes (recommended when internet-facing)
PORTServer port (default 3000)
TOKEN_DATA_DIROverride token storage directory (default ./data)
ROUTE_EXPORT_PATHAbsolute directory for exported route files
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"strava-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ljcl/strava-mcp:2.13.0"
],
"env": {
"STRAVA_CLIENT_ID": "<YOUR_STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<YOUR_STRAVA_CLIENT_SECRET>",
"PUBLIC_URL": "<YOUR_PUBLIC_URL>",
"STRAVA_ACCESS_TOKEN": "<YOUR_STRAVA_ACCESS_TOKEN>",
"STRAVA_REFRESH_TOKEN": "<YOUR_STRAVA_REFRESH_TOKEN>",
"MCP_AUTH_TOKEN": "<YOUR_MCP_AUTH_TOKEN>",
"PORT": "<YOUR_PORT>",
"TOKEN_DATA_DIR": "<YOUR_TOKEN_DATA_DIR>",
"ROUTE_EXPORT_PATH": "<YOUR_ROUTE_EXPORT_PATH>"
}
}
}
}Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"strava-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ljcl/strava-mcp:2.13.0"
],
"env": {
"STRAVA_CLIENT_ID": "<YOUR_STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<YOUR_STRAVA_CLIENT_SECRET>",
"PUBLIC_URL": "<YOUR_PUBLIC_URL>",
"STRAVA_ACCESS_TOKEN": "<YOUR_STRAVA_ACCESS_TOKEN>",
"STRAVA_REFRESH_TOKEN": "<YOUR_STRAVA_REFRESH_TOKEN>",
"MCP_AUTH_TOKEN": "<YOUR_MCP_AUTH_TOKEN>",
"PORT": "<YOUR_PORT>",
"TOKEN_DATA_DIR": "<YOUR_TOKEN_DATA_DIR>",
"ROUTE_EXPORT_PATH": "<YOUR_ROUTE_EXPORT_PATH>"
}
}
}
}Windsurf
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"strava-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ljcl/strava-mcp:2.13.0"
],
"env": {
"STRAVA_CLIENT_ID": "<YOUR_STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<YOUR_STRAVA_CLIENT_SECRET>",
"PUBLIC_URL": "<YOUR_PUBLIC_URL>",
"STRAVA_ACCESS_TOKEN": "<YOUR_STRAVA_ACCESS_TOKEN>",
"STRAVA_REFRESH_TOKEN": "<YOUR_STRAVA_REFRESH_TOKEN>",
"MCP_AUTH_TOKEN": "<YOUR_MCP_AUTH_TOKEN>",
"PORT": "<YOUR_PORT>",
"TOKEN_DATA_DIR": "<YOUR_TOKEN_DATA_DIR>",
"ROUTE_EXPORT_PATH": "<YOUR_ROUTE_EXPORT_PATH>"
}
}
}
}VS Code
.vscode/mcp.json
{
"servers": {
"strava-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ljcl/strava-mcp:2.13.0"
],
"env": {
"STRAVA_CLIENT_ID": "<YOUR_STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<YOUR_STRAVA_CLIENT_SECRET>",
"PUBLIC_URL": "<YOUR_PUBLIC_URL>",
"STRAVA_ACCESS_TOKEN": "<YOUR_STRAVA_ACCESS_TOKEN>",
"STRAVA_REFRESH_TOKEN": "<YOUR_STRAVA_REFRESH_TOKEN>",
"MCP_AUTH_TOKEN": "<YOUR_MCP_AUTH_TOKEN>",
"PORT": "<YOUR_PORT>",
"TOKEN_DATA_DIR": "<YOUR_TOKEN_DATA_DIR>",
"ROUTE_EXPORT_PATH": "<YOUR_ROUTE_EXPORT_PATH>"
}
}
}
}Claude Code
claude mcp add strava-mcp --env STRAVA_CLIENT_ID=<YOUR_STRAVA_CLIENT_ID> --env STRAVA_CLIENT_SECRET=<YOUR_STRAVA_CLIENT_SECRET> --env PUBLIC_URL=<YOUR_PUBLIC_URL> --env STRAVA_ACCESS_TOKEN=<YOUR_STRAVA_ACCESS_TOKEN> --env STRAVA_REFRESH_TOKEN=<YOUR_STRAVA_REFRESH_TOKEN> --env MCP_AUTH_TOKEN=<YOUR_MCP_AUTH_TOKEN> --env PORT=<YOUR_PORT> --env TOKEN_DATA_DIR=<YOUR_TOKEN_DATA_DIR> --env ROUTE_EXPORT_PATH=<YOUR_ROUTE_EXPORT_PATH> -- docker run -i --rm ghcr.io/ljcl/strava-mcp:2.13.0Related MCP servers
Remote MCP server for your Gaggiuino espresso machine's shots and profiles
0
View repository →TypeScript
MIT