CCM
/MCP
SkillsMCPMarketplacesDigestLearnAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Learn
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Google Maps MCP Server

cablate/mcp-google-map
3388 toolsauthSTDIOregistry active
Summary

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.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →

Tools

Public tool metadata for what this MCP can expose to an agent.

8 tools
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 params

Calculates travel distance and duration matrix between multiple origins and destinations using the modern Routes API; supports OAuth2 authentication and various travel modes.

Parameters* required
unitsstring
Unit system (e.g., 'METRIC' for kilometers, 'IMPERIAL' for miles) for displaying distances.one of METRIC · IMPERIALdefault: IMPERIAL
originsarray
List of origin locations. Each can be specified as an address or latitude/longitude coordinates.
fieldMaskstring
Comma-separated list of response fields to include (e.g., 'originIndex,destinationIndex,duration,distanceMeters'). Use '*' for all fields.default: originIndex,destinationIndex,duration,distanceMeters,status,condition
travelModestring
Mode of transportation for the route matrix calculation.one of DRIVE · BICYCLE · WALK · TWO_WHEELER · TRANSITdefault: DRIVE
destinationsarray
List of destination locations. Each can be specified as an address or latitude/longitude coordinates.
languageCodestring
BCP-47 language code (e.g., 'en-US', 'es') for textual information.default: en-US
routingPreferencestring
Specifies routing preference: `TRAFFIC_UNAWARE` (fastest, ignores traffic), `TRAFFIC_AWARE` (considers traffic, optimized), `TRAFFIC_AWARE_OPTIMAL` (most accurate traffic-based routing), or `ROUTING_PREFERENCE_UNSPECIFIED` (behavior similar to `TRAFFIC_UNAWARE`).one of ROUTING_PREFERENCE_UNSPECIFIED · TRAFFIC_UNAWARE · TRAFFIC_AWARE · TRAFFIC_AWARE_OPTIMALdefault: TRAFFIC_AWARE
GOOGLE_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 params

DEPRECATED: 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...

Parameters* required
keystring
Your application's API key. This key identifies your application for purposes of quota management.
modestring
Specifies the mode of transport to use.one of driving · walking · bicycling · transitdefault: driving
avoidstring
Indicates that the calculated route should avoid the specified features. Multiple values can be pipe-separated e.g. 'tolls|highways'.one of tolls · highways · ferries · indoor
unitsstring
Specifies the unit system to use when displaying results. The default is metric.one of metric · imperial
regionstring
The region code, specified as a ccTLD ('top-level domain') two-character value. This helps influence results based on the region.
originsstring
The starting point for calculating travel distance and time. You can supply one or more locations separated by the pipe character (|), in the form of a place ID (prefixed with place_id:), an address, latitude/longitude coordinates (e.g., '40.7128,-74.0060'), a plus code, or an encoded polyline (prefixed with enc: and a colon).
languagestring
The language in which to return results. See the list of supported languages: https://developers.google.com/maps/faq#languagesupport
arrival_timeinteger
Specifies the desired time of arrival for transit directions, in seconds since midnight, January 1, 1970 UTC. You can specify either departure_time or arrival_time, but not both.
destinationsstring
One or more locations to use as the finishing point for calculating travel distance and time. Accepts the same formats as origins.
transit_modestring
Specifies one or more preferred modes of transit. This parameter may only be specified for transit directions. Multiple values can be pipe-separated e.g. 'bus|train'.one of bus · subway · train · tram · rail
traffic_modelstring
Specifies the assumptions to use when calculating time in traffic. This parameter is only used if the request includes a departure_time and mode is 'driving'.one of best_guess · pessimistic · optimistic
departure_timeinteger
Specifies the desired time of departure. You can specify the time as an integer in seconds since midnight, January 1, 1970 UTC, or as the string 'now'. Required for duration_in_traffic.
transit_routing_preferencestring
Specifies preferences for transit routes. This parameter may only be specified for transit directions.one of less_walking · fewer_transfers
GOOGLE_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 params

DEPRECATED: 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...

