1. Conduid
  2. Developer Tools
  3. Whatsapp MCP
MCP server · Developer Tools

Whatsapp MCP

Give your AI agents your WhatsApp. An MCP server that reads, searches and sends your messages, running on your own Cloudflare account with one-click deploy.

63Good

Scored just now · breakdown

About Whatsapp MCP

Whatsapp MCP is an MCP server published by felipeadeildo in the Developer Tools category: give your AI agents your WhatsApp. An MCP server that reads, searches and sends your messages, running on your own Cloudflare account with one-click deploy.

The repository has 94 stars and 37 forks, with the last commit 9 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/felipeadeildo/whatsapp-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (7)

find_chatLocate chat by name

Parameters not published.

get_chat_messagesRead specific chat

Parameters not published.

get_my_infoGet your profile info

Parameters not published.

list_chatsBrowse conversations

Parameters not published.

load_more_messagesFetch older history

Parameters not published.

search_messagesSearch across all chats

Parameters not published.

send_messageSend WhatsApp messages

Parameters not published.

Ask AI

✦

Ask AI about Whatsapp MCP

Powered by Claude · Grounded in docs

I know everything about Whatsapp MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository just now. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v1.0.0v1.0.0: rewritten for Cloudflare Workers · 8 Oct 2026whatsapp-mcp 1.0.0 is a rewrite. The Go server that ran in Docker on your machine is gone. In its place is a Cloudflare Worker you deploy to your own account with one click, with each WhatsApp account living in its own Durable Object. <p…

README

whatsapp-mcp

Give your AI agents your WhatsApp.

MCP server Runs on Cloudflare Workers

Deploy to Cloudflare

whatsapp-mcp lets an AI assistant like Claude read your WhatsApp chats, search them and send messages for you. It connects to your account the same way WhatsApp Web does, as a linked device, and keeps a searchable copy of your chats.

It speaks MCP, the standard way AI apps connect to tools, so it works with Claude, ChatGPT, Claude Code, Cursor and other MCP clients. It runs on your own Cloudflare account, so your messages stay with you.

Once it is set up, you ask in plain words and your assistant calls the tools for you:

Get started

You need a Cloudflare account, a GitHub account and your phone with WhatsApp.

1. Deploy

Click Deploy to Cloudflare above. Cloudflare copies this project to your GitHub, builds it and puts it online at an address like https://whatsapp-mcp.<your-name>.workers.dev.

During the setup it asks for a SECRET. That is the password of your server, at least 16 characters. Generate a strong one in a terminal with openssl rand -hex 32, or use a password manager, and keep it safe. Anyone who has it can read and send your messages.

2. Link your WhatsApp

Open this address in your browser and sign in with your SECRET:

https://whatsapp-mcp.<your-name>.workers.dev/accounts/personal

Select Link WhatsApp. On your phone, open WhatsApp, go to Settings → Linked devices → Link a device and point the camera at the code. The page then counts your chats as they arrive.

personal is a name you choose. Each name is a separate WhatsApp account, so one server can hold several.

3. Connect your AI assistant

Add this address as a custom connector in Claude or ChatGPT, or as a remote MCP server in any other client:

https://whatsapp-mcp.<your-name>.workers.dev/accounts/personal/mcp

The app opens your server in the browser. Sign in with your SECRET and select Allow. In Claude Code that is:

claude mcp add --transport http whatsapp https://whatsapp-mcp.<your-name>.workers.dev/accounts/personal/mcp

In pi, add it and sign in from the terminal:

pi mcp add whatsapp --url https://whatsapp-mcp.<your-name>.workers.dev/accounts/personal/mcp
pi mcp login whatsapp

Scripts and clients that can set a header can skip the browser and send Authorization: Bearer <SECRET> instead.

What your assistant can do

Tool What it does
get_status Connection state and how much of your history is saved
list_chats Chats in the order your phone shows them, with unread counts
find_chats Chats by any name or phone number
find_people People by any name or phone, including group members
get_messages A chat's messages, with paging and date or sender filters
get_message_context A message and the conversation around it
search_messages Search all chats by words, ignoring accents and capitals
send_message Sends text, as a reply or with mentions, never twice on retries
react_to_message Adds or removes a reaction
edit_message Edits a message you sent
delete_message Deletes a message for everyone
mark_as_read Marks a chat as read
save_contact Saves or renames someone in your address book, on every device
remove_contact Removes someone from your address book, on every device
load_older_messages Asks your phone for older history
check_numbers Which phone numbers have WhatsApp
get_group_info A group's details and members
get_profile Someone's name, About text and picture

