MapsData

Servidor MCP remoto que cria listas de leads a partir do Google Maps: cada empresa correspondente com seu e-mail, telefone, site, endereço e avaliação, para mais de 4.000 tipos de negócios nos EUA, Canadá, Reino Unido e Austrália. Conecte-se com OAuth ou uma chave de API do MapsData.

Servidor MCP hospedado

npx add-mcp 'https://mapsdata.ai/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Conecte um agente de IA

MapsData é um servidor MCP remoto, então um assistente de IA pode montar suas listas de leads diretamente. Conecte-o uma vez e você pode pedir ao Claude ou a outro agente para encontrar encanadores no Texas, e ele verificará a categoria, iniciará a coleta e entregará o arquivo quando terminar.

MCP é o Model Context Protocol, um padrão aberto para dar a um assistente acesso a uma ferramenta. Nosso servidor está em:

https://mapsdata.ai/mcp

Incluído em todos os planos pagos, assim como a API REST, e usa as mesmas chaves de API. Coletas iniciadas por um agente contam contra a mesma cota mensal que todo o resto.

Conectando

A autenticação é um token bearer: sua chave de API do MapsData, criada em Configurações. Veja autenticação para saber como as chaves funcionam.

Claude Code

claude mcp add --transport http mapsdata https://mapsdata.ai/mcp \ --header "Authorization: Bearer mdk_live_..."

Cursor

Em ~/.cursor/mcp.json, ou no .cursor/mcp.json do projeto:

{ "mcpServers": { "mapsdata": { "url": "https://mapsdata.ai/mcp", "headers": { "Authorization": "Bearer mdk_live_..." } } } }

Qualquer outra ferramenta

Qualquer cliente que suporte MCP HTTP com streaming e permita definir um cabeçalho funcionará. O servidor não tem estado: ele não emite ID de sessão, e cada chamada é um único POST.

Conectores hospedados

Diretórios como o do Claude.ai não têm onde colocar um cabeçalho, então eles usam OAuth. O MapsData suporta isso: registro dinâmico de clientes, fluxo de código de autorização com PKCE e tokens de atualização rotativos. Aponte o conector para https://mapsdata.ai/mcp e ele descobrirá o resto, depois enviará você para uma tela de consentimento que nomeia o aplicativo e declara claramente que aprová-lo permite que esse aplicativo gaste sua cota mensal de leads.

Conexões aprovadas aparecem em Configurações ao lado de suas chaves de API, e desconectar uma tem efeito imediato.

Ferramentas

FerramentaO que faz
mapsdata_search_categoriesEncontra a categoria exata do Google Maps para coletar
mapsdata_list_regionsNomes de regiões válidos para um país
mapsdata_get_usageCota restante neste ciclo e a maior coleta que você pode iniciar agora
mapsdata_start_scrapeInicia uma coleta. Suporta execução de teste.
mapsdata_get_scrapeVerifica uma coleta
mapsdata_list_scrapesColetas recentes, das mais novas para as mais antigas
mapsdata_get_download_linkUm link de 15 minutos para os resultados
mapsdata_cancel_scrapeCancela uma coleta na fila ou em andamento

Cancelar está marcado como destrutivo, então um cliente bem-comportado pedirá sua confirmação antes de executar. Isso é proposital: cancelar uma coleta em andamento ainda cobra pelos leads já entregues.

Um exemplo prático

Peça o que você quer em linguagem simples:

Find me 500 plumbers in Texas with email addresses.

Um agente bem-comportado confirmará que a categoria é coletável, iniciará o trabalho e então parará em vez de ficar em um loop:

> mapsdata_search_categories(query: "plumb") ["Plumber", "Plumbing supply store"] > mapsdata_start_scrape(query: "Plumber", states: ["Texas"], total_limit: 500) {"job_id": "8f2c...", "status": "queued", "poll_after_seconds": 60, "next_action": "Tell the user the scrape is queued ... then STOP."} "Started a scrape for 500 plumbers in Texas. It usually takes anywhere from a few minutes to a couple of hours. MapsData will email you when it's done, or ask me to check on it."

Depois, peça para ele verificar e buscar o arquivo:

> mapsdata_get_scrape(job_id: "8f2c...") {"status": "completed", "leads_scraped": 480, "leads_with_email": 151, "next_action": "Call mapsdata_get_download_link."} > mapsdata_get_download_link(job_id: "8f2c...") {"download_url": "https://...", "filename": "Plumber.csv", "expires_in_seconds": 900}

Por que ele não fica em loop de consultas

Uma coleta leva de minutos a horas, o que é um formato desconfortável para um assistente. Cada resposta de trabalho traz um valor de poll_after_seconds e uma instrução explícita de next_action dizendo ao agente para reportar e parar. Agentes seguem um campo na resposta com muito mais confiabilidade do que seguem uma descrição, então ambos estão presentes.

Se um agente entrar em loop mesmo assim, os limites de taxa o impedem: 120 chamadas por minuto por chave, 300 por minuto em todo o seu workspace e 10 envios de coleta por minuto. Um limite de borda fica na frente de tudo isso.

Um agente também não pode estourar sua cota em uma única chamada. total_limit é limitado aos leads que você ainda tem neste ciclo, e mapsdata_get_usage reporta max_rows_this_scrape para que um agente bem-comportado dimensione a solicitação antes de fazê-la. Quando uma coleta é reduzida, a resposta diz isso e instrui o agente a repassar a informação.

Quando algo dá errado

Falhas de ferramenta retornam como erros legíveis que o agente pode tratar, em vez de falhas de protocolo, e elas nomeiam a ferramenta que resolve o problema. Pedir uma categoria que não existe instrui o agente a chamar mapsdata_search_categories; usar TX em vez de Texas instrui a chamar mapsdata_list_regions. Na prática, o agente se corrige e tenta novamente sem envolver você.

Segurança

  • Sua chave é a cota do seu workspace. Um agente que a possua pode gastar a cota do mês. Use uma chave criada para isso, para que você possa revogá-la sem quebrar mais nada.
  • Somente leitura, se preferir. Escolha "Somente leitura" ao criar a chave em Configurações, e o assistente poderá verificar e baixar coletas existentes, mas nunca iniciar ou cancelar uma.
  • Cancelar custa dinheiro. Está marcado como destrutivo para que seu cliente peça confirmação primeiro. Mantenha essa confirmação ativada.