Expert Integrado · servidor MCP

ChatGuru MCP

Conecta o ChatGuru (WhatsApp) ao Claude Code e a qualquer cliente MCP. A API oficial do ChatGuru envia, mas não lê; este servidor lê as conversas pelo painel e escreve pela API — e toda listagem diz onde parou, em vez de cortar em silêncio.

→ instalar (README no GitHub)

01Dois caminhos, um servidor

Cada pedido do Claude vira uma chamada de tool. O servidor escolhe o caminho pelo tipo do pedido — e o modo escolhido na instalação decide se a escrita pela API está disponível.

Claude Code

"Quais conversas estão sem resposta?" · "Lê o histórico desse número" · "Manda a confirmação pro cliente"

→

chatguru-mcp (stdio)

18 tools. Normaliza telefone, aplica filtros, escolhe o caminho, devolve resultado com a cobertura explícita.

→
leitura · painel

Endpoints internos da interface web, autenticados pelo cookie da sua sessão. ~250 ms por página. Fallback automático por navegador headless se um endpoint mudar.

escrita · api oficial

Envio de texto e arquivo, registro de contato, campos, nota, fluxo. Só no modo api, com a chave da conta.

envio · navegador

Sem chave de API: digita a mensagem no painel como uma pessoa faria, com prévia obrigatória e limites fixos.

02Como funciona, de ponta a ponta

1

Registro no cliente MCP

Um comando claude mcp add … npx -y @expertintegrado/chatguru-mcp com o número do servidor (CHATGURU_SERVER) e o modo (api ou navegador). Sem clone, sem caminho absoluto.

2

Login no painel, uma vez

chatguru-mcp login abre um navegador visível no seu painel. Você faz o login (com o código de verificação, se houver) e a sessão fica salva em ~/.chatguru-mcp/session.json. Senha nunca passa pelo chat nem pelo servidor.

3

Handshake com procedência

Ao iniciar, o servidor entrega ao Claude as regras de uso (confirmar antes de enviar, ler o rodapé das listagens, pedir novo login quando a sessão expirar) e uma linha de procedência — desligável com EXPERT_NO_PROVENANCE=1.

4

Leitura pela API interna do painel

Listar chats, buscar por telefone, ler mensagens e anotações, campos e tags: tudo por requisição direta com o cookie da sessão. Filtros por status, aparelho, responsável, tag, arquivados. Se um endpoint mudar, a tool cai sozinha no caminho por navegador e registra o motivo.

5

Escrita com guardrails

Pela API oficial (modo api) ou pelo navegador. No navegador: prévia obrigatória, 10 mensagens/minuto, 50 destinatários/dia, bloqueio de CPF/cartão/senha sem confirmação, janela de 10 s antes do envio e registro em log local.

6

Resposta com cobertura explícita

Toda listagem termina dizendo qual corte ocorreu: fim real da lista, teto do painel ou limite pedido. "Encontrados N" sem essa distinção vira "só existem N" — e relatório errado com cara de completo.

03O que ele faz

Lista com filtros de verdade

Status, não lidas, arquivados, favoritos, ordenação, aparelho, responsável (pessoa ou departamento), tag, nome, número. Pagina com limit e offset.

Busca por telefone que acha

Tenta as grafias do número (com/sem DDI, últimos dígitos) e cobre ativos e arquivados — o filtro do painel é exclusivo e escondia contatos encerrados.

Histórico com anotações

Mensagens e notas internas na mesma linha do tempo. Aumente o limit e o histórico inteiro vem; a resposta avisa se ainda há mais antigo.

Mídia baixável

Áudios, imagens e documentos das mensagens vêm com URL; uma tool baixa em lote para uma pasta local.

Escrita pela API oficial

Enviar texto e arquivo, registrar contato, atualizar campos e nome, adicionar nota, disparar fluxo do chatbot.

Envio sem chave de API

Quem só tem login no painel também envia — pelo navegador, com prévia e limites que não se configuram.

Erro em vez de resultado plausível

Aparelho ou responsável que não existe estoura com a lista real, nunca devolve lista sem filtro passando por filtrada.

Não muda status de atendimento

O endpoint do painel aceita qualquer valor sem validar. Essa escrita ficou fora de propósito; o teste falha se alguém reintroduzir.

04Stack

Node.js 18+ @modelcontextprotocol/sdk zod playwright (login + fallback) API oficial ChatGuru API interna do painel stdio npm · npx