Maps Harvest
Server Details
Local business data from Google Maps: ratings, reviews, businesses without a website.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 72.6% over 22 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
The three tools have mostly distinct purposes, but find_businesses_without_website and get_local_market_snapshot both query the same city/business-type listing data and both return sample businesses plus the share without a website. The descriptions make the lead-generation vs. market-statistics distinction clear enough, but the overlap can still cause some hesitation.
All names follow a consistent verb-first snake_case pattern: find_businesses_without_website, get_local_market_snapshot, and list_available_markets. They are descriptive and predictable.
Three tools is a well-scoped surface for this narrow read-only market research server. Each tool has a clear role: discover coverage, retrieve a market snapshot, and find businesses without websites.
The tool set covers the core read-only workflow of checking available markets, getting aggregate snapshots, and finding website-less businesses. A minor gap is the lack of a general business-detail lookup or broader search/filter operation, but agents can work around this for the stated purpose.
Available Tools
3 toolsfind_businesses_without_websiteBusinesses without a websiteARead-onlyIdempotentInspect
Local businesses of one type in one city whose Google Maps listing shows no website: up to 10 of them (name, address, rating; phone numbers are masked), plus the share of sampled listings without a website. Useful for finding businesses that may need a website. When a city or business type is not covered, the result lists what is.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City, for example "Houston" or "London". | |
| region | No | State, province or county, for example "Texas", "TX" or "Greater London". Optional. | |
| country | No | United States, United Kingdom, Canada, Australia, Germany or Egypt. Optional. | |
| business_type | Yes | Type of business, for example "Dentist", "Roofing contractor" or "Plumber". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial detail beyond the annotations: a hard cap of 10 results, the returned fields (name, address, rating), that phone numbers are masked, and that it reports the share of sampled listings without a website. The coverage-fallback behavior is also disclosed, which is exactly the kind of context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what the tool returns and its scope, then appends the use case and fallback in short clauses. Dense with information and no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers scope, output contents and truncation, privacy masking, aggregate metric, and coverage failure handling. With no output schema and fully described parameters, an agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so field meanings come from the schema. The description still adds the cardinality constraint ("one type in one city"), clarifying that the tool takes a single business_type and city per call rather than lists, which the schema's string types alone do not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource with exact scope: local businesses of one type in one city whose Google Maps listing shows no website. This is clearly distinguishable from the sibling tools (get_local_market_snapshot, list_available_markets), which are broader market-level queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States a concrete use case ("finding businesses that may need a website") and explains the failure path ("When a city or business type is not covered, the result lists what is"), which tells the agent how to recover. It does not explicitly route to a sibling such as list_available_markets for discovering covered markets, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_local_market_snapshotLocal market snapshotARead-onlyIdempotentInspect
Snapshot of one type of local business in one city, from Google Maps listings: how many listings the sample holds, the average star rating, the typical review count, the share without a website, the share showing a phone number, and up to 10 example businesses (name, address, rating, website; phone numbers are masked). Covers common business types in major cities of the United States, United Kingdom, Canada, Australia, Germany and Egypt. When a city or business type is not covered, the result lists what is.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City, for example "Houston" or "London". | |
| region | No | State, province or county, for example "Texas", "TX" or "Greater London". Optional. | |
| country | No | United States, United Kingdom, Canada, Australia, Germany or Egypt. Optional. | |
| business_type | Yes | Type of business, for example "Dentist", "Roofing contractor" or "Plumber". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses data provenance (Google Maps listings), that figures are sample-based rather than exhaustive ('how many listings the sample holds'), masking of phone numbers, and a hard cap of 10 example records. These are the operational details an agent needs to interpret and present results honestly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One long but dense sentence delivers the return contents, followed by a short coverage sentence and a fallback clause. Lead information (what the snapshot is) comes first, and nothing is repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations covering semantics, the description carries the burden of explaining return values and does so field by field, plus coverage limits and fallback behavior. An agent can decide whether to call it and how to present the result without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 applies; the description adds the constraint that both business_type and city describe exactly one type in one locality, reinforcing that this is a single-pair query. The country list mirrors the schema's enum-like description, so it adds no new information but the single-pair framing does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (a snapshot of one business type in one city) and enumerates exactly what the snapshot contains: listing count, average rating, typical review count, website/phone coverage shares, and up to 10 examples. An agent can tell this returns an aggregate market profile rather than a raw listing set, which separates it from a filtered-list sibling like find_businesses_without_website.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Geographic coverage is stated explicitly and the fallback ('when a city or business type is not covered, the result lists what is') implies calling list_available_markets, but that sibling is never named and no when-not-to-use condition is given. Usage is inferable rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_marketsList available marketsARead-onlyIdempotentInspect
Business types and cities that have snapshots. Pass a business type to get its cities, a country to narrow either list, or nothing for an overview.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | United States, United Kingdom, Canada, Australia, Germany or Egypt. Optional. | |
| business_type | No | Type of business, for example "Dentist", "Roofing contractor" or "Plumber". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered. The description adds valuable behavioral detail: the result set is limited to markets that actually have snapshots, and output shape branches on which parameter is supplied. It does not say what an empty result means (no coverage vs. bad input) or what the 'overview' contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns and followed by the parameter-driven behavior. No filler, no restatement of the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the necessary work of explaining that results are constrained to markets with snapshots and how the return set varies by parameter. Minor gaps remain around what 'overview' returns and whether unmatched business types error or return empty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema documents the country enum-like list and business_type examples. The description goes beyond that by explaining the interaction contract — business_type yields its cities, country narrows either list, neither gives an overview — which the schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource — business types and cities that have snapshots — which tells an agent this is an enumeration/coverage-listing tool. It implicitly distinguishes itself from get_local_market_snapshot (which retrieves data) and find_businesses_without_website, but never names either sibling, so the routing is inferred rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence spells out three concrete invocation modes: pass a business type to get its cities, pass a country to narrow either list, or pass nothing for an overview. That is clear usage context, but there are no exclusions or guidance on when to prefer a sibling tool instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
find_businesses_without_website1 field changed- changed
Input schema / properties / country / descriptionPrevious value: -"United States, United Kingdom, Canada, Australia or Germany. Optional."New value: +"United States, United Kingdom, Canada, Australia, Germany or Egypt. Optional."
- Changed
get_local_market_snapshot1 field changed- changed
Input schema / properties / country / descriptionPrevious value: -"United States, United Kingdom, Canada, Australia or Germany. Optional."New value: +"United States, United Kingdom, Canada, Australia, Germany or Egypt. Optional."
- Changed
list_available_markets1 field changed- changed
Input schema / properties / country / descriptionPrevious value: -"United States, United Kingdom, Canada, Australia or Germany. Optional."New value: +"United States, United Kingdom, Canada, Australia, Germany or Egypt. Optional."
3 tool updates
- First observed
find_businesses_without_website - First observed
get_local_market_snapshot - First observed
list_available_markets
Related MCP Connectors
Local businesses on Google Maps with no website: name, phone, address, rating. For web agencies.
Find local businesses on Google: name, address, phone, hours, ratings, and photos.
Google Maps places and leads: phone, website, address, rating, reviews, hours, emails.
Local business leads from Google Maps, 7 directories, DuckDuckGo and OpenStreetMap, with contacts
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables searching Google Local for businesses by keyword and location, returning details like name, address, phone, hours, ratings, and more. Useful for lead generation, local SEO, and market analysis.MIT
- FlicenseNot gradedqualityBmaintenanceFetches and analyzes Google Maps review ratings with a full star-by-star breakdown (★1–★5) and provides an assessment of rating patterns.-
- AlicenseBqualityDmaintenanceEnables access to Google Maps business data including search, reviews, photos, and geocoding. Supports searching businesses by location, area, or coordinates, retrieving detailed business information, reviews, and performing reverse geocoding operations.13MIT
- AlicenseAqualityCmaintenanceSearch for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data • No API key needed, free access • Rate limit: 500 requests/hour per IP61MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.