Google Maps Places Scraper

Search Google Maps and get one row per place: phone, website, address, rating, and hours.

Documentation

Google Maps Places Scraper MCP Server

MCP Registry npm version npm downloads license

An MCP server for the Mamba Labs Google Maps Places Scraper actor on Apify. Google Maps place data as rows.

What's Inside

What it does

Takes searches or known place IDs and returns one row per place with phone, website, address, coordinates, categories, rating, review count, hours, and attributes.

All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.

Quick start

You need Node.js 18 or newer and an Apify account with an API token.

Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:

{
  "mcpServers": {
    "mamba-google-maps-places-scraper": {
      "command": "npx",
      "args": [
        "-y",
        "@mambalabsdev/mcp-google-maps-places-scraper"
      ],
      "env": {
        "APIFY_TOKEN": "your-apify-token"
      }
    }
  }
}

Restart the client. The search_google_maps_places tool appears.

Prerequisites

Example prompts

  • "Find 20 coffee shops in Austin, TX with their phone and website."
  • "Look up this Google place ID and give me its hours."

Tool

search_google_maps_places. One tool. Example arguments:

{
  "search_terms": [
    "coffee shop in Austin, TX"
  ],
  "max_places_per_search": 5
}

Inputs

Every buyer facing input of the actor. Omitted inputs take the actor's own defaults.

InputTypeRequiredDescription
search_termsarraynoWhat to search on Google Maps, such as dentist in Austin, TX. One search per entry. Each search returns up to about 120 to 200 places, so split a large area into neighborhoods.
locationsarraynoOptional. Each search term is run once per location, as "term in location". Leave empty when your searches already name the place.
placesarraynoOptional. Look up places you already know: a ChIJ place ID, or a Google Maps place URL. Each costs one place row.
max_places_per_searchnumbernoWhole number from 1 to 500. Default 20. Google stops most searches between 120 and 200 places.
only_countrystringnoOptional 2 letter country code, such as DE. Places in other countries are dropped and not charged. A search for Berlin can otherwise return Berlin, New Jersey, on later pages.
dedupebooleannoyes or no. Default yes: a place found twice in a run is returned and charged once.
languagestringnoLanguage code for names and categories, such as en or de. Default en.
results_countrystringno2 letter code Google uses to tailor results. Default us. It does not limit results to that country; use only_country for that.
max_charge_usdnumbernoOptional. The run stops before a charge that would pass this amount. Summary rows are always returned.

Pricing

Pay per event on Apify, billed to your Apify account. Prices in USD.

EventFree planBronzeSilverGold
place-row, one place$0.0015$0.001425$0.00135$0.001275
apify-actor-start, per run start$0.007$0.007$0.007$0.007

Summaries, repeats, and refused input are free. Mamba Labs pays the platform costs of the run, Apify proxy traffic included.

Full actor documentation

apify.com/mambalabs/google-maps-places-scraper

License

MIT. See LICENSE.