StravaChat
将Claude连接到Strava API的MCP服务器-用自然语言询问您的训练数据。
______________________________________________________________________
它的作用
StravaChat允许Claude通过8个工具直接访问您的Strava帐户:
| 工具 | 说明 |
|---|---|
get_athlete_profile | 您的个人资料——姓名、地点、简介 |
get_athlete_stats | 跑步/骑行/游泳的终身、年初至今和最近总计 |
list_activities | 使用分页和日期过滤器浏览活动 |
get_activity | 深入了解单个活动(拆分、分段、指标) |
get_activity_laps | 逐圈细分(速度、心率、距离) |
get_activity_zones | 每个心率/功率区的时间 |
list_routes | 您保存的路线 |
get_route | 路线详细信息(距离、高度、航路点) |
示例提示
“这个月我跑了多远?”
“给我看看我最近5次骑行的情况,比较一下平均速度。”
“昨天跑步时我的心率区域分布是什么?”
“从我长期的斯特拉瓦数据来看,你建议我如何提高我的跑步表现?”
______________________________________________________________________
设置
先决条件
- Node.js >= 18
- A. 斯特拉瓦账户 具有API访问权限
- 克劳德桌面版 或 克劳德代码
1.克隆并安装
git clone && cd stravachat
npm install2.创建Strava API应用程序
- 首选 strava.com/settings/api
- 创建应用程序(或使用现有的应用程序)
- 集 授权回调域 到
localhost - 注意你的 客户端ID 和 客户端密钥
3.配置凭据
cp .env.example .env编辑 .env 并填写您的客户ID和客户密码:
STRAVA_CLIENT_ID=12345
STRAVA_CLIENT_SECRET=abc123...
STRAVA_REFRESH_TOKEN=4.获取刷新令牌
Strava设置页面中的令牌经常过期。使用附带的助手获取新的助手:
npx tsx scripts/get-token.ts这将:
- 打印授权URL——在浏览器中打开它
- 您在Strava上授权该应用程序
- 脚本打印有效的刷新令牌
将令牌粘贴到您的 .env:
STRAVA_REFRESH_TOKEN=5.建造
npm run build6.联系克劳德
添加到您的Claude配置中:
克劳德桌面版 (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/absolute/path/to/stravachat/dist/index.js"]
}
}
}克劳德代码 (~/.claude.json):
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/absolute/path/to/stravachat/dist/index.js"]
}
}
}重启克劳德。你准备好了。
______________________________________________________________________
发展
npm run dev # Watch mode — recompiles on save
npm run build # One-time build
npm start # Run the server directly项目结构
src/
index.ts Entry point — server + stdio transport
strava-client.ts Strava API client with auto token refresh
tools.ts MCP tool definitions (8 tools)
scripts/
get-token.ts One-time OAuth helper______________________________________________________________________
备注
- 令牌刷新:Strava每次使用时都会轮换刷新令牌。服务器在内存中自动处理此问题。如果服务器重新启动并且
.env令牌已旋转,请重新运行令牌帮助程序。 - 费率限制Strava每15分钟允许200个请求,每天允许2000个请求。正常的会话使用不会接近这些限制。
- 范围:令牌助手请求
read,activity:read_all,以及profile:read_all.
