Skip to main content
Glama

🟱 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/

Related MCP server: WAHA MCP

⚙ 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

Available Tools

3 tools
connect_whatsappA

Launch browser and connect to WhatsApp Web. Use this to login or verify if you are already logged in.

Inputs: headless.

list_chatsC

List recent chats from WhatsApp Web.

Inputs: limit.

send_messageB

Select a chat by its exact name and send a message.

Inputs: chatName (required), message (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog


    TDQS

    B3.4/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: connect_whatsapp handles authentication, list_chats retrieves chat data, and send_message sends messages. There is no overlap in functionality, making it easy for an agent to select the right tool without confusion.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with a verb_noun structure (connect_whatsapp, list_chats, send_message). This predictability enhances readability and usability for agents.

    Tool Count3/5

    With only 3 tools, the server feels thin for a WhatsApp integration, lacking operations like reading messages, managing contacts, or handling media. While the tools cover basic actions, the scope is limited and may require workarounds for common use cases.

    Completeness2/5

    The toolset is significantly incomplete for a WhatsApp server. It misses essential CRUD operations such as reading messages, updating chats, deleting messages, and handling media files. Agents will likely fail when trying to perform common WhatsApp tasks beyond the basics provided.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP (Multi-Agent Conversation Protocol) Server that enables interaction with the WhatsApp Business API, allowing agents to send messages, manage media, and perform other WhatsApp business operations through natural language.
      1
      -
    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      A self-hosted MCP server that connects AI clients to WhatsApp via the WAHA HTTP API. It enables users to manage sessions, search contacts, and send or receive messages and media directly through natural language interfaces.
      8 npm
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that connects AI agents to WhatsApp using the multi-device API, enabling messaging, group management, and more as a regular user.
      7 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      A native MCP server for SocialMate that gives your AI a WhatsApp, enabling it to send and read messages, manage contacts and groups, and more through 44 tools.
      26 npm
      1
      MIT