Cloudflare MCP开发实战 - 创建支持OAuth的MCP服务器(简版)
摘要
在当今AI应用生态中,MCP(Model Context Protocol)服务器扮演着至关重要的角色,它允许AI客户端通过标准化的接口访问各种工具和服务。而添加用户认证机制,不仅可以保护您的服务资源,还能为不同用户提供个性化的体验。 赛博菩萨 Cloudflare 提供了一组开发工具,以及开发者手册,帮助 MCP 开发者更加轻松地开发并部署 MCP 服务器...
Cloudflare MCP开发实战 - 创建支持OAuth的MCP服务器(简版)
在当今AI应用生态中,MCP(Model Context Protocol)服务器扮演着至关重要的角色,它允许AI客户端通过标准化的接口访问各种工具和服务。而添加用户认证机制,不仅可以保护您的服务资源,还能为不同用户提供个性化的体验。
赛博菩萨 Cloudflare 提供了一组开发工具,以及开发者手册,帮助 MCP 开发者更加轻松地开发并部署 MCP 服务器到云端。现在 Cloudflare 开发工具也对 MCP OAuth做了进一步支持。
本文将带您利用Cloudflare 开发工具,一步步实现一个支持GitHub OAuth认证的MCP服务器。
最终效果预览
完成本教程后,您将获得以下用户体验:
- 当您在Inspector尝试连接MCP服务器,系统会将其重定向到GitHub进行身份验证
- 完成授权后,会自动返回到MCP Inspector
- MCP 服务器可以获取用户的GitHub信息(这也是未来个性化的工具和服务的基础)
开发环境准备
在开始之前,请确保您已安装:
- Node.js
- npm, yarn或pnpm
- Git
第一部分:创建基础MCP服务器
首先,我们需要创建一个基础的Cloudflare MCP服务器项目:
# 使用npx创建项目
npx create cloudflare@latest my-mcp-server-github --template=cloudflare/ai/demos/remote-mcp-server
在创建过程中,系统会询问:
- 是否使用Git进行版本控制?选择
yes - 是否需要部署?选择
no(我们先在本地开发环境运行)
项目创建完成后,进入项目目录并启动开发服务器:
cd my-mcp-server-github
npm run dev
此时,您的MCP服务器已在本地运行,默认端口为8787。
使用MCP Inspector进行测试
MCP Inspector是一个用于测试MCP服务器的工具。运行以下命令启动Inspector:
$ npx @modelcontextprotocol/inspector
现在,访问Inspector http://localhost:517:
- 将Transport Type设置为SSE
- URL设置为
http://localhost:8787/sse - 点击
Connect
此时,您会看到一个基本的授权页面,这是Cloudflare MCP服务器模板自带的简单认证机制。点击Approve后,您将返回Inspector界面。
您可以测试默认提供的add工具,例如设置a=100,b=200,执行后应返回300。
第二部分:添加GitHub OAuth支持
现在,我们将为MCP服务器添加GitHub OAuth认证支持。根据我的实测,按照 https://developers.cloudflare.com/agents/guides/remote-mcp-server/#add-authentication 的步骤创建的 MCP 服务器,无法正常运行并提供服务。因此,大家务必根据我的以下步骤操作。
1. 在GitHub创建OAuth应用
- 登录GitHub,进入Settings > Developer settings > OAuth Apps
- 点击"New OAuth App"
- 填写应用信息:
- Application name: MCP OAuth Demo
- Homepage URL: http://localhost:8787
- Authorization callback URL: http://localhost:8787/callback
创建完成后,您将获得Client ID,点击 Generate a new client secret 获取Client Secret。
2. 配置环境变量
在项目根目录创建.dev.vars文件,添加以下内容:
GITHUB_CLIENT_ID=您的GitHub Client ID
GITHUB_CLIENT_SECRET=您的GitHub Client Secret
3. 修改MCP服务器代码
需要修改以下文件:
src/index.ts- 主入口文件,配置OAuth和MCP服务器src/github-handler.ts- 处理GitHub OAuth流程src/utils.ts- 提供OAuth辅助函数
这些文件的主要功能:
index.ts- 定义MCP服务器和工具,配置OAuth提供者github-handler.ts- 处理OAuth授权和回调流程utils.ts- 提供OAuth辅助函数和UI渲染
4. 安装依赖
我们需要安装Octokit库来与GitHub API交互:
npm install octokit
第三部分:测试OAuth认证流程
现在,重启MCP服务器:
npm run dev
然后重启,并再次打开MCP Inspector,配置:
- Transport Type: SSE
- URL: http://localhost:8787/sse
- 点击Connect
这次,您将被重定向到GitHub进行授权。授权完成后,您将返回到Inspector。
点击"List Tools",您会看到两个工具:
- add - 简单的加法工具
- userInfoOctokit - 获取当前登录用户身份信息的工具
点击userInfoOctokit并点击 Run Tool,您将看到自己的GitHub用户名显示在结果中。
总结与拓展
通过本教程,我们成功实现了一个支持GitHub OAuth认证的MCP服务器。这种认证机制使您的MCP服务能够:
- 验证用户身份,确保只有授权用户才能访问
- 获取用户信息,提供个性化服务
- 根据用户权限提供不同的工具和功能
您可以基于此框架进一步拓展:
- 集成其他OAuth提供商(如Google、Microsoft等)
- 实现自定义权限控制,为不同用户提供不同工具
- 将MCP服务器与您现有的用户系统集成
希望本教程对您有所帮助!如有任何问题,欢迎在评论区留言。
参考资源
相关阅读
往期回顾
相关文章
2025年3月27日
Cloudflare MCP开发实战 - 创建支持OAuth的MCP服务器
在当今AI应用生态中,MCP(Model Context Protocol)服务器扮演着至关重要的角色,它允许AI客户端通过标准化的接口访问各种工具和服务。而添加用户认证机制,不仅可以保护您的服务资源,还能为不同用户提供个性化的体验。 赛博菩萨 Cloudflare 提供了一组开发工具,以及开发者手册,帮助 MCP 开发者更加轻松地开发并部署 MCP 服务器...
2026年5月9日
Cloudflare 给 agent 发了张能刷的卡
Cloudflare 这周让 agent 能自己开账号、注册域名、付费、部署。听起来像把控制权交了出去,但其实没有 - 它把控制点从 agent 的执行边缘挪到了协议层。这是个完全不一样的 agent 安全哲学,也是把 agent 当成 first-class 客户类别的开始。
2026年5月7日
Cloudflare 一周拆了 Agent 的两堵墙:Code Mode MCP 与 Agent Memory
Code Mode MCP 把 1.17M tokens 的 API 压成 1K,Agent Memory 把对话历史压成可索引的结构化记忆。两个公告分开看是产品发布,放一起看是同一个判断 - agent 跑不动了,得重新设计存储层。
最近一封 · Sample
用 AI 玩转英超 - 我把自己玩 FPL 的工作流写成了一个 Agent Skill
“Fantasy Premier League 每周一次决策,每次都要看一堆分散在不同网站上的数据:球员状态、对手赛程难度、转会成本、队长候选人。我把这套工作流整理成了一个 skill,叫 fpl-copilot - 数据本地 SQLite,阵容用 Markdown 文件持久化,每个 GW 的分析输出成自包含的 HTML 报告。Claude Code 和 Codex 都能装。”
—— william
来信
里面装的是
- 新文章 — 写完一篇就寄一封,不攒货
- 这周读到的、看到的、好用的工具
- 正在折腾的实验,附带翻车记录
约莫 1–2 周一封 · 随时退订
合作伙伴
CompeteMap — 英国及爱尔兰学生竞赛一站式搜索
数学、编程、科学、写作等各类竞赛信息汇总,支持按年龄和科目筛选,再也不错过报名截止日。