Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
WhatsApp MCP. SQLCipher-encrypted, scrubber-CI-gated, draft-and-confirm sends, voice transcription.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
WHATSAPP_BRIDGE_HOST, WHATSAPP_BRIDGE_PORT, WHATSAPP_VAULT_CRM_PATH, WHATSAPP_WHISPER_BACKEND, WHATSAPP_WHISPER_API_KEY, WHATSAPP_WHISPER_MODEL, WHATSAPP_SCRUB_PROMPT_INJECTION, WHATSAPP_AUDIT_LOG, WHATSAPP_ENCRYPT_DBค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"whatsapp": {
"command": "uvx",
"args": [
"adelaidasofia-whatsapp-mcp"
],
"env": {
"WHATSAPP_BRIDGE_HOST": "ใส่ค่าของคุณ",
"WHATSAPP_BRIDGE_PORT": "ใส่ค่าของคุณ",
"WHATSAPP_VAULT_CRM_PATH": "ใส่ค่าของคุณ",
"WHATSAPP_WHISPER_BACKEND": "ใส่ค่าของคุณ",
"WHATSAPP_WHISPER_API_KEY": "ใส่ค่าของคุณ",
"WHATSAPP_WHISPER_MODEL": "ใส่ค่าของคุณ",
"WHATSAPP_SCRUB_PROMPT_INJECTION": "ใส่ค่าของคุณ",
"WHATSAPP_AUDIT_LOG": "ใส่ค่าของคุณ",
"WHATSAPP_ENCRYPT_DB": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add whatsapp --env WHATSAPP_BRIDGE_HOST='ใส่ค่าของคุณ' --env WHATSAPP_BRIDGE_PORT='ใส่ค่าของคุณ' --env WHATSAPP_VAULT_CRM_PATH='ใส่ค่าของคุณ' --env WHATSAPP_WHISPER_BACKEND='ใส่ค่าของคุณ' --env WHATSAPP_WHISPER_API_KEY='ใส่ค่าของคุณ' --env WHATSAPP_WHISPER_MODEL='ใส่ค่าของคุณ' --env WHATSAPP_SCRUB_PROMPT_INJECTION='ใส่ค่าของคุณ' --env WHATSAPP_AUDIT_LOG='ใส่ค่าของคุณ' --env WHATSAPP_ENCRYPT_DB='ใส่ค่าของคุณ' -- uvx adelaidasofia-whatsapp-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"whatsapp": {
"command": "uvx",
"args": [
"adelaidasofia-whatsapp-mcp"
],
"env": {
"WHATSAPP_BRIDGE_HOST": "ใส่ค่าของคุณ",
"WHATSAPP_BRIDGE_PORT": "ใส่ค่าของคุณ",
"WHATSAPP_VAULT_CRM_PATH": "ใส่ค่าของคุณ",
"WHATSAPP_WHISPER_BACKEND": "ใส่ค่าของคุณ",
"WHATSAPP_WHISPER_API_KEY": "ใส่ค่าของคุณ",
"WHATSAPP_WHISPER_MODEL": "ใส่ค่าของคุณ",
"WHATSAPP_SCRUB_PROMPT_INJECTION": "ใส่ค่าของคุณ",
"WHATSAPP_AUDIT_LOG": "ใส่ค่าของคุณ",
"WHATSAPP_ENCRYPT_DB": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"whatsapp": {
"type": "stdio",
"command": "uvx",
"args": [
"adelaidasofia-whatsapp-mcp"
],
"env": {
"WHATSAPP_BRIDGE_HOST": "ใส่ค่าของคุณ",
"WHATSAPP_BRIDGE_PORT": "ใส่ค่าของคุณ",
"WHATSAPP_VAULT_CRM_PATH": "ใส่ค่าของคุณ",
"WHATSAPP_WHISPER_BACKEND": "ใส่ค่าของคุณ",
"WHATSAPP_WHISPER_API_KEY": "ใส่ค่าของคุณ",
"WHATSAPP_WHISPER_MODEL": "ใส่ค่าของคุณ",
"WHATSAPP_SCRUB_PROMPT_INJECTION": "ใส่ค่าของคุณ",
"WHATSAPP_AUDIT_LOG": "ใส่ค่าของคุณ",
"WHATSAPP_ENCRYPT_DB": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
WHATSAPP_BRIDGE_HOST envWHATSAPP_BRIDGE_PORT envWHATSAPP_VAULT_CRM_PATH envWHATSAPP_WHISPER_BACKEND envWHATSAPP_WHISPER_MODEL envWHATSAPP_SCRUB_PROMPT_INJECTION envWHATSAPP_AUDIT_LOG envWHATSAPP_ENCRYPT_DB envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub adelaidasofia ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: WHATSAPP_WHISPER_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 6 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Vexa, emailmd, MCP WhatsApp Cloud
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A WhatsApp MCP server for Claude, built directly on whatsmeow. Encrypted at rest, prompt-injection-scrubbed, draft-and-confirm on every send, full audit trail, daily CI security gates. Actively maintained.
The most-starred WhatsApp MCP (lharries/whatsapp-mcp, 5.6K stars) is the architectural reference for this pattern, but has not shipped since July 2025 and leaves the lethal-trifecta problem entirely to the user. This implementation closes the gaps:
| Canonical | This implementation | |
|---|---|---|
| Last shipped | July 2025 | Active |
| DB encryption | Plain SQLite | SQLCipher with key in the platform secret store (macOS Keychain / Windows Credential Manager / libsecret) |
| Prompt-injection scrubber | None | Every inbound message |
| Send safety | Fires immediately | Mandatory confirm_send between draft and delivery |
| Audit log | None | Every tool call, 30-day retention |
| Voice notes | Not transcribed | whisper.cpp local, language detected per note, turned on with one command |
| LID alias resolution | Open issue cluster upstream | Shipped, with backfill migration for legacy threads |
| CI security | None | govulncheck + pip-audit + Dependabot, daily |
Not a fork. The Go bridge is built directly against whatsmeow; the Python MCP layer and SQLite schema are original. Other implementations (lharries, LukasHaas, verygoodplugins) were read as reference only.
Claude can:
whisper.cpp (language detected per note). Off until you say yes; Claude offers it once, and python3 whatsapp-mcp-server/enable_transcription.py turns it on in one stepconfirm_send step between draft and deliveryEverything runs locally on your machine. No cloud sync. No telemetry. Optional OpenAI Whisper backend is opt-in, off by default.
Two components, both local:
whatsmeow for the WhatsApp Web multidevice protocol. Owns SQLite persistence with SQLCipher encryption. Handles QR and pairing-code auth (live-refreshing terminal QR with Windows-safe rendering, plus a headless auth API — GET /api/auth/qr, POST /api/auth/pair-phone, POST /api/auth/reconnect — so a GUI or supervisor can drive pairing without a terminal), media up/download, session recovery from StreamReplaced conflicts, call history capture. Exposes a REST API the Python MCP layer consumes.confirm_send. Runs via uv and stdio transport.Open Claude Code, paste:
/plugin marketplace add adelaidasofia/whatsapp-mcp /plugin install whatsapp-mcp@whatsapp-mcp
This installs the Python MCP server side. The Go bridge still needs the one-time QR pairing flow with your phone — see the legacy install block below for those steps.
Manual install (full Go bridge + QR pairing)
See SETUP.md for step-by-step install per OS. In short:
uv for the MCP server layerscripts/check_prerequisites.sh (Windows: scripts\check_prerequisites.ps1)./bin/whatsapp-bridge (Windows: .\bin\whatsapp-bridge.exe)--pair-phone +15551234567.mcp.jsonFFmpeg and whisper.cpp are only needed if you enable voice-note transcription (off by default); enable_transcription.py configures them for you, and installs them with Homebrew on a Mac (SETUP.md step 4).
All configurable via environment variables. See .env.example for the full list.
Key variables:
| Variable | Default | Purpose |
|---|---|---|
WHATSAPP_BRIDGE_PORT | 8080 | Go bridge REST API port |
WHATSAPP_DB_PATH | $HOME/.claude/whatsapp-mcp/store/messages.db | Encrypted SQLite database |
WHATSAPP_MEDIA_PATH | $HOME/.claude/whatsapp-mcp/media/ | Media file storage |
WHATSAPP_VAULT_CRM_PATH | empty | Absolute path to your vault CRM folder for auto-injection (e.g., Obsidian 👤 CRM/). When unset, CRM injection is disabled. |
WHATSAPP_WHISPER_BACKEND | off | off (zero-config boot), local-cpp (private, needs a whisper model), or openai-api (opt-in) |
WHATSAPP_WHISPER_API_KEY | empty | Required only when backend is openai-api |
WHATSAPP_WHISPER_MODEL | large-v3-turbo | whisper.cpp model name |
WHATSAPP_WHISPER_LANGUAGE | auto | Language passed to whisper. auto detects it per voice note; a fixed code (es, en) forces every note through it |
WHATSAPP_KEEP_VOICE_AUDIO | true | While transcription is off, save each incoming voice note's audio (voice notes only, never view-once or disappearing ones) under WHATSAPP_MEDIA_PATH, so turning transcription on later also covers notes older than WhatsApp's ~14 days. Set false to stop |
WHATSAPP_SCRUB_PROMPT_INJECTION | true | Strip known prompt-injection patterns from incoming messages before Claude sees them |
WHATSAPP_AUDIT_LOG | true | Log every tool call to audit.log |
WHATSAPP_ENCRYPT_DB | true | Enable SQLCipher DB encryption; key in the platform secret store (macOS Keychain / Windows Credential Manager / libsecret) |
WHATSAPP_DB_KEY | empty | Explicit 64-hex-char SQLCipher key override (skips the platform store). Escape hatch for headless/CI/custom secret managers, and the recovery path when the secret store cannot be read — see below |
WHATSAPP_DB_KEYWith WHATSAPP_ENCRYPT_DB=true (the default), the bridge encrypts the message store with a 256-bit SQLCipher key kept in the platform secret store. The key lifecycle is deliberately conservative, because a wrong key silently orphans every stored message:
errSecItemNotFound, Windows ERROR_NOT_FOUND, libsecret clean miss) and no non-empty store database exists yet.security unlock-keychain).WHATSAPP_DB_KEY (64 hex chars = 32 bytes, e.g. openssl rand -hex 32) is the escape hatch for all of these: when set, it is used directly and the platform secret store is never touched. Use it for headless/CI machines, custom secret managers, restoring a store on a new machine, or booting while the platform store is unavailable.
This MCP is the highest-trust component in your Claude stack because every WhatsApp message you receive flows through it. See SECURITY.md for the threat model, tool risk-tier classification, and the full list of hardening decisions.
Short version:
127.0.0.1 only, never 0.0.0.0WHATSAPP_DB_KEY escape hatchaudit.log with 30-day retentionconfirm_send step between draft and deliverywhatsmeow pinned to a specific commit; upgrades require diff reviewv0.1.0, actively maintained.
Shipped: live-refreshing QR (in-place redraw on rotation, Windows-safe rendering, auto fresh batch on expiry) + pairing-code auth (typed 8-char code, Android + iOS) + headless auth API for supervisors, full read surface (chats, messages, contacts), accent-insensitive NFD-normalized search, LID alias resolution with backfill migration for legacy threads, Baileys-store import for one-shot history migration, vault-format markdown export, local whisper.cpp voice transcription, presence (typing, online, mark-read), text-send with mandatory confirm_send, reactions, reply-quotes, prompt-injection scrubber, SQLCipher-encrypted persistence with macOS Keychain key handling, audit log, CI security gates.
Not yet shipped: media-send (image, document), audio-message-send (FFmpeg-Opus path), group broadcast helpers.
See CHANGELOG.md for full history.
Published on the official MCP Registry under io.github.adelaidasofia/whatsapp-mcp. Two live channels:
adelaidasofia-whatsapp-mcp) — historical; available via uvx adelaidasofia-whatsapp-mcp for stdio-installer flows. The unprefixed names (whatsapp-mcp, whatsapp-mcp-server) are taken by unrelated projects on PyPI, hence the username-prefixed namespace.The verification marker mcp-name: io.github.adelaidasofia/whatsapp-mcp is embedded in this README (HTML comment near the top) so the registry can verify package-to-server
ตัดมาแค่ช่วงต้น อ่านต่อใน repo