项目简介

该项目实现了一个符合Model Context Protocol (MCP) 规范的服务器,并部署在Cloudflare Workers平台上。它集成了GitHub OAuth 2.0 认证流程,允许LLM(如Claude.ai)安全地调用外部工具和访问受保护的资源,例如获取用户信息、执行计算或访问GitHub仓库数据。

主要功能点

  • Claude.ai 集成支持:专为与Claude.ai等LLM平台的自定义集成设计,扩展其能力。
  • 完整的MCP认证规范合规性:严格遵循MCP协议的认证要求,确保安全通信。
  • GitHub OAuth 2.0 认证:通过GitHub账户进行身份验证,实现用户授权和访问控制。
  • 动态客户端注册 (DCR):支持OAuth客户端动态注册,简化客户端接入流程。
  • OAuth 2.0 保护资源元数据:提供标准化的OAuth元数据,便于客户端发现和配置。
  • 会话管理与权限控制:利用KV存储管理用户会话,并基于权限控制对工具和资源的访问。
  • 丰富的MCP工具
    • 用户信息获取:'get_user_info',用于获取当前认证用户的GitHub基础信息。
    • 基本计算功能:'calculate',执行加减乘除等算术运算。
    • GitHub仓库访问:'get_github_repos',列出用户授权访问的GitHub仓库列表。

安装步骤

  1. 准备Cloudflare和GitHub账户:确保您拥有Cloudflare账户(用于部署Worker)和GitHub账户(用于OAuth认证)。
  2. 安装Node.js和Wrangler CLI:确保您的开发环境安装了Node.js (18+) 和Cloudflare Wrangler CLI工具。
  3. 登录Cloudflare
    npx wrangler auth login
  4. 创建GitHub OAuth App
    • 前往 GitHub Settings > Developer settings > OAuth Apps
    • 填写以下信息:
      • Application name: 例如 'MCP Auth Demo'
      • Homepage URL: 您的Cloudflare Worker部署后的URL,例如 'https://your-worker.workers.dev'
      • Authorization callback URL: 您的Cloudflare Worker部署后的回调URL,例如 'https://your-worker.workers.dev/callback'
    • 保存生成的 Client IDClient Secret
  5. 创建Cloudflare KV Namespace
    npx wrangler kv namespace create "OAUTH_KV"
    将生成的KV Namespace ID 配置到 'wrangler.toml' 文件中。
  6. 配置环境变量:使用Wrangler CLI设置以下秘密环境变量:
    wrangler secret put GITHUB_CLIENT_ID    # 您的GitHub OAuth Client ID
    wrangler secret put GITHUB_CLIENT_SECRET # 您的GitHub OAuth Client Secret
    wrangler secret put COOKIE_ENCRYPTION_KEY # 生成一个随机字符串作为Cookie加密密钥
    # 可选:wrangler secret put ALLOWED_USERNAMES # 允许访问的GitHub用户名,多个用逗号分隔
  7. 部署Worker
    npm install  # 安装项目依赖
    npm run deploy # 部署到Cloudflare Workers

MCP 客户端配置信息

MCP服务器部署完成后,MCP客户端(如Claude.ai)需要配置以下信息才能与之建立连接。这些信息是URL形式,客户端可以直接调用:

{
  "integration_name": "MCP Auth Demo",  // 客户端集成的显示名称,用户界面中可见
  "mcp_server_url": "https://your-worker.workers.dev/mcp", // MCP 服务器的主接口 URL,用于发送MCP请求
  "oauth_authorization_url": "https://your-worker.workers.dev/auth", // OAuth 授权端点 URL,用于启动用户认证流程
  "oauth_token_url": "https://your-worker.workers.dev/token",     // OAuth 令牌端点 URL,用于交换授权码获取访问令牌
  "client_registration_url": "https://your-worker.workers.dev/register" // 动态客户端注册端点 URL,用于客户端注册自身
}

请将 'https://your-worker.workers.dev' 替换为您实际部署的 Cloudflare Worker URL。

基本使用方法

  1. 在Claude.ai中添加自定义集成
    • 登录Claude.ai(需要Team/Enterprise计划)。
    • 进入“设置” > “集成”。
    • 点击“添加自定义集成”,填入上述“MCP 客户端配置信息”中的对应URL。
  2. 启动对话并启用集成
    • 在Claude中开始新的对话。
    • 启用刚刚添加的集成。
  3. 进行GitHub认证
    • 当Claude提示时,按照指示通过GitHub进行认证。
    • 认证成功后,MCP服务器提供的工具将对Claude可用。
  4. 调用可用工具:在对话中向Claude提问以调用这些工具,例如:
    • 'User: 显示我的用户信息' (会调用 'get_user_info' 工具)
    • 'User: 计算 7 的 8 次方' (会调用 'calculate' 工具)
    • 'User: 列出我的GitHub仓库' (会调用 'get_github_repos' 工具)

信息

分类

AI与计算