使用说明
模型上下文协议(MCP)服务器+Strava OAuth
这是一个 模型上下文协议(MCP) 支持远程MCP连接的服务器,内置Strava OAuth。它允许用户通过使用Strava帐户登录来连接到您的MCP服务器。
概述
MCP服务器(由 Cloudflare员工)扮演两个角色:
- 充当MCP客户端的OAuth服务器
- 充当Strava OAuth服务的OAuth客户端
此项目可作为将OAuth提供商与部署到Cloudflare的MCP服务器集成的参考示例,使用 workers-oauth-provider 图书馆.
先决条件
- 斯特拉瓦账户
- 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证书(请参阅 设置Strava API证书)
-
设置Cloudflare KV命名空间:
wrangler kv:namespace create "OAUTH_KV"更新
wrangler.toml使用生成的KV ID创建文件。 -
部署到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=your_development_strava_client_id STRAVA_CLIENT_SECRET=your_development_strava_client_secret
测试您的MCP服务器
使用检查器
-
安装检查器工具:
npx @modelcontextprotocol/inspector@latest -
连接到您的服务器:
- 生产:
https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse - 发展:
http://localhost:8788/sse
- 生产:
使用克劳德桌面
- 打开克劳德桌面,进入设置->开发人员->编辑配置
- 添加您的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
API费率限制
API Strava有以下费率限制:
- 每15分钟200个请求
- 每天2000次请求
运作原理
OAuth提供者
OAuth提供者库处理:
- OAuth 2.1服务器实现
- 代币发行和验证
- KV中的安全令牌存储
- Strava OAuth集成
耐用MCP
提供:
- 持续状态管理
- 安全的身份验证上下文存储
- 通过以下方式访问用户信息
this.props - 有条件的工具可用性
MCP远程
使能够:
- 客户端-服务器通信
- 工具定义和管理
- 请求/响应序列化
- SSE连接维护
故障排除
- 如果在Claude Desktop中看到错误消息,请将鼠标悬停在🔨 图标
- 对于游标集成,使用“Command”类型并将命令和参数组合成一个字符串
- 确保您的回调URL与Strava应用程序中配置的URL完全匹配