关于 whatsapp
whatsapp 是 wacli WhatsApp 命令行工具前的托管 MCP 网关,面向希望通过 MCP 客户端访问自己 WhatsApp 账户的人。账户通过二维码关联,网关按租户隔离数据,并可选择开放发送消息。
主要功能
- 01通过二维码关联 WhatsApp 账户
- 02使用令牌认证 MCP 请求
- 03读取与搜索消息
- 04可选启用发送消息工具
- 05按租户隔离存储目录
适用场景
- 01从 MCP 客户端搜索 WhatsApp 消息
- 02无需本地运行即可访问关联账户
- 03为不同账户配置隔离的存储与令牌
- 04仅在账户所有者同意时开放消息发送
MCP 相关
网关通过 Streamable HTTP 在 /mcp 提供 MCP 服务,以 bearer token 认证。它开放读取和搜索工具;仅在租户配置允许时注册 send_message 工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://wacli.me/mcpclaude mcp add --transport http me-wacli-whatsapp https://wacli.me/mcp{"mcpServers":{"me-wacli-whatsapp":{"type":"http","url":"https://wacli.me/mcp"}}}在 Cursor 中打开{"servers":{"me-wacli-whatsapp":{"type":"http","url":"https://wacli.me/mcp"}}}在 VS Code 中打开{"mcpServers":{"me-wacli-whatsapp":{"type":"http","url":"https://wacli.me/mcp"}}}{"mcpServers":{"me-wacli-whatsapp":{"serverUrl":"https://wacli.me/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
wacli.me
托管式 MCP 网关,位于 wacli WhatsApp 命令行工具前方。
思路是:用户只需关联一次自己的 WhatsApp 账号(通过二维码,类似 WhatsApp Web),即可获得一个 URL 和一个 bearer token。之后,任何 MCP 客户端都能读取、搜索,也可以选择发送消息,无需在本地运行任何程序。
状态:公开测试版。单主机、单进程。现已上线:https://wacli.me。
采用 MIT 许可。支持自托管,请参阅下方的“运行”。
布局
server/ Node MCP server (Streamable HTTP) + static file serving
site/ website sources (pages + layout + assets)
web/ generated site, built from site/ by scripts/build.mjs — never edit
config/ tenants.json (gitignored) — token -> store mapping
bin/wacli pinned wacli binary, isolated from any system install
stores/ one wacli store directory per tenant (gitignored)
scripts/ start/stop/tunnel helpers
端点
| 路径 | 用途 |
|---|---|
/ | 主页 |
/mcp | 通过 Streamable HTTP 提供 MCP 服务,Authorization: Bearer … |
/healthz | 存活状态 + 租户数量 |
/connect | 自助关联:实时二维码,签发 token |
/.well-known/oauth-* | OAuth 2.1 发现机制 — 客户端获取自己的凭据 |
租户
config/tenants.json:
{
"tenants": [
{ "id": "demo", "token": "<32 random bytes, hex>", "store": "/Users/<user>/wacli-me/stores/demo", "allowSend": false }
]
}
该文件每 5 秒重新读取一次,因此添加租户无需重启。一个 token 只对应一个存储目录;每次请求都会针对该存储目录构建工具,因此不同租户无法看到彼此的数据。只有启用 allowSend 才会注册 send_message 工具;除非账号所有者明确要求写入权限,否则请将其设为 false。
使用 openssl rand -hex 32 生成 token。
运行
npm install --prefix server
node scripts/build.mjs # site/ -> web/
PORT=8787 HOST=127.0.0.1 node server/server.mjs
环境变量:
| 变量 | 默认值 | 含义 |
|---|---|---|
PORT | 8787 | 监听端口 |
HOST | 127.0.0.1 | 绑定地址 — 保持为 loopback,通过隧道对外开放 |
WACLI_BIN | ./bin/wacli | wacli 二进制文件 |
WACLI_ME_TENANTS | ./config/tenants.json | 租户文件 |
关联账号
bin/wacli --store stores/<tenant> auth # prints a QR, scan it on the phone
bin/wacli --store stores/<tenant> sync # backfill history (long-running; run as a daemon)
如果没有同步守护进程,存储中只会保留上次运行时获取的数据。
安全说明
- 绑定到 loopback,并通过隧道对外发布;切勿直接暴露端口。
- 每个 MCP 请求都需要有效的 bearer token;token 使用恒定时间比较。
- 读取操作会通过
--read-only运行 wacli,因此即使工具调用遭到入侵,也无法修改存储内容。 - 二维码关联的是一个关联设备。持有存储内容的任何人都能读取该账号的消息——请将存储目录和租户 token 视为凭据。
许可
采用 MIT 许可,详见 LICENSE。site/assets/qrcode.min.js 是 Kazuhiko Arase 的
qrcode-generator,以原样引入(MIT)。wacli 本身是一个独立的 MIT 项目;本仓库仅负责驱动它。
关联账号时会使用非官方 WhatsApp 客户端。这违反了 WhatsApp 的服务条款,Meta 可能会因此封禁号码。请仅在自己拥有的账号上运行,并告知用户这一点。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。