Parameters* required
keystring
Your application's API key. If not provided, will be extracted from connection metadata.
boundsstring
The bounding box of the viewport within which to bias geocode results more prominently (e.g., '34.172684,-118.604794|34.236144,-118.500938'). This parameter will only influence, not fully restrict, results.
latlngstring
The latitude and longitude coordinates specifying the location for which you want the closest, human-readable address (e.g., '40.714224,-73.961452'). Provide for reverse geocoding.
regionstring
The region code, specified as a ccTLD ('top-level domain') two-character value. This parameter will only influence, not fully restrict, results from the geocoder.
addressstring
The street address or plus code that you want to geocode. Provide for geocoding (address to coordinates).
languagestring
The language in which to return results. If language is not supplied, the geocoder attempts to use the preferred language as specified in the Accept-Language header, or the native language of the domain from which the request is sent.
place_idstring
The place ID of the place for which you wish to obtain the human-readable address. Provide for place ID geocoding.
componentsstring
A components filter with elements separated by a pipe (|). E.g., 'postal_code:94043|country:US'. Used for geocoding, can be restrictive or biasing.
result_typestring
A filter of one or more address types, separated by a pipe (|) (e.g., 'street_address|locality'). Used for reverse geocoding and place ID geocoding.
location_typestring
A filter of one or more location types, separated by a pipe (|) (e.g., 'ROOFTOP|RANGE_INTERPOLATED'). Used for reverse geocoding and place ID geocoding.
extra_computationsarray
Use this parameter to specify additional features in the response. Can select multiple values.
GOOGLE_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 params

DEPRECATED: 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...

Parameters* required
modestring
The mode of transportation for which to calculate directions. Supported values are 'driving' (default), 'walking', 'bicycling', and 'transit'.default: driving
avoidstring
Specifies features to avoid in the generated route. Multiple values can be combined using a pipe delimiter (e.g., 'tolls|highways'). Valid options include 'tolls', 'highways', and 'ferries'.
unitsstring
The unit system for displaying distances. Supported values are 'metric' (kilometers and meters) and 'imperial' (miles and feet). Defaults to 'imperial'.default: imperial
originstring
The starting point for the directions. This can be a textual address (e.g., '123 Main St, Los Angeles, CA'), a place name (e.g., 'Disneyland'), or latitude/longitude coordinates (e.g., '34.0522,-118.2437').
languagestring
The language code for returning results, e.g., 'en' for English, 'es' for Spanish. Defaults to 'en'.default: en
waypointsstring
A comma-separated string of intermediate locations (addresses, place names, or coordinates) to visit between the origin and destination.
destinationstring
The ending point for the directions. This can be a textual address (e.g., '456 Park Ave, New York, NY'), a place name (e.g., 'Universal Studios Hollywood'), or latitude/longitude coordinates (e.g., '40.7128,-74.0060').
GOOGLE_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 params

Calculates one or more routes between two specified locations. Uses various travel modes and preferences; addresses must be resolvable by Google Maps.

Parameters* required
unitsstring
Unit system (e.g., 'METRIC' for kilometers, 'IMPERIAL' for miles) for displaying distances.one of METRIC · IMPERIALdefault: IMPERIAL
fieldMaskstring
Comma-separated list of `Route` object fields to include in the response (e.g., 'routes.distanceMeters,routes.duration') for efficiency.default: routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline
travelModestring
Mode of transportation for the route.one of DRIVE · BICYCLE · WALK · TWO_WHEELER · TRANSITdefault: DRIVE
languageCodestring
BCP-47 language code (e.g., 'en-US', 'es') for textual information like navigation instructions.default: en-US
origin_addressstring
Starting point address or place name for the route calculation.
routingPreferencestring
Specifies routing preference: `TRAFFIC_UNAWARE` (fastest, ignores traffic), `TRAFFIC_AWARE` (considers traffic, optimized), `TRAFFIC_AWARE_OPTIMAL` (most accurate traffic-based routing), or `ROUTING_PREFERENCE_UNSPECIFIED` (behavior similar to `TRAFFIC_UNAWARE`). Cannot be set when travelMode is WALK, BICYCLE, or TRANSIT - must be omitted for these modes.one of ROUTING_PREFERENCE_UNSPECIFIED · TRAFFIC_UNAWARE · TRAFFIC_AWARE · TRAFFIC_AWARE_OPTIMAL
destination_addressstring
Destination point address or place name for the route calculation.
computeAlternativeRoutesboolean
Computes and returns alternative routes if true.default: false
routeModifiers_avoidTollsboolean
Attempts to avoid toll roads if true.default: false
routeModifiers_avoidFerriesboolean
Attempts to avoid ferries if true.default: false
routeModifiers_avoidHighwaysboolean
Attempts to avoid highways if true.default: false
GOOGLE_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 params

