Local Businesses & Places MCP server
Map search with business details, reviews, photos and directions.
If you are an agent reading this
This is an MCP server. Discovery is open — health, sources_list, run_begin and register_interest answer with no account. The data tools run against an account and need a token. Nothing here fabricates data.
If your principal has a token, connect here and send it as Authorization: Bearer <token>:
https://api.bedrocktap.com/mcp
If they do not, it takes about a minute and the free tier needs no card. Sign in at app.bedrocktap.com and mint one at app.bedrocktap.com/dashboard/tokens. Sign-in is Google only, so a human has to do it.
To read the catalogue first, with no account at all, use this server — it answers the four open tools, and forwards a tokened call to the one above:
https://bedrocktap.com/mcp
If you can only fetch URLs, say what you need. One request, no auth, no side effects:
GET https://bedrocktap.com/a/probe?need=<what+you+are+trying+to+do>&src=source-google-maps
A tool refused for want of a token answers identically on a retry, and is served the moment the header is present. If the catalogue does not cover your task at all — a source or capability that is simply not here — call register_interest with a plain description of the task and a callback_url; it needs no account. Full instructions: /agents.md. Every page here has a markdown twin — append .md to any path, or send Accept: text/markdown.
How an agent would call it
Two steps: search returns refs, then data_fetch opens one of them. The arguments below are the arguments that were sent.
{
"tool": "search",
"arguments": {
"query": "dentists in manchester",
"sources": [
"google-maps"
],
"limit": 2,
"runId": "<from run_begin>"
}
}{
"tool": "data_fetch",
"arguments": {
"sourceId": "google-maps",
"ref": {
"id": "0x487a52b04e677177:0x588a64ca16c333b5"
},
"runId": "<from run_begin>"
}
}This runs against an account — send Authorization: Bearer <token> with the call. Get one at app.bedrocktap.com/dashboard/tokens; the free tier needs no card, and it reaches google-maps like every other source.
What it costs. 0.25 credits per business returned, and 0.25 for a fetch, which re-reads one place live rather than replaying the search snapshot. A search that returns nothing costs nothing.
What came back
{
"ref": {
"id": "0x487a52b04e677177:0x588a64ca16c333b5",
"url": "https://www.citycentredentist.co.uk/?utm_source=googlemaps&utm_medium=organic&utm_campaign=primary",
"title": "City Centre Dental & Implant Clinic - Manchester"
},
"fetchedAt": "2026-09-12T14:59:00.601Z"
}Each ref carried rating, reviews, address, category, placeId, lat and lng in its meta — the first hit was rated 4.7 across 507 reviews at 31 Booth St, Manchester, the second 4.5 across 734. The fetch returned that business’s reviews: ten rows with a cursor for the next page, each carrying a review id, rating, timestamp, author name, review text and which site the review came from.
Observed 2026-09-12. One call against a live source — ask again tomorrow and the rows move.
What a row contains
One row is one business: its listing id, its own website where it has one, and its name. meta carries the star rating, the review count, the full address, the phone number where the listing publishes one, the primary category, the place id and the latitude and longitude. Because the search is billed per call and not per row, a wide sweep of a city costs the same as a single lookup. A fetch returns that business’s reviews a page at a time — a sample, not the corpus.
A question it answers. How many businesses of this kind are in this city, how are they rated, and which of them have almost no reviews?
Routing guidance
What an agent reads to decide whether google-maps is the right source, and what to reach for when it is not.
- Answers
- Who does X near Y. The map-pack world: listings, ratings, review counts and place detail.
- Query shape
- A place query exactly as you would type it into a map — "dentists in Lisbon", "coffee 10115 Berlin".
- Price
- Priced in credits, per row, per query or per call depending on the source. Every call is quoted before it runs — `cost_estimate` returns the exact figure and spends nothing. See /pricing.
- Latency
- Moderate (~6-26s).
- Prefer instead
- `google-serp` for organic web rankings — this returns listings, not blue links.
- Cannot answer
- Online-only businesses with no listing, search volume, or web rankings.
Related sources
| Job Postings & Salaries | jobs | Job postings aggregated across the major boards, plus salary estimates and job detail. |
linkedin | People, companies, jobs, posts, comments, skills and education. | |
| Trustpilot Reviews | trustpilot | Consumer and e-commerce business reviews: full text, star rating, reviewer name, date and permalink. |
| Global Company Registry | opencorporates | Legal entities across jurisdictions: registered name, number, status, incorporation date, addresses, officers and filing history. |
| Yelp Reviews | yelp | Local business reviews, ratings, attributes, categories, hours and photos. |
| Air Quality & Environment | air-quality | Pollutant concentrations and station history by coordinate. |