WhatsApp Meta Onboarding MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| META_APP_ID | No | Só para wa_check_app_webhook (token de app) | |
| META_WABA_ID | No | WABA ID padrão (o wa_discover_ids descobre) | |
| META_APP_SECRET | No | Só para wa_check_app_webhook (token de app) | |
| META_ACCESS_TOKEN | No | Token de Usuário do Sistema (nunca expira). Necessário para diagnóstico e ações. | |
| META_GRAPH_VERSION | No | Versão da Graph API | v25.0 |
| META_PHONE_NUMBER_ID | No | Phone Number ID padrão |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| wa_guide_overviewA | Mostra o caminho completo para ter um número (inclusive virtual) na API oficial do WhatsApp da Meta: as 12 fases em ordem, quem faz cada coisa (você / automático / juntos) e o que o agente nunca faz. Use no início de qualquer conversa sobre "conectar número", "disparos pela API oficial" ou "número virtual". Depois aprofunde com wa_guide_get_phase. Não acessa a rede. |
| wa_guide_get_phaseA | Devolve uma fase do caminho: passos (marcados VOCÊ / AUTOMÁTICO / JUNTOS), como saber que terminou e as armadilhas reais (sintoma → causa → o que fazer). Fases (id): escolher-caminho, empresa-portfolio, app-meta, conta-e-numero, ids, usuario-sistema-token, webhook, faturamento, templates, primeiro-envio, coexistencia, suporte-meta. Exemplos:
|
| wa_explain_errorA | Traduz um erro da Meta/WhatsApp (código ou texto da tela) em significado, causa e o que fazer, apontando a fase do caminho relacionada. Cobre 27 erros: os vividos na prática (131037, 131042, 141006, #3441034, #2200, #200, #100, 'Conta com restrição'…) e os mais comuns da documentação pública (131047, 131030, 132001…). Exemplos:
|
| wa_guide_searchA | Busca em todos os passos, armadilhas e erros do guia, por texto (todas as palavras precisam aparecer, sem acento/caixa) e/ou por tag. Sem query e sem tag, devolve o índice de tags com as fases e erros de cada uma. Tags: #cloud-api, #numero-virtual, #coexistencia, #portfolio, #app, #waba, #ids, #token, #webhook, #faturamento, #templates, #envio, #suporte, #seguranca, #irreversivel. Exemplos:
|
| wa_glossaryA | Define os termos que mais confundem no caminho: WABA, conta de mensagens, Phone Number ID, Usuário do Sistema, janela de 24h, tier, relay… Use quando o usuário misturar IDs ou conceitos. |
| wa_check_tokenA | Valida o META_ACCESS_TOKEN com debug_token: se é de Usuário do Sistema (SYSTEM_USER), se expira, quais permissões tem e a quais contas de WhatsApp dá acesso. Nunca mostra o token. Use logo depois de gerar o token (fase 'usuario-sistema-token') ou quando aparecer 'Session has expired'. |
| wa_discover_idsA | A partir do token, lista as contas de WhatsApp (WABA) a que ele tem acesso e os números de cada uma, já com os IDs certos para colocar no sistema. Resolve a confusão entre o ID do Gerenciador do WhatsApp e o WABA ID da API (fase 'ids'). Se a conta que você procura não aparece, o Usuário do Sistema não foi atribuído a ela. |
| wa_check_wabaA | Lê a WABA: nome, moeda, status da análise da conta e da verificação da empresa. Falha com #100 se o WABA ID estiver trocado ou o usuário não tiver acesso (fases 'ids' e 'usuario-sistema-token'). |
| wa_list_phone_numbersA | Lista os números da WABA com Phone Number ID, status (CONNECTED), verificação do código, plataforma (CLOUD_API), nome de exibição (name_status: APPROVED libera envio; PENDING_REVIEW causa o erro 131037), qualidade e tier de mensagens. |
| wa_check_webhookA | Lista os apps inscritos na WABA (GET /{waba_id}/subscribed_apps). Se estiver vazio, a Meta não entrega eventos desta conta (mensagem enviada e 'não chegou no sistema'). A URL de callback e os campos assinados ficam no painel do app e não aparecem aqui. |
| wa_list_templatesA | Lista os templates da WABA com status (APPROVED, IN_REVIEW, REJECTED…), categoria e idioma. Pagina com limit/after. Erro #200 = Usuário do Sistema sem 'Modelos de mensagem' na conta de mensagens. |
| wa_check_coexistenceA | Teste oficial da Meta para coexistência: GET /{phone_number_id}?fields=is_on_biz_app,platform_type. is_on_biz_app=true + CLOUD_API = o número está no app WhatsApp Business E na Cloud API. Mostra também a vazão (fixa em 20 mps com coexistência). Use depois de concluir o Cadastro Incorporado (fase 'coexistencia') ou para provar que um número NÃO está em coexistência. |
| wa_check_app_webhookA | Mostra a URL de callback e os campos assinados do app (GET /{app_id}/subscriptions). Exige META_APP_ID e META_APP_SECRET no ambiente do MCP (token de app). Use quando 'a mensagem não chega no sistema': callback vazio ou campo 'messages' faltando foi uma causa real comprovada. Para coexistência, confere também smb_message_echoes, history e smb_app_state_sync. |
| wa_subscribe_webhooksA | POST /{waba_id}/subscribed_apps: faz a Meta entregar os eventos desta WABA ao app do token. Sem isso nenhuma mensagem recebida nem status chega. Opcional: override_callback_uri + verify_token para um callback só desta WABA (app compartilhado entre sistemas) — a URL precisa responder ao handshake com esse verify_token. Altera configuração na Meta: exige confirm=true depois de o usuário concordar. Repetir é inofensivo. |
| wa_send_template_testA | ENVIA uma mensagem real de template pelo número e pode gerar cobrança. Use só na fase 'primeiro-envio', para um contato seu, depois de wa_diagnose sem FAIL. Exige confirm=true e o destinatário explícito (somente dígitos com DDI, ex.: 5511999999999). O padrão é hello_world / en_US. Devolve o wamid; a entrega real aparece no webhook de status (erros como 131037 e 131042 só aparecem lá). |
| wa_diagnoseA | Roda o checklist inteiro pela Graph API (somente leitura): token, WABA, moeda, verificação da empresa, números (status, nome de exibição, plataforma), webhook e templates. Devolve ✅/⚠️/❌ por item e a PRÓXIMA FASE do caminho que precisa de atenção. É a ferramenta para "em que ponto estou?" e "por que a mensagem não sai/chega?". Se waba_id for omitido, usa META_WABA_ID ou a única WABA que o token enxerga. Não verifica forma de pagamento (a API não expõe): confira no billing hub. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| wa_conduzir_onboarding | Conduz o usuário, fase a fase, até ter um número oficial enviando mensagens pela API da Meta. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| caminho-visao-geral | As fases do caminho do número oficial na API da Meta |
| glossario | WABA, Phone Number ID, Usuário do Sistema, janela de 24h… |
| tags | Cada tag com as fases e erros em que aparece |
| catalogo-de-erros | Erros da Meta/WhatsApp com causa e solução |
| Fase 1 — Escolher o caminho | Uma fase com passos, checagens e armadilhas |
| Fase 2 — Portfólio empresarial e Verificação da empresa | Uma fase com passos, checagens e armadilhas |
| Fase 3 — App no Meta for Developers | Uma fase com passos, checagens e armadilhas |
| Fase 4 — Conta do WhatsApp (WABA) e número — inclusive o virtual | Uma fase com passos, checagens e armadilhas |
| Fase 5 — Os IDs certos (a maior fonte de confusão) | Uma fase com passos, checagens e armadilhas |
| Fase 6 — Usuário do Sistema e token permanente | Uma fase com passos, checagens e armadilhas |
| Fase 7 — Webhook: receber mensagens e status | Uma fase com passos, checagens e armadilhas |
| Fase 8 — Moeda e forma de pagamento | Uma fase com passos, checagens e armadilhas |
| Fase 9 — Templates de mensagem | Uma fase com passos, checagens e armadilhas |
| Fase 10 — Primeiro envio e verificação final | Uma fase com passos, checagens e armadilhas |
| Fase 11 — Coexistência — tudo o que confirmamos (apêndice) | Uma fase com passos, checagens e armadilhas |
| Fase 12 — Suporte da Meta — o que funciona e o que é parede de IA (apêndice) | Uma fase com passos, checagens e armadilhas |
TDQS
Scored across 16 tools
Tools are mostly distinct: guide tools (overview/get_phase/search), diagnostic checkers, and acting tools occupy separate roles. The webhook trio (wa_check_webhook, wa_check_app_webhook, wa_subscribe_webhooks) is genuinely close and could be confused, and wa_diagnose overlaps with the individual check tools, but descriptions do clarify the boundaries.
Every tool uses the same wa_ prefix in snake_case with a predictable verb_noun pattern (wa_check_token, wa_list_templates, wa_send_template_test, wa_explain_error). Minor noun-form outliers like wa_glossary and wa_diagnose are still readable and unsurprising.
16 tools is at the upper edge but each fills a real role across guide, diagnostics, and actions for the onboarding lifecycle. It leans heavy given the composite wa_diagnose already aggregates several individual checks, but nothing feels wholly redundant.
The surface covers the onboarding journey well: token validation, ID discovery, WABA/number checks, webhook verification and subscription, templates, coexistence, a guarded test send, error translation, and full diagnosis. Gaps exist around template creation and broader messaging operations, plus payment verification is explicitly out of reach via the API.