/ 디렉터리 / 플레이그라운드 / Google Maps
● 공식 modelcontextprotocol 🔑 본인 키 필요

Google Maps

제작: modelcontextprotocol · modelcontextprotocol/servers-archived

Geocoding, place search, directions, distance matrix — Google Maps power for itineraries, store-locator features, and regional analyses.

The reference Google Maps MCP (now in modelcontextprotocol/servers-archived). Wraps key Maps APIs: geocoding, place search and details, directions, distance matrix, elevation. Useful for any agent task that needs real-world geography. Note: archived means no active maintenance — plan for community forks long-term.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

google-maps.replay ▶ 준비됨
0/0

설치

클라이언트 선택

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "google-maps": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-google-maps"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config 열기. 저장 후 앱 재시작.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "google-maps": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-google-maps"
      ]
    }
  }
}

Cursor는 Claude Desktop과 동일한 mcpServers 스키마 사용. 프로젝트 설정이 전역보다 우선.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "google-maps": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-google-maps"
      ]
    }
  }
}

Cline 사이드바의 MCP Servers 아이콘 클릭 후 "Edit Configuration" 선택.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "google-maps": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-google-maps"
      ]
    }
  }
}

Claude Desktop과 같은 형식. Windsurf 재시작 후 적용.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "google-maps",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-google-maps"
      ]
    }
  ]
}

Continue는 맵이 아닌 서버 오브젝트 배열 사용.

~/.config/zed/settings.json
{
  "context_servers": {
    "google-maps": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-google-maps"
        ]
      }
    }
  }
}

context_servers에 추가. 저장 시 Zed가 핫 리로드.

claude mcp add google-maps -- npx -y @modelcontextprotocol/server-google-maps

한 줄 명령. claude mcp list로 확인, claude mcp remove로 제거.

사용 사례

실전 활용법: Google Maps

Plan a day-trip itinerary with realistic travel times

👤 Travelers, anyone planning a multi-stop day ⏱ ~10 min beginner

언제 쓸까: You have 5 places you want to hit in one day and need a realistic order, with travel times.

사전 조건
  • Google Maps API key with relevant APIs enabled — console.cloud.google.com → enable Geocoding, Places, Directions APIs, then create key
흐름
  1. Geocode all stops
    Geocode these 5 places into lat/lng: <list>. Verify each address looks right.✓ 복사됨
    → 5 coordinates with confidence
  2. Compute distance matrix
    Get drive times between every pair of stops at 10am on a weekday. Show as a matrix.✓ 복사됨
    → 5×5 time matrix
  3. Order and add directions
    Suggest the order that minimizes total drive time. Then give me turn-by-turn directions stop-to-stop.✓ 복사됨
    → Optimized route with directions

결과: An itinerary you can actually execute, not 'sounds nice' planning.

함정
  • Distance matrix doesn't account for parking time / walk to door — Pad each leg by 10-15 min for parking; longer for downtown destinations
  • Real-time traffic only available for certain modes/regions — Use departure_time to get traffic-aware estimates; 'now' may be excluded depending on plan
함께 쓰기: brave-search

Build store-locator data for a regional product

👤 Devs implementing a 'find a location' feature ⏱ ~30 min intermediate

언제 쓸까: You're building a 'nearest store' feature and need to seed it with real coordinates and details.

흐름
  1. Geocode each store address
    I have a CSV of 50 store addresses at /data/stores.csv. Geocode each, return a new CSV with added lat, lng, place_id, and Google's normalized address.✓ 복사됨
    → Enriched CSV; flag any addresses that didn't geocode cleanly
  2. Pull rich details for each
    For each place_id, fetch hours, phone, website. Add to the CSV.✓ 복사됨
    → Per-store details, with missing-data flags where applicable
  3. Validate sample
    Pick 5 random rows and verify the geocoded coords visually look right (e.g. 'Stockholm address geocoded to Sweden, not Wisconsin').✓ 복사됨
    → Sanity check pass; outliers flagged

결과: A clean store dataset ready to power a UI.

함정
  • Geocoding API has per-call cost — 50 addresses is a few cents but 50k is real money — Cache results aggressively; only re-geocode when address strings change
함께 쓰기: filesystem

Find which of your customers live within X minutes of a candidate location

👤 Ops, real-estate, growth analysts ⏱ ~25 min advanced

언제 쓸까: You're evaluating a new store/office location and want to know how many existing customers it would serve.

흐름
  1. Geocode the candidate
    Geocode the candidate address: '1234 Market St, San Francisco'.✓ 복사됨
    → Coordinate confirmed
  2. Distance matrix to customer ZIPs
    From the candidate, compute drive time to each of these 100 customer ZIP centroids: <list>. Use 9am weekday.✓ 복사됨
    → Per-ZIP drive time
  3. Aggregate
    How many customers are within 15 min, 30 min, 60 min? Plot a histogram (ascii bars OK).✓ 복사됨
    → Bucketed counts that inform the decision

결과: A data-grounded answer to 'should we open here?'

함정
  • ZIP centroid is a poor proxy for actual customer addresses — If you have actual addresses, use them; centroids skew suburban analyses
  • Distance matrix limits batch size — Google caps origins×destinations per call; chunk into multiple requests, but you'll pay per element either way
함께 쓰기: postgres · filesystem

조합

다른 MCP와 조합해 10배 효율

google-maps + filesystem

Bulk-geocode a CSV and write the enriched file back

Read /data/customers.csv, geocode each address, write /data/customers_geo.csv with added lat/lng/place_id columns.✓ 복사됨
google-maps + postgres

Geocode customer rows during onboarding

For every row in customers where lat IS NULL, geocode the address and update the row. Stop after 500 to manage cost.✓ 복사됨
google-maps + brave-search

Brave finds candidate places → Google Maps gets the geocode + directions

Brave-search 'best ramen Mission SF'. For the top 3, get place_ids and walking directions from 16th St BART.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
maps_geocode address: str Address → coordinates $5 / 1000 calls
maps_reverse_geocode lat: number, lng: number Coordinates → address $5 / 1000 calls
maps_search_places query: str, location?, radius? Find places by name/category near a point $17-32 / 1000 (text search) or less for nearby
maps_place_details place_id: str Hydrate one place with full details $17 / 1000 base + add-ons per field
maps_distance_matrix origins[], destinations[], mode?, departure_time? Bulk distance/time between many points $5 / 1000 elements (origin×destination)
maps_directions origin, destination, mode?, waypoints? Turn-by-turn for one route $5 / 1000 calls
maps_elevation locations: [{lat, lng}] Elevation profile for a path or points $5 / 1000 calls

비용 및 제한

운영 비용

API 쿼터
Per-API. Default project caps but raisable.
호출당 토큰
Small; cost is monetary not tokens
금액
Pay-per-call. Geocoding $5/1k. Place Details $17/1k. Distance Matrix $5/1k elements. $200/mo free credit historically — verify current Google policy.
Cache geocoded addresses indefinitely (they don't change). Distance matrix is the easy way to blow $50 in one prompt — always compute origins × destinations before calling.

보안

권한, 시크릿, 파급범위

자격 증명 저장: API key in env var GOOGLE_MAPS_API_KEY. Restrict the key by API and (if possible) by IP/referrer in Google Cloud console.
데이터 외부 송신: All calls to maps.googleapis.com
절대 부여 금지: unrestricted-everywhere keys — can be scraped from build artifacts and abused

문제 해결

자주 발생하는 오류와 해결

REQUEST_DENIED

API not enabled for your key, or billing not configured. Enable each API (Geocoding, Places, Directions) in Cloud console and set up billing.

OVER_QUERY_LIMIT

You hit the per-second or per-day cap. Add throttling; raise quota in Cloud console if needed.

ZERO_RESULTS on geocode

Address ambiguous or doesn't exist as written. Try adding country/state, or use Place Autocomplete instead.

Distance matrix INVALID_REQUEST

Check origins×destinations doesn't exceed the per-call element limit (varies by plan). Chunk the request.

대안

Google Maps 다른 것과 비교

대안언제 쓰나단점/장점
OpenStreetMap (Nominatim) via fetchFree, no API key, willing to self-rate-limit and accept lower data qualitySparser POI data; usage policy for Nominatim restricts heavy use
Mapbox via custom MCPYou want a managed alternative with often better pricing for high volumeNo first-party MCP yet
HERE / TomTom APIs via custom MCPRouting/POI in regions where Google is weakNo first-party MCP

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기