strava-mcp 是一个支持远程 MCP 连接的 Model Context Protocol(MCP)服务器,内置 Strava OAuth,基于 Cloudflare Workers 构建。用户可以通过 Strava 账号登录,安全地连接 MCP 客户端,并访问 Strava 的运动追踪数据。
用途
该 MCP 服务器承担两个角色:一是作为 MCP 客户端的 OAuth 服务器,二是作为 Strava OAuth 服务的 OAuth 客户端。项目可作为将 OAuth 提供商与部署到 Cloudflare 的 MCP 服务器集成的参考示例,使用了 workers-oauth-provider 库。它适合希望将 Strava 认证与 AI 工具(如 Claude、Cursor)集成的开发者。
主要能力
- 通过 Strava 登录实现安全的 OAuth 认证与工具访问。
- 支持远程 MCP 连接。
- OAuth Provider 库处理 OAuth 2.1 服务器实现、令牌签发与验证、KV 中的安全令牌存储、Strava OAuth 集成、持久状态管理、通过 this.props 访问用户信息、条件化工具可用性。
- 处理客户端-服务器通信、工具定义与管理、请求/响应序列化、SSE 连接维护。
使用方式
前置条件:一个 Strava 账号、一个 Cloudflare 账号、已安装 Node.js 和 npm、已安装 Wrangler CLI(npm install -g wrangler)。
部署步骤:
- 克隆仓库:git clone https://github.com/kw510/strava-mcp.git,cd strava-mcp,npm install。
- 设置 Strava API 凭证(见下文)。
- 设置 Cloudflare KV 命名空间:wrangler kv:namespace create "OAUTH_KV",并用生成的 KV ID 更新 wrangler.toml 文件。
- 部署到 Cloudflare:wrangler deploy。
设置 Strava API 凭证:前往 Strava 的 API 设置创建新应用,配置:应用名称、类别、网站 URL、应用描述、授权回调域(mcp-strava-oauth.<your-subdomain>.workers.dev)、授权回调 URL(https://mcp-strava-oauth.<your-subdomain>.workers.dev/callback)。然后设置生产环境变量:wrangler secret put STRAVA_CLIENT_ID 和 wrangler secret put STRAVA_CLIENT_SECRET。
开发环境:创建一个单独的 Strava API 应用用于开发,配置授权回调域为 localhost,授权回调 URL 为 http://localhost:8788/callback。在项目根目录创建 .dev.vars 文件,包含 STRAVA_CLIENT_ID 和 STRAVA_CLIENT_SECRET。
测试 MCP 服务器:
- 使用 Inspector:安装 npx @modelcontextprotocol/inspector@latest;连接服务器:生产环境为 https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse,开发环境为 http://localhost:8788/sse。
- 使用 Claude Desktop:打开设置 -> 开发者 -> 编辑配置,添加 MCP 服务器配置:{"mcpServers": {"strava": {"command": "npx", "args": ["mcp-remote", "https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse"]}}}。重启 Claude Desktop 并完成 OAuth 流程。
本地开发:运行 wrangler dev,服务器将在 http://localhost:8788 可用。
适用场景
适合需要将 Strava 运动数据接入 AI 工具(如 Claude、Cursor)的开发者,或作为在 Cloudflare 上集成 OAuth 提供商的 MCP 服务器参考示例。
限制
Strava API 有速率限制:每 15 分钟 200 次请求,每天 2000 次请求。故障排除:若 Claude Desktop 出现错误,悬停 🔨 图标验证连接;Cursor 集成请使用 "Command" 类型并将命令和参数合并为一个字符串;确保回调 URL 与 Strava 应用配置完全一致。