使用说明
Strava MCP服务器
用于访问Strava数据的模型上下文协议(MCP)服务器。此单用户服务器提供工具来获取活动、分析性能趋势,并通过实时webhook支持获取运动员统计数据。
建造于 @madebydia
特性
- 获取活动:使用日期范围和运动类型筛选器列出最近的活动
- 活动详情:获取详细信息,包括分割、分段和地图数据
- 运动员统计:查看历史统计数据(最近、今年迄今和历史总计)
- 搜索活动:查找符合特定条件的活动
- 分析趋势:分析各种指标随时间的性能趋势
- 实时Webhooks:在创建、更新或删除活动时获取即时通知
建筑学
- 运行时:Node.js/TypeScript
- 框架:MCP SDK(@modelcontextprotocol/SDK v1.29.0)
- 运输:StreamableHTTP(SSE)用于铁路部署,stdio用于本地开发
- API客户端:Node.js原生Fetch API
- 令牌存储:环境变量被播种到持续的铁路量中
- 认证:OAuth 2.0
- 会话管理:基于UUID的会话ID
mcp-session-id头球
设置
先决条件
- Node.js>=20.0.0
- 斯特拉瓦账户
- Strava API应用程序证书
1.创建Strava应用程序
- 首选https://www.strava.com/settings/api
- 创建新应用程序:
- 应用程序名称:您的选择(例如,“个人MCP服务器”)
- 类别:健身应用程序
- 授权回调域:
localhost(用于初始设置)
- 注意你的 客户端ID 和 客户端密钥
2.获取OAuth令牌(本地设置)
# Install the exact locked dependencies without lifecycle scripts
npm ci --ignore-scripts
# Set your Strava credentials
export STRAVA_CLIENT_ID=your_client_id
export STRAVA_CLIENT_SECRET=your_client_secret
# Run the OAuth setup script
npm run setup-auth
这将:
- 打开浏览器窗口进行Strava授权
- 启动本地服务器以捕获OAuth回调
- 显示您的令牌以复制到Railway
3.部署到铁路
- 在上创建新项目 铁路
- 连接您的GitHub存储库
- 在Railway中添加以下环境变量:
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
STRAVA_ACCESS_TOKEN=from_setup_script
STRAVA_REFRESH_TOKEN=from_setup_script
STRAVA_EXPIRES_AT=from_setup_script
STRAVA_TOKEN_FILE=/data/strava-tokens.json
USE_SSE=true
PORT=3000
WEBHOOK_VERIFY_TOKEN=your_random_secure_string # Optional, only if using webhooks
- 在以下位置附上持久的铁路卷
/data因此,旋转的Strava令牌在部署后不会写入日志 - 部署应用程序
- 一旦部署,Railway将为您提供一个URL(例如。,
https://your-app.up.railway.app)
4.连接到Poke.com
部署到Railway后,您可以将Strava MCP服务器连接到Poke.com:
-
首选 Poke.com
-
导航到“连接”→ 添加集成→ 自定义集成
-
点击“添加服务器”或“添加MCP服务器”
-
输入您的铁路SSE端点URL:
https://your-app.up.railway.app/sse替换
your-app.up.railway.app使用您的实际铁路域名 -
给它起个名字,比如“斯特拉瓦”,然后保存
-
服务器现在应该已连接并在Poke.com中可用
注: 服务器URL必须以结尾 /sse -这是维护连接的服务器发送事件端点。
克劳德桌面(stdio模式)
- 完成 设置 获取OAuth令牌的上述步骤
- 构建项目:
npm run build - 编辑您的Claude Desktop配置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗`%APPDATA%\Claude
- macOS: