Find and enrich local businesses from Google Maps with owners, emails, phones, websites, and more.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
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.
Return the current plan, available lead credits, per-search limit, and active jobs. Call this before any credit-spending search or enrichment.
This tool takes no arguments.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http mapsdata https://www.mapsdata.io/mcp
Return the current plan, available lead credits, per-search limit, and active jobs. Call this before any credit-spending search or enrichment.
No arguments.
{
"type": "object",
"title": "check_accountArguments",
"properties": {}
}Start asynchronous contact enrichment for businesses the user already has. This uses Pay on Find. First call check_account, state the maximum cost (up to 3 credits per submitted business, capped by the available balance), and obtain confirmation. Starting the job requires at least 1 credit per business during a trial or 1.5 credits per business on a paid plan. Use one stable idempotency_key for retries.
| Argument | Type | Description |
|---|---|---|
| name | any | Optional display name for the job. |
| businesses* | array | Public businesses to enrich, each with a name and website URL. |
| idempotency_key* | string | Stable unique key to make retries safe. |
| confirmed_credit_cost* | integer | Maximum Pay-on-Find credit cost the user explicitly approved. |
{
"type": "object",
"$defs": {
"EnrichmentBusiness": {
"type": "object",
"title": "EnrichmentBusiness",
"required": [
"business_name",
"website_url"
],
"properties": {
"website_url": {
"type": "string",
"title": "Website Url",
"maxLength": 2048,
"minLength": 8,
"description": "Public HTTP(S) business website to inspect for enrichment."
},
"business_name": {
"type": "string",
"title": "Business Name",
"maxLength": 200,
"minLength": 1,
"description": "Public business name to enrich."
}
},
"additionalProperties": false
}
},
"title": "enrich_businessesArguments",
"required": [
"businesses",
"confirmed_credit_cost",
"idempotency_key"
],
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
],
"title": "Name",
"default": null,
"description": "Optional display name for the job."
},
"businesses": {
"type": "array",
"items": {
"$ref": "#/$defs/EnrichmentBusiness"
},
"title": "Businesses",
"maxItems": 700,
"minItems": 1,
"description": "Public businesses to enrich, each with a name and website URL."
},
"idempotency_key": {
"type": "string",
"title": "Idempotency Key",
"pattern": "^[A-Za-z0-9._:-]+$",
"maxLength": 64,
"minLength": 8,
"description": "Stable unique key to make retries safe."
},
"confirmed_credit_cost": {
"type": "integer",
"title": "Confirmed Credit Cost",
"minimum": 1,
"description": "Maximum Pay-on-Find credit cost the user explicitly approved."
}
}
}Get progress and credit usage for a supplied-business enrichment job. Does not use credits.
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Supplied-business enrichment job ID. |
{
"type": "object",
"title": "enrichment_statusArguments",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"title": "Job Id",
"format": "uuid",
"description": "Supplied-business enrichment job ID."
}
}
}Find canonical Google business category names for a niche. Use display_name as the search query when an exact category is appropriate. Does not use credits.
| Argument | Type | Description |
|---|---|---|
| query* | string | Business niche or category name to match. |
{
"type": "object",
"title": "find_categoriesArguments",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"title": "Query",
"maxLength": 100,
"minLength": 2,
"description": "Business niche or category name to match."
}
}
}Resolve a city or region to Mapsdata's canonical location label. Use the returned label and country_code when calling search_businesses. Does not use credits.
| Argument | Type | Description |
|---|---|---|
| query* | string | City, state, region, or country name to resolve. |
| country_code | any | Optional ISO country code. |
{
"type": "object",
"title": "find_locationsArguments",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"title": "Query",
"maxLength": 100,
"minLength": 2,
"description": "City, state, region, or country name to resolve."
},
"country_code": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
],
"title": "Country Code",
"default": null,
"description": "Optional ISO country code."
}
}
}Get one complete business record by the business ID returned in a search or enrichment result page. Does not use credits.
| Argument | Type | Description |
|---|---|---|
| business_id* | string | Business ID returned by a search or enrichment result page. |
{
"type": "object",
"title": "get_businessArguments",
"required": [
"business_id"
],
"properties": {
"business_id": {
"type": "string",
"title": "Business Id",
"format": "uuid",
"description": "Business ID returned by a search or enrichment result page."
}
}
}Return one page of supplied-business enrichment results. Continue while has_more is true and fetch all pages again after completion. Does not use credits.
| Argument | Type | Description |
|---|---|---|
| page | integer | One-based results page number. |
| job_id* | string | Supplied-business enrichment job ID. |
| page_size | integer | Businesses to return per page. |
{
"type": "object",
"title": "get_enrichment_resultsArguments",
"required": [
"job_id"
],
"properties": {
"page": {
"type": "integer",
"title": "Page",
"default": 1,
"minimum": 1,
"description": "One-based results page number."
},
"job_id": {
"type": "string",
"title": "Job Id",
"format": "uuid",
"description": "Supplied-business enrichment job ID."
},
"page_size": {
"type": "integer",
"title": "Page Size",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Businesses to return per page."
}
}
}Return one page of enriched businesses already found by a discovery search. Results may be read while the job is running. Continue while has_more is true, then fetch all pages once more after the job reaches completed. Does not use credits.
| Argument | Type | Description |
|---|---|---|
| page | integer | One-based results page number. |
| page_size | integer | Businesses to return per page. |
| search_id* | string | Discovery search job ID. |
{
"type": "object",
"title": "get_search_resultsArguments",
"required": [
"search_id"
],
"properties": {
"page": {
"type": "integer",
"title": "Page",
"default": 1,
"minimum": 1,
"description": "One-based results page number."
},
"page_size": {
"type": "integer",
"title": "Page Size",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Businesses to return per page."
},
"search_id": {
"type": "string",
"title": "Search Id",
"format": "uuid",
"description": "Discovery search job ID."
}
}
}List this account's supplied-business enrichment jobs, newest first. Use scope to narrow the source. Does not use credits.
| Argument | Type | Description |
|---|---|---|
| page | integer | One-based results page number. |
| scope | string | Where the job was created: all sources, the Mapsdata dashboard, or an integration (REST API or MCP). |
| page_size | integer | Jobs to return per page. |
{
"type": "object",
"title": "list_enrichmentsArguments",
"properties": {
"page": {
"type": "integer",
"title": "Page",
"default": 1,
"minimum": 1,
"description": "One-based results page number."
},
"scope": {
"enum": [
"all",
"dashboard",
"integration"
],
"type": "string",
"title": "Scope",
"default": "all",
"description": "Where the job was created: all sources, the Mapsdata dashboard, or an integration (REST API or MCP)."
},
"page_size": {
"type": "integer",
"title": "Page Size",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Jobs to return per page."
}
}
}List this account's discovery searches, newest first, including searches created in the Mapsdata dashboard, REST API, and MCP. Use scope to narrow the source. Does not use credits.
| Argument | Type | Description |
|---|---|---|
| page | integer | One-based results page number. |
| scope | string | Where the job was created: all sources, the Mapsdata dashboard, or an integration (REST API or MCP). |
| page_size | integer | Jobs to return per page. |
{
"type": "object",
"title": "list_searchesArguments",
"properties": {
"page": {
"type": "integer",
"title": "Page",
"default": 1,
"minimum": 1,
"description": "One-based results page number."
},
"scope": {
"enum": [
"all",
"dashboard",
"integration"
],
"type": "string",
"title": "Scope",
"default": "all",
"description": "Where the job was created: all sources, the Mapsdata dashboard, or an integration (REST API or MCP)."
},
"page_size": {
"type": "integer",
"title": "Page Size",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Jobs to return per page."
}
}
}Start one asynchronous Google Maps business search in one canonical location. This uses Pay on Find. First call check_account and find_locations, tell the user the maximum cost (up to 3 credits per business, capped by the available balance), and note that starting an enriched run requires at least 1 credit per requested business during a trial or 1.5 credits per requested business on a paid plan. obtain confirmation. Use one stable idempotency_key for retries.
| Argument | Type | Description |
|---|---|---|
| name | any | Optional display name for the job. |
| query* | string | Business niche or search term. |
| language | string | Language code for Google Maps results. |
| location* | string | Canonical location label returned by find_locations. |
| max_results* | integer | Maximum businesses to return. Pay-on-Find cost can be 0 to 3 credits per business. |
| country_code | any | ISO country code from find_locations. |
| expand_nearby | boolean | Whether to search nearby map areas for additional matches. |
Get progress and credit usage for one discovery search. Does not use credits.
| Argument | Type | Description |
|---|---|---|
| search_id* | string | Discovery search job ID. |
{
"type": "object",
"title": "search_statusArguments",
"required": [
"search_id"
],
"properties": {
"search_id": {
"type": "string",
"title": "Search Id",
"format": "uuid",
"description": "Discovery search job ID."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.
| enrich_contacts | boolean | Whether to enrich listings with contact and owner data. |
| idempotency_key* | string | Stable unique key to make retries safe. |
| confirmed_credit_cost* | integer | The maximum Pay-on-Find credit cost the user approved. |
{
"type": "object",
"title": "search_businessesArguments",
"required": [
"query",
"location",
"max_results",
"confirmed_credit_cost",
"idempotency_key"
],
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "null"
}
],
"title": "Name",
"default": null,
"description": "Optional display name for the job."
},
"query": {
"type": "string",
"title": "Query",
"maxLength": 300,
"minLength": 1,
"description": "Business niche or search term."
},
"language": {
"type": "string",
"title": "Language",
"default": "en",
"pattern": "^[a-z]{2,3}(-[A-Za-z]{2,4})?$",
"description": "Language code for Google Maps results."
},
"location": {
"type": "string",
"title": "Location",
"maxLength": 300,
"minLength": 1,
"description": "Canonical location label returned by find_locations."
},
"max_results": {
"type": "integer",
"title": "Max Results",
"maximum": 700,
"minimum": 100,
"description": "Maximum businesses to return. Pay-on-Find cost can be 0 to 3 credits per business."
},
"country_code": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
],
"title": "Country Code",
"default": null,
"description": "ISO country code from find_locations."
},
"expand_nearby": {
"type": "boolean",
"title": "Expand Nearby",
"default": true,
"description": "Whether to search nearby map areas for additional matches."
},
"enrich_contacts": {
"type": "boolean",
"title": "Enrich Contacts",
"default": true,
"description": "Whether to enrich listings with contact and owner data."
},
"idempotency_key": {
"type": "string",
"title": "Idempotency Key",
"pattern": "^[A-Za-z0-9._:-]+$",
"maxLength": 64,
"minLength": 8,
"description": "Stable unique key to make retries safe."
},
"confirmed_credit_cost": {
"type": "integer",
"title": "Confirmed Credit Cost",
"minimum": 0,
"description": "The maximum Pay-on-Find credit cost the user approved."
}
}
}