Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Beschreibung vom Entwickler (englisches Original)
WhatsApp for your agent: chats, messages, media, contacts and groups behind MCP tools.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
WAZAP_READ_ONLY, WAZAP_DATA_DIRDu brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"wazap": {
"command": "npx",
"args": [
"-y",
"wazap-mcp"
],
"env": {
"WAZAP_READ_ONLY": "your-value",
"WAZAP_DATA_DIR": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add wazap --env WAZAP_READ_ONLY=your-value --env WAZAP_DATA_DIR=your-value -- npx -y wazap-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"wazap": {
"command": "npx",
"args": [
"-y",
"wazap-mcp"
],
"env": {
"WAZAP_READ_ONLY": "your-value",
"WAZAP_DATA_DIR": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"wazap": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"wazap-mcp"
],
"env": {
"WAZAP_READ_ONLY": "your-value",
"WAZAP_DATA_DIR": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
WAZAP_READ_ONLY envWAZAP_DATA_DIR envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto razvangirgiz bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.6.0) kam vor 17 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Vexa, emailmd, MCP WhatsApp Cloud
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
╭───────────────╮
│ ▄██▀ │ ██╗ ██╗ █████╗ ███████╗ █████╗ ██████╗ │ ▄██▀ │ ██║ ██║██╔══██╗╚══███╔╝██╔══██╗██╔══██╗ │ ▄███████▀ │ ██║ █╗ ██║███████║ ███╔╝ ███████║██████╔╝ │ ▄██▀ │ ██║███╗██║██╔══██║ ███╔╝ ██╔══██║██╔═══╝ │ ▄█▀ │ ╚███╔███╔╝██║ ██║███████╗██║ ██║██║ ╰─╮╭────────────╯ ╚══╝╚══╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╰╯ WhatsApp for your AI agent.
wazap is an MCP server for your own WhatsApp account. It links as a device, the way WhatsApp Web does, keeps what it sees on your machine, and gives any MCP client — Claude, ChatGPT, Gemini, Cursor, Codex — 23 tools over your chats, messages, media, contacts and groups.
You stop opening WhatsApp to find things and ask instead:
No browser, no business account, no third-party service. There is no wazap cloud: it runs where you run it.
You need Node.js 22.16+ on the 22 line, or 24+, and a phone with WhatsApp.
npx wazap-mcp setup
setup links your account, finds the MCP clients installed on this machine (Claude Code, Claude Desktop, Cursor, Codex, Gemini CLI), writes their config, installs the five skills where the client reads them, and tells you what to restart. Then ask your assistant: *"what did I miss on WhatsApp today?"*
Rather let your agent do it? Paste this into it:
Set up WhatsApp for me: run
npx wazap-mcp setup --agentand follow what it prints.
npx wazap-mcp on its own, in a terminal, starts nothing: it prints where you stand and the next command. When something is off, npx wazap-mcp status is the first thing to run; it prints a fix next to anything broken.
| Client | Fastest path |
|---|---|
| Claude Code | /plugin marketplace add razvangirgiz/wazap, then /plugin install wazap@wazap |
| Claude Desktop | download wazap- .mcpb from Releases and double-click it |
| Cursor | the badge below, then npx wazap-mcp skills install cursor |
| Codex CLI | npx wazap-mcp connect codex, then npx wazap-mcp skills install codex |
| Gemini CLI | npx wazap-mcp connect gemini |
| claude.ai, ChatGPT, other hosted agents | a URL they sign in to with OAuth: see Remote access |
| Anything else | command npx -y wazap-mcp, transport stdio |
The hand-written entry, for any client that takes the usual JSON:
{
"mcpServers": { "whatsapp": { "command": "npx", "args": ["-y", "wazap-mcp"] } } }
Every step setup takes, each file connect writes, and upgrading are in docs/install.md.
Linking is a one-time step. setup does it for you; on its own it is:
npx wazap-mcp login # QR code: Settings → Linked devices → Link a device
npx wazap-mcp login --phone +15550100 # pairing code instead, no camera needed
With --phone, wazap prints an 8-character code. On the phone, go to WhatsApp → Settings → Linked devices → Link a device → Link with phone number instead and type it in. The pairing code works over SSH and on a headless server, where a QR is impractical.
An assistant can link the account itself, too: the link_account tool returns the same code, so a Claude Desktop user never needs a terminal.
Several WhatsApp accounts can live in one wazap (wazap account add , then wazap login --account ); see docs/accounts.md.
What every argument means, and every error code, is in docs/tools.md. The assistant gets all of it by calling learn.
| Tool | Kind | What it does |
|---|---|---|
learn | read | The guide to every tool, id format, workflow and error code. Call it first. |
get_status | read | Connection, sync, linked accounts, how fresh the history is, webhook delivery, versions. |
link_account | read | Link an account from the assistant; returns the 8-character code to type into the phone. |
list_chats | read | Conversations newest-first: all, unread, groups, individual or archived. |
read_messages | read | One chat, paging back into the phone's history; chat_id: "status" reads the stories. |
catch_up | read | "What did I miss?" across every account, in one call and within a token budget. |
search | read | Messages by meaning and by words at once, narrowed by chat, sender or date. |
get_message | read | One message in full: its quote, reactions and who left them, poll votes, delivery and read receipts. |
find_contact | read | Who "mama", a nickname, a group name or a number means, before anything is drafted. |
list_contacts | read | The phone's address book a page at a time: saved name, number, when you last talked. |
get_group_info | read | Participants, admins, group settings, the invite link for an admin. |
get_media | read | A voice note as its transcript, a photo as an image, any file saved to disk; served from the copy kept on arrival first. |
wait_for_messages | read | Block up to 55 s until a message arrives, with a cursor so nothing is missed between calls. |
remember | local | A note, tags or details about a person, kept on this machine. Nothing changes on WhatsApp. |
send_message | write | Draft a message, media, poll, location or forward — and send nothing. send_at drafts it for a later time. |
confirm_send | write | Send that draft, once, after the user has seen the preview and said yes; a draft for later is scheduled. |
edit_message | write | Edit your own message, within WhatsApp's 15-minute window. |
react_to_message | write | Add or remove an emoji reaction. |
delete_message | write | Delete for everyone (your own message, or anyone's in a group you admin), or only on this account. |
manage_chat | write | Preview archive, pin, mute, star, clear, delete, block and undo actions; confirm the preview to apply once. mark_read remains direct. |
manage_group | write | Create, join, rename, add, remove, promote, invite links, join requests, settings, leave. |
scheduled_messages | write | List the scheduled messages (sent, missed, failed too) or cancel one before it goes. |
reminder | local | "Remind me if Ana has not answered in 2 days": set, list or cancel; posted to your webhook when due. |
Scheduled messages and reminders. send_message with send_at ("tomorrow at 9" as 2026-10-12T09:00 in Europe/Bucharest) drafts a message for later; the user's yes to that preview, time included, schedules it, and every send check runs again when it goes. One wazap could not send within 15 minutes of its time is reported as missed, never sent late. reminder keeps "remind me if Ana has not answered in 2 days" and posts it to your webhook when due. Both survive restarts; see Scheduling a message and Reminders.
Two features are off by default and can run entirely on your machine: voice transcription with whisper.cpp (docs/voice.md) and semantic recall, so search matches meaning and not only words (docs/recall.md). Turn them on with wazap config transcribe local and wazap config recall local.
Tools say what is possible; the five Agent Skills in skills/ say how to do the job well.
| Skill | What the agent does |
|---|---|
whatsapp-inbox | Triage: needs you / FYI / noise, plus replies you forgot. Read-only. |
whatsapp-recall | Find an address, an invoice, a photo, a thing someone said. Read-only. |
whatsapp-groups | Catch up on a busy group: decisions, dates, what is asked of you. Read-only. |
whatsapp-send | Find who you mean, draft in the chat's own tone, show it, send on a yes. |
wazap-setup | Diagnose, link or repair the connection. |
setup installs them for Claude Code, Codex and Cursor (npx wazap-mcp skills install does it by hand). Every other client gets the same five as MCP prompts from the server, with nothing to install.
stdio is the default: the client starts npx -y wazap-mcp and talks to it over stdin/stdout. Nothing listens on the network.
HTTP (Streamable HTTP) is for a server that outlives the client, or one another machine reaches:
npx wazap-mcp serve --http # http://127.0.0.1:8766/mcp, health at /healthz
--host/--port (or WAZAP_HOST/WAZAP_PORT) move it. wazap refuses to bind anything but loopback without WAZAP_READ_TOKEN. Clients authenticate with a static bearer token (WAZAP_READ_TOKEN, plus WAZAP_WRITE_TOKEN for the write tools) or with OAuth 2.1, which wazap serves itself. Details in docs/self-host.md.
Two commands keep wazap running and reachable from hosted agents:
npx wazap-mcp service install # a launchd agent (macOS) or systemd user unit (Linux)
npx wazap-mcp expose # a public https URL through Tailscale Funnel or Cloudflare Tunnel
expose prints the URL and a consent password. Give the agent only the URL; it registers itself, and the consent page asks you for the password and whether that agent may only read or also send. See Keep it running.
The service recovers by itself: a dropped link is retried with backoff, a watchdog replaces a socket that went dead across a sleep or stopped answering, and when reconnecting keeps failing wazap exits so launchd or systemd starts it fresh. The linked session is never deleted for any of that; only WhatsApp unlinking the device needs a new link. Set WAZAP_WEBHOOK_EVENTS to include alert to be told when the link has been down for 5 minutes, when it is back, and when it needs linking again (Link alerts); get_status shows the same under link.
On a server of your own, the session never leaves it. With Docker (images for amd64 and arm64 at ghcr.io/razvangirgiz/wazap):
mkdir wazap && cd wazap
curl -fsSLO https://raw.githubusercontent.com/razvangirgiz/wazap/main/docker-compose.yml printf 'WAZAP_READ_TOKEN=%s\nWAZAP_WRITE_TOKEN=%s\n' $(openssl rand -hex 32) $(openssl rand -hex 32) > .env docker compose run --rm wazap login --phone +15550100 # once; the session lands in the volume docker compose up -d curl -s http://127.0.0.1:8766/healthz
The container publishes port 8766 on loopback only; put TLS in front (deploy/Caddyfile is two lines). A systemd unit is in deploy/wazap.service. Both setups, reverse-proxy trust and the OAuth server are in docs/self-host.md. Calling wazap from your own product, and receiving signed webhooks for incoming messages, is in docs/api-and-webhooks.md.
Every setting is optional. They are environment variables, read from the process or from `~/
Nur der Anfang wird gezeigt; den Rest findest du im Repo