本项目提供了一种在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、服务账户电子邮件等信息。mcp_proxy.ts文件中,同时包含您的项目ID。npx ts-node mcp_proxy.ts。
http://localhost:3030访问您的MCP服务器,并在Cursor的设置中添加它(记得选择SSE而不是命令)。deploy.sh文件进行简单配置,即可完成服务器的部署。git clone [仓库地址]
npm install
npm run dev
deploy.sh脚本中的项目信息:
PROJECT_ID:您的Google Cloud项目IDREGION:您选择的GCP区域SERVICE_ACCOUNT_EMAIL:具备适当权限的服务账户电子邮件chmod +x deploy.sh
./deploy.sh
该脚本将完成以下操作:
npx ts-node mcp_proxy.ts
http://localhost:3030。MCP服务器托管在Google Cloud Run上,利用Cloud Run的IAM身份验证功能,通过Google Cloud SDK创建代理连接,将服务器安全地连接到互联网。
⚠️ 重要提示
- 确保所有敏感信息(如API密钥)不在代码库中明文存储。
- 使用IAM策略限制对Cloud Run服务的访问权限,确保只有经过授权的服务和用户可以调用它。
如果遇到无法连接的问题,请检查以下内容:
http://localhost:3030。我们欢迎社区贡献!如果发现任何错误或有改进建议,请提交GitHub问题或直接 fork 仓库并创建pull request。
该项目遵循MIT许可证。
⚠️ 重要提示
本文档中的图片路径和示例可能需要根据实际项目结构进行调整。