Google Maps MCP 服务器

使用说明(Markdown 格式)

项目概览

  • 这是一个基于 Model Context Protocol (MCP) 的后端服务器,专门把 Google Maps Platform 的功能暴露为可通过 MCP 客户端调用的工具集合,进而为 LLM 应用提供结构化的地图数据、路线计算和地点信息等上下文能力。

主要功能点

  • 提供 15 个工具,覆盖三个分类:
    • 地图(Maps):静态地图 URL、嵌入 URL、海拔、Street View 等
    • 路线(Routes):驾车/步行/自行车/公共交通的逐步导航、距离矩阵、多点优化等
    • 地点(Places):地理编码、地点详情、文本搜索、周边搜索、自动完成、照片、地址校验、时区等
  • 传输与会话
    • 基于 MCP SDK 的流式 HTTP 传输(Streamable HTTP Transport),支持状态化会话和 Keep-alive
    • 会话通过 Mcp-Session-Id 进行管理,具备会话清理与容量控制
    • 通过 X-Api-Key 进行服务端认证,约束后端访问
  • 数据源与安全
    • 所有 Google Maps 调用使用 REST API,直接通过 Node.js fetch 实现,无需额外的 Google SDK
    • 旧版 API 使用 key 参数,新版 API 使用 X-Goog-Api-Key 头部进行鉴权
  • 部署与运行
    • 提供本地、Docker、以及构建自源代码的多种运行方式
    • 公开健康接口 /health,MCP 端点 /mcp,便于集成到现有 MCP 客户端工作流
  • 客户端连接示例
    • 官方 README 中给出与 Claude Desktop/其他 MCP 客户端的对接方式,示例包含使用 mcp-remote 的启动参数与必要的 API key 头部

安装步骤(简要)

  • 确保环境
    • Node.js 22 及以上(可用 Docker 运行)
    • Google Maps Platform API Key(具备所需 API 的权限)
    • Google Cloud 项目并开启账单
  • 基本本地运行
    • 克隆仓库并安装依赖
    • 设置 GOOGLE_MAPS_API_KEY 与 MCP_AUTH_TOKEN 环境变量
    • 启动服务器
  • 生产化运行
    • 使用 Docker 或 Docker Compose 进行部署
    • 持续监控健康情况与会话状态

服务器配置(给 MCP 客户端的连接信息,JSON 格式描述) { "serverName": "google-maps-mcp", "command": "npx", "args": [ "mcp-remote", "http://localhost:3003/mcp", "--header", "X-Api-Key: <YOUR_MCP_TOKEN>" ], "description": "用于 MCP 客户端连接的启动信息,需替换 <YOUR_MCP_TOKEN> 为实际的 MCP 认证令牌。服务器端会对 X-Api-Key 进行校验,未提供或不匹配将拒绝连接。" }

基本使用方法

  • 启动前准备
    • 将 GOOGLE_MAPS_API_KEY 设置为一个有效的 Google Maps API Key
    • 将 MCP_AUTH_TOKEN 设置为客户端连接时需要使用的令牌
  • 启动服务器
    • 以 Docker 或本地 Node.js 环境启动
  • 客户端连接步骤(MCP 客户端需要提供以下信息才能建立连接)
    • 指定服务器名称为 google-maps-mcp
    • 使用命令与参数启动 mcp-remote 客户端,目标地址为 http://localhost:3003/mcp
    • 在请求中加入头部 X-Api-Key,值为实际的 MCP_TOKEN
  • 使用流程
    • 客户端对服务器执行 initialize 初始化,设定协议版本等能力
    • 根据需求调用工具,如 maps_static_map、routes_compute、places_geocode 等
    • 读取工具输出的内容,进行后续对话上下文的构建与渲染
  • 运行提示
    • 默认端口 3003,可通过 PORT 环境变量覆盖
    • 支持通过 Docker Compose 部署,结合环境变量注入 API Key 与 Token

服务器信息