
The Mcp Google Map server provides AI agents with geospatial capabilities through 18 tools covering geocoding, place search, routing, elevation, distance matrix, timezone, weather, air quality, and map imagery, along with four composite tools for complex tasks like trip planning and location comparison. It operates in multiple modes (stdio, HTTP, and CLI) and includes built-in agent skill definitions to help AI models chain geographic operations together. The server solves the problem of giving language models practical understanding of the physical world by integrating Google Maps APIs in a structured, tool-based format that agents can reason about and utilize autonomously.
Public tool metadata for what this MCP can expose to an agent.
GOOGLE_MAPS_COMPUTE_ROUTE_MATRIXCalculates travel distance and duration matrix between multiple origins and destinations using the modern Routes API; supports OAuth2 authentication and various travel modes.7 paramsCalculates travel distance and duration matrix between multiple origins and destinations using the modern Routes API; supports OAuth2 authentication and various travel modes.
destinationsarrayfieldMaskstringlanguageCodestringoriginsarrayroutingPreferencestringROUTING_PREFERENCE_UNSPECIFIED · TRAFFIC_UNAWARE · TRAFFIC_AWARE · TRAFFIC_AWARE_OPTIMALdefault: TRAFFIC_AWAREtravelModestringDRIVE · BICYCLE · WALK · TWO_WHEELER · TRANSITdefault: DRIVEunitsstringMETRIC · IMPERIALdefault: IMPERIALGOOGLE_MAPS_DISTANCE_MATRIX_APIDEPRECATED: Legacy API that calculates travel distance and time for a matrix of origins and destinations. This API only works with API keys (no OAuth2 support). Use the modern 'Compute Route Matrix' action instead, which supports OAuth2 authentication. Supports different modes...13 paramsDEPRECATED: Legacy API that calculates travel distance and time for a matrix of origins and destinations. This API only works with API keys (no OAuth2 support). Use the modern 'Compute Route Matrix' action instead, which supports OAuth2 authentication. Supports different modes...
arrival_timeintegeravoidstringtolls · highways · ferries · indoordeparture_timeintegerdestinationsstringkeystringlanguagestringmodestringdriving · walking · bicycling · transitdefault: drivingoriginsstringregionstringtraffic_modelstringbest_guess · pessimistic · optimistictransit_modestringbus · subway · train · tram · railtransit_routing_preferencestringless_walking · fewer_transfersunitsstringmetric · imperialGOOGLE_MAPS_GEOCODING_APIDEPRECATED: Legacy API to convert addresses into geographic coordinates (latitude and longitude) and vice versa (reverse geocoding), or get an address for a Place ID. This API only works with API keys (no OAuth2 support). Consider using the modern Places API (Text Search or Ne...11 paramsDEPRECATED: Legacy API to convert addresses into geographic coordinates (latitude and longitude) and vice versa (reverse geocoding), or get an address for a Place ID. This API only works with API keys (no OAuth2 support). Consider using the modern Places API (Text Search or Ne...
addressstringboundsstringcomponentsstringextra_computationsarraykeystringlanguagestringlatlngstringlocation_typestringplace_idstringregionstringresult_typestringGOOGLE_MAPS_GET_DIRECTIONDEPRECATED: Legacy API that fetches detailed directions between an origin and a destination, supporting intermediate waypoints and various travel modes. This API only works with API keys (no OAuth2 support). Use the modern 'Get Route' action instead, which supports OAuth2 auth...7 paramsDEPRECATED: Legacy API that fetches detailed directions between an origin and a destination, supporting intermediate waypoints and various travel modes. This API only works with API keys (no OAuth2 support). Use the modern 'Get Route' action instead, which supports OAuth2 auth...
avoidstringdestinationstringlanguagestringmodestringoriginstringunitsstringwaypointsstringGOOGLE_MAPS_GET_ROUTECalculates one or more routes between two specified locations. Uses various travel modes and preferences; addresses must be resolvable by Google Maps.11 paramsCalculates one or more routes between two specified locations. Uses various travel modes and preferences; addresses must be resolvable by Google Maps.
computeAlternativeRoutesbooleandestination_addressstringfieldMaskstringlanguageCodestringorigin_addressstringrouteModifiers_avoidFerriesbooleanrouteModifiers_avoidHighwaysbooleanrouteModifiers_avoidTollsbooleanroutingPreferencestringROUTING_PREFERENCE_UNSPECIFIED · TRAFFIC_UNAWARE · TRAFFIC_AWARE · TRAFFIC_AWARE_OPTIMALtravelModestringDRIVE · BICYCLE · WALK · TWO_WHEELER · TRANSITdefault: DRIVEunitsstringMETRIC · IMPERIALdefault: IMPERIALGOOGLE_MAPS_MAPS_EMBED_APITool to generate an embeddable Google Map URL and HTML iframe code. Use when you need to display a map (place, view, directions, street view, search) on a webpage without JavaScript. Note: This API only works with API keys (no OAuth2 support). It generates embed URLs and does...6 paramsTool to generate an embeddable Google Map URL and HTML iframe code. Use when you need to display a map (place, view, directions, street view, search) on a webpage without JavaScript. Note: This API only works with API keys (no OAuth2 support). It generates embed URLs and does...
directions_paramsobjectmodestringplace · view · directions · streetview · searchplace_paramsobjectsearch_paramsobjectstreetview_paramsobjectview_paramsobjectGOOGLE_MAPS_NEARBY_SEARCHSearches for places (e.g., restaurants, parks) within a specified circular area, with options to filter by place types and customize the returned fields and number of results.7 paramsSearches for places (e.g., restaurants, parks) within a specified circular area, with options to filter by place types and customize the returned fields and number of results.
excludedTypesarrayfieldMaskstringincludedTypesarraylatitudenumberlongitudenumbermaxResultCountintegerradiusnumberGOOGLE_MAPS_TEXT_SEARCHSearches for places on Google Maps using a textual query (e.g., "restaurants in London", "Eiffel Tower").3 paramsSearches for places on Google Maps using a textual query (e.g., "restaurants in London", "Eiffel Tower").
fieldMaskstringmaxResultCountintegertextQuerystringSponsors
GOOGLE_MAPS_API_KEY*secretGoogle Maps API key (get one at https://console.cloud.google.com)
GOOGLE_MAPS_ENABLED_TOOLSComma-separated tool names to enable. Omit or * for all 18 tools.
Stop rebuilding place search, routing, and location workflows for every AI app.
@cablate/mcp-google-map turns Google Maps Platform into 18 read-only agent tools and three focused Skills. An agent can find real places, verify routes, compare options, build practical itineraries, or audit local search visibility—through MCP or a standalone CLI.
You choose the integration model: Codex or Claude Code Plugin when you want Skills without MCP setup, stdio for desktop MCP clients, or Streamable HTTP for shared and remote deployments.
English · 繁體中文

Giving an agent a raw Maps API is only the beginning. Useful answers often require several dependent calls: resolve a place, preserve its identity, search around it, check opening details, calculate travel time, and explain what was actually verified. This project packages that work into one consistent interface.
exec CLI works with Agent Skills and automation; the MCP server exposes the same 18 tools over stdio or HTTP.GOOGLE_MAPS_ENABLED_TOOLS, or use the full catalog.
| Outcome | How the project helps |
|---|---|
| Find and evaluate real places | Natural-language and nearby search, place details, ratings, hours, reviews, and distance comparison |
| Build a trip that works geographically | Candidate discovery, along-route stops, travel-time checks, multi-stop optimization, weather, and static maps |
| Research a neighborhood | Multi-category exploration plus targeted distance, elevation, timezone, weather, and air-quality checks |
| Plan field work or deliveries | Route matrices and optimized stop ordering for up to 25 stops |
| Audit local search visibility | Geographic grid ranking, competitor discovery, ARP, ATRP, and SoLV metrics |
| Enrich location data | Single or batch geocoding, reverse geocoding, and structured JSON output |
These are data and planning tools, not guarantees of safety, accessibility, opening status, or ranking outcomes. Applications displaying Places reviews, photos, or AI summaries must follow the content attribution and storage guidance.
| Use | Best for | What runs |
|---|---|---|
| Codex Plugin | Asking Codex map, travel, or local SEO questions without MCP configuration | A matching Skill loads on demand and calls the standalone CLI |
| Claude Code Plugin | Installing the same three Skills from a Claude marketplace | Skills are namespaced under mcp-google-map and call the standalone CLI |
| Standalone CLI | Scripts, automation, and other Skill-compatible agents | One stateless command returns JSON |
| MCP stdio | Claude Desktop, Cursor, VS Code, and other local MCP clients | The client starts a local MCP process |
| Streamable HTTP | Multi-session, containerized, LAN, or remote access | A self-hosted server exposes /mcp |
All options require Node.js 22+ and a Google Maps Platform API key. Live calls may be billable. Enable the APIs needed by your selected tools; common place and route workflows require Places API (New), Routes API, and often Geocoding API.
codex plugin marketplace add cablate/mcp-google-map --ref main
codex plugin add mcp-google-map@cablate
Set GOOGLE_MAPS_API_KEY in the environment where Codex runs, then start a new conversation. Verify the local setup without making a Google API request:
npx -y @cablate/mcp-google-map doctor
Success means the node, package, and api-key checks pass and live-api is skipped. Use doctor --live only when you intend to send potentially billable checks to Geocoding, Places, and Routes.
Try asking:
Plan a practical two-day Kyoto itinerary. Group nearby places, check travel times, and explain any opening-hour assumptions.
Codex selects google-maps for general location research, google-maps-travel-planning for itineraries, or google-maps-local-seo for business visibility analysis. The plugin does not register or start an MCP server. See the no-MCP walkthrough for a reproducible example.
claude plugin marketplace add cablate/mcp-google-map
claude plugin install mcp-google-map@cablate-maps
Start a new Claude Code session, set GOOGLE_MAPS_API_KEY in its environment, and run the same doctor check shown above. Claude exposes the installed Skills with 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. The release workflow builds this archive from the same skills/ source and validates it with Claude Code's official strict validator before publishing.
Every MCP tool also has a short CLI name:
npx -y @cablate/mcp-google-map exec geocode '{"address":"Tokyo Tower"}'
npx -y @cablate/mcp-google-map exec search-places '{"query":"quiet cafes in Kyoto"}'
npx -y @cablate/mcp-google-map exec directions '{"origin":"Tokyo Station","destination":"Tokyo Skytree","mode":"transit"}'
Each call is stateless. Successful calls return { "success": true, "data": ... } on stdout; failures exit nonzero and write structured JSON to stderr.
For bulk address enrichment:
npx @cablate/mcp-google-map batch-geocode -i addresses.txt -o results.json
cat addresses.txt | npx @cablate/mcp-google-map batch-geocode -i -
{
"mcpServers": {
"google-maps": {
"command": "npx",
"args": ["-y", "@cablate/mcp-google-map", "--stdio"],
"env": { "GOOGLE_MAPS_API_KEY": "YOUR_API_KEY" }
}
}
}
To reduce tool-list context, add a comma-separated allowlist such as "GOOGLE_MAPS_ENABLED_TOOLS": "maps_geocode,maps_directions,maps_search_places". Omit it or use * to expose all tools.
npx @cablate/mcp-google-map --host 127.0.0.1 --port 3000 --apikey "YOUR_API_KEY"
{
"mcpServers": {
"google-maps": {
"type": "http",
"url": "http://127.0.0.1:3000/mcp"
}
}
}
Bind to 0.0.0.0 only when the server must accept external connections. For multi-tenant deployments, prefer the X-Google-Maps-API-Key request header so keys remain isolated by session.
| Group | Tools |
|---|---|
| Places and discovery | maps_search_places, maps_search_nearby, maps_place_details, maps_explore_area, maps_compare_places, maps_search_along_route |
| Location and routing | maps_geocode, maps_reverse_geocode, maps_directions, maps_distance_matrix, maps_plan_route, maps_batch_geocode |
| Context and visualization | maps_elevation, maps_timezone, maps_weather, maps_air_quality, maps_static_map |
| Local SEO | maps_local_rank_tracker |
All 18 tools declare readOnlyHint: true and destructiveHint: false. Exact parameters, response shapes, and workflow recipes live in the tool reference.
The key must belong to a Google Cloud project with billing enabled and restrictions compatible with the runtime. The setup and diagnostics guide maps each capability to its required API and explains common failures.
Credential priority is:
X-Google-Maps-API-Key HTTP request header--apikey command-line optionGOOGLE_MAPS_API_KEY environment variablePrefer environment variables or request headers. Command-line secrets can appear in shell history and process listings.
git clone https://github.com/cablate/mcp-google-map.git
cd mcp-google-map
npm ci
npm run build
npm run test:unit
npm test
Live E2E calls require GOOGLE_MAPS_API_KEY and may be billable: npm run test:e2e.
Contributions are welcome. Read CONTRIBUTING.md before opening a pull request. Release history is in CHANGELOG.md.
Thanks to @junyinnnn for helping add Streamable HTTP support.
@cablate/mcp-google-map