whatsapp-mcp-kit
Connect Claude (Claude Code / Claude Desktop / Codex — any MCP client) to a WhatsApp account so it can read your chats and send messages. Includes portable setup skills, prompts, private pairing, shared HTTP configuration and recovery instructions.
Built and battle-tested at Palo Alto AI Research Lab — our Claude fleet has been reading WhatsApp through exactly this setup since June 2026.
Current setup for Claude Code and Codex
Read the complete runbook (Russian), then use the Claude Code prompt or Codex prompt. Install the portable whatsapp-connect skill for future sessions. Both clients connect to one loopback HTTP service; they must not each launch a full WhatsApp connection.
This is one linked-device stack: @sjawhar/whatsapp-mcp + Baileys. Multiple accounts need separate private data roots and owners. The unofficial-client account restriction risk and access to private message content must be understood before linking; see security.
Pinned setup and pairing
The runbook uses isolated npm installation of version 2.4.0, checked historical patches, private environment storage and one operational supervisor. Its HTTP branch has no built-in account lock in that release; do not start another owner manually or through a second service. The docs distinguish this operational rule from enforced exclusion.
The QR helper holds stdin open and renders a refreshing local PNG page. It now rejects nonempty draft credentials: saved account/Signal-identity structure is required. That is persisted-state evidence, not fresh network connectivity. Prove a new incoming nonce in each AI client after startup and restart. A port, cached profile, old chat list or exit 0 does not prove live delivery.
For code-based phone pairing see the bounded prompt. Baileys has the API; this kit does not yet ship a ready phone-code CLI. Do not invent flags for the MCP server or launch a second socket on the same auth directory.
What is tested
Offline synthetic regression covers draft/invalid persisted state, QR parsing and helper process behavior. New phone pairing, a fresh three-OS installation and recipient acceptance have not been rerun for this documentation update. Preserve these limits in your own report.
Do not run remote prompts blindly or enter secrets in an agent conversation. Follow pairing documentation with the selected package bytes. Phone errors can have several causes; expiry is one possible cause, not a diagnosis from the wording alone. History depth is not guaranteed: measure actual sync rather than assuming a complete archive.
License
MIT (same as upstream). Upstream code is not vendored — we ship patches against it and credit the original authors: sjawhar/whatsapp-mcp-2.0, forked from karlfoster/whatsapp-mcp-2.0, built on Baileys.
Part of the connector kit series by Palo Alto AI Research Lab — see also telegram-mcp-kit and mcp-daemon-diet (one shared MCP daemon per machine instead of a copy in every session; the recipe applies to this server too). Questions / broken step? Open an issue — we answer within 24h.
AI contributors
This project is built by a human + AI team, and the git log says so: Claude writes most of the code, Codex and Grok review it, Gemini feeds the research. Each is credited on a commit only if its output changed that commit's content — no decorative credits. Lab-wide policy, one source for every repo: AI-CONTRIBUTORS.md.
Publishing your own internals? This repo was sanitized for release with
oss-publish— our substitution pipeline: personal data is replaced by plausible fakes of the same shape (never<REDACTED>), and a fail-closed gate re-scans the whole tree before the push. Free, MIT.
🧰 Connector & Ops Kits
Eight kits, all published 2026-08-10, each lifted out of the same live fleet after it survived production rather than written as a demo. They are independent: take one, ignore the rest. All stdlib-only Python, all free.
Contributors welcome — and here is what we are missing
We spend a lot of time answering other people's issues. It was fair to say out loud what we have not built ourselves:
- Add a phone-backup path for the full archive
- Make the patches survive
npm update - Extend
--heal-patchbeyond patch 0001
Issues labelled accepted are scoped, free to take, and nobody is on them.
Comment "claiming this" — no permission needed — and it is yours for 7 days.
New here? Start with good first issue.
You keep the copyright to your code. No CLA, no assignment, ever — your contribution goes in under this repo's existing license, the same terms as ours. We answer every issue and PR within 48 hours, including "no, and here is why"; our silence is our bug, so ping the thread.
Full deal: CONTRIBUTING.md
🧩 One piece of a working system
This repository is one piece lifted out of a live operation: one engineer running a fleet of machines, built with Claude as implementation collaborator; the machines reach consensus with each other and wake the human only for money or the irreversible. It was extracted after it survived production, not written as a demo — and it runs on its own: nothing here phones home to the rest.
See how the whole thing fits together → SYSTEM.md
Its closest neighbours in the connectors layer: mcp-daemon-diet · telegram-mcp-kit
READ THIS WITH AI
One click and an agent reads the repo, pulls out the patterns and helps you apply them to your own work.
Read this repo: https://github.com/tonydzi/whatsapp-mcp-kit (“whatsapp-mcp-kit” - Link WhatsApp to Claude (or any MCP client) in ~20 minutes: a live self-refreshing QR page that makes pairing actually work, production patches, and 12 field gotchas. On top of @sjawhar/whatsapp-mcp). Work out what problem it actually solves, pull out the reusable patterns and help me apply them to my own setup. Start by asking what I am working on.
— TonyDzi, Palo Alto AI Research Lab · second brain, agent coordination, persistent memory: github.com/tonydzi