在Google Cloud上运行MCP SSE服务器
目前(2024年4月3日),MCP仍在处理身份验证和授权问题。他们计划在2025年上半年完成这项工作。问题是,我现在想与我的团队共享我的MCP服务器。所以,我们到了。目前,在Cursor等中使用SSE MCP服务器的唯一直接答案是基于网络层的解决方案(例如代理)。基本身份验证、api密钥,别管它了。
利用GCP Cloud Run和基于用户的IAM身份验证,我创建了一种简单、安全的方法,允许客户端通过互联网访问自定义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 Running proxy asking question
步骤3: 使用访问您的MCP服务器http://localhost:3030-将其添加到“设置”>“功能”>“MCP服务器”下的“光标”中(确保您选择了“SSE not”命令)
冗长乏味的自述文件
部署步骤
- 克隆存储库
- 跑
npm install安装依赖项 - 跑
npm run dev在本地启动服务器
部署到Google Cloud Run
要将MCP服务器部署到Google Cloud Run,请执行以下操作:
- 确保你有 谷歌云SDK 安装
- 更新
deploy.sh包含项目详细信息的脚本:
- PROJECT_ID:您的Google Cloud项目ID - REGION:您首选的GCP地区 - SERVICE_ACCOUNT_EMAIL:具有适当权限的服务帐户电子邮件
- 运行部署脚本:
chmod +x deploy.sh
./deploy.sh部署脚本将:
- 为您的MCP服务器构建Docker容器
- 将其推送到Google容器注册表
- 将其部署到启用身份验证的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访问权限才能连接
连接问题
- 验证中的云运行URL
mcp_proxy.ts匹配您部署的服务 - 检查云运行日志是否有任何服务器端错误
贡献
欢迎投稿!请随时提交问题或拉取请求。
