Requires a Google Cloud project with enabled Places API (New) and Routes API for authenticating and accessing Google Maps Platform services.
Provides location-aware AI capabilities including searching for nearby places, retrieving place details (hours, ratings, reviews, contact info), calculating routes with turn-by-turn navigation, and comparing distances to multiple destinations using the Google Maps Platform API.
Google Maps MCP Server
Streamable HTTP MCP server for Google Maps — search places, get details, and plan routes.
Repository: github.com/iceener/maps-streamable-mcp-server
Author: overment
Use Case
This MCP server is designed for location-aware AI agents running on mobile devices like Apple Watch or iPhone. Your client provides the current position, and the AI can:
Find nearby places (restaurants, stores, gas stations)
Get directions with turn-by-turn navigation
Compare distances to multiple destinations
Check opening hours and ratings before you arrive
It also pairs well with other MCP tools — for example, combining with a Tesla MCP to set navigation destinations directly in your car.
Notice
This repo works in two ways:
As a Node/Hono server for local workflows
As a Cloudflare Worker for remote interactions
Features
✅ Places — Search nearby places, restaurants, landmarks by text or type
✅ Details — Get hours, ratings, reviews, photos, contact info
✅ Routes — Calculate walking, driving, transit directions
✅ Distance Matrix — Compare distances to multiple destinations
✅ Location-aware — All tools work with your current position
✅ Dual Runtime — Node.js/Bun or Cloudflare Workers
Design Principles
LLM-friendly: Unified tools, not 1:1 API mirrors
Watch-ready: Designed for AI agents with location context
Smart defaults: 1km radius, 10 results, walking mode
Clear feedback: Place IDs visible for follow-up queries
Installation
Prerequisites: Bun, Google Cloud project.
0. Client Setup
Your client needs to be aware of the current time and your current location, as both values will be used for searching and planning.
1. Get Google Maps API Key
Go to Google Cloud Console
Create a new project (or select existing)
Navigate to APIs & Services > Library
Enable Places API (New) and Routes API
Go to APIs & Services > Credentials
Click Create Credentials > API Key
(Recommended) Restrict key to Places API and Routes API
2. Local Development
Edit .env:
Run:
3. Cloudflare Worker (Deploy)
Create KV namespace:
Update
wrangler.tomlwith your KV namespace IDSet secrets:
Deploy:
Endpoint: https://<worker-name>.<account>.workers.dev/mcp
Client Configuration
Claude Desktop / Cursor (Local)
Claude Desktop / Cursor (Cloudflare Worker)
Alice App
Add as MCP server with:
URL:
https://your-worker.workers.dev/mcpType:
streamable-httpHeader:
Authorization: Bearer <your-BEARER_TOKEN>
Tools
search_places
Find places by text query or type near a location.
Use
queryfor text search, ortypesfor category-based nearby search.
get_place
Get detailed information about a specific place.
get_route
Calculate routes or distance matrix.
Examples
1. Find nearby coffee shops
2. Search by text
3. Get place details
4. Walking directions
5. Compare distances to multiple places
HTTP Endpoints
Endpoint | Method | Purpose |
| POST | MCP JSON-RPC 2.0 |
| GET | Health check |
Environment Variables
Node.js (.env)
Variable | Required | Description |
| ✓ | Google Maps Platform API key |
| ✓ | Auth token for MCP clients |
| Server port (default: 3000) | |
| Enable auth (default: true) | |
|
(default) |
Cloudflare Workers
wrangler.toml:
Secrets (set via
BEARER_TOKEN— Random auth token for clientsAPI_KEY— Google Maps Platform API key
KV Namespace:
Troubleshooting
Issue | Solution |
401 Unauthorized | Check
is set and client sends
|
"API key not configured" | Set
secret:
|
"Places API error 403" | Enable Places API (New) in Google Cloud Console |
"Routes API error 404" | Enable Routes API in Google Cloud Console |
Invalid Place ID | Place IDs expire. Search again to get fresh IDs |
KV namespace error | Run
and update wrangler.toml |
Development
Architecture
License
MIT