MCP安全代理云运行版
一种安全的代理解决方案,用于在 Google Cloud Run 上托管 MCP(模型上下文协议)服务器,允许团队通过 IAM 身份验证共享访问权限,同时绕过当前 MCP 身份验证的限制。
服务介绍
在 Google Cloud Run 上托管 MCP SSE 服务器
目前(2024年3月4日),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: 更新deploy.sh文件,填入你的项目ID、服务账号邮箱等信息。
步骤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 服务器部分的设置 > 功能选项卡中将本地代理服务器添加到光标中。


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

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