WhatsApp MCP Server

WhatsApp MCP Server

An MCP server that enables AI to control WhatsApp Web via Puppeteer Stealth for reading and sending messages. It features human-like interaction patterns and anti-ban protections to securely manage chats and communications through natural language.

Category
Visit Server

README

🟱 WhatsApp MCP Server

WhatsApp MCP Server Banner

Un serveur MCP (Model Context Protocol) pour contrĂŽler WhatsApp Web via Puppeteer Stealth, permettant Ă  ton IA (Claude/Antigravity) de lire et envoyer des messages comme un humain.


📐 Architecture

whatsapp-server/
├── src/
│   ├── index.ts                      ← EntrĂ©e FastMCP, enregistre les outils
│   ├── services/
│   │   └── whatsappService.ts        ← Singleton : gùre browser/page/delays
│   └── tools/
│       ├── connectWhatsappTool.ts    ← Outil : se connecter à WhatsApp Web
│       ├── listChatsTool.ts          ← Outil : lister les discussions
│       ├── sendMessageTool.ts        ← Outil : envoyer un message
│       └── readMessageTool.ts        ← Outil : lire les messages
├── assets/                           ← Screenshots README
├── .gitignore                        ← Protùge session, .env, configs perso
├── eslint.config.js
├── tsconfig.json
└── package.json

Flow :

AI (Claude/Antigravity)
        │ tool calls (MCP stdio)
        ▌
whatsapp-mcp-server (FastMCP)
  ├── ConnectWhatsappTool
  ├── ListChatsTool
  ├── SendMessageTool
  └── ReadMessageTool
        │ shared singleton
        ▌
  WhatsappService
        │ puppeteer-extra + stealth plugin
        ▌
  Chrome (headless ou visible)
        │
        ▌
  https://web.whatsapp.com/

⚙ Installation

1. Copier le dossier

cd "whatsapp-server"

2. Installer les dépendances

pnpm install

3. Compiler

pnpm run build

4. Ajouter dans mcp_config.json

"whatsapp-server": {
  "command": "node",
  "args": [
    "/chemin/vers/whatsapp-server/dist/index.js"
  ],
  "disabled": false
}

🚀 Utilisation

Étape 1 — Connexion (premiùre fois)

Demande Ă  l'IA :

"Connecte-toi Ă  WhatsApp en mode non headless"

L'outil connect_whatsapp ouvre Chrome et affiche le QR code :

QR Code WhatsApp Web

Sur ton téléphone :

  1. Ouvre WhatsApp
  2. Menu > Appareils connectés (Android) ou ParamÚtres > Appareils connectés (iPhone)
  3. Connecter un appareil
  4. Scanne le QR code

✅ La session est sauvegardĂ©e dans ./whatsapp_session/ — pas besoin de rescanner.


Étape 2 — Lister les discussions

Demande Ă  l'IA :

"Liste mes conversations WhatsApp"

Chats liste


Étape 3 — Envoyer un message

Demande Ă  l'IA :

"Envoie 'Bonjour !' Ă  [Nom du contact] sur WhatsApp"

Message envoyé


Étape 4 — Lire les messages

Demande Ă  l'IA :

"Lis les derniers messages de [Nom du contact] sur WhatsApp"

L'outil read_messages extrait l'historique récent avec l'expéditeur et l'horodatage.


đŸ›Ąïž Anti-Ban — Comportement Humain

Protection Détail
Puppeteer Stealth Masque les empreintes Puppeteer (navigator.webdriver, etc.)
DĂ©lais alĂ©atoires 300ms–5000ms entre chaque action
Frappe humaine 100–300ms par touche pour la recherche
Session persistante whatsapp_session/ évite les reconnexions fréquentes
User Agent réaliste Chrome 120 / Windows 10 64-bit
Auto-dismiss dialog Clique automatiquement sur "Utiliser ici" si détecté
Reconnexion propre Ferme l'ancien browser avant d'en ouvrir un nouveau

🔧 Outils MCP disponibles

connect_whatsapp

Lance le navigateur et ouvre WhatsApp Web.

ParamÚtre Type Défaut Description
headless boolean false Mode invisible. Mettre false pour scanner le QR code.

list_chats

Liste les discussions récentes.

ParamÚtre Type Défaut Description
limit number 10 Nombre max de chats Ă  retourner.

send_message

Envoie un message Ă  un contact ou groupe.

ParamĂštre Type Requis Description
chatName string ✅ Nom exact du contact ou groupe.
message string ✅ Contenu du message à envoyer.

read_messages

Lit les messages récents d'une discussion spécifique.

ParamĂštre Type Requis Description
chatName string ✅ Nom exact du contact ou groupe.
limit number 10 Nombre de messages à récupérer (max visibles).

📋 Commandes

pnpm install      # Installer les dépendances
pnpm run build    # Compiler TypeScript → dist/
pnpm run dev      # Lancer en mode développement (tsx)
pnpm run lint     # Vérifier le code avec ESLint
pnpm run format   # Formater avec Prettier

⚠ Recommandations

  • Ne pas spammer : laisser des dĂ©lais naturels entre les usages.
  • Session warmup : aprĂšs le premier QR scan, ouvre 2-3 discussions manuellement avant de fermer Chrome.
  • Headless=false pour le premier scan. Ensuite true est possible pour les relances.
  • 1 compte = 1 session : ne pas utiliser le mĂȘme numĂ©ro sur plusieurs instances simultanĂ©es.

🔒 SĂ©curitĂ© — Ce qui est protĂ©gĂ© par .gitignore

Dossier/Fichier Raison
whatsapp_session/ Cookies et tokens de session WhatsApp
.env Variables sensibles (clés API, numéros de téléphone)
mcp_config.json Chemins locaux et configs privées
dist/ Build gĂ©nĂ©rĂ© — reconstruit avec pnpm build
node_modules/ DĂ©pendances — reconstruit avec pnpm install

DĂ©veloppĂ© par Deamon — Architecture calquĂ©e sur le serveur SMS/VoIP.ms MCP

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured