M

MCP安全代理云运行版

@944750720/mcp-sse-cloud-run
0 Stars 10 次浏览 944750720 更新于 2026-08-23

一种安全的代理解决方案,用于在 Google Cloud Run 上托管 MCP(模型上下文协议)服务器,允许团队通过 IAM 身份验证共享访问权限,同时绕过当前 MCP 身份验证的限制。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

在 Google Cloud Run 上托管 MCP SSE 服务器

目前(2024年3月4日),MCP 仍在处理身份验证和授权问题。他们计划在2025年上半年完成这项工作。问题是,我现在就想与我的团队共享我的MCP服务器。所以我们在这里讨论。目前使用SSE MCP服务器(例如在Cursor中)的唯一即时解决方案是基于网络层的解决方案(例如代理)。基本认证、API密钥等,暂时不要考虑。

通过利用GCP Cloud Run和基于用户的IAM身份验证,我创建了一种简单且安全的方法,允许客户端通过互联网访问自定义的MCP服务器。

MCP Roadmap

MCP Not Supported

工作原理

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

部署步骤

  1. 克隆仓库
  2. 运行 npm install 安装依赖
  3. 运行 npm run dev 以在本地启动服务器

部署到Google Cloud Run

要将您的MCP服务器部署到Google Cloud Run:

  1. 确保已安装Google Cloud SDK
  2. 使用您的项目详细信息更新deploy.sh脚本:
    • PROJECT_ID:您的Google Cloud项目ID
    • REGION:您首选的GCP区域
    • SERVICE_ACCOUNT_EMAIL:具有适当权限的服务账号电子邮件
  3. 运行部署脚本:
    chmod +x deploy.sh
    ./deploy.sh
    

部署脚本将会:

  • 为您的MCP服务器构建Docker容器
  • 将其推送到Google Container Registry
  • 启用身份验证后将其部署到Cloud Run

连接到已部署的MCP服务器

要连接到已部署的MCP服务器:

  1. 本地运行MCP代理:

    npx ts-node mcp_proxy.ts
    
  2. 代理将:

    • 检查你是否已通过Google Cloud进行身份验证
    • 自动获取身份验证令牌
    • 创建本地代理服务器(默认:http://localhost:3030)
    • 将经过身份验证的请求转发到您的Cloud Run服务
  3. 配置您的MCP客户端以连接到本地代理URL

在Cursor中使用MCP服务器

  1. 首先,让我们运行我们的代理,在本地机器和托管在 Google Cloud Run 上的 MCP 服务器之间建立连接。
npx ts-node mcp_proxy.ts
  1. 现在,让我们在 MCP 服务器部分的设置 > 功能选项卡中将本地代理服务器添加到光标中。

Adding proxy to cursor

Adding proxy to cursor

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

Running proxy asking question

安全性

此设置提供了几个安全优势:

  • 您的 MCP 服务器未经身份验证是无法公开访问的
  • 所有连接都通过 Google Cloud IAM 进行保护
  • 团队成员需要 Google Cloud SDK 访问权限才能连接

连接问题

  • 确认 mcp_proxy.ts 中的 Cloud Run URL 与已部署的服务相匹配
  • 检查 Cloud Run 日志以查找任何服务器端错误

贡献

欢迎贡献!随时提交问题或拉取请求。

许可证

MIT