# Circles vs self-hosted WhatsApp MCP servers: lharries/whatsapp-mcp and its forks

> lharries/whatsapp-mcp is the open-source server most guides start with. It is free and it is yours. It also needs Go, Python and a computer that stays on, the original has not been updated since July 2025, and it only reaches desktop clients. Here is the honest difference, and when running your own is the better call.

**Choose a self-hosted WhatsApp MCP server** (lharries/whatsapp-mcp, or the maintained verygoodplugins fork) if you want free, open-source code, your messages on your own machine, and you are happy to run a bridge. **Choose Circles** if you want it hosted and working in Claude, ChatGPT and Codex on the web and phone with one address and an approval, with voice notes as text, files on request and per-chat permissions, on Free, Starter $9.90 or Pro $29 a month (as of October 2026).

Source: https://usecircles.app/en/compare/self-hosted-whatsapp-mcp · Updated 2026-10-27

## Self-hosted and Circles at a glance

As of October 2026, from each project's README and issue tracker (see Sources). The fork is named separately because it adds things the original lacks.

|  | lharries/whatsapp-mcp | verygoodplugins fork | Circles |
| --- | --- | --- | --- |
| Setup | About 6 to 8 steps: install Go, Python and uv, run the bridge, scan a QR, edit the client's config with absolute paths, restart, keep the bridge running. Windows needs CGO and a C compiler. | Same shape. Needs Go 1.26+, Python 3.11+ and uv; includes a macOS launchd installer. | Link your number from your phone (a code or a QR), then connect your agent with a tap, an address or a token |
| Your personal number | Yes, as a linked device (QR) | Yes | Yes, your existing number as a linked device. No WhatsApp Business, no second number. |
| Hosted | No. Runs on your computer, which must stay on. | No. Optional HTTP transport with no built-in auth; the README says not to bind it beyond your own machine. | Yes, always on. Nothing to install, no computer that must stay awake. |
| MCP and sign-in | Local stdio, for desktop clients such as Claude Desktop or Cursor | stdio, or HTTP on your machine | Remote MCP at `https://app.usecircles.app/api/mcp`: OAuth 2.1 (paste one address and approve) or a token |
| Per-chat permissions | None: every chat is visible to the agent | Requested in an open issue, not shipped | Per chat: hidden, read, or read and send. Hidden chats do not exist for agents. |
| Voice notes | Not transcribed (it can send voice notes) | Transcribed on demand, with whisper.cpp locally or an OpenAI-compatible endpoint you choose | Transcribed automatically, Hebrew and English, inline as text and searchable |
| Photos and files | `download_media` returns a local file path | `view_media` for clients without file access, auto-download | Photos, PDFs, documents and video handed over on request, up to 50 MB each. The agent reads them itself. |
| Sending controls | Your client's approval prompt | A read-only mode is requested in an open issue | On Pro. Off until you open a chat for it. Daily cap across all agents (default 5), never retried automatically, every request logged. |
| Maintenance | Last push 13 July 2025; 6,742 stars, 1,448 forks | Pushed 25 October 2026; 271 stars, CI | Hosted and maintained by 3Peaks |
| Price (October 2026) | Free (MIT) | Free | Free; Starter $9.90 a month; Pro $29 a month (₪99 in Israel), 14 days of Pro free |

## The "Client outdated (405)" error, and is the original still maintained?

As of 27 October 2026, lharries/whatsapp-mcp was last updated on 13 July 2025. Its most discussed open issues are a **"Client outdated (405)" connect failure**, a note that more than ten pull requests fixing the 405 error have waited unmerged since September, a request to add maintainers or transfer the repo, and "Is this repo dead?" from June 2026.

In practice, 405 means the bridge cannot connect to WhatsApp at all. You have three ways through it:

- **Move to a maintained fork.** verygoodplugins/whatsapp-mcp is the active one (195 commits, pushed 25 October 2026). It also adds transcription, media viewing, webhooks, reactions, full-history pairing and on-demand backfill.
- **Apply one of the open fixes** in your own copy of the original, and keep doing so when the next one appears.
- **Stop running it.** A hosted service like Circles keeps the WhatsApp connection up to date for you.

Separately, the original's README says you need to re-authenticate about every 20 days.

## Other self-hosted options people cite

- **FelixIsaac/whatsapp-mcp-extended**: 41 tools and a recipient allowlist (43 stars).
- **jlucaso1/whatsapp-mcp-ts**: a TypeScript version on Baileys with 6 text-only tools (75 stars, last push 23 January 2026).
- **steipete/wacli**: a WhatsApp command-line tool, active, 2,855 stars.
- **finereli/whatsapp-mcp**: read-only by construction, OAuth, self-hosted on Cloudflare Workers (about $5 a month) or a free hosted beta. Media shows as labels like `[image]`, and nothing is transcribed.
- **WAHA and Evolution API**: WhatsApp gateways you host yourself and wrap with an MCP. You then own pairing, reconnects, media, transcription, permissions and security.

