Skip to main content
Glama
Crawlora MCP

Crawlora MCP

Official

datasets_google_map_search

Search stored Google Maps business records by query, location, category, rating, review count, and closure status, then sort and filter results for lead or market research.

Instructions

Search stored Google Maps businesses. Searches Google Maps business records stored in a search index. Sort enum: relevance, updated_at_desc, rating_desc, review_count_desc, distance_asc. category is the exact Google Maps category label returned for the business locale; it can be localized, non-ASCII, or contain punctuation, so use the category facet to discover exact filter values. A rating of null means no aggregate rating is available. A review_count of null means Google did not return a count; numeric 0 means Google confirmed zero reviews. rating_desc sorts unrated businesses last, and min_rating above 0 excludes them. Use has_geo=false to isolate locationless service-area businesses (which have a null geo). A permanently_closed of true means Google marks the business permanently closed; false means a crawl confirmed it does not; null means the business has not been status-checked since capture shipped on 2026-08-31 and is UNKNOWN, not open — so any total computed from this dataset includes an unknown number of closed businesses. Use permanently_closed=false to exclude the confirmed-closed ones. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).

Input Schema

NameRequiredDescriptionDefault
qNoFull-text business search query, max 256 characters; every term must match the name, address, headline or category (filler words such as in, near and the are ignored)
latNoLatitude for radius filtering or distance sort
lonNoLongitude for radius filtering or distance sort
cityNoExact city filter, max 128 characters
pageNoPage number, defaults to 1
sortNoSort enum: relevance, updated_at_desc, rating_desc, review_count_desc, distance_asc
townNoExact town filter, max 128 characters
stateNoExact state filter, max 128 characters
countyNoExact county filter, max 128 characters
countryNoCountry filter. Accepts the full English name (\
has_geoNoFilter by location presence: true keeps only mappable businesses with coordinates; false isolates locationless service-area businesses that have no map location
categoryNoExact locale-specific Google Maps category label; use the category facet to discover values, max 128 characters
radius_mNoRadius in meters, 1 through 50000; requires lat and lon when supplied
has_phoneNoFilter by phone presence
page_sizeNoPage size, defaults to 20 and maxes at 100; page * page_size must be <= 10000
min_ratingNoMinimum rating, 0 through 5. Businesses with no aggregate Google rating are returned with rating null, so any min_rating above 0 excludes them.
state_codeNoExact ISO 3166-2 state/region code filter, e.g. CA-ON, max 128 characters. Only Canadian provinces and territories carry a code today, so US codes such as US-NV return no rows; filter other countries by state, county or city. Use facet=state_code to list values
county_codeNoExact ISO 3166-2 county/district code filter, e.g. IE-D, max 128 characters. Only Irish counties carry a code today; filter other countries by county or city. Use facet=county_code to list values
has_websiteNoFilter by website presence
min_review_countNoMinimum review count
permanently_closedNoClosure filter. true keeps only businesses Google marks Permanently closed; false excludes them, keeping every business not known to be closed. Most rows have never been status-checked and are returned with permanently_closed null, which means unknown, not open.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.17.16
    • changedInput schema / properties / county_code / description
      Previous value: -"Exact ISO 3166-2 county/district code filter, e.g. FR-59 or IT-RM, max 128 characters; use facet=county_code to discover values"New value: +"Exact ISO 3166-2 county/district code filter, e.g. IE-D, max 128 characters. Only Irish counties carry a code today; filter other countries by county or city. Use facet=county_code to list values"
    • changedInput schema / properties / q / description
      Previous value: -"Full-text business search query, max 256 characters"New value: +"Full-text business search query, max 256 characters; every term must match the name, address, headline or category (filler words such as in, near and the are ignored)"
    • changedInput schema / properties / state_code / description
      Previous value: -"Exact ISO 3166-2 state/region code filter, e.g. US-CA or FR-HDF, max 128 characters; use facet=state_code to discover values"New value: +"Exact ISO 3166-2 state/region code filter, e.g. CA-ON, max 128 characters. Only Canadian provinces and territories carry a code today, so US codes such as US-NV return no rows; filter other countries by state, county or city. Use facet=state_code to list values"
  2. Changed1 schema field changedv1.17.5
    • addedInput schema / properties / sort / enum
      Added value: +[
      +  "relevance",
      +  "updated_at_desc",
      +  "rating_desc",
      +  "review_count_desc",
      +  "distance_asc"
      +]
  3. Changed4 schema fields changedv1.16.2
    • changedInput schema / properties / country / description
      Previous value: -"Exact country filter, max 128 characters"New value: +"Country filter. Accepts the full English name (\\"
    • addedInput schema / properties / county_code
      Added value: +{
      +  "description": "Exact ISO 3166-2 county/district code filter, e.g. FR-59 or IT-RM, max 128 characters; use facet=county_code to discover values",
      +  "type": "string"
      +}
    • addedInput schema / properties / permanently_closed
      Added value: +{
      +  "description": "Closure filter. true keeps only businesses Google marks Permanently closed; false excludes them, keeping every business not known to be closed. Most rows have never been status-checked and are returned with permanently_closed null, which means unknown, not open.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / state_code
      Added value: +{
      +  "description": "Exact ISO 3166-2 state/region code filter, e.g. US-CA or FR-HDF, max 128 characters; use facet=state_code to discover values",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / category / description
      Previous value: -"Exact category filter: a Google Maps type token in lower-case snake_case (e.g. dentist, bus_stop), max 128 characters"New value: +"Exact locale-specific Google Maps category label; use the category facet to discover values, max 128 characters"
  5. Changed3 schema fields changedv1.2.0
    • changedInput schema / properties / category / description
      Previous value: -"Exact category filter, max 128 characters"New value: +"Exact category filter: a Google Maps type token in lower-case snake_case (e.g. dentist, bus_stop), max 128 characters"
    • addedInput schema / properties / has_geo
      Added value: +{
      +  "description": "Filter by location presence: true keeps only mappable businesses with coordinates; false isolates locationless service-area businesses that have no map location",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / min_rating / description
      Previous value: -"Minimum rating, 0 through 5"New value: +"Minimum rating, 0 through 5. Businesses with no aggregate Google rating are returned with rating null, so any min_rating above 0 excludes them."
  6. Addedv1.1.0

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description carries the full burden well: it discloses per-record billing with a 2-credit minimum, the null-vs-zero semantics for rating and review_count, the unknown-not-open meaning of permanently_closed=null (with the capture date), and the data-quality consequence that any total includes an unknown number of closed businesses. These are exactly the cost and correctness warnings an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and generally information-dense, but it repeats the sort enum verbatim (values already listed in the schema enum) and duplicates the null-handling notes for rating, review_count and permanently_closed that appear in the property descriptions. A delete-the-duplicate pass would cut roughly a third without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 21-parameter, annotation-free, no-output-schema tool this covers the essentials: cost, null semantics, sorting pitfalls, and the geographic/closure filters. It stops short of describing the record shape returned (no output schema exists) and of routing the agent away from the adjacent Google Maps dataset tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the property descriptions already explain min_rating's null exclusion, permanently_closed's null semantics, and category localization, so the description mostly restates structured data. It does add one genuine detail not in the schema — that rating_desc sorts unrated businesses last — but that is a thin delta against a fully documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search stored Google Maps businesses') and clarifies the source is a search index rather than live Google Maps. It never distinguishes itself from close siblings such as datasets_google_map_nearby, datasets_google_map_facets or google_map_search, so an agent must infer the split from the names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete how-to-use guidance scattered through the text: use the category facet to discover exact filter values, has_geo=false to isolate locationless service-area businesses, permanently_closed=false to drop confirmed-closed ones, min_rating above 0 to exclude unrated rows. It does not say when to prefer this tool over the nearby/facets/item siblings, which is the main usage gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools