mcp-whatsapp-server

mcp-whatsapp-server

0

This server enables MCP-compatible AI assistants to communicate with WhatsApp contacts via the Waha API. It offers functionalities such as WhatsApp connection status verification and message sending by phone number and contact name.

MCP WhatsApp Server

Servidor baseado no Model Context Protocol (MCP) para integração com WhatsApp através da API Waha.

Sobre o Projeto

Este servidor permite que assistentes IA compatíveis com MCP (como Claude) interajam diretamente com contatos no WhatsApp. O projeto utiliza a Waha API como backend para comunicação com o WhatsApp Web.

Funcionalidades

  • ✅ Verificação do status de conexão do WhatsApp
  • ✅ Envio de mensagens via número de telefone
  • ✅ Envio de mensagens via nome de contato cadastrado
  • ✅ Gerenciamento de contatos por nome
  • ✅ Visualização de configurações do servidor

Requisitos

  • Python 3.7+
  • API Waha em execução
  • Biblioteca MCP (Fast MCP)

Instalação

  1. Clone este repositório:

    git clone https://github.com/seu-usuario/mcp-whatsapp-server.git
    cd mcp-whatsapp-server
    
  2. Instale as dependências:

    pip install -r requirements.txt
    
  3. Configure as variáveis de ambiente em um arquivo .env:

    WAHA_API_URL=http://localhost:3000
    WAHA_SESSION_ID=default
    CONTATOS_FILE=caminho/para/contatos.json (opcional)
    
  4. Configure seus contatos no arquivo contatos.json:

    {
        "contatos": {
            "Nome1": "5511999999999",
            "Nome2": "5522888888888"
        }
    }
    

Uso

  1. Inicie a API Waha seguindo as instruções oficiais

  2. Execute o servidor MCP:

    python server.py
    
  3. Use o servidor com um cliente MCP compatível (como Claude Desktop)

Recursos MCP Disponíveis

Resources

  • waha://configuracao - Configurações da API Waha
  • waha://status - Status atual da conexão WhatsApp
  • waha://contatos - Lista de contatos mapeados por nome

Ferramentas (Tools)

  • verificar_conexao_whatsapp() - Verifica o status atual da conexão
  • enviar_mensagem_whatsapp(numero, mensagem) - Envia mensagem por número

Exemplos

Verificar Status da Conexão

status = verificar_conexao_whatsapp()
print(f"Status: {status['mensagem']}")

Enviar Mensagem por Número

resultado = enviar_mensagem_whatsapp("5511999999999", "Olá! Esta é uma mensagem de teste.")
print(f"Resultado: {resultado['mensagem']}")

Enviar Mensagem por Nome

resultado = enviar_mensagem_por_nome("Pedro", "Olá! Esta é uma mensagem de teste.")
print(f"Resultado: {resultado['mensagem']}")

Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.

Licença

Este projeto está licenciado sob .

Imagens e Demonstração

Exemplos de uso

Claude enviando mensagem

Mensagem enviada