Tool 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...

Parameters* required
modestring
The mode of the embedded map.one of place · view · directions · streetview · search
view_paramsobject
Parameters for 'view' mode.
place_paramsobject
Parameters for 'place' mode.
search_paramsobject
Parameters for 'search' mode.
directions_paramsobject
Parameters for 'directions' mode.
streetview_paramsobject
Parameters for 'streetview' mode.
GOOGLE_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 params

Searches 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.

Parameters* required
radiusnumber
Radius of the circular search area in meters.
latitudenumber
Latitude coordinate of the search center in decimal degrees.
fieldMaskstring
Comma-separated list of place fields for the response (e.g., 'places.displayName,places.formattedAddress'); use '*' for all fields.default: places.displayName
longitudenumber
Longitude coordinate of the search center in decimal degrees.
excludedTypesarray
Place types to exclude (e.g., 'cafe', 'store'); results matching any of these types are omitted. For supported types, see Google Maps Places API documentation.
includedTypesarray
Place types to include (e.g., 'restaurant', 'park'); results will match at least one of these types. For supported types, see Google Maps Places API documentation.
maxResultCountinteger
Maximum number of search results to return (up to 20); the actual count may be lower.default: 10
GOOGLE_MAPS_TEXT_SEARCHSearches for places on Google Maps using a textual query (e.g., "restaurants in London", "Eiffel Tower").3 params

Searches for places on Google Maps using a textual query (e.g., "restaurants in London", "Eiffel Tower").

Parameters* required
fieldMaskstring
Comma-separated list of place fields to return. Use `*` for all fields (not recommended for performance/cost). See Google Maps Places API documentation for field names.default: places.displayName,places.formattedAddress,places.priceLevel
textQuerystring
Text query for searching places. Matched against place name, address, and category.
maxResultCountinteger
Maximum number of place results to return (must be 1-20). Note: Google prefers `pageSize`, but this action uses `maxResultCount`.default: 10

npm version npm downloads GitHub stars license

MCP Google Maps — AI-Powered Geospatial Tools

Give your AI agent the ability to understand the physical world —
geocode, route, search, and reason about locations.

English | 繁體中文

Travel planning demo — Kyoto 2-day, Tokyo outdoor, Japan 5-day, Bangkok budget

  • 18 tools — 14 atomic + 4 composite (explore-area, plan-route, compare-places, local-rank-tracker)
  • 3 modes — stdio, StreamableHTTP, standalone exec CLI
  • Agent Skill — built-in skill definition teaches AI how to chain geo tools (skills/google-maps/)

vs Google Grounding Lite

This projectGrounding Lite
Tools183
GeocodingYesNo
Step-by-step directionsYesNo
ElevationYesNo
Distance matrixYesNo
Place detailsYesNo
TimezoneYesNo
WeatherYesYes
Air qualityYesNo
Map imagesYesNo
Composite tools (explore, plan, compare)YesNo
Open sourceMITNo
Self-hostedYesGoogle-managed only
Agent SkillYesNo

Quick Start

# stdio (Claude Desktop, Cursor, etc.)
npx @cablate/mcp-google-map --stdio

# exec CLI — no server needed
npx @cablate/mcp-google-map exec geocode '{"address":"Tokyo Tower"}'

# HTTP server
npx @cablate/mcp-google-map --port 3000 --apikey "YOUR_API_KEY"

Special Thanks

Special thanks to @junyinnnn for helping add support for streamablehttp.

Available Tools

