WhatsApp MCP Stream
WhatsApp MCP Stream
[
一个基于 Streamable HTTP 传输构建的 WhatsApp MCP 服务端,使用 Bailys 实现 WhatsApp 连接,并附带 Web 管理界面和双向媒体流(上传 + 下载)。
要点:
传输:位于
/mcp的 Streamable HTTP引擎:Baileys
管理界面:二维码、状态、退出登录、运行时设置、聊天历史记录查看器
媒体:上传端点 +
/media托管 + MCP 下载工具
快速开始(Docker)
# build and run
docker compose build
docker compose up -d服务器可通过以下地址访问:
管理界面:
http://localhost:3001/adminMCP 端点:
http://localhost:3000/mcp媒体文件:
http://localhost:3000/media/<filename>
Related MCP server: lingtai-whatsapp
在带 --ifconfig=false 的主机上进行 DNS
在某些 NAS / 加固主机(例如启用了 dockerd --iptables=false 的 Synology)上,Docker 内嵌的 DNS 代理(127.0.0.11)没有 iptables DNAT 规则,因此会拒绝容器内的连接。
修复:复制 resolv.conf.example 到 resolv.conf,并添加一个卷覆盖:
cp resolv.conf.example resolv.conf然后将和内容添加到本地 docker-compose.override.yml(不提交):
services:
mcp-whatsapp:
volumes:
- ./resolv.conf:/etc/resolv.conf:rodocker compose up 会自动加载这个 override 文件。
运行时设置
设置可以在管理界面中编辑,并持久化到 SETTINGS_PATH(默认是 MEDIA_DIR/settings.json)。
管理界面
管理控制台,包括运行时设置、二维码关联、聊天记录查看器、导出和状态。
支持的设置:
media_public_base_urlupload_max_mbupload_enabledmax_files_per_uploadrequire_upload_tokenupload_tokenauto_download_mediaauto_download_max_mb
认证
内置认证尚未实现。在生产环境中,请使用强制认证的网关。此项目在 authmcp-gateway 之后运行良好:
https://github.com/loglux/authmcp-gateway媒体上传 API
Base64 JSON:
curl -X POST http://localhost:3003/api/upload \
-H "Content-Type: application/json" \
-d {filename:photo.jpg,mime_type:image/jpeg,data:<base64>}Multipart(建议用于大文件):
curl -X POST http://localhost:3003/api/upload-multipart \
-F "file=@/path/to/file.jpg"两者都会返回 url,并且(如果配置了)还会返回 publicUrl。
通过 send_media 发送本地文件
项目根目录中的 ./files/ 目录被绑定挂载到容器内的 /app/files 路径。把文件放到该目录后即可立即引用——无需重启容器:
# On host:
cp report.pdf /path/to/whatsapp-mcp-stream/files/
# In send_media:
media_path: /app/files/report.pdf如果使用 URL 源,直接将 media_url 传给 send_media 或 stage_media 即可——服务器会自行下载文件,不用 base64。
上传认证(可选)
如果 require_upload_token=true,请通过以下任一方式提供 token:
x-upload-token: <token>Authorization: Bearer <token>
MCP 传输
服务器在 /mcp 上暴露 Streamable HTTP。
典型流程:
使用 JSON-RPC
initialize发送POST /mcp在进行后续请求时使用返回的
mcp-session-id请求头通过
POST /mcp进行工具调用
注意:客户端在 initialize 时必须发送 Accept: application/json, text/event-stream。
Smoke 测试
对 MCP 工具进行的快速回归冒烟测试:
npm run smoke:mcp可选的中的:
MCP_BASE_URL=http://localhost:3003 npm run smoke:mcpMCP 工具
认证
工具 | 描述 |
| 获取最新的 WhatsApp 二维码图片,用于身份验证。 |
| 检查 WhatsApp 客户端是否已通过认证并准备就绪运行。 |
| 退出 WhatsApp 并清除当前会话。 |
联系人
工具 | 描述 |
|
变量 | 默认值 | 描述 |
|
| 用于聊天/消息持久化的 SQLite 数据库路径。 |
|
| 启用详细的 WhatsApp 事件日志。 |
|
| 将原始 Baileys 事件流写入文件,以便深度调试。 |
|
| 事件流日志的文件路径。 |
|
| 在强制重新同步后启用重连安全网。 |
|
| 强制重新同步后重连前的延迟(毫秒)。 |
|
| 自动应用状态恢复之间的最小延迟。 |
|
| 用于统计重复应用状态损坏失败的时间窗口。 |
|
| 软恢复次数达到该值后升级为内部重启。 |
|
| 恢复/断开连接期间, |
|
| socket 关闭后,断开看门狗强制重连/重启前等待的时间。 |
|
| 逗号分隔的断开状态码,这些状态码应直接升级为内部重启看门狗。 |
|
| 在此窗口内,抑制到同一 JID 的完全重复 |
|
| 已完成的 |
|
| 消息索引( |
|
| 消息键索引( |
|
| 以此期限竞争 WhatsApp 客户端初始化;设置为 |
|
| 最大并行自动下载数。自动下载通过进程内有界队列进行,因此突发入站媒体不会耗尽 I/O。 |
|
| 最大排队自动下载作业数。超出部分以 FIFO(最旧)方式丢弃并记录警告日志;较新的消息保持优先。 |
|
| 默认对 Streamable HTTP POST 请求使用直接 JSON 响应。设置为 |
传输诊断附加信息:
/mcpPOST 请求现在会在logs/mcp-whatsapp.log中记录请求生命周期事件其中包括请求进入、传输分发、
transport.handleRequest完成,以及 HTTPfinish/close使用这些日志判断延迟是发生在响应离开
whatsapp-mcp-stream之前,还是之后在网关/客户端
聊天历史 API
通过以下接口浏览已存储的聊天和消息:
GET /api/chats?limit=50&offset=0&q=<search> — 分页聊天列表,可选择性按名称过滤。
GET /api/chats/jid/messages?limit=50&offset=0 — 聊天的分页消息(最新在前)。
两个接口均被 admin UI 中的 Chats 标签使用。
导出
通过以下导出聊天(JSON + 可选的下载媒体):
GET /api/export/chat/:jid?include_media=true
如果 include_media=true,ZIP 将包含已通过 download_media 下载的文件。它不会从 WhatsApp 获取缺失媒体。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables WhatsApp automation through MCP protocol, allowing users to manage sessions, send messages, handle groups/communities, and access contacts through natural language interactions with AI agents.11

lingtai-whatsappofficial
AlicenseNot gradedqualityFmaintenanceMCP server for interacting with the official Meta WhatsApp Business Platform/Cloud API, enabling sending messages, managing contacts, templates, and handling webhook callbacks.Apache 2.0- AlicenseNot gradedqualityDmaintenanceEnables sending messages, managing templates, uploading media, and configuring webhooks for WhatsApp Business via the MCP protocol.105MIT
- AlicenseNot gradedqualityCmaintenanceIntegrates WhatsApp with AI agents, enabling message sending, chat search, media sharing, approval workflows, and activity summaries via any MCP client.1Apache 2.0
Related MCP Connectors
Search, document and execute authenticated API calls across 700+ apps via one MCP server
Give AI agents real phone numbers, messages, and voice calls via MCP.
Instagram, WhatsApp and Messenger DMs through official Meta Business APIs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/BusinessNone/WhatsAppMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server