返回市场
斯特拉瓦-MCP

斯特拉瓦-MCP

作者:kw51017 星标更新:2025-04-14

项目介绍

Model Context Protocol (MCP) 服务器 + Strava OAuth

这是一个支持远程MCP连接的Model Context Protocol (MCP)服务器,并内置了Strava OAuth。它允许用户通过他们的Strava账户登录到您的MCP服务器。

概述

MCP服务器(由Cloudflare Workers提供支持)有两个作用:

  • 作为您的MCP客户端的OAuth服务器
  • 作为Strava OAuth服务的OAuth客户端

这个项目作为一个参考示例,展示了如何将OAuth提供商与部署在Cloudflare上的MCP服务器集成,使用的是workers-oauth-provider

预备条件

  • 一个Strava账户
  • 一个Cloudflare账户
  • 已安装Node.js和npm
  • 已安装Wrangler CLI (npm install -g wrangler)

快速开始

  1. 克隆仓库:

    git clone https://github.com/kw510/strava-mcp.git
    cd strava-mc
    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服务器

使用Inspector

  1. 安装Inspector工具:

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

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

使用Claude Desktop

  1. 打开Claude Desktop并进入设置 -> 开发者 -> 编辑配置
  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速率限制

Strava API有以下速率限制:

  • 每15分钟200次请求
  • 每天2,000次请求

工作原理

OAuth提供商

OAuth提供商库处理:

  • OAuth 2.1服务器实现
  • 令牌发放和验证
  • 在KV中安全存储令牌
  • Strava OAuth集成

持久MCP

提供:

  • 持久状态管理
  • 安全认证上下文存储
  • 通过this.props访问用户信息
  • 条件工具可用性

MCP远程

启用:

  • 客户端-服务器通信
  • 工具定义和管理
  • 请求/响应序列化
  • SSE连接维护

故障排除

  • 如果您在Claude Desktop中看到错误消息,请通过悬停在🔨图标上验证连接
  • 对于Cursor集成,使用“命令”类型并将命令和参数组合成一个字符串
  • 确保您的回调URL与在您的Strava应用程序中配置的一致