Integrações
MCP para agentes
Deixe um agente de IA buscar lugares, coletar regiões inteiras e gerar exportações. Ele usa sua chave de API e paga o mesmo que o seu código pagaria.
O que é MCP
O MCP (Model Context Protocol) é um padrão para agentes de IA usarem ferramentas externas. Conecte o gmaps.dev uma vez e o seu agente passa a encontrar lugares, acompanhar uma coleta e entregar um arquivo para você, sem ajuda.
Conecte o seu agente
O endereço é https://api.gmaps.dev/mcp. O agente usa a mesma chave de API do seu código, enviada do mesmo jeito, num cabeçalho Authorization: Bearer. Coloque este bloco nas configurações de MCP dele:
{
"mcpServers": {
"gmaps.dev": {
"type": "http",
"url": "https://api.gmaps.dev/mcp",
"headers": { "Authorization": "Bearer ${GMAPS_API_KEY}" }
}
}
}- No Claude Code, salve como
.mcp.jsonna raiz do projeto. O Claude Code troca${GMAPS_API_KEY}pelo valor da variável de ambiente, então a chave nunca fica no arquivo. - Em outro cliente, coloque o mesmo endereço e o mesmo cabeçalho onde ele guarda os servidores MCP. Se ele não trocar
${GMAPS_API_KEY}sozinho, escreva a sua chave no lugar e deixe esse arquivo fora do git. - Quando você cria uma chave em Chaves de API, o console mostra este bloco com a chave já preenchida.
As ferramentas
O seu agente vê 18 ferramentas. Cada uma é uma chamada da API com outro nome e os mesmos campos:
| Ferramenta | Chamada da API | Para que serve |
|---|---|---|
search_places | POST /v1/places/search | Encontra lugares pelo que são e onde ficam. Responde na hora com os lugares que já salvamos. |
get_place | GET /v1/places/{place} | Lê um lugar que já salvamos. Nunca faz uma busca. |
get_collection | GET /v1/collections/{id} | Mostra até onde a coleta chegou e quanto já custou. |
list_collections | GET /v1/collections | As suas coletas, das mais novas para as mais antigas. |
quote_collection | POST /v1/collections/quote | Mostra o máximo que uma coleta custaria, sem começar nada. |
create_collection | POST /v1/collections | Busca numa região inteira, quadrado por quadrado, até maxPlaces lugares. |
cancel_collection | DELETE /v1/collections/{id} | Para uma coleta. Os lugares que já chegaram continuam seus, e os créditos gastos com eles não voltam. |
get_coverage | POST /v1/coverage | Mostra quanto de uma região já buscamos. |
create_export | POST /v1/exports | Gera um link com os lugares de uma coleta em csv, json ou xlsx. |
get_export | GET /v1/exports/{id} | Lê uma exportação de novo, enquanto o link ainda funciona. |
get_usage | GET /v1/usage | Créditos usados e restantes, no dia e no mês. |
create_webhook | POST /v1/webhooks | Adiciona um endpoint que chamamos quando uma coleta termina. |
list_webhooks | GET /v1/webhooks | Os seus endpoints de webhook, e se cada um está ligado. |
update_webhook | POST /v1/webhooks/{id} | Muda os eventos ou a anotação de um endpoint, ou desliga e liga. |
test_webhook | POST /v1/webhooks/{id}/test | Manda um evento de teste para um endpoint. |
list_webhook_deliveries | GET /v1/webhooks/{id}/deliveries | O que mandamos para um endpoint e o que ele respondeu. |
delete_webhook | DELETE /v1/webhooks/{id} | Remove um endpoint e o histórico de entregas dele. |
get_attributions | GET /v1/attributions | Os projetos de código aberto que usamos. Não precisa de chave. |
Uma chamada da API ficou sem ferramenta: GET /v1/collections/{id}/places. Uma página de lugares completos lotaria o contexto do agente, que é o texto que ele consegue guardar de uma vez. Por isso ele lê os lugares com search_places e, quando são muitos, entrega uma exportação.
As ferramentas de webhook precisam de um plano pago. O get_attributions não precisa de chave, e pedir a lista de ferramentas também não.
Como as ferramentas se encaixam
O servidor manda estes passos para o agente quando ele se conecta. Eles estão aqui para você saber o que ele vai fazer:
- Ele começa com
search_places: o que procurar e uma região. A resposta vem na hora, de graça, com os lugares que já salvamos. Se eles não chegarem aolimit, uma coleta começa a buscar o resto. - Uma coleta leva alguns minutos. O agente confere com
get_collectione depois faz a mesma busca de novo. Os lugares novos voltam, e dessa vez de graça. - Para uma cidade inteira, ele roda
quote_collectionantes. É de graça e mostra o máximo que a coleta pode custar. Depois chamacreate_collectioncommaxPlaces. - Para entregar os lugares a você, ele gera uma exportação com
create_exporte passa o link. O link abre um arquivo csv, json ou xlsx por 24 horas, e os lugares nem passam pelo contexto do agente. get_placelê um lugar que já salvamos, pelo nosso id, pelo cid, pelo place ID ou por um link do Maps. Nunca faz uma busca.get_usagemostra os créditos que restam no dia e no mês.create_webhookavisa o seu servidor quando uma coleta termina, e ninguém precisa ficar conferindo.
Documentação para agentes que leem
Alguns agentes leem a documentação em vez de chamar ferramentas. Para eles, publicamos a referência em texto puro. Ela sai da mesma lista de chamadas que a API atende, então nunca cita uma chamada que não existe:
https://gmaps.dev/llms.txté o ponto de partida: o que é o gmaps.dev, como as chamadas se encaixam, cada chamada numa linha e um link para cada guia.https://gmaps.dev/llms-full.txttraz tudo numa página só: cada chamada com os campos dela, o que gasta créditos e cada código de erro com o status HTTP.https://gmaps.dev/docs/reference/search_places.mdtraz uma chamada por página: endereço, campos, método do SDK e nome da ferramenta. Toda chamada tem a sua, com o nome da própria chamada.
Os arquivos são em inglês, como as descrições das ferramentas que o agente lê.
Quanto custa
Uma ferramenta roda o mesmo código da chamada da API, então custa o mesmo e conta nos mesmos limites:
- 0Um lugar que já salvamos volta na mesma resposta, marcado com
cached: true. - 1Um lugar novo que uma coleta encontra para você.
- 1E-mails de um lugar novo, nos planos pagos: 1 crédito por lugar, só quando encontramos pelo menos um.
- 0Buscas, estimativas, exportações e consultas ao seu consumo.
- 0Uma coleta que não encontra nada.
- Só
search_placesecreate_collectiongastam créditos. Todas as outras ferramentas são de graça. - O seu limite de requisições por minuto conta cada chamada de ferramenta, mesmo quando o agente manda várias numa requisição só.
- A resposta de uma ferramenta não tem cabeçalhos, então não vem o
x-credits-remaining. Para ver quanto sobrou, o agente chamaget_usage.
Quando uma ferramenta falha
A ferramenta responde com o mesmo erro que a API daria: um code, uma message que diz o que fazer, e às vezes details. Erros lista todos os códigos. Dois para ter em mente:
QUOTA_EXCEEDED: os créditos do dia ou do mês acabaram, ou há coletas demais rodando ao mesmo tempo. Odetails.scopediz qual:day,monthouconcurrency. Espere o limite renovar ou uma coleta terminar, ou mude de plano.PLAN_GATE: o seu plano não inclui esse recurso, como os webhooks. Odetails.upgradeTodiz qual plano inclui.
Bom saber
- O servidor só aceita requisições POST. Ele não guarda sessão nem manda atualizações ao vivo, então o agente acompanha uma coleta com
get_collection. - Cada ferramenta traz dicas para clientes que pedem confirmação antes de ações arriscadas. As ferramentas cuja chamada da API é um GET vêm marcadas como somente leitura, e
cancel_collectionedelete_webhookvêm marcadas como destrutivas. - No navegador, só os nossos próprios sites conseguem chamar o servidor, então uma página de outro site não consegue usá-lo. Agentes que não rodam num navegador não são afetados.
- Um lugar não é autorização para entrar em contato com ninguém. Endereços de e-mail só vêm nos planos pagos, depois que a sua conta aceita a política de uso aceitável.