Model Context Protocol (mcp) Server + Strava Oauth

Model Context Protocol (mcp) Server + Strava Oauth

🚀 模型上下文协议(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 凭证

生产环境

  1. 前往Strava 的 API 设置并创建一个新的应用。
  2. 配置您的应用程序:
    • 应用程序名称:为您的应用程序选择一个名称
    • 类别:选择适当的类别
    • 网站:您的网站 URL
    • 应用程序描述:简要描述您的应用程序
    • 授权回调域名:mcp-strava-oauth..workers.dev
    • 授权回调 URL:https://mcp-strava-oauth..workers.dev/callback
  3. 设置您的生产环境变量:
wrangler secret put STRAVA_CLIENT_ID
wrangler secret put STRAVA_CLIENT_SECRET

开发环境

  1. 前往Strava 的开发者控制台创建一个新的应用。
  2. 配置您的应用程序:
    • 应用程序名称:例如 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

  1. 安装并启动 Inspector。
  2. 打开 Inspector 的控制台。
  3. 创建一个新的 MCP 连接:
mcp create connection --name test - connection --url http://localhost:5000
  1. 启动连接:
mcp start - connection test - connection
  1. 在 Inspector 中,您应该看到来自 MCP 服务器的日志和消息。

使用 Claude Desktop

  1. 打开 Claude Desktop 并连接到您的 Cloudflare 账户。
  2. 导航至 Compute 标签并选择您的 MCP 应用。
  3. 在右侧控制台中,您可以与 MCP 代理交互:
mcp create connection --name test - connection --url http://localhost:5000
mcp start - connection test - connection

本地开发

  1. 克隆仓库并安装依赖项。
  2. 启动开发服务器:
npm run dev
  1. 打开浏览器访问 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 的强大功能进行扩展和优化。

  • 0 关注
  • 0 收藏,26 浏览
  • system 提出于 2025-10-03 21:00

相似服务问题

相关AI产品