Fio Raiz
Provides a self-hosted WhatsApp gateway with HTTP API and MCP tools for session lifecycle, sending text and media, listing messages, contacts, labels, groups, webhooks, search, statistics, settings, and API keys. The WhatsApp transport is currently implemented as a simulated port.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Fio Raiz
Gateway de WhatsApp auto-hospedado com API HTTP, MCP e painel — escrito do zero, sem dependências de produção, em Node 24 + TypeScript e SQLite embutido.
API HTTP com chave em
x-api-key: sessões, mensagens, contatos, etiquetas, grupos, webhooks, busca, estatísticas, configurações e chaves.MCP em
POST /mcp(JSON-RPC 2.0) com 10 ferramentas próprias.Painel de leitura em
GET /painel, sem build e sem framework.Zero dependências obrigatórias: o núcleo roda com
node:httpenode:sqlite; o Baileys éoptionalDependency(só o motor real usa) enpm ci --omit=optionalcontinua sem runtime. O banco énode:sqlite, o servidor énode:http.
Começar
git clone https://github.com/Voltolini-SPACE/fio-raiz && cd fio-raiz
npm ci # dev (typescript) + Baileys opcional; use --omit=optional para o motor simulado
npm test # 68 testes, node --test
npm start # http://127.0.0.1:2790A chave nasce em data/.api-key com modo 0600. Use:
CHAVE=$(cat data/.api-key)
curl -s http://127.0.0.1:2790/api/health
curl -s -H "x-api-key: $CHAVE" -X POST -H 'content-type: application/json' \
-d '{"nome":"Atendimento"}' http://127.0.0.1:2790/api/sessionsRelated MCP server: WhatsApp Business API MCP Server
Rodar sem interrupções
Unit systemd pronta em deploy/: fio-raiz.service (gateway, Restart=always, sessão
retomada no boot). Instruções em deploy/README.md.
Acesso remoto (Mac, iPad, Maestri)
Pelo Tailscale: http://100.x.y.z:2793 de qualquer rede, com portão
FIO_RAIZ_ACESSO=tailnet (só loopback e 100.64.0.0/10; LAN/internet → 403). O painel
/painel pede a chave; o MCP é POST /mcp com x-api-key. SSH para o Mac: ssh mac.
O que já funciona
Sessões com ciclo de vida (criar, iniciar, parar, parear, status, QR), envio de
texto e mídia, listagem paginada, contatos, etiquetas, grupos, webhooks com
entrega e histórico de falha, busca, estatísticas, configurações, chaves de API,
MCP e painel. Há um motor real de WhatsApp opcional (Baileys, carregado por
import() dinâmico) que emite QR de verdade e recebe mensagens; o padrão continua
sendo o motor simulado, sem rede. O ensaio real está em EVIDENCIA.md.
Motor real (opcional)
npm ci # o Baileys já vem como dependência opcional
FIO_RAIZ_MOTOR=baileys npm startCriar sessão com "motor":"baileys", chamar /start e ler /qr devolve o QR
emitido pelo WhatsApp. O adaptador reconecta com espera exponencial e desiste em
401/403/405 (aparelho deslogado). Sessão fica em data/sessoes/<id>/auth;
depois de reiniciar o processo, as sessões voltam como parada e precisam de
/start (a credencial é reaproveitada, QR não é pedido de novo).
Risco declarado: conexão não oficial viola os termos do WhatsApp e pode levar o número a bloqueio. Use um número dedicado. Verificado em 04/11: QR emitido, aparelho conectado, mensagem real enviada e 46 mensagens recebidas de terceiros. Reconexão após queda de rede, download do binário de mídia e recibo de leitura continuam NÃO VERIFICADOS.
Pré-requisitos externos
O que não vem do código e precisa existir antes de parear. O plano da réplica
(vive no repositório da Fábrica, planos/v3/voltolini-fio-raiz.json, chave
dependencias_externas) declara o mesmo mapa; o gate da Fábrica reprova plano ou
entrega sem ele.
Dependência | Tipo | Quando | Risco | Alternativa |
Conta WhatsApp com número dedicado | conta | antes | bloqueio ou banimento por conexão não oficial | motor simulado, sem conta |
Aparelho com WhatsApp para ler o QR | dispositivo | antes | precisa estar em mãos; o QR expira em segundos | pareamento por código de 8 dígitos |
Rede estável até os servidores do WhatsApp | rede | contínuo | queda derruba a sessão e exige reconexão | nenhuma |
Limites declarados
O transporte real não é dependência do produto: sem
baileysinstalado, o motor simulado segue sendo o padrão e o adaptador respondemotor_indisponivelcom a instrução de instalação. A conexão com um celular de verdade não foi verificada — só a emissão do QR pelo servidor do WhatsApp.Plugins, ingress, integrações, exportação/importação, métricas Prometheus e auditoria não estão implementados — cada rota aparece em PARIDADE.md como
excluído, com data.Não há paridade 100% com nenhum outro produto, e não é o objetivo.
Documentos
Arquivo | Para quê |
instalar, operar, diagnosticar | |
marca, voz, cores, tipografia | |
rota a rota: implementado, adaptado ou excluído | |
origem do código, fontes consultadas, sala limpa | |
ensaio real de ponta a ponta |
Licença MIT — LICENSE · NOTICE.
Qualidade
npm test (68 testes) e npm run check (tsc --noEmit) rodam no CI a cada
push; o badge acima mostra o estado. Sem baileys instalado a suíte passa e o
/start responde 503 motor_indisponivel com o comando de instalação.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
WhatsApp MCP on your own number: read chats, search contacts, send messages.
Your own WhatsApp as an MCP server: read, search and send from any MCP client.
WhatsApp (Web + Business API), SMS, contacts, and call records via 2Chat's MCP server.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables WhatsApp automation through MCP protocol, allowing users to manage sessions, send messages, handle groups/communities, and access contacts through natural language interactions with AI agents.5 npm-
- AlicenseNot gradedqualityDmaintenanceEnables sending messages, managing templates, uploading media, and configuring webhooks for WhatsApp Business via the MCP protocol.34 npm5MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that turns WhatsApp into agent-callable tools, enabling search contacts, send/receive messages, read chats, handle media, and monitor calls via the WhatsApp Web multi-device protocol.9 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables programmatic WhatsApp automation through MCP, including sending messages, managing chats and contacts, searching conversation history, and exchanging media files.MIT