Servidor MCP de WhatsApp na API Cloud oficial
Em resumo: o ZapClaw publica um servidor MCP para que os agentes de IA que a sua empresa cria possam ler e enviar mensagens de WhatsApp no seu próprio número. Ele roda na API Cloud oficial da Meta, cada envio passa pelas mesmas proteções da API REST e o número continua funcionando no app WhatsApp Business do seu celular.
Beta: o servidor MCP e as chaves de agente de IA estão em fase beta e ainda não estão liberados para todas as contas. A liberação será gradual, em breve.
Crie a chave do seu agente de IA no painel e depois adicione o servidor ao cliente em que o seu agente roda.
Criar conta Ver os passos de instalaçãoO que os seus agentes podem fazer
- Atendimento: ler a conversa, consultar o contato e responder dentro da janela de 24 horas, ou deixar o restante com a sua equipe.
- Agendamentos e pedidos: confirmar, remarcar ou acompanhar com um template aprovado e depois conferir se a mensagem chegou.
- Notificações: enviar os avisos que o cliente espera, como um aviso de envio ou um lembrete de consulta, a partir de uma automação como o n8n.
São os seus próprios agentes, trabalhando para os seus próprios clientes no seu próprio número.
O seu número continua funcionando no app
O ZapClaw conecta o número pela Coexistência do WhatsApp, então a sua equipe continua atendendo no app WhatsApp Business enquanto os seus agentes usam o mesmo número pela API oficial. Quando alguém da equipe responde pelo app, uma chave autônoma para de enviar a esse contato por 24 horas por padrão, para o agente não falar por cima de uma pessoa.
O que é preciso para conectar um número.
Instale no seu cliente
Primeiro crie uma chave de agente de IA (veja Criar uma chave de agente de IA). O pacote é @zapclaw/whatsapp-mcp, o endpoint remoto é https://mcp.zapclaw.app/mcp e o nome no registro é app.zapclaw/whatsapp. Não deixe a chave em arquivos compartilhados: use uma variável de ambiente, um arquivo de chave ou um prompt, como nos blocos abaixo.
Claude Code (stdio)
claude mcp add zapclaw --env ZAPCLAW_API_KEY_FILE=/path/to/zapclaw.key -- npx -y @zapclaw/whatsapp-mcp@1
Para um projeto que você compartilha, use o .mcp.json com uma expansão, assim a chave nunca vai parar no repositório.
{
"mcpServers": {
"zapclaw": {
"command": "npx",
"args": [
"-y",
"@zapclaw/whatsapp-mcp@1"
],
"env": {
"ZAPCLAW_API_KEY": "${ZAPCLAW_API_KEY}"
}
}
}
}
No Windows nativo, o comando é cmd e os argumentos são ["/c", "npx", "-y", "@zapclaw/whatsapp-mcp@1"].
Claude Code (remote)
claude mcp add --transport http zapclaw https://mcp.zapclaw.app/mcp --header "X-API-Key: ${ZAPCLAW_API_KEY}"
Claude Desktop
Baixe o zapclaw-whatsapp.mcpb nos releases do GitHub e abra o arquivo. O Claude Desktop pede a chave como um campo sensível e a guarda. A alternativa é a configuração em JSON:
{
"mcpServers": {
"zapclaw": {
"command": "npx",
"args": [
"-y",
"@zapclaw/whatsapp-mcp@1"
],
"env": {
"ZAPCLAW_API_KEY": "${ZAPCLAW_API_KEY}"
}
}
}
}
Cursor
No ~/.cursor/mcp.json, o servidor local:
{
"mcpServers": {
"zapclaw": {
"command": "npx",
"args": [
"-y",
"@zapclaw/whatsapp-mcp@1"
],
"env": {
"ZAPCLAW_API_KEY": "${env:ZAPCLAW_API_KEY}"
}
}
}
}
Ou, no .cursor/mcp.json, o remoto:
{
"mcpServers": {
"zapclaw": {
"url": "https://mcp.zapclaw.app/mcp",
"headers": {
"X-API-Key": "${env:ZAPCLAW_API_KEY}"
}
}
}
}
VS Code
No .vscode/mcp.json, com um prompt de senha em vez de uma chave guardada:
{
"inputs": [
{
"type": "promptString",
"id": "zapclaw-key",
"description": "ZapClaw AI agent key",
"password": true
}
],
"servers": {
"zapclaw": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@zapclaw/whatsapp-mcp@1"
],
"env": {
"ZAPCLAW_API_KEY": "${input:zapclaw-key}"
}
}
}
}
Codex
No ~/.codex/config.toml:
[mcp_servers.zapclaw] command = "npx" args = ["-y", "@zapclaw/whatsapp-mcp@1"] [mcp_servers.zapclaw.env] ZAPCLAW_API_KEY_FILE = "/path/to/zapclaw.key"
n8n
Use o nó MCP Client Tool com estas configurações:
- Transport: HTTP Streamable, endpoint
https://mcp.zapclaw.app/mcp. - Authentication: Header Auth, com o nome
X-API-Keye o valor de uma chave de agente de IA autônoma. - Tools to Include: Selected, e escolha só as ferramentas de que o agente precisa.
A mensagem do contato já chega ao seu fluxo pelo webhook do ZapClaw, então o agente pode responder sem as ferramentas de conversa. O fluxo do n8n, pronto para importar.
OpenAI Responses API
{
"type": "mcp",
"server_label": "zapclaw",
"server_url": "https://mcp.zapclaw.app/mcp",
"authorization": "<agent key>",
"require_approval": "always"
}
A chave viaja a cada requisição pela OpenAI, então use uma chave limitada aos números e às permissões de que o agente precisa.
Fixe a versão
Todos os blocos acima seguem a versão principal, @zapclaw/whatsapp-mcp@1. Se você não quer atualizações automáticas, use a forma exata, @zapclaw/whatsapp-mcp@1.0.0.
Entrar com OAuth (claude.ai, ChatGPT e outros)
Os clientes que fazem o login por você, em vez de guardar uma chave, se conectam ao mesmo endereço, https://mcp.zapclaw.app/mcp. Você entra no ZapClaw, aprova a conexão, escolhe os números e as permissões que ela recebe e pode revogá-la a qualquer momento em Aplicativos conectados, no painel. Nenhuma chave é copiada para lugar nenhum.
- claude.ai e Claude Desktop: Configurações, Conectores, Adicionar conector personalizado, informe
https://mcp.zapclaw.app/mcp, depois entre no ZapClaw e aprove a conexão. - Claude Code: execute
claude mcp add --transport http zapclaw https://mcp.zapclaw.app/mcpe depois/mcppara entrar. - ChatGPT: Plugins, Adicionar servidor MCP personalizado, informe o endereço e escolha OAuth.
- Cursor: no
mcp.json, dê ao servidor só"url": "https://mcp.zapclaw.app/mcp", sem cabeçalhos, e o Cursor abre o login. - API Responses da OpenAI e Codex: defina
authorizationcom um token de acesso OAuth que a sua própria aplicação obteve fazendo o login.
Um token de acesso é emitido para um único recurso, https://mcp.zapclaw.app/mcp, e é recusado em qualquer outro lugar. Uma conexão dura no máximo 90 dias; depois disso você entra de novo.
Um cliente que se registra sozinho só pode usar endereços de retorno que sejam URLs https, ou URLs http em localhost ou 127.0.0.1 para apps que rodam no seu computador. Qualquer outro endereço é recusado, então o login só pode voltar para o app que você aprovou.
As onze ferramentas
Cada ferramenta exige uma permissão na chave: ler os dados da conta, ler conversas ou enviar mensagens.
| Ferramenta | O que faz | Permissão |
|---|---|---|
zapclaw_whoami | Mostra a qual conta a chave se conecta, com o modo e as permissões. | account:read |
whatsapp_list_numbers | Lista os números de WhatsApp que a chave pode usar. | account:read |
whatsapp_list_templates | Lista os templates aprovados, com o limite de tamanho de cada variável. | account:read |
whatsapp_check_contact | Confere um contato antes de enviar: se a janela de 24 horas está aberta e se o contato parou de receber mensagens de marketing. | account:read |
whatsapp_list_conversations | Lista as conversas recentes. | conversations:read |
whatsapp_read_conversation | Lê uma conversa. | conversations:read |
whatsapp_send_text | Envia uma mensagem de texto dentro da janela de 24 horas. | messages:send |
whatsapp_send_template | Envia um template aprovado, também fora da janela. | messages:send |
whatsapp_send_media | Envia uma imagem, um documento ou outro arquivo por link https, dentro da janela. | messages:send |
whatsapp_mark_read | Marca uma mensagem recebida como lida. | messages:send |
whatsapp_get_send_status | Confere se um envio foi entregue, lido ou falhou. | account:read |
Feito para um agente não queimar o seu número
As regras abaixo rodam no servidor do ZapClaw em cada envio, venha de que cliente vier, até de um simples curl. Um cliente também pode pedir a uma pessoa que confirme cada envio, mas nada depende disso.
- A janela de 24 horas é verificada aqui. Texto e arquivos só saem enquanto a janela do cliente está aberta; fora dela, só vai um template aprovado, conferido e montado antes.
- Template continua sendo template. Cada variável tem um limite de tamanho e não aceita quebra de linha, então um template genérico não consegue carregar texto livre.
- Um destinatário por envio. Nenhuma ferramenta recebe uma lista de números.
- Limites em cada chave, número e cliente. Por padrão, uma chave de assistente envia até 60 mensagens por hora e 300 por dia, e uma chave autônoma até 300 por hora e 3.000 por dia. Você pode mudar esses valores dentro das faixas definidas pelo ZapClaw.
- Os pedidos de saída são respeitados. Um template de marketing para um contato que parou de receber mensagens de marketing é recusado antes de chegar à Meta.
- Uma pessoa aprova os envios arriscados. A primeira mensagem para alguém que nunca escreveu, o marketing fora da janela e um envio depois de o agente ler outras conversas esperam aprovação (chaves de assistente) ou são recusados (chaves autônomas).
- Os outros contatos continuam privados. Se uma chave listou ou leu outras conversas nos últimos 15 minutos, um envio para um contato diferente fica retido ou é recusado.
- O agente cede a vez para a sua equipe. Depois que alguém responde pelo app WhatsApp Business, uma chave autônoma faz uma pausa nesse contato.
- A saúde do número é monitorada. Quando a classificação de qualidade cai, a abordagem a quem não escreveu e o marketing param, e na classificação mais baixa só saem as respostas dentro da janela.
- Você pode parar tudo. Revogue uma chave e ela para na hora, ou use Pausar envios de agentes de IA para a conta inteira. Uma chave de simulação permite testar o servidor sem risco, porque não envia nada.
Como funcionam as aprovações
Quando uma regra pede uma pessoa, a mensagem não é enviada. A ferramenta responde que o envio está retido e entrega um link de aprovação e um código curto. Abra a página de aprovação no painel, leia a mensagem inteira, o destinatário, o número e os motivos, e escolha Aprovar e enviar ou Rejeitar.
- Aprove pelo selo do painel ou pelo e-mail, e confira se o código é o mesmo que o agente mostrou. Um link parecido, mostrado por um agente comprometido, não leva a lugar nenhum, porque a decisão acontece só dentro do ZapClaw.
- Nada fica escondido. A página mostra a mensagem completa, com quebra de linha e sem cortes, e destaca o texto que veio de outras conversas lidas pelo agente.
- Vários de uma vez, um por um. Você pode selecionar envios retidos e decidir sobre eles juntos, mas cada um aparece por inteiro e é conferido de novo na hora da aprovação.
- Um envio retido espera 60 minutos. Depois disso ele expira e nada é enviado.
Criar uma chave de agente de IA
- No painel, abra Chaves de API e escolha Criar chave de agente de IA.
- Dê um nome à chave e escolha o modo: Assistente para um assistente de IA como Claude, ChatGPT, Cursor ou Codex, com uma pessoa acompanhando, ou Autônomo para uma automação como o n8n, que roda sem ninguém olhando.
- Escolha o que a chave pode fazer (ler os dados da conta, ler conversas, enviar mensagens) e quais números ela pode usar. As chaves autônomas começam sem leitura de conversas.
- Copie a chave, que aparece uma única vez, para uma variável de ambiente ou um arquivo de chave.
A proteção vale para os envios feitos pelo ZapClaw; um agente que pode ler conversas e também navegar na web ou executar comandos pode levar o que leu para outro lugar, então dê leitura só aos agentes que precisam.
Perguntas
Qual é a diferença para o servidor MCP de WhatsApp da própria Meta?
O servidor da Meta está em beta, exige acesso de administrador ao seu app da Meta e, segundo a própria Meta, serve para desenvolvimento e testes. O do ZapClaw é feito para os agentes que você roda em produção: proteções em cada envio, aprovação no painel e o número mantido no app WhatsApp Business.
E os servidores MCP de WhatsApp não oficiais?
Esses servidores controlam o WhatsApp Web, o que vai contra os termos do WhatsApp e coloca o número em risco de banimento. O ZapClaw usa a API Cloud oficial da Meta.
O servidor MCP tem preço próprio?
Não. Os envios são cobrados como qualquer outro envio pela API, e a Meta cobra as tarifas das mensagens de WhatsApp diretamente de você. Todos os planos e preços.
Quais planos incluem o servidor?
Todos, quando a liberação chegar à sua conta: o servidor está em fase beta e vai sendo liberado para as contas aos poucos. As mensagens enviadas por um agente contam na franquia de mensagens do seu plano, como qualquer envio pela API.
Posso oferecer um assistente de IA de uso geral ao público com ele?
Não. O servidor é para os agentes que uma empresa cria para os seus próprios clientes. Desde 15 de janeiro de 2026, a Meta permite que provedores de assistentes de IA de uso geral os ofereçam no WhatsApp apenas onde a Meta é obrigada por lei a permitir, e as demais empresas mantêm a precificação atual.
Para ir além
- A documentação da API (em inglês), com todos os endpoints, erros e códigos.
- A especificação OpenAPI, que as ferramentas chamam.
- O código-fonte no GitHub.
- O pacote no npm.
- n8n no WhatsApp, quando o seu agente é um fluxo.
- Um webhook para a sua própria IA, para receber todas as mensagens.
Conecte os seus agentes ao seu número de WhatsApp
Conecte o seu número, crie uma chave de agente de IA e adicione o servidor ao seu cliente.
Criar conta Ler a documentação (em inglês)