README
🚀 在Google Cloud Run上托管MCP SSE服务器
本项目提供了一种在Google Cloud Run上托管MCP SSE服务器的解决方案,解决了当前MCP身份验证和授权功能不完善的问题,让您能安全地通过互联网访问自定义的MCP服务器。
截至2024年3月4日,MCP仍在处理身份验证和授权问题,计划于2025年上半年完成此功能。目前,若要在Cursor等工具中使用MCP服务器,唯一直接的方法是基于网络层的解决方案(如代理),基本身份验证、API密钥等其他功能暂不可用。而本方案利用Google Cloud Run和基于用户的IAM身份验证,为客户端访问自定义MCP服务器提供了简单且安全的途径。

🚀 快速开始
如果您的环境已配置好Docker和gcloud CLI,且只需少量设置,此方案应该可以开箱即用。具体步骤如下:
- 更新
deploy.sh文件:在deploy.sh中填入您的项目ID、服务账户电子邮件等信息。 - 获取并添加URL:部署成功后,获取Cloud Run提供的URL,并将其添加到
mcp_proxy.ts文件中,同时包含您的项目ID。 - 运行代理:执行命令
npx ts-node mcp_proxy.ts。
- 访问服务器:通过
http://localhost:3030访问您的MCP服务器,并在Cursor的设置中添加它(记得选择SSE而不是命令)。
✨ 主要特性
- 安全访问:借助Google Cloud Run的IAM身份验证功能,安全地将MCP服务器连接到互联网。
- 简单部署:只需对
deploy.sh文件进行简单配置,即可完成服务器的部署。
📦 安装指南
克隆仓库
- 将此仓库克隆到本地环境:
git clone [仓库地址]
- 安装所有依赖项:
npm install
- 启动服务器进行本地开发:
npm run dev
部署到Google Cloud Run
- 确保已安装Google Cloud SDK。
- 更新
deploy.sh脚本中的项目信息:PROJECT_ID:您的Google Cloud项目IDREGION:您选择的GCP区域SERVICE_ACCOUNT_EMAIL:具备适当权限的服务账户电子邮件
- 运行部署脚本:
chmod +x deploy.sh
./deploy.sh
该脚本将完成以下操作:
- 使用Docker构建MCP服务器容器。
- 将容器推送到Google Container Registry。
- 配置并部署到Cloud Run,同时启用身份验证功能。
连接到已部署的MCP服务器
- 在本地运行代理:
npx ts-node mcp_proxy.ts
- 打开浏览器并访问
http://localhost:3030。
使用Cursor配置MCP服务器
- 打开Cursor的设置界面。
- 添加新的MCP服务器,输入相关URL和端点信息。

🔧 技术细节
MCP服务器托管在Google Cloud Run上,利用Cloud Run的IAM身份验证功能,通过Google Cloud SDK创建代理连接,将服务器安全地连接到互联网。
📚 详细文档
安全注意事项
⚠️ 重要提示
- 确保所有敏感信息(如API密钥)不在代码库中明文存储。
- 使用IAM策略限制对Cloud Run服务的访问权限,确保只有经过授权的服务和用户可以调用它。
解决连接问题
如果遇到无法连接的问题,请检查以下内容:
- 确认代理正在运行,并且可以在本地访问
http://localhost:3030。 - 检查网络防火墙设置,确保端口未被阻止。
- 查看Cloud Run服务的访问日志,确认是否有权限问题。
贡献信息
我们欢迎社区贡献!如果发现任何错误或有改进建议,请提交GitHub问题或直接 fork 仓库并创建pull request。
📄 许可证
该项目遵循MIT许可证。
⚠️ 重要提示
本文档中的图片路径和示例可能需要根据实际项目结构进行调整。
Scan to join WeChat group