WhatsApp MCP: để trợ lý AI đọc tin nhắn WhatsApp miễn phí trên Cloudflare

AI & ML18 tháng 10, 2026·6 phút đọc

Một lập trình viên đã xây dựng máy chủ MCP (Model Context Protocol) chạy hoàn toàn trong tài khoản Cloudflare cá nhân, cho phép các tác nhân AI như Claude đọc và tìm kiếm tin nhắn WhatsApp của chính bạn. Công cụ chỉ đọc, không gửi tin, dữ liệu lưu trong SQLite trên Durable Object và không đi đâu khác ngoài tài khoản của bạn.

WhatsApp MCP: để trợ lý AI đọc tin nhắn WhatsApp miễn phí trên Cloudflare

WhatsApp MCP: để trợ lý AI đọc tin nhắn WhatsApp miễn phí trên Cloudflare

Nhiều người dùng Claude hay các tác nhân AI khác vẫn ước có thể hỏi trợ lý về những tin nhắn WhatsApp đang nằm trong điện thoại mình. Nhưng các giải pháp hiện có thường đòi hỏi WhatsApp Business hoặc phải thuê một máy chủ riêng để chạy thư viện Baileys.

WhatsApp MCP ra đời để giải quyết đúng điểm nghẽn đó: một máy chủ nhỏ chạy ngay trong tài khoản Cloudflare của bạn, liên kết với điện thoại một lần theo kiểu WhatsApp Web, sau đó bất kỳ ứng dụng khách MCP nào (Claude Code, Claude Desktop...) đều có thể tìm kiếm và đọc các cuộc trò chuyện.

Cách hoạt động

Điện thoại của bạn vẫn là nguồn dữ liệu gốc. Máy chủ chỉ đóng vai trò một thiết bị liên kết mà tác nhân AI trò chuyện cùng.

  • Máy chủ không duy trì kết nối thường trực với WhatsApp. Khi tác nhân cần dữ liệu, và mỗi ngày một lần, nó kết nối, thu thập những gì WhatsApp đã xếp hàng chờ, ghi vào cơ sở dữ liệu riêng rồi ngắt kết nối.
  • Tin nhắn được lưu trong cơ sở dữ liệu SQLite bên trong một Durable Object trên tài khoản Cloudflare của bạn. Không có dữ liệu nào đi ra ngoài.
  • Điện thoại vẫn hoạt động bình thường và vẫn nhận thông báo đầy đủ.

Những gì tác nhân AI có thể làm

Bộ công cụ khá gọn nhưng đủ dùng cho nhu cầu tra cứu cá nhân:

  • list_chats: liệt kê các cuộc trò chuyện, mới nhất trước, lọc theo tên hoặc số điện thoại.
  • get_messages: đọc một cuộc trò chuyện, lật trang theo ngày.
  • search_messages: tìm kiếm toàn văn trên toàn bộ tin nhắn hoặc trong một cuộc trò chuyện.
  • unnamed_chats: các cuộc trò chuyện chỉ hiện số điện thoại, kèm tin nhắn cuối của đối phương.
  • set_contact_names: lưu tên cho số điện thoại, tên sẽ gắn với số và hiện cả trong nhóm.
  • sync_now và link_status: kéo tin mới ngay lập tức và kiểm tra trạng thái liên kết.

Bạn có thể hỏi những câu như: "Dana nói gì về chuyến bay?", "Tìm mọi tin nhắn ai đó nhắc đến hợp đồng thuê nhà" hay "Tóm tắt những gì tôi bỏ lỡ trong nhóm gia đình tuần này".

Vấn đề "chat không tên" và cách xử lý thông minh

WhatsApp không cung cấp tên liên hệ đầy đủ cho thiết bị liên kết, nên nhiều cuộc trò chuyện chỉ hiện số điện thoại. Thay vì tự đăng nhập vào dịch vụ danh bạ (kéo theo dự án cloud, màn hình đồng ý và quy trình duyệt ứng dụng của Google), máy chủ giao việc này cho tác nhân AI – vốn thường đã có sẵn kết nối tới danh bạ như Google Contacts hoặc Gmail.

