Scrape Google Maps business leads, reviews, and photos via hosted Remote MCP.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer API key from https://gmapsleadfinder.com/account#api-key (format: Bearer gmf_…)
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.
Create a Maps search job for exactly one keyword. Shares the single in-flight job limit with the web app (409 if another job is running).
Single search keyword, e.g. "coffee shops in Austin TX"
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create a Maps search job for exactly one keyword. Shares the single in-flight job limit with the web app (409 if another job is running).
| Argument | Type | Description |
|---|---|---|
| keyword* | string | Single search keyword, e.g. "coffee shops in Austin TX" |
{
"type": "object",
"required": [
"keyword"
],
"properties": {
"keyword": {
"type": "string",
"description": "Single search keyword, e.g. \"coffee shops in Austin TX\""
}
},
"additionalProperties": false
}Create a Google Maps photos scrape job for exactly one place (Maps URL, maps.app.goo.gl / goo.gl/maps short link, business_id 0x…:0x…, or Place ID ChIJ…). Shares the single in-flight job limit (409 if busy).
| Argument | Type | Description |
|---|---|---|
| place* | string | Google Maps place URL, share short link (maps.app.goo.gl / goo.gl/maps/…), business_id (0x…:0x…), or Place ID (ChIJ…) |
{
"type": "object",
"required": [
"place"
],
"properties": {
"place": {
"type": "string",
"description": "Google Maps place URL, share short link (maps.app.goo.gl / goo.gl/maps/…), business_id (0x…:0x…), or Place ID (ChIJ…)"
}
},
"additionalProperties": false
}Create a Google Maps reviews scrape job for exactly one place (Maps URL, maps.app.goo.gl / goo.gl/maps short link, or business_id 0x…:0x…). Shares the single in-flight job limit with maps jobs (409 if busy).
| Argument | Type | Description |
|---|---|---|
| place* | string | Google Maps place URL, share short link (maps.app.goo.gl / goo.gl/maps/…), or business_id (0x…:0x…) |
{
"type": "object",
"required": [
"place"
],
"properties": {
"place": {
"type": "string",
"description": "Google Maps place URL, share short link (maps.app.goo.gl / goo.gl/maps/…), or business_id (0x…:0x…)"
}
},
"additionalProperties": false
}Get maps job status and per-keyword file metadata. Poll until status is completed, partial, or failed.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Job UUID from gmaps_create_job |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Job UUID from gmaps_create_job"
}
},
"additionalProperties": false
}Get photos job status. Poll until status is completed, partial, or failed.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Job UUID from gmaps_create_photos_job |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Job UUID from gmaps_create_photos_job"
}
},
"additionalProperties": false
}Fetch paginated photo rows as JSON for a finished photos job.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Photos job UUID |
| limit | number | Page size (1-500, default 100) |
| cursor | string | Pagination cursor from previous nextCursor |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Photos job UUID"
},
"limit": {
"type": "number",
"description": "Page size (1-500, default 100)"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous nextCursor"
}
},
"additionalProperties": false
}Fetch paginated place rows as JSON for a finished maps job (respects user export column preferences).
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Job UUID |
| limit | number | Page size (1-500, default 100) |
| cursor | string | Pagination cursor from previous nextCursor |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Job UUID"
},
"limit": {
"type": "number",
"description": "Page size (1-500, default 100)"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous nextCursor"
}
},
"additionalProperties": false
}Get reviews job status. Poll until status is completed, partial, or failed.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Job UUID from gmaps_create_reviews_job |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Job UUID from gmaps_create_reviews_job"
}
},
"additionalProperties": false
}Fetch paginated review rows as JSON for a finished reviews job.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Reviews job UUID |
| limit | number | Page size (1-500, default 100) |
| cursor | string | Pagination cursor from previous nextCursor |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Reviews job UUID"
},
"limit": {
"type": "number",
"description": "Page size (1-500, default 100)"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous nextCursor"
}
},
"additionalProperties": false
}Get current GMaps Lead Finder plan and credit balance for the authenticated API key.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}