ctvidic
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"Strava": {
"args": [
"src/strava_server.py"
],
"command": "python",
"cwd": "/path/to/strava_mcp",
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
服务介绍
Strava MCP 服务器
一个提供访问 Strava API 的模型上下文协议(MCP)服务器。该服务器使语言模型能够与 Strava 数据进行交互,包括活动、运动员信息等。
功能
- 🏃♂️ 活动跟踪和分析
- 📊 运动员统计数据
- 🗺️ 路线可视化
- 🏆 成就跟踪
- 🤝 社交功能(点赞、评论)
前提条件
- Python 3.12+
- Strava API 凭证
- pip (Python 包管理器)
安装
-
克隆仓库:
bash
git clone https://github.com/yourusername/strava_mcp.git
cd strava_mcp -
创建虚拟环境:
bash
python -m venv venv
source venv/bin/activate # 在 Windows 上: .venvScriptsactivate -
安装依赖项:
bash
pip install -r requirements.txt
配置
-
创建
config/.env文件并填入您的 Strava API 凭证:
bash
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
STRAVA_REFRESH_TOKEN=your_refresh_token -
获取 Strava API 凭证:
- 访问 https://www.strava.com/settings/api
- 创建一个新的应用程序
- 记录下 Client ID 和 Client Secret
- 按照 OAuth 2.0 流程获取刷新令牌
使用方法
与 Claude 一起使用
连接后,您可以通过多种方式通过 Claude 与您的 Strava 数据进行交互:
活动查询
- "显示我最近的活动"
- "获取我最后一次跑步的详细信息"
- "本月我的最长骑行是什么?"
- "显示我创造个人记录的活动"
- "显示我最新活动的路线图"
性能分析
- "今年我的平均跑步配速是多少?"
- "比较上个月和这个月的骑行表现"
- "显示昨天锻炼的心率区间"
- "所有活动的总爬升高度是多少?"
- "计算本周的跑步里程"
社交互动
- "谁在我的最新活动中点了赞?"
- "显示我马拉松跑的评论"
- "列出我所有的俱乐部活动"
- "找到我和朋友一起做的活动"
成就跟踪
- "列出我所有的路段成就"
- "显示我在本地路段上的个人记录"
- "这周我获得了哪些成就?"
- "显示我年度目标的进展"
可通过 Claude 获取的数据
-
活动详情:
- 距离、持续时间、配速
- 路线图和海拔剖面
- 心率、功率和踏频数据
- 分段和圈数信息
- 活动期间的天气状况
-
运动员统计:
- 年初至今和历史总计
- 个人记录和成就
- 训练负荷和健身趋势
- 设备使用和维护情况
-
社交数据:
- 点赞和评论
- 俱乐部活动和排行榜
- 朋友的活动和挑战
- 路段努力和排名
-
路线信息:
- 详细的带有海拔数据的地图
- 路段分析
- 流行路线和路段
- 路线规划和分析
作为 MCP 服务器
更新您的 Claude Desktop 配置:
json
{
"mcpServers": {
"Strava": {
"command": "python",
"args": ["src/strava_server.py"],
"cwd": "/path/to/strava_mcp",
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
作为 HTTP 服务器
-
启动服务器:
bash
./run_server.sh -
在
http://localhost:8000访问 API
可用端点:
- GET
/activities/recent- 列出最近的活动 - GET
/activities/{id}- 获取活动详情 - GET
/activities/{id}/map- 获取活动地图可视化 - GET
/athlete/stats- 获取运动员统计数据
开发
项目结构
strava_mcp/
├── src/
│ ├── strava_server.py # MCP 服务器实现
│ ├── strava_http_server.py # HTTP API 服务器
│ ├── map_utils.py # 地图可视化工具
│ └── templates.py # HTML 模板
├── config/
│ └── .env # 环境变量(不在 Git 中)
├── requirements.txt # Python 依赖项
└── run_server.sh # 服务器启动脚本### 贡献
- Fork 仓库
- 创建一个功能分支
- 提交你的更改
- 推送到该分支
- 创建一个 Pull Request
安全
- 永远不要提交
.env文件或 API 凭证 .gitignore文件已配置,以防止敏感数据被提交- 对所有敏感配置使用环境变量
许可
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
致谢
- Strava API 文档
- Model Context Protocol (MCP) 规范
- 贡献者和维护者