mcpField
W
whatsapp

whatsapp

远程服务
wacli.me通信协作35 周前更新

关于 whatsapp

whatsapp 是 wacli WhatsApp 命令行工具前的托管 MCP 网关,面向希望通过 MCP 客户端访问自己 WhatsApp 账户的人。账户通过二维码关联,网关按租户隔离数据,并可选择开放发送消息。

主要功能

  1. 01通过二维码关联 WhatsApp 账户
  2. 02使用令牌认证 MCP 请求
  3. 03读取与搜索消息
  4. 04可选启用发送消息工具
  5. 05按租户隔离存储目录

适用场景

  1. 01从 MCP 客户端搜索 WhatsApp 消息
  2. 02无需本地运行即可访问关联账户
  3. 03为不同账户配置隔离的存储与令牌
  4. 04仅在账户所有者同意时开放消息发送

MCP 相关

网关通过 Streamable HTTP 在 /mcp 提供 MCP 服务,以 bearer token 认证。它开放读取和搜索工具;仅在租户配置允许时注册 send_message 工具。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://wacli.me/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;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

环境变量:

变量默认值含义
PORT8787监听端口
HOST127.0.0.1绑定地址 — 保持为 loopback,通过隧道对外开放
WACLI_BIN./bin/wacliwacli 二进制文件
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 可能会因此封禁号码。请仅在自己拥有的账号上运行,并告知用户这一点。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。