README
🚀 Strava MCP 服务器
一个基于 Model Context Protocol (MCP) 的服务器,它提供了对 Strava API 的访问能力,允许语言模型查询已认证运动员的活动数据。
🚀 快速开始
本服务器可让语言模型轻松查询 Strava 中已认证运动员的活动数据。下面将详细介绍使用前的准备工作。
✨ 主要特性
该服务器提供了一系列工具,用于查询 Strava 中运动员的活动数据:
活动查询
get_activities(limit: int = 10):获取已认证运动员最近的活动。get_activities_by_date_range(start_date: str, end_date: str, limit: int = 30):在特定日期范围内获取活动。日期需以 ISO 格式(YYYY-MM-DD)提供。get_activity_by_id(activity_id: int):获取某个特定活动的详细信息。get_recent_activities(days: int = 7, limit: int = 10):获取过去 X 天内的活动。
📦 安装指南
要使用此服务器,您需要通过 Strava API 进行身份验证,具体步骤如下:
- 创建 Strava API 应用:
- 前往 Strava API 设置。
- 创建一个应用以获取您的 Client ID 和 Client Secret。
- 将授权回调域设置为
localhost。
- 获取您的 refresh token:
- 使用随附的
get_strava_token.py脚本:
- 使用随附的
python get_strava_token.py
- 按照提示输入您的 Strava 凭证以获取 refresh token。
3. 设置环境变量:
- 将以下内容添加到 .env 文件或相应配置文件中:
STRAVA_REFRESH_TOKEN=your_refresh_token_here
📚 详细文档
活动数据格式
服务器返回的活动数据具有一致的字段名称和单位,具体如下:
| 字段 | 描述 | 单位 |
|------|-------|------|
| 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] |
配置 MCP 服务器
根据您使用的语言模型(Claude Desktop 或 Web),按照以下步骤进行配置:
Claude Desktop
- 打开
~/.config/anthropic/claude/settings.json。 - 在
"mcp"下添加 Strava 插件:
"plugins": {
"strava": {
"enabled": true,
"api_key": "your_api_key",
"refresh_token": "your_refresh_token"
}
}
- 保存文件并重启 Claude。
Claude Web
- 访问 Claude Web。
- 进入设置页面。
- 在 MCP 部分添加 Strava 插件:
- API 密钥:
your_api_key - Refresh Token:
your_refresh_token
- API 密钥:
💻 使用示例
基础用法
以下是一些示例查询,帮助您快速上手:
查询最近活动
print(strava.get_recent_activities())
获取特定活动详细信息
activity_id = 123456789
print(strava.get_activity_by_id(activity_id))
📄 许可证
本项目采用 MIT 许可证。
⚠️ 重要提示
- 确保您的 API 密钥和 refresh token 安全,避免泄露。
- 定期更新 refresh token,以防止过期。
- 处理错误时,请参考文档中的错误处理部分。
通过以上步骤,您可以轻松将 Strava 数据集成到语言模型中,扩展其功能。
微信扫一扫