Strava OAuth认证服务

一个支持通过Strava账户进行远程MCP服务器连接的OAuth认证服务,适用于需要集成Strava API的开发者。

  • by kw510
  • TypeScript
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 kw510/strava-mcp

使用说明

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

快速开始

  1. 克隆存储库:

    git clone https://github.com/kw510/strava-mcp.git
    cd strava-mcp
    npm install
    
  2. 设置您的Strava API证书(请参阅 设置Strava API证书)

  3. 设置Cloudflare KV命名空间:

    wrangler kv:namespace create "OAUTH_KV"
    

    更新 wrangler.toml 使用生成的KV ID创建文件。

  4. 部署到Cloudflare:

    wrangler deploy
    

设置Strava API证书

用于生产

  1. 首选 Strava的API设置 并创建新应用程序

  2. 配置您的应用程序:

    • 应用程序名称:为您的应用程序选择一个名称
    • 类别:选择适当的类别
    • 网站:您的网站URL
    • 应用程序描述:您的应用程序的简要描述
    • 授权回调域: mcp-strava-oauth.<your-subdomain>.workers.dev
    • 授权回调URL: https://mcp-strava-oauth.<your-subdomain>.workers.dev/callback
  3. 设置生产环境变量:

    wrangler secret put STRAVA_CLIENT_ID
    wrangler secret put STRAVA_CLIENT_SECRET
    

为了发展

  1. 创建一个单独的Strava API应用程序进行开发

  2. 配置您的开发应用程序:

    • 授权回调域: localhost
    • 授权回调URL: http://localhost:8788/callback
  3. 创建一个 .dev.vars 项目根目录中的文件:

    STRAVA_CLIENT_ID=your_development_strava_client_id
    STRAVA_CLIENT_SECRET=your_development_strava_client_secret
    

测试您的MCP服务器

使用检查器

  1. 安装检查器工具:

    npx @modelcontextprotocol/inspector@latest
    
  2. 连接到您的服务器:

    • 生产: https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse
    • 发展: http://localhost:8788/sse

使用克劳德桌面

  1. 打开克劳德桌面,进入设置->开发人员->编辑配置
  2. 添加您的MCP服务器配置:
    {
      "mcpServers": {
        "strava": {
          "command": "npx",
          "args": [
            "mcp-remote",
            "https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse"
          ]
        }
      }
    }
    
  3. 重新启动Claude Desktop并完成OAuth流程

发展

地方发展

  1. 启动开发服务器:

    wrangler dev
    
  2. 服务器将在以下时间可用 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完全匹配