使用说明
OpenAI平台的谷歌地图MCP服务器
将Google Maps Platform Code Assist MCP服务器部署到Google Cloud Run并将其连接到OpenAI平台,使ChatGPT能够访问最新的Google Maps Platform文档和代码示例。
概述
该项目为谷歌地图平台代码辅助MCP服务器提供了一个完整的部署解决方案。MCP服务器充当中介:
- 接收来自ChatGPT的MCP协议请求(通过OpenAI平台)
- 通过内部RAG引擎查询谷歌地图平台文档
- 返回相关文档片段和代码示例
建筑
OpenAI Platform (ChatGPT)
↓ HTTP POST (MCP Protocol)
Your MCP Server (Cloud Run)
↓ Internal RAG Engine
Google Maps Platform Documentation & Code Samples
先决条件
所需工具
- GitHub账号 (不需要本地工具!)
- 谷歌云帐户 (用于托管服务)
谷歌云设置
不需要本地工具! 一切都可以通过Google Cloud Console web界面完成。
快速开始
1.部署到云端运行
通过GitHub操作自动部署(不需要本地文件)
⚠️ 重要提示:首先启用API! 在设置机密之前,您必须启用所需的API。看 步骤0:启用所需的API 详细说明。
设置一次,然后每次向存储库推送都会自动部署:
-
启用所需的API(请先执行此操作!):
-
设置GitHub机密(安全-不存储在存储库中):
- 转到您的存储库:https://github.com/PeterJBurke/google-maps-mcp-server
- 点击 设置 tab → 行动 (左侧边栏)→ 秘密和变量 → 行动
- 点击 “新存储库机密” 按钮
- 添加两个秘密(详见 部署指导):
- 名字:
GCP_PROJECT_ID→ 价值:您的Google Cloud项目ID(请参阅 如何获得它) - 名字:
GCP_SA_KEY→ 价值:服务帐户密钥JSON文件的全部内容
- 名字:
安全说明: GitHub Secrets由GitHub单独加密和存储。他们是:
- ✅ 未存储在存储库代码中
- ✅ 在日志或存储库历史记录中不可见
- ✅ 仅可访问GitHub Actions工作流
- ✅ 即使在公共存储库中也可以安全使用
看 部署指导 获取带有详细说明的分步说明。
-
自动部署:
- 自动:将代码推送到
main或master分支→ 自动部署 - 手动触发 (无需推送代码即可部署):
- 转到存储库→ Click “行动” 顶部的选项卡(在主导航中,而不是设置中)
- 在左侧边栏中,单击 “部署到云运行”
- 点击 “运行工作流” 按钮(右上角)→ 选择分支→ Click “运行工作流”
- 自动:将代码推送到
注: 部署会自动在Google Cloud Build中构建Docker镜像。不需要本地工具!
3.获取您的MCP服务器URL
成功部署后,您需要获取服务URL:
来自GitHub操作:
- 转到存储库→ 行动 标签
- 点击成功运行的工作流
- 寻找 “获取服务URL” 阶跃输出
- 复制显示的URL(它将以结尾
/mcp)
从谷歌云控制台:
- 首选 云运行控制台
- 点击
google-maps-mcp-server - 复制顶部的URL
- 添加
/mcp到最后
URL格式:
- 基本URL:
https://google-maps-mcp-server-xxxxx-uc.a.run.app - MCP端点:添加
/mcp→https://google-maps-mcp-server-xxxxx-uc.a.run.app/mcp - 这
xxxxx是Google为您的服务分配的唯一标识符
4.配置OpenAI平台
-
打开 OpenAI平台
-
点击“添加MCP服务器”或使用“连接到MCP服务器”模式
-
输入以下内容:
- 统一资源定位符:
https://your-service-name-xxxxx-uc.a.run.app/mcp - 标签:
google-maps-platform-code-assist - 描述:
Google Maps Platform Code Assist MCP Server - Provides access to official documentation and code samples - 认证:留空(如果使用经过身份验证的访问,则进行配置)
- 统一资源定位符:
-
点击“连接”
5.测试集成
询问ChatGPT问题,例如:
- “如何使用Places API?”
- “显示地址的地理编码代码”
- “用标记显示地图的最佳方式是什么?”
项目结构
google-maps-mcp-server/
├── README.md # This file
├── package.json # Node.js dependencies
├── Dockerfile # Container configuration for Cloud Run
├── server.js # HTTP server wrapper
├── .dockerignore # Docker build exclusions
├── .gitignore # Git ignore patterns
├── .gcloudignore # Cloud Run source exclusions
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions deployment workflow
└── docs/
├── DEPLOYMENT.md # Detailed deployment guide
├── OPENAI_SETUP.md # OpenAI Platform setup guide
└── TROUBLESHOOTING.md # Common issues and solutions
配置
环境变量
PORT:服务器端口(默认值:8080,Cloud Run会自动设置此端口)NODE_ENV:环境(生产、开发)
云运行设置
默认配置:
- 记忆:512米
- 中央处理器: 1
- 最小实例数:0(缩放到零)
- 最大实例数: 10
- 超时:300秒
- 端口: 8080
要自定义,请编辑 .github/workflows/deploy.yml 存储库中的文件,或通过以下方式更新设置 谷歌云控制台.
测试
部署后,测试Cloud Run端点:
-
获取您的服务URL:
- 检查GitHub Actions工作流输出(显示URL)
- 或前往 谷歌云控制台 → 云运行 → 您的服务→ 复制URL
-
测试运行状况端点:
- 访问
https://your-service-url.run.app/health在浏览器中 - 应返回状态为“健康”的JSON
- 访问
-
测试MCP端点:
- 使用在线工具,如 邮递员 或 reqbin.com
- 张贴到
https://your-service-url.run.app/mcp - 主体:
{"jsonrpc":"2.0","method":"initialize","id":1}
可用的MCP工具
一旦连接到OpenAI平台,ChatGPT将可以访问:
retrieve-instructions:用于了解如何查询Google Maps Platform文档的辅助工具retrieve-google-maps-platform-docs:搜索官方文档、教程和代码示例的主要工具
成本
Google Cloud Run定价:
- 免费层:每月200万次请求,360000 GB内存秒,180000 vCPU秒
- 免费等级之后:只为你使用的东西付费
- 请求:每百万美元0.40美元
- 内存:每秒0.0000025美元
- CPU:每vCPU秒0.00002400美元
对于典型的使用,成本很低。看 云运行定价 了解详情。
安全
生产建议
- 启用身份验证:删除
--allow-unauthenticated并使用IAM - 使用HTTPS:Cloud Run默认提供HTTPS
- 设置资源限制:配置适当的内存和CPU限制
- 监视器使用情况:设置云监控警报
- 审核日志:定期检查云运行日志是否存在问题
身份验证设置
要要求身份验证,请执行以下操作:
- 首选 谷歌云控制台
- 引导到 云运行 → 您的服务
- 点击 编辑和部署新修订版
- 在...之下 安全,取消选中“允许未经身份验证的调用”
- 点击 部署
然后使用访问令牌配置OpenAI平台(请参阅 OpenAI设置指南).
故障排除
看 docs/TROUBLESHOOTING.md 常见问题和解决方案。
常见问题:
- Docker构建失败
- Cloud Run部署错误
- OpenAI平台的连接问题
- 性能问题
文档
- 详细部署指南
- 谷歌地图设置和身份验证指南 (推荐)
- OpenAI平台设置
- 安全指南 - 重要提示:阅读GitHub Secrets安全
- 故障排除指南
- 谷歌地图平台MCP文档
GitHub操作设置
要在每次推送时启用自动部署:
所有设置都可以通过web界面完成,不需要本地工具!
请参阅中的详细分步说明 GitHub操作设置 其中包括:
- 启用所需的API (重要提示-请先执行此操作!)
- 通过谷歌云控制台(web UI)创建服务帐户
- 通过web界面授予权限
- 通过web界面创建和下载密钥
- 在GitHub上添加秘密
快速摘要:
- 首先启用API: 云运行API, 云构建API, 工件注册表API
- 从获取您的项目ID 谷歌云控制台
- 创建服务帐户并下载密钥(全部通过web UI)
- 将机密添加到GitHub存储库
- 推送到存储库→ 自动部署!
许可证
Apache 2.0
贡献
欢迎投稿!请打开问题或提交拉取请求。
支持
- 谷歌地图平台文档: developers.google.com/maps
- MCP文件: developers.google.com/maps/ai/mcp
- 云运行文档: cloud.google.com/run/docs