Lets agents access Strava activities, athlete profiles, segments and routes for fitness analysis.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add strava --env STRAVA_CLIENT_ID='<STRAVA_CLIENT_ID>' --env STRAVA_CLIENT_SECRET='<STRAVA_CLIENT_SECRET>' --env STRAVA_ACCESS_TOKEN='<STRAVA_ACCESS_TOKEN>' --env STRAVA_REFRESH_TOKEN='<STRAVA_REFRESH_TOKEN>' -- npx -y strava-mcp-server~/.codex/config.toml
[mcp_servers.strava]
command = "npx"
args = ["-y", "strava-mcp-server"]
env = { STRAVA_CLIENT_ID = "<STRAVA_CLIENT_ID>", STRAVA_CLIENT_SECRET = "<STRAVA_CLIENT_SECRET>", STRAVA_ACCESS_TOKEN = "<STRAVA_ACCESS_TOKEN>", STRAVA_REFRESH_TOKEN = "<STRAVA_REFRESH_TOKEN>" }
# codex mcp add strava --env STRAVA_CLIENT_ID='<STRAVA_CLIENT_ID>' --env STRAVA_CLIENT_SECRET='<STRAVA_CLIENT_SECRET>' --env STRAVA_ACCESS_TOKEN='<STRAVA_ACCESS_TOKEN>' --env STRAVA_REFRESH_TOKEN='<STRAVA_REFRESH_TOKEN>' -- npx -y strava-mcp-server~/.cursor/mcp.json
{
"mcpServers": {
"strava": {
"command": "npx",
"args": [
"-y",
"strava-mcp-server"
],
"env": {
"STRAVA_CLIENT_ID": "<STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<STRAVA_CLIENT_SECRET>",
"STRAVA_ACCESS_TOKEN": "<STRAVA_ACCESS_TOKEN>",
"STRAVA_REFRESH_TOKEN": "<STRAVA_REFRESH_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"strava": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"strava-mcp-server"
],
"env": {
"STRAVA_CLIENT_ID": "<STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<STRAVA_CLIENT_SECRET>",
"STRAVA_ACCESS_TOKEN": "<STRAVA_ACCESS_TOKEN>",
"STRAVA_REFRESH_TOKEN": "<STRAVA_REFRESH_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"strava": {
"command": "npx",
"args": [
"-y",
"strava-mcp-server"
],
"env": {
"STRAVA_CLIENT_ID": "<STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<STRAVA_CLIENT_SECRET>",
"STRAVA_ACCESS_TOKEN": "<STRAVA_ACCESS_TOKEN>",
"STRAVA_REFRESH_TOKEN": "<STRAVA_REFRESH_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"strava": {
"command": "npx",
"args": [
"-y",
"strava-mcp-server"
],
"env": {
"STRAVA_CLIENT_ID": "<STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<STRAVA_CLIENT_SECRET>",
"STRAVA_ACCESS_TOKEN": "<STRAVA_ACCESS_TOKEN>",
"STRAVA_REFRESH_TOKEN": "<STRAVA_REFRESH_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"strava": {
"command": "npx",
"args": [
"-y",
"strava-mcp-server"
],
"env": {
"STRAVA_CLIENT_ID": "<STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<STRAVA_CLIENT_SECRET>",
"STRAVA_ACCESS_TOKEN": "<STRAVA_ACCESS_TOKEN>",
"STRAVA_REFRESH_TOKEN": "<STRAVA_REFRESH_TOKEN>"
}
}
}
}Environment variables
STRAVA_CLIENT_IDSTRAVA_CLIENT_SECRETSTRAVA_ACCESS_TOKENSTRAVA_REFRESH_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.