ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Wazap

โดย razvangirgizรุ่น 1.6.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.razvangirgiz/wazap

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

WhatsApp for your agent: chats, messages, media, contacts and groups behind MCP tools.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: แชตและอีเมล

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "wazap": {
      "command": "npx",
      "args": [
        "-y",
        "wazap-mcp"
      ],
      "env": {
        "WAZAP_READ_ONLY": "ใส่ค่าของคุณ",
        "WAZAP_DATA_DIR": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add wazap --env WAZAP_READ_ONLY='ใส่ค่าของคุณ' --env WAZAP_DATA_DIR='ใส่ค่าของคุณ' -- npx -y wazap-mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "wazap": {
      "command": "npx",
      "args": [
        "-y",
        "wazap-mcp"
      ],
      "env": {
        "WAZAP_READ_ONLY": "ใส่ค่าของคุณ",
        "WAZAP_DATA_DIR": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "wazap": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "wazap-mcp"
      ],
      "env": {
        "WAZAP_READ_ONLY": "ใส่ค่าของคุณ",
        "WAZAP_DATA_DIR": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • WAZAP_READ_ONLY env
    Refuse every write. The write tools are not registered at all.
  • WAZAP_DATA_DIR env
    Where wazap keeps credentials, history and media. Defaults to ~/.wazap.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub razvangirgiz ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด แชตและอีเมลi

  • ดาวมากกว่า 0% ของอีก 1849 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 65% ของอีก 1849 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1849 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Wazap ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.6.0) เข้า registry 17 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Vexa, emailmd, MCP WhatsApp Cloud

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Vexa

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

โดย Vexa-aiใช้กันมาก★ 2.9Kอัปเดต 2 เดือนที่ผ่านมา

รันบนคลาวด์✓ vexa.ai

emailmd

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

โดย anypostกำลังโต↓ 5.3K/สัปดาห์★ 1.4Kอัปเดต 32 วันที่ผ่านมา

บนเครื่องหรือคลาวด์✓ emailmd.dev

MCP WhatsApp Cloud

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

โดย codesparเริ่มต้น↓ 63/สัปดาห์★ 277อัปเดต 5 เดือนที่ผ่านมา

รันบนเครื่อง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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:

  • *"What did I miss on WhatsApp today?"* — one answer across every linked account: who is waiting on you, mentions, missed calls, busy groups condensed.
  • *"Find the invoice Dan sent in spring."* — search by meaning and by words at once, then open the file.
  • *"What did the voice note from mama say?"* — voice notes come back as text.
  • *"Tell Ana I'll be twenty minutes late."* — you see the recipient and the exact words first. Nothing leaves until you say yes.

No browser, no business account, no third-party service. There is no wazap cloud: it runs where you run it.

Get started

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 --agent and 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.

Per client
ClientFastest path
Claude Code/plugin marketplace add razvangirgiz/wazap, then /plugin install wazap@wazap
Claude Desktopdownload wazap- .mcpb from Releases and double-click it
Cursorthe badge below, then npx wazap-mcp skills install cursor
Codex CLInpx wazap-mcp connect codex, then npx wazap-mcp skills install codex
Gemini CLInpx wazap-mcp connect gemini
claude.ai, ChatGPT, other hosted agentsa URL they sign in to with OAuth: see Remote access
Anything elsecommand 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 your account

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.

The 23 tools

What every argument means, and every error code, is in docs/tools.md. The assistant gets all of it by calling learn.

ToolKindWhat it does
learnreadThe guide to every tool, id format, workflow and error code. Call it first.
get_statusreadConnection, sync, linked accounts, how fresh the history is, webhook delivery, versions.
link_accountreadLink an account from the assistant; returns the 8-character code to type into the phone.
list_chatsreadConversations newest-first: all, unread, groups, individual or archived.
read_messagesreadOne chat, paging back into the phone's history; chat_id: "status" reads the stories.
catch_upread"What did I miss?" across every account, in one call and within a token budget.
searchreadMessages by meaning and by words at once, narrowed by chat, sender or date.
get_messagereadOne message in full: its quote, reactions and who left them, poll votes, delivery and read receipts.
find_contactreadWho "mama", a nickname, a group name or a number means, before anything is drafted.
list_contactsreadThe phone's address book a page at a time: saved name, number, when you last talked.
get_group_inforeadParticipants, admins, group settings, the invite link for an admin.
get_mediareadA 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_messagesreadBlock up to 55 s until a message arrives, with a cursor so nothing is missed between calls.
rememberlocalA note, tags or details about a person, kept on this machine. Nothing changes on WhatsApp.
send_messagewriteDraft a message, media, poll, location or forward — and send nothing. send_at drafts it for a later time.
confirm_sendwriteSend that draft, once, after the user has seen the preview and said yes; a draft for later is scheduled.
edit_messagewriteEdit your own message, within WhatsApp's 15-minute window.
react_to_messagewriteAdd or remove an emoji reaction.
delete_messagewriteDelete for everyone (your own message, or anyone's in a group you admin), or only on this account.
manage_chatwritePreview archive, pin, mute, star, clear, delete, block and undo actions; confirm the preview to apply once. mark_read remains direct.
manage_groupwriteCreate, join, rename, add, remove, promote, invite links, join requests, settings, leave.
scheduled_messageswriteList the scheduled messages (sent, missed, failed too) or cancel one before it goes.
reminderlocal"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.

Skills

Tools say what is possible; the five Agent Skills in skills/ say how to do the job well.

SkillWhat the agent does
whatsapp-inboxTriage: needs you / FYI / noise, plus replies you forgot. Read-only.
whatsapp-recallFind an address, an invoice, a photo, a thing someone said. Read-only.
whatsapp-groupsCatch up on a busy group: decisions, dates, what is asked of you. Read-only.
whatsapp-sendFind who you mean, draft in the chat's own tone, show it, send on a yes.
wazap-setupDiagnose, 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.

Transports

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.

Remote access

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.

Deployment

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.

Configuration

Every setting is optional. They are environment variables, read from the process or from `~/

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx