README
🚀 模型上下文协议(MCP)服务器 + Strava OAuth
本项目是一个基于模型上下文协议 (MCP)的服务器,支持远程 MCP 连接,并且内置了 Strava 的 OAuth 登录功能。用户可连接到您的 MCP 服务器,使用他们的 Strava 账户进行登录。
🚀 快速开始
克隆仓库
git clone https://github.com/kw510/strava-mcp.git
cd strava-mcp
npm install
设置 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 的开发者控制台创建一个新的应用。
- 配置您的应用程序:
- 应用程序名称:例如
MCP - Dev - 描述:简短描述,如
MCP Development App - 网站 URL:
http://localhost:3000 - 授权回调 URL:
http://localhost:3000/login/callback
- 应用程序名称:例如
设置 Cloudflare KV 命名空间
wrangler kv:namespace create "OAUTH_KV"
使用生成的 KV ID 更新 wrangler.toml 文件。
部署到 Cloudflare
wrangler deploy
✨ 主要特性
OAuth 提供程序
- 使用
workers - oauth库实现 OAuth 2.0 流程。 - 支持 Strava 的授权代码流。
- 配置回调 URL 和客户端 ID/密钥进行身份验证。
持久化 MCP
- 在 Cloudflare KV 存储中存储连接状态。
- 使用
durable - object库管理持久化会话和用户数据。 - 实现安全的会话管理和状态存储。
MCP 代理
- 使用
@cloudflare/mcp - proxy库创建 MCP 代理。 - 支持通过 WebSocket 和 HTTP 的双向通信。
- 提供对远程模型的访问,并处理请求和响应。
📦 安装指南
先决条件
- 拥有 Strava 账户
- 拥有 Cloudflare 账户
- 已安装 Node.js 和 npm
- 已安装 Wrangler CLI (
npm install -g wrangler)
💻 使用示例
测试您的 MCP 服务器
使用 Inspector
- 安装并启动 Inspector。
- 打开 Inspector 的控制台。
- 创建一个新的 MCP 连接:
mcp create connection --name test - connection --url http://localhost:5000
- 启动连接:
mcp start - connection test - connection
- 在 Inspector 中,您应该看到来自 MCP 服务器的日志和消息。
使用 Claude Desktop
- 打开 Claude Desktop 并连接到您的 Cloudflare 账户。
- 导航至
Compute标签并选择您的 MCP 应用。 - 在右侧控制台中,您可以与 MCP 代理交互:
mcp create connection --name test - connection --url http://localhost:5000
mcp start - connection test - connection
本地开发
- 克隆仓库并安装依赖项。
- 启动开发服务器:
npm run dev
- 打开浏览器访问
http://localhost:5000。
📚 详细文档
概述
MCP 服务器(由 Cloudflare Workers 提供支持)承担以下两种角色:
- 作为您的 MCP 客户端的 OAuth 服务提供商
- 作为 Strava 的 OAuth 服务的 OAuth 客户端
该项目作为一个参考示例,展示了如何将 OAuth 提供程序集成到部署在 Cloudflare 上的 MCP 服务器中,并使用 [workers - oauth - provider 库](https://github.com/cloudflare/workers - oauth - provider)。
API 速率限制
- Strava 的免费 tier 每小时有 18,000 次调用的限制。
- 超出限制可能会导致请求被拒绝或延迟。
🔧 技术细节
持久化 MCP
- 在 Cloudflare KV 存储中存储连接状态。
- 使用
durable - object库管理持久化会话和用户数据。 - 实现安全的会话管理和状态存储。
MCP 代理
- 使用
@cloudflare/mcp - proxy库创建 MCP 代理。 - 支持通过 WebSocket 和 HTTP 的双向通信。
- 提供对远程模型的访问,并处理请求和响应。
📄 注意事项
⚠️ 重要提示
- 确保所有回调 URL 配置正确且与 Strava 应用程序中的设置完全匹配。
- 定期检查 API 调用限制,避免超出配额。
- 在生产环境中使用 HTTPS 并配置 SSL 证书以确保安全性。
- 使用环境变量管理敏感信息(如客户端 ID 和密钥)。
通过以上步骤,您可以成功部署并运行一个支持 Strava 登录的 MCP 服务器,并利用 Cloudflare 的强大功能进行扩展和优化。
Scan to contact