模型上下文协议(MCP)服务器+谷歌OAuth
📺 视频教程

______________________________________________________________________
这是一个 模型上下文协议(MCP) 支持远程MCP连接的服务器,内置Google OAuth。
您可以将其部署到您自己的Cloudflare帐户,在您创建自己的Google Cloud OAuth客户端应用程序后,您将拥有一个功能齐全的远程MCP服务器,您可以在此基础上构建。用户将能够通过使用他们的Google帐户登录来连接到您的MCP服务器。
您可以使用此示例作为参考,了解如何将其他OAuth提供程序与部署到Cloudflare的MCP服务器集成,使用 workers-oauth-provider 图书馆.
MCP服务器(由 Cloudflare Workers):
入门指南
先决条件
安装wrangler(全局):
npm i -g wrangler@latest谷歌云控制台设置
使用客户端ID和客户端密钥创建OAuth应用程序:
- 添加
http://localhost:8788/callback作为重定向URL
Cloudflare设置
创建KV缓存数据库
创建一个KV缓存数据库并记下其ID。添加以下键:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETCOOKIE_ENCRYPTION_KEY
您可以使用openssl生成一个32字节的随机值作为COOKIE_ENCRYPTION_KEY:
openssl rand -hex 32创建D1数据库
创建一个名为的D1数据库 sql_employees 并记下其ID。使用导入数据 simple_import_employees.sql:
wrangler d1 execute employees --remote --file ./simple_import_employees.sql______________________________________________________________________
使当前的Repo工作
第一步: 安装依赖项
npm install第二步: 配置您的环境 创建一个 .env.local 文件(复制自 .env.local.example):
cp .env.local.example .env.local编辑 .env.local 并添加您的Cloudflare ID:
# Get your KV namespace ID by running: wrangler kv:namespace create "OAUTH_KV"
KV_ID=your-kv-namespace-id-here
# Get your D1 database ID by running: wrangler d1 create sql_employees
# Or list existing databases: wrangler d1 list
D1_ID=your-d1-database-id-here这 wrangler.jsonc 运行时,文件将从模板自动生成 npm run dev 或 npm run deploy.
步骤3: 在您的本地空间准备KV
wrangler kv key put --local "GOOGLE_CLIENT_ID" "" --binding="OAUTH_KV"
wrangler kv key put --local "GOOGLE_CLIENT_SECRET" "" --binding="OAUTH_KV"
wrangler kv key put --local "COOKIE_ENCRYPTION_KEY" "" --binding="OAUTH_KV"步骤4: 在本地运行
npm run dev
# or
wrangler dev本地MCP服务器应在端口8788上启动。您现在可以在Postman上进行测试。
步骤5: 部署到生产环境
npm run deploy
# or
wrangler deploy过了一段时间,您应该可以在Cloudflare平台上看到它。记下它的URL: ``
步骤6: 更新谷歌云控制台 再次转到您的Google Cloud控制台,并将以下内容添加到重定向URL列表中:
https:///callback
现在,您也应该能够使用远程MCP服务器了!
跟随我的视频,从头开始一切
您可以使用以下命令开始构建它:
npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-google-oauth注意:这很慢,需要一些时间。
______________________________________________________________________
从Claude Desktop访问远程MCP服务器
打开克劳德桌面,导航到设置->开发人员->编辑配置。这将打开控制Claude可以访问哪些MCP服务器的配置文件。
用以下配置替换内容。重新启动Claude Desktop后,将打开一个浏览器窗口,显示您的OAuth登录页面。完成身份验证流程,授予Claude访问您的MCP服务器的权限。授予访问权限后,这些工具将可供您使用。
{
"mcpServers": {
"employee-db": {
"command": "npx",
"args": [
"mcp-remote",
"https:///mcp"
]
}
}
}一旦工具(下🔨) 在界面中显示,您可以要求Claude使用它们。例如:“你能列出数据库中的所有表吗?”或“给我看看员工表模式”。Claude应该调用该工具并显示MCP服务器生成的结果。
MCP检验员测试
使用测试远程服务器 检查员:
npx @modelcontextprotocol/inspector@latest输入您的服务器URL并点击连接:
- 当地:
http://localhost:8788/mcp - 远程:
https:///mcp
完成身份验证流程后,您将看到可用的数据库工具。
使用游标和其他MCP客户端
要将Cursor与MCP服务器连接,请选择 Type:“命令”和 Command 字段,将命令和args字段组合成一个(例如。 npx mcp-remote https://..workers.dev/mcp).
请注意,虽然Cursor支持HTTP+SSE服务器,但它不支持身份验证,因此您仍然需要使用 mcp-remote (并且使用STDIO服务器,而不是HTTP服务器)。
您可以通过打开客户端的配置文件,添加用于Claude设置的相同JSON,并重新启动MCP客户端,将MCP服务器连接到其他MCP客户端,如Windsurf。
它是如何工作的?
OAuth提供者
OAuth Provider库是Cloudflare Workers的完整OAuth 2.1服务器实现。它处理OAuth流的复杂性,包括令牌发放、验证和管理。在这个项目中,它扮演着双重角色:
- 对连接到服务器的MCP客户端进行身份验证
- 管理与Google Cloud OAuth服务的连接
- 在KV存储器中安全存储令牌和身份验证状态
耐用MCP
Durable MCP通过Cloudflare的Durable Objects扩展了基本MCP功能,提供:
- MCP服务器的持久状态管理
- 请求之间身份验证上下文的安全存储
- 通过以下方式访问经过身份验证的用户信息
this.props - 支持基于用户身份的有条件工具可用性
MCP远程
MCP Remote库使您的服务器能够公开可由MCP客户端(如检查器)调用的工具。它
- 定义客户端和服务器之间的通信协议
- 提供了一种结构化的方法来定义工具
- 处理请求和响应的序列化和反序列化
- 支持用于客户端通信的流式HTTP(推荐)和服务器发送事件(SSE)协议
传输协议迁移
此示例已更新以支持新 流式HTTP 传输协议,它取代了已弃用的服务器发送事件(SSE)协议。服务器现在公开了两个端点:
/mcp- 推荐:使用新的Streamable HTTP协议/sse- 已弃用:传统SSE协议(为向后兼容而维护)
所有新的集成都应该使用 /mcp 终点。SSE端点将在未来的版本中删除。
