Strava MCP服务器
  
A. 模型上下文协议 (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 | 燃烧的卡路里 | kcal |
start_latlng | 起始坐标 | \[lat,lng\] |
end_latlng | 终点坐标 | \[lat,lng\] |
认证
要使用此服务器,您需要使用Strava API进行身份验证。请按照以下步骤操作:
- 创建Strava API应用程序:
- 首选 Strava API设置 - 创建一个应用程序以获取您的客户端ID和客户端密码 - 将授权回调域设置为 localhost
- 获取您的刷新令牌:
- 使用随附的 get_strava_token.py 脚本:
python get_strava_token.py- 按照提示授权您的应用程序 - 该脚本将把您的令牌保存到 .env 文件
- 设置环境变量:
服务器需要以下环境变量:
- STRAVA_CLIENT_ID:您的Strava API客户ID - STRAVA_CLIENT_SECRET:您的Strava API客户秘密 - STRAVA_REFRESH_TOKEN:您的Strava API刷新令牌
用法
Claude桌面版
更新您的 claude_desktop_config.json (位于 ~/Library/Application\ Support/Claude/claude_desktop_config.json 在macOS和 %APPDATA%/Claude/claude_desktop_config.json 在Windows上)包括以下内容:
{
"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,您可以在本地运行服务器,并使用MCP扩展进行连接。
查询示例
连接后,您可以向Claude提出以下问题:
- “我最近的活动是什么?”
- “显示我上周的活动”
- “在过去的一个月里,我跑得最长的是什么?”
- “获取我最新自行车活动的详细信息”
错误处理
服务器为常见问题提供人类可读的错误消息:
- 日期格式无效
- API身份验证错误
- 网络连接问题
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
