关于 Strava MCP Server
Strava MCP Server 是一个 MCP 服务,用于通过 Strava API 查询运动者的活动数据。它让语言模型能够读取活动列表、日期范围内的记录以及单次活动的详细信息。输出字段统一使用公制单位,便于模型直接分析。
主要功能
- 01查询最近活动与指定日期范围的活动
- 02按 ID 获取单次活动详情
- 03按过去若干天筛选活动
- 04返回距离、时间、速度、海拔等统一单位字段
适用场景
- 01询问最近一周的训练情况
- 02查找过去一个月最长的跑步记录
- 03获取最近一次骑行的详细数据
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露多个用于查询 Strava 活动的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Strava MCP 服务
一个 Model Context Protocol (MCP) 服务,提供对 Strava API 的访问。它允许大模型从 Strava API 查询运动员的活动数据。
可用工具
该服务提供以下工具:
活动查询
get_activities(limit: int = 10):获取已认证运动员的近期活动get_activities_by_date_range(start_date: str, end_date: str, limit: int = 30):获取指定日期范围内的活动get_activity_by_id(activity_id: int):获取特定活动的详细信息get_recent_activities(days: int = 7, limit: int = 10):获取过去 X 天内的活动
日期应使用 ISO 格式(YYYY-MM-DD)。
活动数据格式
该服务返回的活动数据具有一致的字段名和单位:
| 字段 | 描述 | 单位 |
|---|---|---|
name | 活动名称 | - |
sport_type | 运动类型 | - |
start_date | 开始日期和时间 | ISO 8601 |
distance_metres | 距离 | 米 |
elapsed_time_seconds | 总经过时间 | 秒 |
moving_time_seconds | 移动时间 | 秒 |
average_speed_mps | 平均速度 | 米每秒 |
max_speed_mps | 最大速度 | 米每秒 |
total_elevation_gain_metres | 总爬升 | 米 |
elev_high_metres | 最高海拔 | 米 |
elev_low_metres | 最低海拔 | 米 |
calories | 消耗卡路里 | 千卡 |
start_latlng | 起点坐标 | [纬度, 经度] |
end_latlng | 终点坐标 | [纬度, 经度] |
身份验证
要使用此服务,你需要通过 Strava API 进行身份验证。请按照以下步骤操作:
-
创建一个 Strava API 应用:
- 前往 Strava API Settings
- 创建一个应用以获取你的 Client ID 和 Client Secret
- 将 Authorization Callback Domain 设置为
localhost
-
获取你的 refresh token:
- 使用附带的
get_strava_token.py脚本:
python get_strava_token.py- 按照提示授权你的应用
- 该脚本会将你的 token 保存到
.env文件
- 使用附带的
-
设置环境变量: 该服务需要以下环境变量:
STRAVA_CLIENT_ID:你的 Strava API Client IDSTRAVA_CLIENT_SECRET:你的 Strava API Client SecretSTRAVA_REFRESH_TOKEN:你的 Strava API Refresh Token
使用方法
Claude for Desktop
更新你的 claude_desktop_config.json(在 macOS 上位于 ~/Library/Application\ Support/Claude/claude_desktop_config.json,在 Windows 上位于 %APPDATA%/Claude/claude_desktop_config.json),加入以下内容:
{
"mcpServers": {
"strava": {
"command": "uvx",
"args": [
"strava-mcp-server"
],
"env": {
"STRAVA_CLIENT_ID": "YOUR_CLIENT_ID",
"STRAVA_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"STRAVA_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN"
}
}
}
}
Claude Web
对于 Claude Web,你可以在本地运行该服务,并使用 MCP 扩展进行连接。
示例查询
连接后,你可以向 Claude 提出如下问题:
- “我最近有哪些活动?”
- “显示我上周的活动”
- “过去一个月我最长的一次跑步是什么?”
- “获取我最近一次骑行活动的详细信息”
错误处理
该服务针对常见问题提供人类可读的错误消息:
- 日期格式无效
- API 身份验证错误
- 网络连接问题
许可证
本项目采用 MIT 许可证授权 — 详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。