Présentation du service
WhatsApp MCP est un serveur léger qui s’installe dans un compte Cloudflare Workers. Une fois le téléphone lié comme un appareil WhatsApp Web, tout client compatible MCP (Claude Code, Claude Desktop, etc.) peut interroger le serveur pour rechercher ou résumer les conversations. Le serveur ne possède aucune capacité d’envoi ; il ne fait que lire les messages stockés dans une base SQLite interne.
Architecture et flux de données
Le cœur du projet repose sur la bibliothèque open‑source Baileys, qui reproduit le protocole utilisé par WhatsApp Web. Lors du premier lien, le serveur récupère l’historique disponible et le consigne dans une base SQLite hébergée dans un Durable Object de Cloudflare. Chaque jour, le serveur se reconnecte brièvement, récupère les nouveaux messages en file d’attente, les écrit dans la même base, puis se déconnecte. Aucun fichier multimédia n’est téléchargé ; les pièces jointes apparaissent sous forme de libellés comme [image] ou [voice note 12s].
git clone https://github.com/finereli/whatsapp-mcp
cd whatsapp-mcp
npm install
npx wrangler kv namespace create OAUTH_KV
npx wrangler secret put OWNER_PASSWORD
npm run deployLe déploiement nécessite un compte Cloudflare sur le plan Workers Paid (quelques dollars par mois) et Node 20 ou supérieur. Le fichier wrangler.jsonc augmente la limite CPU par défaut afin de permettre l’importation d’un historique volumineux.
Contraintes techniques et limites
Le serveur fonctionne uniquement en lecture ; il ne synchronise pas les contacts et ne télécharge pas les médias, ce qui réduit la charge réseau mais limite les fonctionnalités d’analyse de contenu. La base SQLite reste confinée au Durable Object, aucune donnée n’est exportée vers un stockage externe. L’import initial dépend de ce que WhatsApp transmet à un nouvel appareil ; certains messages peuvent être omis et ne seront récupérés qu’en relinkant le dispositif. Le plan gratuit de Cloudflare impose une limite CPU qui rend l’importation initiale fragile ; le contournement consiste à supprimer le bloc limits du fichier de configuration, mais cela augmente le risque d’échec.
Implications de sécurité et conformité
WhatsApp ne propose pas d’API officielle pour l’accès aux messages personnels. Le projet utilise le même canal que WhatsApp Web, ce qui contrevient aux conditions d’utilisation de WhatsApp. Le risque juridique reste limité tant que le serveur ne transmet pas de données hors du compte propriétaire, mais il n’est pas nul. La protection repose sur le mot de passe défini via OWNER_PASSWORD et sur le stockage des tokens OAuth dans un KV namespace isolé. Chaque déploiement est dédié à un seul compte WhatsApp, évitant le partage de clés d’accès. En résumé, le service offre une solution autonome pour interroger son historique WhatsApp via un agent IA, tout en imposant des exigences d’infrastructure spécifiques et en présentant des contraintes légales liées à l’utilisation non autorisée du protocole.