google maps
MCP Server for the Google Maps API.
MCP Server for the Google Maps API.
MCP Server for the Google Maps API.
maps_geocode
address
(string)Returns: location, formatted_address, place_id
maps_reverse_geocode
latitude
(number)longitude
(number)Returns: formatted_address, place_id, address_components
maps_search_places
query
(string)location
(optional): { latitude: number, longitude: number }radius
(optional): number (meters, max 50000)Returns: array of places with names, addresses, locations
maps_place_details
place_id
(string)Returns: name, address, contact info, ratings, reviews, opening hours
maps_distance_matrix
origins
(string[])destinations
(string[])mode
(optional): "driving" | "walking" | "bicycling" | "transit"Returns: distances and durations matrix
maps_elevation
locations
(array of {latitude, longitude})Returns: elevation data for each point
maps_directions
origin
(string)destination
(string)mode
(optional): "driving" | "walking" | "bicycling" | "transit"Get a Google Maps API key by following the instructions here.
Add the following to your claude_desktop_config.json
:
{
"mcpServers": {
"google-maps": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GOOGLE_MAPS_API_KEY",
"mcp/google-maps"
],
"env": {
"GOOGLE_MAPS_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
{
"mcpServers": {
"google-maps": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-google-maps"
],
"env": {
"GOOGLE_MAPS_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
Docker build:
docker build -t mcp/google-maps -f src/google-maps/Dockerfile .
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
[
{
"description": "Convert an address into geographic coordinates",
"inputSchema": {
"properties": {
"address": {
"description": "The address to geocode",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "maps_geocode"
},
{
"description": "Convert coordinates into an address",
"inputSchema": {
"properties": {
"latitude": {
"description": "Latitude coordinate",
"type": "number"
},
"longitude": {
"description": "Longitude coordinate",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"name": "maps_reverse_geocode"
},
{
"description": "Search for places using Google Places API",
"inputSchema": {
"properties": {
"location": {
"description": "Optional center point for the search",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"type": "object"
},
"query": {
"description": "Search query",
"type": "string"
},
"radius": {
"description": "Search radius in meters (max 50000)",
"type": "number"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "maps_search_places"
},
{
"description": "Get detailed information about a specific place",
"inputSchema": {
"properties": {
"place_id": {
"description": "The place ID to get details for",
"type": "string"
}
},
"required": [
"place_id"
],
"type": "object"
},
"name": "maps_place_details"
},
{
"description": "Calculate travel distance and time for multiple origins and destinations",
"inputSchema": {
"properties": {
"destinations": {
"description": "Array of destination addresses or coordinates",
"items": {
"type": "string"
},
"type": "array"
},
"mode": {
"description": "Travel mode (driving, walking, bicycling, transit)",
"enum": [
"driving",
"walking",
"bicycling",
"transit"
],
"type": "string"
},
"origins": {
"description": "Array of origin addresses or coordinates",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"origins",
"destinations"
],
"type": "object"
},
"name": "maps_distance_matrix"
},
{
"description": "Get elevation data for locations on the earth",
"inputSchema": {
"properties": {
"locations": {
"description": "Array of locations to get elevation for",
"items": {
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"locations"
],
"type": "object"
},
"name": "maps_elevation"
},
{
"description": "Get directions between two points",
"inputSchema": {
"properties": {
"destination": {
"description": "Ending point address or coordinates",
"type": "string"
},
"mode": {
"description": "Travel mode (driving, walking, bicycling, transit)",
"enum": [
"driving",
"walking",
"bicycling",
"transit"
],
"type": "string"
},
"origin": {
"description": "Starting point address or coordinates",
"type": "string"
}
},
"required": [
"origin",
"destination"
],
"type": "object"
},
"name": "maps_directions"
}
]