Google Maps MCP server with Apify-aligned scrape pipeline, streamable HTTP transport, Places API (New), geocoding, and navigation
Server has 12 tools with mostly complete schemas and descriptions. Naming follows verb_noun convention (search_, get_, maps_, plan_, approve_, run_, list_). Descriptions are present but vary in quality (50-150 chars typical). Input schemas are well-structured with types and descriptions for most parameters. However, output schemas are not documented in the tool definitions, and error handling lacks recovery guidance. The scrape workflow (plan → approve → run) requires multi-step confirmation but lacks explicit dry-run validation in the approve step. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications.
Approve a scrape plan before execution. Requires planId. Use _confirmed + _confirmationId after reviewing the plan summary.
Retrieve details and results from a completed scrape run
Get detailed information about a specific place
List all completed and in-progress scrape runs
Get directions and route information between two locations
Calculate distances and travel times between multiple origins and destinations
Get elevation data for locations
Output schemas not documented. Tool definitions lack return type documentation, forcing LLMs to infer response structure. This violates pattern:tool and increases hallucination risk.
No tool annotations despite clear risk classifications. Tools marked WRITE (approve_google_maps_scrape, run_google_maps_scrape) lack destructiveHint annotation. READ_ONLY tools lack readOnlyHint. Agents cannot distinguish safe from unsafe operations without explicit hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Convert an address to geographic coordinates
Convert geographic coordinates to an address
Create a scrape plan for Google Maps places with validation and preview
Execute an approved scrape plan to collect places and reviews from Google Maps
Search for nearby places using Google Maps Places API
Error handling lacks recovery guidance. extractErrorMessage() returns raw API errors without actionable next steps. E.g., 'Failed to search nearby places: INVALID_REQUEST' tells LLM nothing about retry strategy or alternative approaches.
Scrape workflow confirmation mechanism unclear. approve_google_maps_scrape requires _confirmed + _confirmationId but the flow for obtaining _confirmationId is not documented. LLMs cannot determine how to proceed from plan to approval.
Parameter descriptions lack format constraints. E.g., departure_time accepts 'ISO 8601 format or now' but no regex pattern or enum. LLMs may pass invalid formats like '2024-01-15 3pm' instead of '2024-01-15T15:00:00Z'.