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)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.
"Quais conversas estão sem resposta?" · "Lê o histórico desse número" · "Manda a confirmação pro cliente"
18 tools. Normaliza telefone, aplica filtros, escolhe o caminho, devolve resultado com a cobertura explícita.
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.
Envio de texto e arquivo, registro de contato, campos, nota, fluxo. Só no modo api, com a chave da conta.
Sem chave de API: digita a mensagem no painel como uma pessoa faria, com prévia obrigatória e limites fixos.
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.
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.
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.
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.
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.
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.
Status, não lidas, arquivados, favoritos, ordenação, aparelho, responsável (pessoa ou departamento), tag, nome, número. Pagina com limit e offset.
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.
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.
Áudios, imagens e documentos das mensagens vêm com URL; uma tool baixa em lote para uma pasta local.
Enviar texto e arquivo, registrar contato, atualizar campos e nome, adicionar nota, disparar fluxo do chatbot.
Quem só tem login no painel também envia — pelo navegador, com prévia e limites que não se configuram.
Aparelho ou responsável que não existe estoura com a lista real, nunca devolve lista sem filtro passando por filtrada.
O endpoint do painel aceita qualquer valor sem validar. Essa escrita ficou fora de propósito; o teste falha se alguém reintroduzir.