Tools that send or change something tell your assistant so, and most assistants ask you before using them.

How it works

flowchart LR
  agent["AI assistant"] -- "MCP + OAuth" --> worker["Worker"]
  worker -- "RPC" --> account
  subgraph account["Durable Object, one per WhatsApp account"]
    socket["WhatsApp session<br/>whatsapp-rust in WASM"]
    archive[("SQLite archive<br/>full-text search")]
    socket --> archive
  end
  socket <-- "WebSocket" --> whatsapp["WhatsApp"]

Each WhatsApp account lives in its own Durable Object, a small server that Cloudflare keeps running with its own SQLite database. The WhatsApp session inside it is baileyrs, whose protocol core is whatsapp-rust compiled to WebAssembly. An alarm every 30 seconds keeps the object in memory and reconnects it after deploys.

WhatsApp sends your recent history once, when you link, and the archive keeps every message after that. Search finds people by any name they have used, and treats a person's phone number and their anonymous WhatsApp ID (LID) as the same person.

Configuration

Name Kind Purpose
SECRET Secret The password of your server, at least 16 characters
AUTH_MODE Variable How MCP clients get in: oauth, api_key or both. both if unset
TIMEZONE Variable Time zone for dates, like America/Sao_Paulo. UTC if unset

With oauth, an app connects after you sign in with SECRET in the browser and allow it. With api_key, clients send Authorization: Bearer <SECRET> on every request. The pairing page asks for SECRET in every mode, and allows five attempts per minute.

Change the variables in wrangler.jsonc, or pass --var TIMEZONE:<zone> to wrangler deploy. OAuth grants live in a KV namespace that the first deploy creates. The pairing page also uses a small REST API under /accounts/:id: status, start, send and logout.

Costs

One personal account running 24/7 costs $5 per month, the price of Workers Paid. Its included usage covers everything one account does:

One account, per month Workers Paid includes
Time in memory 324,000 GB-s 400,000 GB-s
Requests 90,000, plus your assistant's calls 1 million
Written rows 260,000 once to link, then 90,000 plus new messages 50 million

The object stays in memory all day, and Cloudflare bills that time as if it used the full 128 MB, however busy the account is. It also wakes every 30 seconds, which explains the 90,000 requests and rows. Linking saves the whole history at once: an account with about 30,000 messages wrote 258,000 rows in its first hour. Going past the included usage would take about 30,000 assistant calls or 100,000 new messages a day.

More accounts share the same plan. Cloudflare bills extra time in blocks of 1 million GB-s at $12.50, so two to four accounts cost $17.50 per month.

Workers Free is not enough, even for one account.

[!WARNING] Workers Free allows 100,000 written rows per day, fewer than the first sync writes. When an account crosses that limit, Cloudflare blocks every write until 00:00 UTC, so the server can't save new messages or schedule its heartbeat. Upgrading to Workers Paid lifts the block.

See Workers pricing, Durable Objects pricing and limits for current numbers.

Is it safe?

Your session and your messages stay in your Cloudflare account. The server talks only to WhatsApp, and only someone who knows your SECRET can use it or allow an app in.

This is an unofficial WhatsApp client, not affiliated with WhatsApp or Meta, and WhatsApp can ban accounts that use one. Link a number you can afford to lose, and keep your assistant asking before it sends messages.

Development

You need Bun. Wrangler comes with the project.

bun install
printf 'SECRET=%s\n' "$(openssl rand -hex 32)" > .dev.vars   # see .dev.vars.example
bun run dev     # http://localhost:8787/accounts/dev
bun run check   # types, lint, format and tests

To deploy from your machine, run bunx wrangler secret put SECRET once and then bun run deploy.

Built on baileyrs and whatsapp-rust. Message rendering and identity rules follow mautrix-whatsapp. Licensed under GPL-3.0.

README fetched from the repository just now. The original is authoritative.

Questions

About Whatsapp MCP

How do I install Whatsapp MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Whatsapp MCP safe to use with an AI agent?

Its trust score is 63 out of 100 (good). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Whatsapp MCP still maintained?

Yes — the latest release is v1.0.0 (8 Oct 2026), and the last commit was 9 days ago. The repository has 94 stars and 1 open issues.