Google Maps MCP Server
Google Maps Platform place search, routing, weather and local-rank checks as 18 read-only MCP tools
Geocoding, place search, routing, isochrones and map images from Mapbox, plus offline geometry maths
Official · Mapbox TypeScript Remote (hosted) · Streamable HTTPLocal · stdio Maps and travel
73 popularity score ★ 367 ↓ 5.0k/wk
Opens the app, which asks before it adds the server.
claude mcp add --transport http mapbox-mcp-production https://mcp.mapbox.com/mcp{
"mcpServers": {
"mapbox-mcp": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.mapbox.com/mcp"]
}
}
}{
"servers": {
"mapbox-mcp": {
"type": "http",
"url": "https://mcp.mapbox.com/mcp"
}
}
}{
"mcpServers": {
"mapbox-mcp": {
"url": "https://mcp.mapbox.com/mcp"
}
}
}Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs MAPBOX_ACCESS_TOKEN. Replace each <NAME> with your value.
claude mcp add mapbox -e MAPBOX_ACCESS_TOKEN=<MAPBOX_ACCESS_TOKEN> -- npx -y @mapbox/mcp-server{
"mcpServers": {
"mapbox": {
"command": "npx",
"args": [
"-y",
"@mapbox/mcp-server"
],
"env": {
"MAPBOX_ACCESS_TOKEN": "<MAPBOX_ACCESS_TOKEN>"
}
}
}
}{
"mcpServers": {
"mapbox": {
"command": "npx",
"args": [
"-y",
"@mapbox/mcp-server"
],
"env": {
"MAPBOX_ACCESS_TOKEN": "<MAPBOX_ACCESS_TOKEN>"
}
}
}
}{
"servers": {
"mapbox": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@mapbox/mcp-server"
],
"env": {
"MAPBOX_ACCESS_TOKEN": "<MAPBOX_ACCESS_TOKEN>"
}
}
}
}[mcp_servers.mapbox]
command = "npx"
args = ["-y", "@mapbox/mcp-server"]
[mcp_servers.mapbox.env]
MAPBOX_ACCESS_TOKEN = "<MAPBOX_ACCESS_TOKEN>"gemini mcp add --scope user -e MAPBOX_ACCESS_TOKEN=<MAPBOX_ACCESS_TOKEN> mapbox npx -- -y @mapbox/mcp-serverOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs MAPBOX_ACCESS_TOKEN. Replace each <NAME> with your value.
git clone https://github.com/mapbox/mcp-server.git
cd mcp-server
npm install
npm run buildclaude mcp add mapbox -e MAPBOX_ACCESS_TOKEN=<MAPBOX_ACCESS_TOKEN> -- node '<ABSOLUTE_PATH_TO_CLONE>/dist/esm/index.js'{
"mcpServers": {
"mapbox": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/dist/esm/index.js"
],
"env": {
"MAPBOX_ACCESS_TOKEN": "<MAPBOX_ACCESS_TOKEN>"
}
}
}
}{
"mcpServers": {
"mapbox": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/dist/esm/index.js"
],
"env": {
"MAPBOX_ACCESS_TOKEN": "<MAPBOX_ACCESS_TOKEN>"
}
}
}
}{
"servers": {
"mapbox": {
"type": "stdio",
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/dist/esm/index.js"
],
"env": {
"MAPBOX_ACCESS_TOKEN": "<MAPBOX_ACCESS_TOKEN>"
}
}
}
}[mcp_servers.mapbox]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/dist/esm/index.js"]
[mcp_servers.mapbox.env]
MAPBOX_ACCESS_TOKEN = "<MAPBOX_ACCESS_TOKEN>"gemini mcp add --scope user -e MAPBOX_ACCESS_TOKEN=<MAPBOX_ACCESS_TOKEN> mapbox node -- '<ABSOLUTE_PATH_TO_CLONE>/dist/esm/index.js'MAPBOX_ACCESS_TOKEN secret |
Required: Mapbox access token used for every Mapbox API call. |
|---|---|
CLIENT_NEEDS_RESOURCE_FALLBACK |
Optional: Set to true to add resource_reader_tool and category_list_tool for clients without MCP resource support. |
MAPBOX_API_ENDPOINT |
Optional: Override the Mapbox API base URL. |
| Set together: tracing | |
OTEL_TRACING_ENABLED |
Optional: Turn OpenTelemetry tracing on or off. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Optional: OTLP endpoint for OpenTelemetry traces. |
OTEL_SERVICE_NAME |
Optional: Service name reported in traces. |
Mapbox's own MCP server puts the Mapbox location APIs in front of an assistant. It turns addresses into coordinates and back, finds places by name or category, pulls opening hours and contact details for a place, plans routes for driving, walking and cycling, builds travel-time matrices, orders multiple stops, snaps GPS traces to roads and draws reachability areas. Results can be shown as a static PNG/JPEG map or, in clients that support MCP Apps, as an interactive map panel inside the chat via render_map_tool; since 0.16.0 that panel lists search results beside the pins with photos from Place Details.
About half the tools never call Mapbox at all: distance, bearing, area, buffers, centroids, convex hulls, polygon union, intersection and difference, and point-in-polygon tests are computed locally with Turf.js. A ground_location_tool combines reverse geocoding, category search and an isochrone in one call for questions about a single coordinate.
Version 0.16.0 registers 29 tools at start (src/tools/toolRegistry.ts at that tag). Two more, resource_reader_tool and the deprecated category_list_tool, appear only when CLIENT_NEEDS_RESOURCE_FALLBACK=true, for clients that cannot read MCP resources. The README already documents two tools that the published package lacks. They are feedback_tool, which reports wrong map, place or routing data to Mapbox, and list_public_tokens_tool, which hands back the account's pk. tokens for a web page built outside the chat. Both are registered on the main branch only, and so is the MAPBOX_PUBLIC_TOKEN setting the second one falls back to. The --enable-tools and --disable-tools flags (comma-separated tool names, read in src/config/toolConfig.ts) trim the tool list. Mapbox also runs the server as a hosted endpoint at https://mcp.mapbox.com/mcp.
| To run it yourself | Node.js 22+ |
|---|---|
| Runs on | macOS, Windows, Linux |
| Mapbox | Free tierAccess token from a Mapbox account; API requests count toward that account's usage |
Create a token on the Mapbox account page (a free account works). Node.js 22 or newer for the npm package (engines in package.json at v0.16.0). The hosted endpoint needs no install: sign in with a Mapbox account through the client's OAuth flow, or send the token as a Bearer header. Claude Desktop reaches the hosted endpoint only through mcp-remote, which npx fetches.
Two tools in the README are not in the published package. feedback_tool will need the user-feedback:write scope to send a report and user-feedback:read for its duplicate check. list_public_tokens_tool will need tokens:read to list the account's public tokens, and with a pk. token it returns that token alone. On a local install it can fall back to MAPBOX_PUBLIC_TOKEN, but only for callers using the server's own MAPBOX_ACCESS_TOKEN (ListPublicTokensTool.ts on main). Neither tool nor that setting does anything in 0.16.0.
Suits developers building travel, logistics or location features who already use Mapbox or are willing to create an account, and who want routing, isochrones and geocoding rather than just a map image. The hosted endpoint suits anyone who would rather not run Node 22 locally and whose client supports OAuth. The offline geometry tools are useful on their own, but the server is built around a Mapbox token. In 0.16.0 no tool changes anything in a Mapbox account. Teams standardised on another map provider will want that provider's server instead. For Mapbox developer work (styles, tokens, docs) Mapbox publishes separate servers, mcp-devkit-server and mcp-docs-server, which we also list.
31 only read.
search_and_geocode_toolreverse_geocode_toolcategory_search_toolplace_details_toolground_location_tooldirections_toolmatrix_tooloptimization_toolmap_matching_toolisochrone_toolstatic_map_image_toolrender_map_tooldistance_toolbearing_toolmidpoint_tooldestination_toollength_toolarea_toolcentroid_toolbbox_toolbuffer_toolsimplify_toolconvex_toolpoints_within_polygon_toolnearest_point_toolnearest_point_on_line_toolunion_toolintersect_tooldifference_toolresource_reader_toolcategory_list_toolmapbox://categoriesmapbox://place-photo/{mapbox_id}mapbox://response/{tool}