Bạn chỉ cần nói "tìm tên cho các cuộc trò chuyện chưa đặt tên", tác nhân sẽ đối chiếu số với danh bạ và lưu lại. Máy chủ cũng tự nhắc tác nhân về khả năng này mỗi khi trả về kết quả "không tìm thấy chat".

Cài đặt và yêu cầu

  • Cần tài khoản Cloudflare gói Workers Paid, Node 20 trở lên và điện thoại của bạn.
  • Quy trình gồm tạo không gian KV cho token, đặt mật khẩu chủ (tối thiểu 12 ký tự), triển khai bằng npm run deploy, rồi quét mã QR để liên kết.
  • Kết nối tác nhân chỉ với một lệnh: claude mcp add --transport http whatsapp https://your-url/mcp.

Lưu ý về gói miễn phí: Lần nhập lịch sử đầu tiên giải mã rất nhiều dữ liệu cùng lúc, vượt giới hạn CPU mặc định của Workers. Dự án tăng giới hạn này trong wrangler.jsonc, và việc đó cần gói trả phí vài đô mỗi tháng. Tác giả chưa thử trên gói miễn phí.

Những điều cần biết trước khi dùng

Đây là dự án không chính thức. WhatsApp không có API cho phép đọc tin nhắn cá nhân của chính bạn; công cụ này dùng chung giao thức với WhatsApp Web thông qua thư viện mã nguồn mở Baileys, điều này vi phạm điều khoản sử dụng của WhatsApp.

  • Rủi ro thực tế với thiết bị liên kết chỉ đọc là thấp, nhưng không phải bằng không.
  • Chỉ nên dùng trên tài khoản của chính bạn và không dùng để gửi tin nhắn.
  • Lịch sử chỉ được nhập một lần mỗi lần liên kết và có thể không đầy đủ.
  • File phương tiện không được tải về; ảnh, tin nhắn thoại chỉ hiện dưới dạng nhãn như [image] hay [voice note 12s].
  • Mỗi lần triển khai ứng với một tài khoản WhatsApp và một chủ sở hữu – ai cũng nên tự chạy bản của mình.

Góc nhìn kỹ thuật: chạy Baileys trên workerd

Phần thú vị nhất với giới lập trình là làm sao đưa Baileys chạy được trên môi trường workerd của Cloudflare. Dự án phải xử lý ba lớp tương thích:

  • ws: gói cần socket của Node, nên phải bọc WebSocket của Workers, mở bằng fetch() kèm header Upgrade – cách duy nhất để đặt header Origin mà WhatsApp kiểm tra.
  • whatsapp-rust-bridge: wasm được đóng gói dạng base64 và biên dịch lúc chạy, điều workerd cấm; script build phải tách wasm ra file và import như CompiledWasm.
  • lru-cache: cơ chế tự dọn dẹp tạo một setTimeout cho mỗi mục, vượt trần 10.000 timer của workerd và gây lỗi QuotaExceededError ngay lần nhập lịch sử đầu; dự án phải tắt autopurge.

Dữ liệu được tổ chức trong một Durable Object duy nhất tên "owner", vừa là kho xác thực Baileys vừa là kho tin nhắn, với chỉ mục FTS5 phục vụ tìm kiếm toàn văn. Việc nhập dữ liệu có tính idempotent, nên liên kết lại an toàn và không sinh bản ghi trùng.

Giá trị với người dùng Việt Nam

Với người dùng Việt Nam thường xuyên dùng WhatsApp để làm việc với đối tác nước ngoài, công cụ này mở ra khả năng "hỏi trợ lý AI về lịch sử trò chuyện" mà không phải đẩy toàn bộ dữ liệu lên một máy chủ bên thứ ba. Chi phí vận hành chỉ vài đô mỗi tháng trên Cloudflare.

Tuy nhiên cần cân nhắc kỹ yếu tố pháp lý và điều khoản dịch vụ: đây là công cụ dành cho người hiểu rõ rủi ro và chỉ dùng cho tài khoản cá nhân của chính mình. Dự án phát hành theo giấy phép MIT, mã nguồn mở trên GitHub.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