mcpField
G
google-maps

google-maps

github.com/fetcher-shData & databases23.8k installsUpdated 8w ago
Repository

About google-maps

A data skill for searching Google Maps places and retrieving place details and reviews. It provides HTTP GET endpoints and an MCP connection for agents that need location-based business data.

Key features

  1. 01Text-based place search
  2. 02Search anchored to coordinates
  3. 03Place details by feature ID
  4. 04Place reviews and single-review lookup
  5. 05Language and country localization

Use cases

  1. 01Find nearby cafes or restaurants
  2. 02Inspect a place before planning a visit
  3. 03Retrieve recent or relevant place reviews

MCP support

Connects through https://google-maps.fetcher.sh/mcp. MCP clients can search endpoint metadata, check balance, and fetch place or review data through paid tools.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fetcher-sh/fetcher-skills --skill google-maps

After installing, type/google-mapsin Claude Code to confirm it loaded.

Details

From the project README

Google Maps API

Place search, place details, and reviews as clean JSON — one plain HTTP GET per call, paid as you go. No Google Cloud project, no API key restriction rules, no per-request Places API billing.

Base URL: https://google-maps.fetcher.sh

Authentication

Two ways to pay, same data — full mechanics in the fetcher skill:

# 1. Prepaid credits (recommended — get a key at https://fetcher.sh/topup
#    or via POST /api/credits/topup, see the fetcher skill)
export FETCHER_API_KEY="bby_live_xxxxxxxxxxxx"
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://google-maps.fetcher.sh/api/place/search?query=coffee"

# 2. x402 pay-per-call — omit the header; a GET with no payment returns 402
#    with machine-readable payment requirements (USDC on Base, Polygon,
#    Arbitrum, Monad, or Solana). @x402/fetch signs and retries automatically.

Every response is { "status": number, "message": string, "data": ... }; the HTTP status mirrors status.

Endpoints (4 — all GET, $0.005/call)

EndpointWhat it returns
/api/place/searchPlaces matching a text query, optionally anchored to a coordinate
/api/place/{fid}A place's full details by feature ID
/api/place/{fid}/reviewsA place's reviews
/api/review/{id}A single review by ID

Required on search: query. Optional: languageCode, countryCode, latitude, longitude, offset, zoom (search radius/precision). Reviews support sort (relevant, newest, highest, lowest) and cursor.

Scenarios

Plain text search:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=ramen in brooklyn" -G \
  "https://google-maps.fetcher.sh/api/place/search"

Anchor the search to a coordinate (for "near me" style queries):

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=coffee" -G \
  --data-urlencode "latitude=40.7128" \
  --data-urlencode "longitude=-74.0060" \
  "https://google-maps.fetcher.sh/api/place/search"

A place's details, then its reviews sorted by newest:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://google-maps.fetcher.sh/api/place/0x89c259af336b3341%3A0x8c584d6dfe89aa89"

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "sort=newest" -G \
  "https://google-maps.fetcher.sh/api/place/0x89c259af336b3341%3A0x8c584d6dfe89aa89/reviews"

A single review by ID:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://google-maps.fetcher.sh/api/review/ChdDSUhNMG9nS0VJQ0FnSURDeGRXQnl3RRAB"

Localized results (French language, Canadian region):

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=boulangerie" -G \
  --data-urlencode "languageCode=fr" \
  --data-urlencode "countryCode=CA" \
  "https://google-maps.fetcher.sh/api/place/search"

MCP

{
  "mcpServers": {
    "google-maps": {
      "url": "https://google-maps.fetcher.sh/mcp",
      "headers": { "Authorization": "Bearer bby_live_..." }
    }
  }
}

Free: search_endpoints, describe_endpoint, check_balance. Paid: fetch_data (any endpoint above), topup_credits, plus the named shortcut google_maps_place_search. Drop the headers block to pay per call with x402 instead — see the fetcher skill for the full flow.

Errors

  • 400 — missing/invalid parameter (message names it)
  • 401 — unknown or rotated key
  • 402 — payment required (x402 challenge) or topup_required (credits exhausted)
  • 404 — not a priced path
  • No rate limits; no refunds on upstream failures (settlement precedes delivery)

Reference

Comments

Markdown supported