使用说明
斯特拉瓦mcp
MCP服务器 Strava API v3.将Strava数据(活动、分段、路线、俱乐部、装备和流)公开为任何MCP客户端(Claude Desktop、Claude Code等)都可以调用的工具。
默认情况下为只读。 通过 --write 启用变异工具(创建/更新活动、星段)。
OpenClaw特定的入职培训和sidecar设置: OPENCLAW.md.
入门
1.创建Strava API应用程序
首选 https://www.strava.com/settings/api 并创建应用程序。注意你的 客户端ID 和 客户端密钥.
2.设置凭据
cp .env.example .env
添加您的 STRAVA_CLIENT_ID 和 STRAVA_CLIENT_SECRET 到 .env.
3.建造
pnpm install
pnpm build
4.身份验证
pnpm auth
这将打开您的浏览器以使用Strava进行授权。批准后,它会自动将代码转换为令牌并保存 STRAVA_ACCESS_TOKEN 和 STRAVA_REFRESH_TOKEN 致你的 .env 文件。请求所有范围(read_all, profile:read_all, activity:read_all, activity:write).
5.本地测试
pnpm inspect
打开MCP Inspector web UI,您可以在其中浏览工具并以交互方式调用它们。凭据从加载 .env 自动。
您也可以直接运行服务器:
pnpm start
6.配置您的MCP客户端
克劳德桌面
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/absolute/path/to/strava-mcp/build/index.js"],
"env": {
"STRAVA_ACCESS_TOKEN": "your-access-token"
}
}
}
}
要启用写入工具(创建/更新活动、星型分段),请添加 "--write" 到 args:
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/absolute/path/to/strava-mcp/build/index.js", "--write"],
"env": {
"STRAVA_ACCESS_TOKEN": "your-access-token"
}
}
}
}
克劳德代码
claude mcp add strava node /absolute/path/to/strava-mcp/build/index.js
自动令牌刷新
Strava访问令牌过期。要启用自动刷新,请提供所有四个环境变量:
{
"env": {
"STRAVA_ACCESS_TOKEN": "your-access-token",
"STRAVA_REFRESH_TOKEN": "your-refresh-token",
"STRAVA_CLIENT_ID": "your-client-id",
"STRAVA_CLIENT_SECRET": "your-client-secret"
}
}
当请求返回401并且刷新凭据可用时,服务器将自动从Strava的OAuth端点请求新的访问令牌,并重试该请求。
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
STRAVA_ACCESS_TOKEN |
是 | Strava OAuth2无记名代币 |
STRAVA_REFRESH_TOKEN |
否 | 启用401上的自动令牌刷新 |
STRAVA_CLIENT_ID |
否 | 刷新令牌旁边需要 |
STRAVA_CLIENT_SECRET |
否 | 刷新令牌旁边需要 |
工具
读取工具(始终可用)
运动员
| 工具 | 说明 |
|---|---|
get_athlete |
获取经过认证的运动员的个人资料 |
get_athlete_stats |
获取运动员统计数据(总数、最近、年初至今、历史) |
get_athlete_zones |
获取心率和功率区 |
活动
| 工具 | 说明 |
|---|---|
list_activities |
列出运动员的活动(可按以下条件过滤 before/after 时间戳) |
get_activity |
获取特定活动的完整详细信息 |
list_activity_comments |
列出活动的评论 |
list_activity_kudoers |
列出赞扬某项活动的运动员 |
list_activity_laps |
列出活动的圈数 |
get_activity_zones |
获取活动的心率/功率区 |
get_activity_streams |
获取时间序列数据(心率、功率、节奏、GPS等) |
片段
| 工具 | 说明 |
|---|---|
get_segment |
获取特定细分市场的详细信息 |
explore_segments |
在边界框内查找热门片段 |
list_starred_segments |
列出运动员的明星片段 |
get_segment_effort |
获取细分工作的详细信息 |
list_segment_efforts |
列出某个细分市场上的努力,可选择按日期筛选 |
get_segment_streams |
获取分段的数据流 |
get_segment_effort_streams |
获取分段工作的数据流 |
路线
| 工具 | 说明 |
|---|---|
get_route |
获取特定路线的详细信息 |
list_athlete_routes |
列出运动员创建的路线 |
get_route_streams |
获取路线的数据流 |
俱乐部
| 工具 | 说明 |
|---|---|
get_club |
获取特定俱乐部的详细信息 |
list_athlete_clubs |
列出运动员的俱乐部 |
list_club_members |
列出俱乐部成员 |
list_club_activities |
列出俱乐部最近的活动 |
齿轮
| 工具 | 说明 |
|---|---|
get_gear |
获取设备的详细信息 |
编写工具(必需 --write 旗帜)
| 工具 | 说明 |
|---|---|
create_activity |
创建手动活动 |
update_activity |
更新现有活动(名称、描述、运动类型、装备等) |
star_segment |
对某个片段加星或取消加星 |