Skip to main content
Glama
Mannycon1

Google Maps MCP Server

by Mannycon1

Google Maps MCP Server

An MCP (Model Context Protocol) server that gives Claude and other MCP clients access to the Google Maps Platform: geocoding, place search, place details, directions, distance matrix, and elevation.

Tools

Tool

Description

maps_geocode

Convert an address or place name into coordinates

maps_reverse_geocode

Convert coordinates into a human-readable address

maps_search_places

Free-text place search (restaurants, businesses, landmarks), with optional location bias

maps_place_details

Full details for a place: phone, website, hours, rating, reviews

maps_directions

Turn-by-turn directions (driving, walking, bicycling, transit)

maps_distance_matrix

Travel time and distance between multiple origins and destinations

maps_elevation

Elevation in meters for one or more coordinates

Related MCP server: MCP Google Maps - stdio Edition

Prerequisites

  1. Node.js 18+

  2. A Google Maps API key — create one in the Google Cloud Console:

    • Create (or select) a project

    • Enable these APIs: Geocoding API, Places API, Directions API, Distance Matrix API, Elevation API

    • Create an API key under Credentials

Installation

git clone https://github.com/Mannycon1/Google-Maps-Mcp.git
cd Google-Maps-Mcp
npm install
npm run build

Usage with Claude Desktop

Add this to your claude_desktop_config.json (Claude Desktop → Settings → Developer → Edit Config):

