Purpose
mcp-google-map is designed to let AI agents directly use the capabilities of Google Maps Platform, avoiding the need to repeatedly build place search, route planning, and workflows for every AI application. It wraps Google Maps Platform as 18 read-only agent tools and 3 focused Skills, with which agents can find real places, verify routes, compare options, build practical itineraries, or audit local search visibility.
Main Capabilities
The project divides tools into two categories: atomic tools and composite tools:
- Atomic tools handle basic capabilities such as geocoding, place details, routes, weather, air quality, and maps.
- Composite tools are used to explore areas, compare candidate places, optimize stops, and measure local rankings.
The 3 Agent Skills respectively cover: general map research (google-maps), evidence-backed travel planning (google-maps-travel-planning), and local SEO business visibility analysis (google-maps-local-seo). Codex loads the full instructions of the corresponding Skill only when a request matches.
All 18 tools declare readOnlyHint: true and destructiveHint: false. Each MCP tool also corresponds to a short CLI name.
Usage
There are three integration methods, all requiring Node.js 18+ and a Google Maps Platform API key; actual calls may incur billing.
-
Codex (no MCP required): Set GOOGLE_MAPS_API_KEY in the Codex runtime environment, then start a new conversation. The doctor command can be used to verify the local setup without making Google API requests; success means the node, package, and api-key checks pass, and live-api is skipped. Use doctor --live only when you actually want to send checks that may incur billing.
-
Claude Code (no MCP required): Start a new Claude Code session, set GOOGLE_MAPS_API_KEY in its environment, and run the same doctor check. Claude exposes installed Skills through the plugin namespace, for example /mcp-google-map:google-maps-travel-planning. Each GitHub release also includes a versioned mcp-google-map-claude-plugin-v*.zip and SHA-256 checksum for direct distribution.
-
Standalone CLI: each invocation is stateless. A successful invocation returns { "success": true, "data": ... } on stdout; on failure it exits with a non-zero status and writes structured JSON to stderr. It can be used for batch address completion.
-
MCP client: stdio mode is for desktop MCP clients; Streamable HTTP is for shared and remote deployments. A comma-separated allowlist can be added via GOOGLE_MAPS_ENABLED_TOOLS to reduce the tool list context, for example "GOOGLE_MAPS_ENABLED_TOOLS": "maps_geocode,maps_directions,maps_search_places"; omitting it or using * exposes all tools.
Credential precedence is: X-Google-Maps-API-Key request header, --apikey command-line option, GOOGLE_MAPS_API_KEY environment variable. It is recommended to prefer the environment variable or request header; command-line keys may appear in shell history and process lists. The Google Cloud project to which the key belongs must have billing enabled, and its restrictions must be compatible with the runtime environment. Common place and route workflows require the Places API (New), Routes API, and usually also the Geocoding API.
Applicable Scenarios
- General place research: find and verify real places, preserve place identity, nearby search, view business details.
- Travel planning: calculate travel times, group nearby places, compare candidate options, build practical plans such as a "two-day Kyoto itinerary" and explain business-hours assumptions.
- Local SEO: audit local search visibility, measure local rankings.
- Automation and batch processing: perform stateless invocations such as address enrichment via the CLI.
Limitations
The project documentation clearly states that these are data and planning tools and do not guarantee safety, accessibility, business status, or ranking results. A successful API response does not prove accessibility, safety, legal applicability, or real-time availability. Weather availability is subject to regional restrictions. Applications that display Places reviews, photos, or AI summaries must comply with content attribution and storage guidelines. HTTP mode binding to 0.0.0.0 is only for when external connections need to be accepted; for multi-tenant deployments, it is recommended to use the X-Google-Maps-API-Key request header to isolate keys per session. HTTP mode supports per-session API key isolation and DNS rebinding protection.
The project is MIT-licensed and self-hostable. Live end-to-end invocation requires GOOGLE_MAPS_API_KEY and may incur charges: npm run test:e2e. For security-related notes, see SECURITY.md and Security Assessment Clarifications.