SSE MCP服务器代理

通过Google Cloud Run和IAM认证,提供安全的SSE MCP服务器代理服务,实现团队即时共享。

  • by adamsiwiec1
  • TypeScript
  • 本地部署
  • 24 星标
  • 更新于
在 GitHub 查看 the-freetech-company/mcp-sse-authenticated-cloud-run

使用说明

在Google Cloud上运行MCP SSE服务器

目前(2024年4月3日),MCP仍在处理身份验证和授权问题。他们计划在2025年上半年完成这项工作。问题是,我现在想与我的团队共享我的MCP服务器。所以,我们到了。目前,在Cursor等中使用SSE MCP服务器的唯一直接答案是基于网络层的解决方案(例如代理)。基本身份验证、api密钥,别管它了。

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

MCP路线图

运作原理

MCP服务器托管在Google Cloud Run上。利用Cloud Run IAM身份验证,我们可以通过使用Google Cloud SDK创建代理连接,从互联网安全地连接到服务器。

TLDR自述文件

这 应该开箱即用 如果您已经在本地设置了docker和gcloud CLI,则只需进行最小配置。

第一步: 更新 deploy.sh 使用您的项目id、服务帐户电子邮件等。

第二步: 部署成功后,获取提供的云运行URL,并将其添加到 mcp_proxy.ts 以及您的项目id。

步骤3: 运行代理 npx ts-node mcp_proxy.ts

步骤3: 使用访问您的MCP服务器http://localhost:3030-将其添加到“设置”>“功能”>“MCP服务器”下的“光标”中(确保您选择了“SSE not”命令)

冗长乏味的自述文件

部署步骤

  1. 克隆存储库
  2. 跑 npm install 安装依赖项
  3. 跑 npm run dev 在本地启动服务器

部署到Google Cloud Run

要将MCP服务器部署到Google Cloud Run,请执行以下操作:

  1. 确保你有 谷歌云SDK 安装
  2. 更新 deploy.sh 包含项目详细信息的脚本:
    • PROJECT_ID:您的Google Cloud项目ID
    • REGION:您首选的GCP地区
    • SERVICE_ACCOUNT_EMAIL:具有适当权限的服务帐户电子邮件
  3. 运行部署脚本:
    chmod +x deploy.sh
    ./deploy.sh
    

部署脚本将:

  • 为您的MCP服务器构建Docker容器
  • 将其推送到Google容器注册表
  • 将其部署到启用身份验证的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服务器部分的设置>功能选项卡中的光标上。
  1. 现在,我们可以出发了!启动一个新的编辑器(确保您处于代理模式),并询问某个位置的天气情况。连接代理的终端中的输出+作曲家的输出应该如下所示:

安全

此设置提供了几个安全好处:

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

连接问题

  • 验证中的云运行URL mcp_proxy.ts 匹配您部署的服务
  • 检查云运行日志是否有任何服务器端错误

贡献

欢迎投稿!请随时提交问题或拉取请求。

许可证

麻省理工学院