{
  "mcpServers": {
    "google-maps": {
      "command": "node",
      "args": ["/absolute/path/to/Google-Maps-Mcp/dist/index.js"],
      "env": {
        "GOOGLE_MAPS_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Restart Claude Desktop and the Google Maps tools will appear.

Usage with Claude Code

claude mcp add google-maps \
  --env GOOGLE_MAPS_API_KEY=YOUR_API_KEY_HERE \
  -- node /absolute/path/to/Google-Maps-Mcp/dist/index.js

Testing manually

The server speaks JSON-RPC over stdio:

GOOGLE_MAPS_API_KEY=YOUR_KEY node dist/index.js

Then paste an MCP initialize request to interact with it, or use the MCP Inspector:

GOOGLE_MAPS_API_KEY=YOUR_KEY npx @modelcontextprotocol/inspector node dist/index.js

Security notes

  • Never commit your API key. Pass it via the GOOGLE_MAPS_API_KEY environment variable (the .env pattern is gitignored).

  • Consider restricting your API key to only the Maps APIs listed above.

License

MIT

Available Tools

7 tools
maps_directionsA

Get turn-by-turn directions between an origin and destination

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoTravel mode (default: driving)
originYesStarting point: address, place name, or 'lat,lng'
destinationYesEnding point: address, place name, or 'lat,lng'

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys that the tool is a read operation returning route data, but it does not disclose the response structure (steps, durations, distances, polyline), whether multiple routes are possible, or any external API/network dependencies. For a tool with no output schema, this is thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single 9-word sentence that leads with the action, names the resource, and states both required inputs. There is no filler, repetition, or unnecessary formatting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives an agent enough to select the tool and pass origin and destination, and 'turn-by-turn directions' hints at the response shape. However, with no output schema and no annotations, key context is missing: what the return object actually contains and when to choose this tool over maps_distance_matrix.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with origin and destination format hints ('address, place name, or lat,lng') and the mode enum all documented inline. The description adds nothing beyond the parameter names themselves, so the schema does the heavy lifting and the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb ('Get') with a specific resource ('turn-by-turn directions'), which clearly signals navigation instructions rather than distance/time metrics. This self-evidently differentiates it from siblings like maps_distance_matrix, maps_geocode, and maps_place_details without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is strongly implied: ask for step-by-step route instructions between two points. However, there is no explicit guidance on when to prefer this over maps_distance_matrix (for total time/distance without step-by-step maneuvers) or mention of any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maps_distance_matrixA

Get travel distances and durations between multiple origins and destinations

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoTravel mode (default: driving)
originsYesList of origins: addresses, place names, or 'lat,lng'
destinationsYesList of destinations: addresses, place names, or 'lat,lng'

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. 'Get' signals a read-only operation and the description names the outputs (distances and durations), which is useful. However, it does not mention matrix size limits, response format, or any other operational constraints that could affect an agent's expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no filler. Every word contributes to identifying what the tool does, and the core matrix concept is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a relatively simple tool, the description communicates the essential output (distances and durations) and the multi-origin/destination nature. The parameter details are fully covered by the schema, and the absence of an output schema is partly offset by naming the return concepts. It lacks explicit limits or format details, but it is adequate for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters origins, destinations, and mode are already documented in the input schema. The description only reinforces the origin/destination concept without adding new meaning. This matches the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('travel distances and durations between multiple origins and destinations'), clearly identifying the tool's core purpose. The phrase 'multiple origins and destinations' hints at the many-to-many matrix behavior and distinguishes it from a single route tool, though it does not explicitly name a sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for many-to-many travel distance/duration queries, but it does not explicitly state when to use it versus maps_directions or other sibling tools. There is no when-not-to-use guidance or alternative recommendation, so usage context is only implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maps_elevationA

Get elevation data (in meters) for one or more geographic coordinates

ParametersJSON Schema
NameRequiredDescriptionDefault
locationsYesList of coordinates to get elevation for

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden for behavioral disclosure. The word 'get' implies a safe read operation, and the description adds the useful unit detail ('in meters'). However, it does not disclose traits such as return format, handling of coordinates without elevation data, or any limits beyond what the schema already states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the purpose and scopes the input range. No wasted words; the unit clarification earns its place alongside the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with a fully covered schema, the description is nearly complete. The only meaningful gap is that no output schema exists and the description does not specify what the return value looks like (e.g., elevations aligned with input order), which the description could have clarified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the 'locations' parameter fully documented including min/max items and latitude/longitude bounds. The description adds minimal parameter-level meaning beyond confirming the unit context, which meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('get'), a clear resource ('elevation data'), and scopes the input precisely ('one or more geographic coordinates'). It is immediately distinguishable from all sibling tools, which cover geocoding, places, directions, and distance matrices, not elevation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by the domain: an agent would select this tool when it needs elevation values rather than addresses, routes, or places. However, no sibling tools are explicitly named and no when-to-use/when-not-to-use guidance is provided. The separation from siblings is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maps_geocodeA

Convert a street address or place name into geographic coordinates (latitude/longitude)

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe street address or place name to geocode

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It clearly conveys a read-only conversion operation and the core input-output behavior, but it does not disclose edge-case behavior, coordinate format details, or limitations. For a simple stateless geocoding call, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. The verb and key transformation are front-loaded, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter geocoding tool, the description is sufficient for selection and invocation: it defines the input and states the output as coordinates. It does not describe the exact output schema, but none is present, and the 'latitude/longitude' phrasing gives enough context. The only real gap is the lack of explicit guidance for choosing between this and sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the 'address' parameter is already documented in the schema. The description adds helpful context by clarifying that the address can be a street address or place name, but the schema already carries the main semantic weight, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Convert') and clearly names the resource ('street address or place name') and the output ('latitude/longitude'), so an agent can tell what the tool does. It does not explicitly contrast with siblings like maps_search_places, which could also return location data, so sibling differentiation is only implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you have an address or place name and need coordinates. However, it does not explicitly state when not to use it or name alternatives, leaving some routing inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maps_place_detailsA

Get detailed information about a specific place by its place_id (contact info, hours, reviews, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
place_idYesThe Google Maps place_id (from maps_search_places or maps_geocode)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that the tool returns detailed data including contact info, hours, and reviews, and the 'Get' framing implies a read-only operation. It does not mention error handling or rate limits, but those are not typically expected for a straightforward lookup tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with a parenthetical list of data categories. It is front-loaded with the core action and provides immediate clarity without any wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only lookup tool, the description covers the goal, the required input, and the nature of returned data. An agent can infer when and how to use the tool, though the exact return structure is not enumerated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single place_id parameter with 100% coverage, including its origin. The description only references place_id without adding further semantic detail beyond what the schema provides, so it stays at the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get', identifies the resource ('detailed information about a specific place'), and specifies the input ('by its place_id'). It clearly communicates what the tool does, though it does not explicitly differentiate itself from sibling tools like maps_search_places or maps_geocode beyond the unique place_id input.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context that this tool is for retrieving details once a place_id is already known. It does not explicitly name alternatives or provide when-not-to-use guidance, but the parameter description ('from maps_search_places or maps_geocode') implies a workflow of first obtaining a place_id and then calling this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maps_reverse_geocodeA

Convert geographic coordinates (latitude/longitude) into a human-readable address

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude
longitudeYesLongitude

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it discloses only the basic transformation. It never explicitly confirms a read-only lookup, nor does it describe the return format beyond 'human-readable address', error behavior for invalid coordinates, or any rate-limiting/coverage caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single 10-word sentence that front-loads the operation and wastes no words. It is concise without being tautological.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity two-parameter tool, the essential contract (coordinates in, address out) is present and the schema fully documents the parameters. However, with no annotations, no output schema, and no examples, the agent is left without details on the returned address structure or edge-case behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters documented and range-constrained, so the baseline is 3. The description adds only marginal framing — that these numbers are geographic coordinates for address conversion — without adding units, datum, format, or examples beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('convert'), explicit inputs (latitude/longitude), and a clear output (human-readable address), making the reverse-geocoding operation unmistakable. The input/output asymmetry inherently distinguishes it from the geocoding sibling, so an agent can tell the direction without inspecting either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: an agent that has coordinates and needs an address can infer this tool is appropriate. However, there is no explicit when-to-use or when-not-to-use guidance, nor does it name alternatives such as maps_geocode or maps_place_details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maps_search_placesA

Search for places (restaurants, businesses, landmarks, etc.) using a free-text query, optionally biased to a location

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesFree-text search query, e.g. 'pizza near Times Square'
radiusNoOptional search radius in meters (max 50000); requires latitude/longitude
latitudeNoOptional latitude to bias results toward
longitudeNoOptional longitude to bias results toward

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It reveals that the query is free-text and that location only 'biases' rather than strictly filters results, which is useful. However, it does not mention what is returned, whether the operation is read-only, or any limitations such as pagination or result ordering. Some behavioral context is provided, but the gaps are noticeable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, focused sentence that front-loads the verb and resource, followed by the key modifier about location bias. There is no redundant or filler language; the description is as concise as possible while still conveying the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool, the schema covers parameter constraints, but the absence of an output schema means the description should clarify what the tool returns (e.g., a list of matching places). It also does not mention the dependency that longitude and latitude must be provided together when using radius, though the schema hints at this. The description is adequate for basic invocation but incomplete for full usage clarity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage, documenting each parameter's meaning. The description adds only a summary phrase ('optionally biased to a location') that restates what the schema already says about latitude/longitude and radius. Since the schema does the heavy lifting, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Search') and resource ('places'), with clarifying examples ('restaurants, businesses, landmarks'). It clearly distinguishes this from sibling tools like geocoding and place details: it is a free-text place search, not an address-to-coordinate lookup or a details retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: use when you want to find places via a natural-language query, possibly with a location bias. However, it does not explicitly mention alternatives or exclude cases like structured address lookups (which would belong to geocoding) or retrieving detailed info for a known place. The guidance is present only by implication, not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv1.0.0
    • First observedmaps_directions
    • First observedmaps_distance_matrix
    • First observedmaps_elevation
    • First observedmaps_geocode
    • First observedmaps_place_details
    • First observedmaps_reverse_geocode
    • First observedmaps_search_places

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct Maps operation: address-to-coordinates, coordinates-to-address, place lookup by ID, free-text place search, directions, distance matrix, and elevation. The only mild overlap is between geocode and search_places, but their inputs and outputs are clearly different enough to avoid confusion.

Naming Consistency5/5

All tools follow a consistent maps_ prefix with snake_case action-based naming (maps_geocode, maps_search_places, maps_distance_matrix). The naming pattern is uniform, predictable, and instantly communicates the tool's purpose.

Tool Count5/5

Seven tools is a well-scoped size for a Google Maps MCP server. Each tool covers a major Maps API use case without unnecessary redundancy or feature bloat.

Completeness4/5

The core map workflows are covered: location lookup, place search and details, routing, distance calculation, and elevation. Minor gaps like place autocomplete or timezone lookups exist, but they do not create dead ends for most common use cases.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mannycon1/Google-Maps-Mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server