Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
作者による説明(英語の原文)
WhatsApp for your agent: chats, messages, media, contacts and groups behind MCP tools.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
WAZAP_READ_ONLY, WAZAP_DATA_DIR必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"wazap": {
"command": "npx",
"args": [
"-y",
"wazap-mcp"
],
"env": {
"WAZAP_READ_ONLY": "your-value",
"WAZAP_DATA_DIR": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add wazap --env WAZAP_READ_ONLY=your-value --env WAZAP_DATA_DIR=your-value -- npx -y wazap-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"wazap": {
"command": "npx",
"args": [
"-y",
"wazap-mcp"
],
"env": {
"WAZAP_READ_ONLY": "your-value",
"WAZAP_DATA_DIR": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"wazap": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"wazap-mcp"
],
"env": {
"WAZAP_READ_ONLY": "your-value",
"WAZAP_DATA_DIR": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
WAZAP_READ_ONLY envWAZAP_DATA_DIR envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント razvangirgiz で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.6.0)がレジストリに届いたのは17 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
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
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
╭───────────────╮
│ ▄██▀ │ ██╗ ██╗ █████╗ ███████╗ █████╗ ██████╗ │ ▄██▀ │ ██║ ██║██╔══██╗╚══███╔╝██╔══██╗██╔══██╗ │ ▄███████▀ │ ██║ █╗ ██║███████║ ███╔╝ ███████║██████╔╝ │ ▄██▀ │ ██║███╗██║██╔══██║ ███╔╝ ██╔══██║██╔═══╝ │ ▄█▀ │ ╚███╔███╔╝██║ ██║███████╗██║ ██║██║ ╰─╮╭────────────╯ ╚══╝╚══╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╰╯ 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 `~/
冒頭だけを表示しています。続きはリポジトリで読めます