mcpField
M
Model Context Protocol (MCP) Server + Strava OAuth

Model Context Protocol (MCP) Server + Strava OAuth

本地服务
github.com/kw510开发工具2680 周前更新

关于 Model Context Protocol (MCP) Server + Strava OAuth

这是一个基于 Cloudflare Workers 的 MCP 服务,内置 Strava OAuth 登录。用户通过 Strava 账号登录后即可连接服务并访问工具,适合希望将 Strava 认证接入 AI 工具的开发者。项目同时作为 OAuth 服务端和 Strava 的 OAuth 客户端,可作为参考示例。

主要功能

  1. 01内置 Strava OAuth 登录
  2. 02作为 OAuth 2.1 服务端颁发和校验令牌
  3. 03基于 workers-oauth-provider 库实现
  4. 04通过 KV 存储令牌
  5. 05支持远程 MCP 连接(SSE 端点)

适用场景

  1. 01为 MCP 客户端提供 Strava 账号登录
  2. 02学习将 OAuth 提供方接入远程 MCP 服务的方法
  3. 03在 Cloudflare Workers 上部署带认证的 MCP 服务

MCP 相关

该项目是远程 MCP 服务,通过 SSE 端点向 Claude、Cursor 等 MCP 客户端暴露工具,并在连接前完成 Strava 授权。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"strava-mcp-kw510": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
启动命令npx -y @modelcontextprotocol/inspector

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@modelcontextprotocol/inspector

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Model Context Protocol (MCP) 服务 + Strava OAuth

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

概述

该 MCP 服务(由 Cloudflare Workers 提供支持)承担两种角色:

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

本项目是一个参考示例,展示如何使用 workers-oauth-provider 库 将 OAuth 提供商与部署到 Cloudflare 的 MCP 服务集成。

前提条件

  • 一个 Strava 账户
  • 一个 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"
    

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

  4. 部署到 Cloudflare:

    wrangler deploy
    

设置 Strava API 凭据

用于生产环境
  1. 前往 Strava 的 API 设置 并创建一个新应用

  2. 配置你的应用:

    • Application Name:为你的应用选择一个名称
    • Category:选择合适的类别
    • Website:你的网站 URL
    • Application Description:应用的简要描述
    • Authorization Callback Domain:mcp-strava-oauth.<your-subdomain>.workers.dev
    • Authorization Callback 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. 配置你的开发应用:

    • Authorization Callback Domain:localhost
    • Authorization Callback 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 并前往 Settings -> Developer -> Edit Config
  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 集成
Durable MCP

提供:

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

支持:

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

故障排除

  • 如果你在 Claude Desktop 中看到错误消息,请将鼠标悬停在 🔨 图标上以验证连接
  • 对于 Cursor 集成,使用 "Command" 类型并将 command 和 args 合并为一个字符串
  • 确保你的回调 URL 与 Strava 应用中配置的完全一致

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。