ToolDescription
maps_search_nearbyFind places near a location by type (restaurant, cafe, hotel, etc.). Supports filtering by radius, rating, and open status.
maps_search_placesFree-text place search (e.g., "sushi restaurants in Tokyo"). Supports location bias, rating, open-now filters.
maps_place_detailsGet full details for a place by its place_id — reviews, phone, website, hours. Optional maxPhotos param returns photo URLs.
maps_geocodeConvert an address or landmark name into GPS coordinates.
maps_reverse_geocodeConvert GPS coordinates into a street address.
maps_distance_matrixCalculate travel distances and times between multiple origins and destinations.
maps_directionsGet step-by-step navigation between two points with route details.
maps_elevationGet elevation (meters above sea level) for geographic coordinates.
maps_timezoneGet timezone ID, name, UTC/DST offsets, and local time for coordinates.
maps_weatherGet current weather conditions or forecast — temperature, humidity, wind, UV, precipitation.
maps_air_qualityGet air quality index, pollutant concentrations, and health recommendations by demographic group.
maps_static_mapGenerate a map image with markers, paths, or routes — returned inline for the user to see directly.
maps_batch_geocodeGeocode up to 50 addresses in one call — returns coordinates for each.
maps_search_along_routeSearch for places along a route between two points — ranked by minimal detour time.
Composite Tools
maps_explore_areaExplore what's around a location — searches multiple place types and gets details in one call.
maps_plan_routePlan an optimized multi-stop route — uses Routes API waypoint optimization (up to 25 stops) for efficient ordering.
maps_compare_placesCompare places side-by-side — searches, gets details, and optionally calculates distances.
maps_local_rank_trackerTrack a business's local search ranking across a geographic grid — like LocalFalcon. Supports up to 3 keywords for batch scanning. Returns rank at each point, top-3 competitors, and metrics (ARP, ATRP, SoLV).

All tools are annotated with readOnlyHint: true and destructiveHint: false — MCP clients can auto-approve these without user confirmation.

Prerequisite: Enable Places API (New) and Routes API in Google Cloud Console before using place-related and routing tools.

Installation

Method 1: stdio (Recommended for most clients)

Works with Claude Desktop, Cursor, VS Code, and any MCP client that supports stdio:

{
  "mcpServers": {
    "google-maps": {
      "command": "npx",
      "args": ["-y", "@cablate/mcp-google-map", "--stdio"],
      "env": {
        "GOOGLE_MAPS_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Reduce context usage — If you only need a subset of tools, set GOOGLE_MAPS_ENABLED_TOOLS to limit which tools are registered:

{
  "env": {
    "GOOGLE_MAPS_API_KEY": "YOUR_API_KEY",
    "GOOGLE_MAPS_ENABLED_TOOLS": "maps_geocode,maps_directions,maps_search_places"
  }
}

Omit or set to * for all 18 tools (default).

Method 2: HTTP Server

For multi-session deployments, per-request API key isolation, or remote access:

npx @cablate/mcp-google-map --port 3000 --apikey "YOUR_API_KEY"

# Bind to all interfaces for remote access (e.g. Docker, LAN)
npx @cablate/mcp-google-map --host 0.0.0.0 --port 3000 --apikey "YOUR_API_KEY"

Then configure your MCP client:

{
  "mcpServers": {
    "google-maps": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    }
  }
}

Server Information

  • Transport: stdio (--stdio) or Streamable HTTP (default)
  • Tools: 18 Google Maps tools (14 atomic + 4 composite) — filterable via GOOGLE_MAPS_ENABLED_TOOLS

CLI Exec Mode (Agent Skill)

Use tools directly without running the MCP server:

npx @cablate/mcp-google-map exec geocode '{"address":"Tokyo Tower"}'
npx @cablate/mcp-google-map exec search-places '{"query":"ramen in Tokyo"}'

All 18 tools available: geocode, reverse-geocode, search-nearby, search-places, place-details, directions, distance-matrix, elevation, timezone, weather, air-quality, static-map, batch-geocode-tool, search-along-route, explore-area, plan-route, compare-places, local-rank-tracker. See skills/google-maps/ for the agent skill definition and full parameter docs.

Batch Geocode

Geocode hundreds of addresses from a file:

npx @cablate/mcp-google-map batch-geocode -i addresses.txt -o results.json
cat addresses.txt | npx @cablate/mcp-google-map batch-geocode -i -

Input: one address per line. Output: JSON with { total, succeeded, failed, results[] }. Default concurrency: 20 parallel requests.

API Key Configuration

API keys can be provided in three ways (priority order):

  1. HTTP Headers (Highest priority)

    {
      "mcp-google-map": {
        "transport": "streamableHttp",
        "url": "http://localhost:3000/mcp",
        "headers": {
          "X-Google-Maps-API-Key": "YOUR_API_KEY"
        }
      }
    }
    
  2. Command Line

    mcp-google-map --apikey YOUR_API_KEY
    
  3. Environment Variable (.env file or command line)

    GOOGLE_MAPS_API_KEY=your_api_key_here
    MCP_SERVER_PORT=3000
    MCP_SERVER_HOST=0.0.0.0
    

Development

Local Development

# Clone the repository
git clone https://github.com/cablate/mcp-google-map.git
cd mcp-google-map

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Edit .env with your API key

# Build the project
npm run build

# Start the server
npm start

# Or run in development mode
npm run dev

Testing

# Run smoke tests (no API key required for basic tests)
npm test

# Run full E2E tests (requires GOOGLE_MAPS_API_KEY)
npm run test:e2e

Project Structure

src/
├── cli.ts                        # CLI entry point
├── config.ts                     # Tool registration and server config
├── index.ts                      # Package exports
├── core/
│   └── BaseMcpServer.ts          # MCP server with streamable HTTP transport
├── services/
│   ├── NewPlacesService.ts       # Google Places API (New) client
│   ├── PlacesSearcher.ts         # Service facade layer
│   ├── RoutesService.ts          # Google Routes API client (directions, distance matrix, waypoint optimization)
│   └── toolclass.ts              # Google Maps API client (geocoding, timezone, elevation, static map)
├── tools/
│   └── maps/
│       ├── searchNearby.ts       # maps_search_nearby tool
│       ├── searchPlaces.ts       # maps_search_places tool
│       ├── placeDetails.ts       # maps_place_details tool
│       ├── geocode.ts            # maps_geocode tool
│       ├── reverseGeocode.ts     # maps_reverse_geocode tool
│       ├── distanceMatrix.ts     # maps_distance_matrix tool
│       ├── directions.ts         # maps_directions tool
│       ├── elevation.ts          # maps_elevation tool
│       ├── timezone.ts           # maps_timezone tool
│       ├── weather.ts            # maps_weather tool
│       ├── airQuality.ts         # maps_air_quality tool
│       ├── staticMap.ts          # maps_static_map tool
│       ├── batchGeocode.ts       # maps_batch_geocode tool
│       ├── searchAlongRoute.ts   # maps_search_along_route tool
│       ├── exploreArea.ts        # maps_explore_area (composite)
│       ├── planRoute.ts          # maps_plan_route (composite)
│       ├── comparePlaces.ts      # maps_compare_places (composite)
│       └── localRankTracker.ts   # maps_local_rank_tracker (composite)
└── utils/
    ├── apiKeyManager.ts          # API key management
    └── requestContext.ts         # Per-request context (API key isolation)
tests/
└── smoke.test.ts                 # Smoke + E2E test suite
skills/
├── google-maps/                  # Agent Skill — how to USE the tools
│   ├── SKILL.md                  # Tool map, recipes, invocation
│   └── references/
│       ├── tools-api.md          # Tool parameters + scenario recipes
│       ├── travel-planning.md    # Travel planning methodology
│       └── local-seo.md          # Local SEO / Google Business Profile ranking analysis
└── project-docs/                 # Project Skill — how to DEVELOP/MAINTAIN
    ├── SKILL.md                  # Architecture overview + onboarding
    └── references/
        ├── architecture.md       # System design, code map, 9-file checklist
        ├── google-maps-api-guide.md  # API endpoints, pricing, gotchas
        ├── geo-domain-knowledge.md   # GIS fundamentals, Japan context
        └── decisions.md          # 10 ADRs (design decisions + rationale)

Tech Stack

  • TypeScript - Type-safe development
  • Node.js - Runtime environment
  • @googlemaps/places - Google Places API (New) for place search and details
  • Google Routes API - Directions, distance matrix, and waypoint optimization via REST
  • @googlemaps/google-maps-services-js - Geocoding, timezone, elevation
  • @modelcontextprotocol/sdk - MCP protocol implementation (v1.27+)
  • Express.js - HTTP server framework
  • Zod - Schema validation

Security

  • API keys are handled server-side
  • Per-session API key isolation for multi-tenant deployments
  • DNS rebinding protection available for production
  • Input validation using Zod schemas

For enterprise security reviews, see Security Assessment Clarifications — a 23-item checklist covering licensing, data protection, credential management, tool contamination, and AI agent execution environment verification.

To report a vulnerability, see SECURITY.md.

Roadmap

Recent Additions

Tool / FeatureWhat it unlocksStatus
maps_static_mapMap images with pins/routes — multimodal AI can "see" the mapDone
maps_air_qualityAQI, pollutants — health-aware travel, outdoor planningDone
maps_batch_geocodeGeocode up to 50 addresses in one call — data enrichmentDone
maps_search_along_routeFind places along a route ranked by detour time — trip planningDone
maps_explore_areaOne-call neighborhood overview (composite)Done
maps_plan_routeOptimized multi-stop itinerary (composite)Done
maps_compare_placesSide-by-side place comparison (composite)Done
maps_local_rank_trackerGeographic grid rank tracking — local SEO analysis (composite)Done
GOOGLE_MAPS_ENABLED_TOOLSFilter tools to reduce context usageDone

Planned

FeatureWhat it unlocksStatus
maps_place_photoPlace photos for multimodal AI — "see" the restaurant ambiancePlanned
Language parameterMulti-language responses (ISO 639-1) across all toolsPlanned
MCP Prompt Templates/travel-planner, /neighborhood-scout slash commands in Claude DesktopPlanned
Geo-Reasoning Benchmark10-scenario test suite measuring LLM geospatial reasoning accuracyResearch

Use Cases We're Building Toward

These are the real-world scenarios driving our tool decisions:

  • Travel planning — "Plan a day trip in Tokyo" (geocode → search → directions → weather)
  • Real estate analysis — "Analyze this neighborhood: schools, commute, flood risk" (search-nearby × N + elevation + distance-matrix)
  • Logistics optimization — "Route these 12 deliveries efficiently from the warehouse" (plan-route)
  • Field sales — "Visit 6 clients in Chicago, minimize drive time, find lunch spots" (plan-route + search-nearby)
  • Disaster response — "Nearest open hospitals? Am I in a flood zone?" (search-nearby + elevation)
  • Content creation — "Top 5 neighborhoods in Austin with restaurant density and airport distance" (explore-area + distance-matrix)
  • Accessibility — "Wheelchair-accessible restaurants, avoid steep routes" (search-nearby + place-details + elevation)
  • Local SEO — "Audit my restaurant's ranking vs competitors within 1km" (search-places + compare-places + explore-area)

Changelog

See CHANGELOG.md for version history.

License

MIT

Contributing

Community participation and contributions are welcome! Please read CONTRIBUTING.md for development setup, coding guidelines, and the pull request process.

  • Submit Issues: Report bugs or provide suggestions
  • Create Pull Requests: Submit code improvements
  • Documentation: Help improve documentation

Contact

  • Email: reahtuoo310109@gmail.com
  • GitHub: CabLate

Star History

Google Map Server MCP server

Star History Chart

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →

Configuration

GOOGLE_MAPS_API_KEY*secret

Google Maps API key (get one at https://console.cloud.google.com)

GOOGLE_MAPS_ENABLED_TOOLS

Comma-separated tool names to enable. Omit or * for all 18 tools.

Categories
Search & Web Crawling
Registryactive
Package@cablate/mcp-google-map
TransportSTDIO
AuthRequired
UpdatedApr 21, 2026
View on GitHub

Related Search & Web Crawling MCP Servers

View all →
Google Search

com.mcparmory/google-search

Scrape Google search results with SERP data, ads, and knowledge panels
25
Brave Search

io.github.pipeworx-io/brave-search

Brave Search MCP — independent web index (no Google/Bing dependency)
Serper Search and Scrape

marcopesani/mcp-server-serper

Serper MCP Server supporting search and webpage scraping
154
Brave Search Mcp Server

brave/brave-search-mcp-server

Brave Search MCP Server: web results, images, videos, rich results, AI summaries, and more.
1.2k
Google Search Console

com.mcparmory/google-search-console

Query search analytics, manage sitemaps, and inspect site URLs and status
25
Google Search Console

acamolese/google-search-console-mcp

Google Search Console MCP server: SEO audits, performance queries, URL inspection, indexing checks.
3