mcp-whatsapp-server
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
-
Clone este repositório:
git clone https://github.com/seu-usuario/mcp-whatsapp-server.git cd mcp-whatsapp-server
-
Instale as dependências:
pip install -r requirements.txt
-
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)
-
Configure seus contatos no arquivo
contatos.json
:{ "contatos": { "Nome1": "5511999999999", "Nome2": "5522888888888" } }
Uso
-
Inicie a API Waha seguindo as instruções oficiais
-
Execute o servidor MCP:
python server.py
-
Use o servidor com um cliente MCP compatível (como Claude Desktop)
Recursos MCP Disponíveis
Resources
waha://configuracao
- Configurações da API Wahawaha://status
- Status atual da conexão WhatsAppwaha://contatos
- Lista de contatos mapeados por nome
Ferramentas (Tools)
verificar_conexao_whatsapp()
- Verifica o status atual da conexãoenviar_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 .