Google Maps places, reviews, contributor history, photos and posts as JSON. No Google Cloud.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
HasData API key, created at app.hasdata.com. 1,000 free credits every month, no card.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get Map Contributor Reviews Lists all Google Maps reviews authored by a specific Local Guide / contributor by contributorId, with language/country targeting and nextPageToken pagination. Returns per-review rating, text, date, place name, place address, photos, and owner responses. Use for reviewer reputation checks, detecting fake/bot review patterns, local-guide activity analysis, and building review-author profiles for trust scoring.
Google Maps Contributor ID.
The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`.
The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`.
Number of results per page, ranging from 10 to 200.
Defines the next page token. It is used for retrieving the next page results.
Get Map Contributor Reviews Lists all Google Maps reviews authored by a specific Local Guide / contributor by contributorId, with language/country targeting and nextPageToken pagination. Returns per-review rating, text, date, place name, place address, photos, and owner responses. Use for reviewer reputation checks, detecting fake/bot review patterns, local-guide activity analysis, and building review-author profiles for trust scoring.
| Argument | Type | Description |
|---|---|---|
| gl | string | The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`. |
| hl | string | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. |
| num | number | Number of results per page, ranging from 10 to 200. |
| contributorId* | string | Google Maps Contributor ID. |
| nextPageToken | string | Defines the next page token. It is used for retrieving the next page results. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contributorId"
],
"properties": {
"gl": {
"type": "string",
"description": "The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`."
},
"hl": {
"type": "string",
"description": "The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`."
},
"num": {
"type": "number",
"description": "Number of results per page, ranging from 10 to 200."
},
"contributorId": {
"type": "string",
"description": "Google Maps Contributor ID."
},
"nextPageToken": {
"type": "string",
"description": "Defines the next page token. It is used for retrieving the next page results."
}
},
"additionalProperties": false
}Get Place Photos Fetches the photo gallery of a Google Maps place by dataId or placeId, paginated with nextPageToken and filterable by categoryId. Returns each photo with image URL and thumbnail. Use for restaurant-menu extraction, venue/ambience visual audits, building rich place detail pages, and sourcing up-to-date imagery for POI listings.
| Argument | Type | Description |
|---|---|---|
| hl | string | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. |
| dataId | string | Google Maps data ID. Either dataId or placeId should be set. |
| placeId | string | Unique reference to a place on Google Maps. Either dataId or placeId should be set. |
| categoryId | string | Filters photos by category. |
| nextPageToken | string | Token for fetching the next page of photos. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hl": {
"type": "string",
"description": "The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`."
},
"dataId": {
"type": "string",
"description": "Google Maps data ID. Either dataId or placeId should be set."
},
"placeId": {
"type": "string",
"description": "Unique reference to a place on Google Maps. Either dataId or placeId should be set."
},
"categoryId": {
"type": "string",
"description": "Filters photos by category."
},
"nextPageToken": {
"type": "string",
"description": "Token for fetching the next page of photos."
}
},
"additionalProperties": false
}Get Place Details Fetches full Google Maps place data by placeId with optional domain/language localization. Returns name, address, coordinates, phone, website, categories, hours, rating, review count, price level, photos, attributes/amenities, and plus_code. With fetchWebResults, also returns the place panel's web results (the business's own site and its Instagram, Facebook, delivery and other listings) with title, link, displayed link and snippet. Use for local SEO audits, POI enrichment, lead generation, competitor mapping, and building location-aware agents.
| Argument | Type | Description |
|---|---|---|
| hl | string | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. |
| domain | string | Google domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`. |
| placeId* | string | A unique identifier for the place. This ID can be obtained from Google Maps search results. |
| fetchWebResults | boolean | Also collect the place panel's "Web results" section (the business's website and its pages on Instagram, Facebook, delivery services, etc.) and return it as `webResults`. This takes an extra request to Google and costs 5 credits on top of the base. Default is false. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"placeId"
],
"properties": {
"hl": {
"type": "string",
"description": "The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`."
},
"domain": {
"type": "string",
"description": "Google domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`."
},
"placeId": {
"type": "string",
"description": "A unique identifier for the place. This ID can be obtained from Google Maps search results."
},
"fetchWebResults": {
"type": "boolean",
"description": "Also collect the place panel's \"Web results\" section (the business's website and its pages on Instagram, Facebook, delivery services, etc.) and return it as `webResults`. This takes an extra request to Google and costs 5 credits on top of the base. Default is false."
}
},
"additionalProperties": false
}Get Map Posts Fetches the latest Google Maps Posts (timeline-style updates such as offers, events, announcements, and notices) for a place by dataId or placeId, with language targeting. Returns per-post title, description, image, posted_at, link, and source/business name. Use for small-business intelligence, local-marketing monitoring, competitor activity tracking, and surfacing current promotions and events from local merchants.
| Argument | Type | Description |
|---|---|---|
| hl | string | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. |
| dataId | string | Google Maps data ID. |
| placeId | string | Unique reference to a place on a Google Map. Either dataId or placeId should be set. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hl": {
"type": "string",
"description": "The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`."
},
"dataId": {
"type": "string",
"description": "Google Maps data ID."
},
"placeId": {
"type": "string",
"description": "Unique reference to a place on a Google Map. Either dataId or placeId should be set."
}
},
"additionalProperties": false
}Get Map Reviews Paginated fetch of Google Maps reviews for a place by dataId or placeId, with sort (mostRelevant, newestFirst, ratingHigh, ratingLow), topicId filter, and language. Returns per-review author name and profile link, star rating, text, published/relative date, likes count, owner response, attached photos, and local-guide flag. Use for reputation management, sentiment and topic mining, competitor review benchmarking, and feeding review data into summarization or trust-score LLMs.
| Argument | Type | Description |
|---|---|---|
| hl | string | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. |
| dataId | string | Google Maps data ID. |
| sortBy | string | Parameter used for sorting and refining results. |
| placeId | string | Unique reference to a place on a Google Map. Either dataId or placeId should be set. |
| topicId | string | Defines the ID of the topic you want to use for filtering reviews. |
| nextPageToken | string | Defines the next page token. It is used for retrieving the next page results. |
Get Google Maps Search Results Runs a Google Maps search by keyword plus optional GPS coordinates (@lat,lng,zoomz via `ll`) with language, country, domain, and offset-based pagination (start). Returns the local pack list with placeId, name, address, coordinates, rating, review count, price level, categories, phone, website, hours, and thumbnail. Use for local lead generation, competitor density mapping, market expansion research, hyperlocal directories, and feeding placeIds into the Maps Place, Reviews, or Photos endpoints.
| Argument | Type | Description |
|---|---|---|
| q* | string | Search query term or phrase. |
| gl | string | The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`. |
| hl | string | The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`. |
| ll | string | GPS coordinates of the location where the search query is to be performed. This parameter is required if the 'start' parameter is present. The format for the `ll` parameter is `@` followed by latitude, longitude, and zoom level, separated by commas. The latitude and longitude should be in decimal degrees, and the zoom level is an integer. Example: `@40.7455096,-74.0083012,14z`. |
| start | number | Specifies the result offset for pagination purposes. The offset dictates the number of rows to skip from the beginning of the results. This is useful for accessing subsequent pages of search results. For example, an offset of 0 (the default value) returns the first page of results, 20 returns the second page, 40 returns the third page, and so on. This parameter is especially relevant when used in conjunction with the 'll' parameter for location-based searches. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hl": {
"type": "string",
"description": "The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`."
},
"dataId": {
"type": "string",
"description": "Google Maps data ID."
},
"sortBy": {
"enum": [
"mostRelevant",
"newestFirst",
"ratingHigh",
"ratingLow"
],
"type": "string",
"description": "Parameter used for sorting and refining results."
},
"placeId": {
"type": "string",
"description": "Unique reference to a place on a Google Map. Either dataId or placeId should be set."
},
"topicId": {
"type": "string",
"description": "Defines the ID of the topic you want to use for filtering reviews."
},
"nextPageToken": {
"type": "string",
"description": "Defines the next page token. It is used for retrieving the next page results."
}
},
"additionalProperties": false
}| domain | string | Google domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Search query term or phrase."
},
"gl": {
"type": "string",
"description": "The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`."
},
"hl": {
"type": "string",
"description": "The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`."
},
"ll": {
"type": "string",
"description": "GPS coordinates of the location where the search query is to be performed. This parameter is required if the 'start' parameter is present. The format for the `ll` parameter is `@` followed by latitude, longitude, and zoom level, separated by commas. The latitude and longitude should be in decimal degrees, and the zoom level is an integer. Example: `@40.7455096,-74.0083012,14z`.\n"
},
"start": {
"type": "number",
"description": "Specifies the result offset for pagination purposes. The offset dictates the number of rows to skip from the beginning of the results. This is useful for accessing subsequent pages of search results. For example, an offset of 0 (the default value) returns the first page of results, 20 returns the second page, 40 returns the third page, and so on. This parameter is especially relevant when used in conjunction with the 'll' parameter for location-based searches.\n"
},
"domain": {
"type": "string",
"description": "Google domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`."
}
},
"additionalProperties": false
}