The maintained curated list is [rosroyros/awesome-whatsapp-mcp](https://github.com/rosroyros/awesome-whatsapp-mcp).

## Where self-hosting is the better choice

- **It is free.** MIT licence, no subscription.
- **Local-first.** Your messages stay on your computer until the agent reads them. With Circles they are stored on Circles' servers. If that is a deal-breaker, self-host.
- **Open source.** You can read every line. Circles is not open source.
- **Full control.** Any tool, any query, any change you want: fork it and make it yours.
- **You already run servers.** If a bridge on an always-on machine is no effort for you, most of Circles' convenience is something you can build.

## Where Circles is the better choice

- **Nothing to install.** Link from your phone and connect your agent with one address and an approval.
- **Works when your laptop sleeps**, and in Claude and ChatGPT on the web and on your phone, because it is a remote MCP with OAuth. A local stdio server reaches only desktop clients on the same machine.
- **Voice notes are already text**, Hebrew and English, before the agent asks. The original has no transcription. The fork transcribes on demand, on a service you host.
- **Files reach any client.** Photos and PDFs are handed over as the files themselves, which any client can open.
- **You choose the chats.** With Circles you can hide chats, and a hidden chat's messages never reach the agent.
- **Sending is deliberate.** Off until you open a chat for it, capped per day, never retried, and logged.
- **Kept up to date** when WhatsApp changes, without you merging fixes.

Same terms for both. Circles, like every tool that reads a personal number, connects as an unofficial linked device, which is outside WhatsApp's terms. No one can promise WhatsApp will never disconnect a device. What Circles offers is careful defaults: reading by default, sending off until you allow it, a daily cap, no broadcast, and a dedicated IP address shared with no other customer. It makes no claim to a safer protocol. [How Circles handles your chats](https://usecircles.app/en/security).

## Switching, or running both

To switch, stop the bridge, remove its server from your client's MCP config, and unlink the old device in WhatsApp under *Linked devices*. Then link Circles from your phone and add `https://app.usecircles.app/api/mcp` to your agent. Circles syncs the history WhatsApp sends a newly linked device. It does not import your local database.

You can also run both for a while: each one is a separate linked device, and WhatsApp allows up to four. A common split is the self-hosted server for experiments on your desktop and Circles for Claude or ChatGPT on your phone.

## Questions and answers

### Is lharries/whatsapp-mcp still maintained?

As of 27 October 2026 its last update was on 13 July 2025, and open issues ask whether it is abandoned. The verygoodplugins fork is actively maintained. Circles is a hosted alternative that needs no maintenance from you.

### How do I fix "Client outdated (405)" in WhatsApp MCP?

Use a maintained fork such as verygoodplugins/whatsapp-mcp, or apply one of the open fix pull requests in your own copy. Or skip the bridge: Circles is hosted and keeps the connection current.

### Is there a hosted version of WhatsApp MCP?

Yes. Circles is a hosted WhatsApp MCP for your personal number at `https://app.usecircles.app/api/mcp`: link from your phone, connect your agent with one address and an approval. Free, Starter $9.90 or Pro $29 a month, with 14 days of Pro free.

### Can I use a self-hosted WhatsApp MCP in claude.ai or on my phone?

Not as it ships: the original is a local stdio server for desktop clients. You would need a public URL and auth you build. Circles is a remote MCP with OAuth, so Claude on the web and phone can add it by address.

### Does self-hosted WhatsApp MCP transcribe voice notes?

The original does not. The verygoodplugins fork transcribes on demand with whisper.cpp or an endpoint you choose. Circles transcribes voice notes automatically, in Hebrew and English.

### Is self-hosting safer from a WhatsApp ban?

Not by protocol: both connect as an unofficial linked device, outside WhatsApp's terms. What you control is behaviour. Circles reads by default, caps sends and never broadcasts.

## Sources

Competitor facts as seen on 27 October 2026 unless another date is given. Prices change often in this category: check the vendor's own page before you buy.

- [github.com/lharries/whatsapp-mcp](https://github.com/lharries/whatsapp-mcp)
- [github.com/verygoodplugins/whatsapp-mcp](https://github.com/verygoodplugins/whatsapp-mcp)
- [news.ycombinator.com/item?id=43532967](https://news.ycombinator.com/item?id=43532967)
- [github.com/FelixIsaac/whatsapp-mcp-extended](https://github.com/FelixIsaac/whatsapp-mcp-extended)
- [github.com/jlucaso1/whatsapp-mcp-ts](https://github.com/jlucaso1/whatsapp-mcp-ts)
- [github.com/steipete/wacli](https://github.com/steipete/wacli)
- [github.com/finereli/whatsapp-mcp](https://github.com/finereli/whatsapp-mcp)
- [github.com/devlikeapro/waha](https://github.com/devlikeapro/waha)
- [github.com/EvolutionAPI/evolution-api](https://github.com/EvolutionAPI/evolution-api)
- [github.com/rosroyros/awesome-whatsapp-mcp](https://github.com/rosroyros/awesome-whatsapp-mcp)
- [awesomeclaude.ai/how-to/use-whatsapp-with-claude](https://awesomeclaude.ai/how-to/use-whatsapp-with-claude)

## Keep reading

- [The hosted WhatsApp MCP](https://usecircles.app/en/whatsapp-mcp): What Circles gives your agent, tool by tool.
- [Best WhatsApp MCP servers](https://usecircles.app/en/compare/best-whatsapp-mcp-servers): Every option, with what each is best for.
- [Connect Claude](https://usecircles.app/en/agents/claude): One address and an approval, on the web, desktop and phone.

---

14 days free. Link your number, pick the chats, then connect Instinct with one tap or Claude, ChatGPT and Codex with one address. Start: https://usecircles.app/start?lang=en
