MCP认证云运行
一个安全的MCP(模型上下文协议)服务器托管在Google Cloud Run上,通过Google Cloud IAM提供身份验证访问,从而实现团队协作。这使得团队可以在正式的MCP身份验证实施之前,通过互联网共享自定义的MCP服务器。
服务介绍
在 Google Cloud Run 上托管 MCP SSE 服务器
目前(2024年03月04日),MCP 仍在处理身份验证和授权问题。他们计划在2025年上半年完成这项工作。问题是,我现在就想与我的团队共享我的MCP服务器。因此,我们现在在这里讨论。目前使用SSE MCP服务器(例如在Cursor中)的唯一即时解决方案是基于网络层的解决方案(例如代理)。基本认证、API密钥等暂时无法使用。
通过利用GCP Cloud Run和基于用户的IAM认证,我创建了一种简单且安全的方法,允许客户端通过互联网访问自定义的MCP服务器。

工作原理
MCP 服务器托管在 Google Cloud Run 上。利用 Cloud Run IAM 认证,我们可以通过使用 Google Cloud SDK 创建代理连接来安全地从互联网连接到服务器。
TLDR README
如果您已经本地安装了 Docker 和 gcloud CLI,那么这应该几乎可以开箱即用,并且只需少量配置即可。
步骤1: 使用您的项目 ID、服务账号电子邮件等更新 deploy.sh。
步骤2: 部署成功后,获取提供的 Cloud Run URL,并将其与您的项目 ID 一起添加到 mcp_proxy.ts 中。
步骤3: 运行代理 npx ts-node mcp_proxy.ts

步骤4: 通过 http://localhost:3030 访问您的 MCP 服务器 - 在 Cursor 的设置 > 功能 > MCP 服务器下添加它(确保选择 SSE 而不是命令)
详细的README
部署步骤
- 克隆仓库
- 运行
npm install安装依赖项 - 运行
npm run dev以在本地启动服务器
部署到 Google Cloud Run
要将您的 MCP 服务器部署到 Google Cloud Run:
- 确保已安装 Google Cloud SDK
- 使用您的项目详细信息更新
deploy.sh脚本:PROJECT_ID: 您的 Google Cloud 项目 IDREGION: 您首选的 GCP 区域SERVICE_ACCOUNT_EMAIL: 具有适当权限的服务账号电子邮件
- 运行部署脚本:
chmod +x deploy.sh ./deploy.sh
部署脚本将会:
- 构建一个用于您的 MCP 服务器的 Docker 容器
- 将其推送到 Google Container Registry
- 启用认证并将其部署到 Cloud Run
连接到已部署的 MCP 服务器
要连接到已部署的 MCP 服务器:
-
本地运行 MCP 代理:
npx ts-node mcp_proxy.ts -
代理将:
- 检查您是否已通过 Google Cloud 进行身份验证
- 自动获取身份验证令牌
- 创建一个本地代理服务器(默认:http://localhost:3030)
- 将经过身份验证的请求转发到您的 Cloud Run 服务
-
配置您的 MCP 客户端以连接到本地代理 URL
在 Cursor 中使用 MCP 服务器
- 首先,让我们运行我们的代理,以在本地机器和托管在 Google Cloud Run 上的 MCP 服务器之间建立连接。
npx ts-node mcp_proxy.ts
- 现在让我们在 MCP 服务器部分的设置 > 功能标签页中将本地代理服务器添加到光标中。


- 现在,一切准备就绪!启动一个新的 composer(确保您处于 agent 模式),并询问某个地点的天气。您的终端中代理连接的输出 + composer 的输出应如下所示:

安全
此设置提供了几个安全优势:
- 您的 MCP 服务器未经身份验证无法公开访问
- 所有连接都通过 Google Cloud IAM 进行保护
- 团队成员需要 Google Cloud SDK 访问权限才能连接
连接问题
- 确认
mcp_proxy.ts中的 Cloud Run URL 与已部署的服务匹配 - 检查 Cloud Run 日志中的任何服务器端错误
贡献
欢迎贡献!请随时提交问题或拉取请求。