使用说明
健身教练MCP——Cloudflare员工
通过MCP协议将Claude连接到Strava。部署为具有持久对象的Cloudflare Worker。
先决条件
- 已安装Node.js 20+
- Cloudflare帐户→ https://dash.cloudflare.com/sign-up
- Strava API应用程序→ https://www.strava.com/settings/api
步骤1——安装依赖项
npm install
步骤2——登录Cloudflare
npx wrangler login
打开浏览器→ 登录→ 授权牧马人。只有一次。
步骤3--获取Strava OAuth刷新令牌
必须使用正确的作用域获取刷新令牌: read, activity:read_all, activity:write.
1.在浏览器中打开此URL (替换 YOUR_CLIENT_ID):
https://www.strava.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=http://localhost&response_type=code&scope=read,activity:read_all,activity:write
2. 单击“授权”后,浏览器重定向到 localhost (将无法加载——没关系)。
复制 code= URL栏中的值:
http://localhost/?state=&code=COPY_THIS&scope=read,activity:read_all,activity:write
3.将代码兑换成代币:
curl -X POST https://www.strava.com/oauth/token \
-d client_id=YOUR_CLIENT_ID \
-d client_secret=YOUR_CLIENT_SECRET \
-d code=YOUR_CODE \
-d grant_type=authorization_code
复制 refresh_token 从回应中。
注: Strava应用程序设置中的回调URL可以保持为
http://localhost--Worker从不处理OAuth重定向。刷新令牌流在运行时使用,而不是回调。
步骤4——将Strava secrets添加到Cloudflare
运行每个命令,并在提示时粘贴值:
npx wrangler secret put STRAVA_CLIENT_ID
npx wrangler secret put STRAVA_CLIENT_SECRET
npx wrangler secret put STRAVA_REFRESH_TOKEN
秘密以加密方式存储在Cloudflare中,永远不会存储在您的代码中。
更新机密: 如果您的刷新令牌过期或需要重新授权,只需运行
npx wrangler secret put STRAVA_REFRESH_TOKEN再一次。无需重新部署。
步骤5——部署
npm run deploy
您将获得一个永久URL:
https://fitness-coach-mcp.YOUR-NAME.workers.dev
第6步——添加到Claude.ai
- 首选 claude.ai→ 设置→ 连接器
- 点击 添加自定义连接器
- 姓名:
Strava Fitness Coach - 网址:
https://fitness-coach-mcp.YOUR-NAME.workers.dev/sse - 点击 添加
使用
/sseendpoint——Claude.ai网络需要SSE传输。 这/mcp端点(流式HTTP)可用于Claude Desktop/Claude Code。
健康检查
https://fitness-coach-mcp.YOUR-NAME.workers.dev/health
退货: {"status":"ok"}
MCP工具
| 工具 | 所需范围 | 它的作用 |
|---|---|---|
get_latest_activity |
activity:read_all |
获取今天的活动,按类型筛选 |
get_activity_detail |
activity:read_all |
按ID划分的完整分段、圈数、HR、功率 |
get_week_activities |
activity:read_all |
周一至周日的所有课程 |
update_activity_description |
activity:write |
将描述写回Strava |
get_athlete_stats |
read |
年初至今总计和最新统计数据 |
正在更新服务器
任何代码更改后:
npm run deploy