{"_id":"@aiwerk/mcp-server-google-maps","name":"@aiwerk/mcp-server-google-maps","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aiwerk/mcp-server-google-maps","mcpName":"io.github.AIWerk/mcp-server-google-maps","version":"0.1.0","description":"Google Maps Platform MCP server — places, geocoding, turn-by-turn directions, route matrix, elevation and time zones","type":"module","main":"dist/src/server.js","bin":{"mcp-server-google-maps":"dist/src/server.js"},"scripts":{"gen-version":"node scripts/gen-version.mjs","prebuild":"npm run gen-version","build":"tsc -p tsconfig.json","start":"node dist/src/server.js","predev":"npm run gen-version","dev":"tsc --watch","pretest":"npm run gen-version","test":"vitest run","prepublishOnly":"bash $HOME/agent-memory/commons/scripts/prepublish-safety.sh && npm run build && npm test"},"engines":{"node":">=18.0.0"},"keywords":["mcp","mcp-server","google-maps","places","geocoding","directions","routes","elevation","timezone"],"author":{"name":"AIWerk","email":"kontakt@aiwerk.ch"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/AIWerk/mcp-server-google-maps.git"},"homepage":"https://aiwerkmcp.com","bugs":{"url":"https://github.com/AIWerk/mcp-server-google-maps/issues"},"dependencies":{"@modelcontextprotocol/sdk":"^1.19.1","zod":"^3.25.76"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.5.0","vitest":"^3.2.1"},"_id":"@aiwerk/mcp-server-google-maps@0.1.0","gitHead":"74fd0095049f44532b00d8195309812bfafee5fd","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-JZt4XvU1m+YLHrT7uK15VrXfPXNUSozZPzZKuwKVnsUj/QhazLJf5ITbq/Eriaz7XuqBcGbamOcgqp6lZdXWJg==","shasum":"b93319a317092e7972479dfd80e1fd8d39ed5d00","tarball":"https://registry.npmjs.org/@aiwerk/mcp-server-google-maps/-/mcp-server-google-maps-0.1.0.tgz","fileCount":12,"unpackedSize":54727,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDNtHz6wpmUZGpoWh0598q7lLivy6Y1XX/aoCgdx35smQIgRoQLdwzj5Ym5cYm1QZoP4KBvawSRaRPfc4ZxessugYI="}]},"_npmUser":{"name":"agbergsmann","email":"kontakt@aiwerk.ch"},"directories":{},"maintainers":[{"name":"agbergsmann","email":"kontakt@aiwerk.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server-google-maps_0.1.0_1786568860871_0.21592411671681377"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-12T21:07:40.542Z","0.1.0":"2026-08-12T21:07:40.987Z","modified":"2026-08-12T21:07:41.280Z"},"maintainers":[{"name":"agbergsmann","email":"kontakt@aiwerk.ch"}],"description":"Google Maps Platform MCP server — places, geocoding, turn-by-turn directions, route matrix, elevation and time zones","homepage":"https://aiwerkmcp.com","keywords":["mcp","mcp-server","google-maps","places","geocoding","directions","routes","elevation","timezone"],"repository":{"type":"git","url":"git+https://github.com/AIWerk/mcp-server-google-maps.git"},"author":{"name":"AIWerk","email":"kontakt@aiwerk.ch"},"bugs":{"url":"https://github.com/AIWerk/mcp-server-google-maps/issues"},"license":"MIT","readme":"# @aiwerk/mcp-server-google-maps\n\nGoogle Maps Platform MCP server — places, geocoding, turn-by-turn directions, route matrices, elevation and time zones.\n\nBuilt on the current Google APIs: Places API (New), Routes API v2, Geocoding API, Elevation API and Time Zone API. Turn-by-turn steps, transit routes and live traffic are included, which the Maps Grounding Lite MCP service does not provide.\n\n## Install\n\n```bash\nnpx -y @aiwerk/mcp-server-google-maps\n```\n\nOr add to your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"google-maps\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@aiwerk/mcp-server-google-maps\"],\n      \"env\": {\n        \"GOOGLE_MAPS_API_KEY\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\n## Configure\n\n| Variable | Required | Description |\n|---|---|---|\n| `GOOGLE_MAPS_API_KEY` | yes | API key from [Google Cloud Console](https://console.cloud.google.com/apis/credentials) |\n| `GOOGLE_MAPS_API_TIMEOUT_MS` | no | Request timeout in ms (default: 30000) |\n\n### APIs to enable on the Cloud project\n\nEach tool group calls a different API, and a disabled API answers `REQUEST_DENIED` or HTTP 403. Enable the ones you plan to use:\n\n| API | Powers |\n|---|---|\n| Places API (New) | `maps_search_places`, `maps_search_nearby`, `maps_place_details`, `maps_place_autocomplete` |\n| Geocoding API | `maps_geocode`, `maps_reverse_geocode`, `maps_place_id_lookup` |\n| Routes API | `maps_directions`, `maps_distance_matrix` |\n| Elevation API | `maps_elevation` |\n| Time Zone API | `maps_timezone` |\n\nBilling must be enabled on the project. The legacy Places API and Directions API are **not** used, so enabling those alone is not enough.\n\n## Tools\n\n11 read-only tools. Nothing in this server writes, and every tool is annotated `readOnlyHint`.\n\n| Name | Description |\n|---|---|\n| `maps_search_places` | Text search for places, with optional area bias, type, rating, price and open-now filters. |\n| `maps_search_nearby` | Places inside a circle around a coordinate, with the radius as a hard restriction. |\n| `maps_place_details` | Full detail for one place ID: hours, phone, website, rating, optionally reviews. |\n| `maps_place_autocomplete` | Place suggestions plus place IDs for partially typed input. |\n| `maps_geocode` | Address to coordinates, with normalised address components and place ID. |\n| `maps_reverse_geocode` | Coordinates to the addresses at that point. |\n| `maps_place_id_lookup` | Place ID to address and coordinates through the cheaper Geocoding API. |\n| `maps_directions` | Route with turn-by-turn steps, waypoints, traffic, alternatives and transit support. |\n| `maps_distance_matrix` | Travel time and distance for every origin-destination pair. |\n| `maps_elevation` | Elevation for up to 100 points, or a sampled profile along a path. |\n| `maps_timezone` | Time zone, UTC offset and DST offset for a coordinate at a given moment. |\n\n### Location arguments\n\n`maps_directions` and `maps_distance_matrix` accept three shapes for every location:\n\n| Shape | Example |\n|---|---|\n| Address | `\"Bundesplatz 3, 3005 Bern\"` |\n| Coordinates | `\"46.9480,7.4474\"` |\n| Place ID | `\"place_id:ChIJ...\"` |\n\n`maps_reverse_geocode`, `maps_elevation` and `maps_timezone` need coordinates, since those APIs do not geocode. Run `maps_geocode` first.\n\n## Cost control\n\nPlaces and Routes calls are billed by the fields they request, so the field masks in this server are deliberately narrow.\n\n- `maps_place_details` leaves reviews out until you set `include_reviews: true`, which moves the call to the Enterprise + Atmosphere tier.\n- `maps_directions` requests turn-by-turn steps by default. Set `include_steps: false` for totals only.\n- `maps_search_places` and `maps_search_nearby` accept a `fields` array that replaces the default mask entirely, for either trimming cost or reaching fields the default omits.\n- `maps_place_id_lookup` resolves a place ID through Geocoding instead of Place Details when only the address is needed.\n\nSet a quota cap in Google Cloud Console before pointing an autonomous agent at this server.\n\n## Notes\n\n- The classic web services (Geocoding, Elevation, Time Zone) answer HTTP 200 even when they refuse a request, with the real result in a `status` field. This server checks that field, so a bad key surfaces as a tool error instead of an empty success.\n- `ZERO_RESULTS` is returned as data, not as an error. An empty `results` array means the address or route genuinely has no match.\n- `routingPreference` and the `avoid_*` flags only apply to `DRIVE` and `TWO_WHEELER`. Passing them with `WALK`, `BICYCLE` or `TRANSIT` is rejected locally rather than sent to the API.\n- `maps_distance_matrix` results carry `originIndex` and `destinationIndex` and are not necessarily ordered.\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-53767abaf3e4aa9e61482540542321a0"}