mcp-google-oauth
Model Context Protocol (MCP) 服务器 + Google OAuth
这是一个支持远程 MCP 连接的 Model Context Protocol (MCP) 服务器,内置 Google OAuth 功能。
你可以将其部署到你自己的 Cloudflare 账户中,创建自己的 Google Cloud OAuth 客户端应用后,即可获得一个功能完整的远程 MCP 服务器,并在此基础上进行构建。用户可以通过登录其 Google 账户来连接到你的 MCP 服务器。
你可以将此作为参考示例,了解如何使用 workers-oauth-provider 库 将其他 OAuth 提供商与部署在 Cloudflare 上的 MCP 服务器集成。
该 MCP 服务器(由 Cloudflare Workers 提供支持):
对你的 MCP 客户端充当 OAuth 服务器
对你的真实 OAuth 服务器(在本例中为 Google)充当 OAuth 客户端
[!WARNING] 这是一个演示模板,旨在帮助你快速入门。虽然我们已经实现了一些安全控制措施,但在部署到生产环境之前,你必须实施所有预防性和纵深防御安全措施。请查阅我们的综合安全指南:Securing MCP Servers
快速开始
克隆仓库并安装依赖:npm install
生产环境
创建一个新的 Google Cloud OAuth 应用:
对于 Homepage URL,指定
https://mcp-google-oauth.<your-subdomain>.workers.dev对于 Authorization callback URL,指定
https://mcp-google-oauth.<your-subdomain>.workers.dev/callback记下你的 Client ID 并生成一个 Client secret。
通过 Wrangler 设置密钥
wrangler secret put GOOGLE_CLIENT_ID
wrangler secret put GOOGLE_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32
wrangler secret put HOSTED_DOMAIN # optional: use this when restrict google account domain设置 KV 命名空间
创建 KV 命名空间:
wrangler kv:namespace create "OAUTH_KV"使用 KV ID 更新 Wrangler 文件
部署与测试
部署 MCP 服务器,使其在你的 workers.dev 域名上可用
wrangler deploy
使用 Inspector 测试远程服务器:
npx @modelcontextprotocol/inspector@latest输入 https://mcp-google-oauth.<your-subdomain>.workers.dev/mcp 并点击连接。完成身份验证流程后,你将看到工具正常工作:
现在你已经部署了一个远程 MCP 服务器!
访问控制
此 MCP 服务器使用 Google Cloud OAuth 进行身份验证。所有经过身份验证的 Google 用户都可以访问 "add" 等基本工具。当你使用托管域名限制用户时,请设置 HOSTED_DOMAIN 环境变量。
从 Claude Desktop 访问远程 MCP 服务器
打开 Claude Desktop,导航到 Settings -> Developer -> Edit Config。这将打开控制 Claude 可以访问哪些 MCP 服务器的配置文件。
将内容替换为以下配置。重新启动 Claude Desktop 后,将打开一个浏览器窗口,显示你的 OAuth 登录页面。完成身份验证流程,授予 Claude 访问你的 MCP 服务器的权限。授予访问权限后,这些工具将可供你使用。
{
"mcpServers": {
"math": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp-google-oauth.<your-subdomain>.workers.dev/mcp"
]
}
}
}当工具(位于 🔨 下)出现在界面中后,你可以让 Claude 使用它们。例如:"Could you use the math tool to add 23 and 19?"。Claude 应调用该工具并显示 MCP 服务器生成的结果。
本地开发
如果你想迭代和测试你的 MCP 服务器,可以在本地开发环境中进行。这需要你在 Google Cloud 上创建另一个 OAuth 应用:
对于 Homepage URL,指定
http://localhost:8788对于 Authorization callback URL,指定
http://localhost:8788/callback记下你的 Client ID 并生成一个 Client secret。
在项目根目录创建一个
.dev.vars文件,内容如下:
GOOGLE_CLIENT_ID=your_development_google_cloud_oauth_client_id
GOOGLE_CLIENT_SECRET=your_development_google_cloud_oauth_client_secret开发与测试
在本地运行服务器,使其在 http://localhost:8788 可用
wrangler dev
要测试本地服务器,请在 Inspector 中输入 http://localhost:8788/mcp 并点击连接。按照提示操作后,你将能够 "List Tools"。
使用 Claude 和其他 MCP 客户端
使用 Claude 连接到远程 MCP 服务器时,你可能会看到一些错误消息。这是因为 Claude Desktop 尚不支持远程 MCP 服务器,所以有时会感到困惑。要验证 MCP 服务器是否已连接,请将鼠标悬停在 Claude 界面右下角的 🔨 图标上。你应该会看到你的工具可用。
使用 Cursor 和其他 MCP 客户端
要将 Cursor 与你的 MCP 服务器连接,请选择 Type:"Command",并在 Command 字段中将命令和参数字段合并为一个(例如 npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/mcp)。
请注意,虽然 Cursor 支持 HTTP+SSE 服务器,但它不支持身份验证,因此你仍然需要使用 mcp-remote(并且要使用 STDIO 服务器,而不是 HTTP 服务器)。
你可以将 MCP 服务器连接到其他 MCP 客户端(如 Windsurf),方法是打开客户端的配置文件,添加与 Claude 设置相同的 JSON,然后重新启动 MCP 客户端。
它是如何工作的?
OAuth Provider
OAuth Provider 库是 Cloudflare Workers 的完整 OAuth 2.1 服务器实现。它处理 OAuth 流程的复杂性,包括令牌签发、验证和管理。在此项目中,它扮演双重角色:
对连接到服务器的 MCP 客户端进行身份验证
管理与 Google Cloud OAuth 服务的连接
在 KV 存储中安全地存储令牌和身份验证状态
Durable MCP
Durable MCP 通过 Cloudflare 的 Durable Objects 扩展了基础 MCP 功能,提供:
MCP 服务器的持久状态管理
请求之间身份验证上下文的安全存储
通过
this.props访问已认证用户信息基于用户身份的条件工具可用性支持
MCP Remote
MCP Remote 库使你的服务器能够公开可由 Inspector 等 MCP 客户端调用的工具。它:
定义客户端与服务器之间的通信协议
提供定义工具的结构化方式
处理请求和响应的序列化与反序列化
支持 Streamable HTTP(推荐)和 Server-Sent Events (SSE) 两种客户端通信协议
传输协议迁移
此示例已更新为支持新的 Streamable HTTP 传输协议,该协议取代了已弃用的 Server-Sent Events (SSE) 协议。服务器现在公开两个端点:
/mcp- 推荐:使用新的 Streamable HTTP 协议/sse- 已弃用:旧版 SSE 协议(为向后兼容而保留)
所有新集成都应使用 /mcp 端点。SSE 端点将在未来版本中移除。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Streamable HTTP MCP server for Google Calendar and Sheets with OAuth login.
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
MCP server for Google Veo AI video generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/enricojam-maker/mcp-google-oauth'
If you have feedback or need assistance with the MCP directory API, please join our Discord server