项目简介
该项目实现了一个符合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仓库列表。
安装步骤
- 准备Cloudflare和GitHub账户:确保您拥有Cloudflare账户(用于部署Worker)和GitHub账户(用于OAuth认证)。
- 安装Node.js和Wrangler CLI:确保您的开发环境安装了Node.js (18+) 和Cloudflare Wrangler CLI工具。
- 登录Cloudflare:
npx wrangler auth login - 创建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 ID 和 Client Secret。
- 创建Cloudflare KV Namespace:
将生成的KV Namespace ID 配置到 'wrangler.toml' 文件中。npx wrangler kv namespace create "OAUTH_KV" - 配置环境变量:使用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用户名,多个用逗号分隔 - 部署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。
基本使用方法
- 在Claude.ai中添加自定义集成:
- 登录Claude.ai(需要Team/Enterprise计划)。
- 进入“设置” > “集成”。
- 点击“添加自定义集成”,填入上述“MCP 客户端配置信息”中的对应URL。
- 启动对话并启用集成:
- 在Claude中开始新的对话。
- 启用刚刚添加的集成。
- 进行GitHub认证:
- 当Claude提示时,按照指示通过GitHub进行认证。
- 认证成功后,MCP服务器提供的工具将对Claude可用。
- 调用可用工具:在对话中向Claude提问以调用这些工具,例如:
- 'User: 显示我的用户信息' (会调用 'get_user_info' 工具)
- 'User: 计算 7 的 8 次方' (会调用 'calculate' 工具)
- 'User: 列出我的GitHub仓库' (会调用 'get_github_repos' 工具)
信息
分类
AI与计算