这是一个用于 WhatsApp 的模型上下文协议(MCP)服务器。
通过这个服务器,你可以搜索并阅读你的个人 WhatsApp 消息(包括图片、视频、文档和语音消息),搜索联系人并向个人或群组发送消息。你还可以发送媒体文件,包括图片、视频、文档和语音消息。
它直接通过 WhatsApp 网页多设备API连接到你的个人 WhatsApp 账户(使用whatsmeow库)。所有消息都存储在本地的SQLite数据库中,并且只有当代理通过工具访问这些消息时才会发送给LLM(如Claude)。
当你将其连接到Claude时,可以执行以下操作:

若要获取此项目及其他项目的更新,请在此处输入您的电子邮件:点击这里
警告:与许多MCP服务器一样,WhatsApp MCP也受到致命三重威胁的影响。这意味着项目注入可能导致私有数据泄露。
curl -LsSf https://astral.sh/uv/install.sh | sh.ogg Opus格式。安装FFmpeg后,MCP服务器会自动转换非Opus音频文件。如果没有FFmpeg,你仍然可以使用send_file工具发送原始音频文件。克隆此仓库
git clone https://github.com/lharries/whatsapp-mcp.git
cd whatsapp-mcp
运行WhatsApp桥接程序
导航到whatsapp-bridge目录并运行Go应用程序:
cd whatsapp-bridge
go run main.go
第一次运行时,系统会提示你扫描二维码。使用你的WhatsApp移动应用扫描二维码以进行身份验证。
大约20天后,你可能需要重新进行身份验证。
连接到MCP服务器
复制以下JSON,并用适当的{{PATH}}值替换:
{
"mcpServers": {
"whatsapp": {
"command": "{{PATH_TO_UV}}", // 运行`which uv`并将输出结果放在这里
"args": [
"--directory",
"{{PATH_TO_SRC}}/whatsapp-mcp/whatsapp-mcp-server", // 进入仓库,运行`pwd`并将输出结果放在这里 + "/whatsapp-mcp-server"
"run",
"main.py"
]
}
}
}
对于Claude,请将此文件保存为claude_desktop_config.json,路径为:
~/Library/Application Support/Claude/claude_desktop_config.json
对于Cursor,请将此文件保存为m- cp.json,路径为:
~/.cursor/mcp.json
重启Claude Desktop / Cursor
打开Claude Desktop,你应该能看到WhatsApp作为一个可用集成。
或者重启Cursor。
如果你在Windows上运行此项目,请注意go-sqlite3需要启用CGO才能编译和正常工作。默认情况下,Windows上的CGO是禁用的,因此你需要显式启用它并安装C编译器。
安装C编译器
我们推荐使用MSYS2来为Windows安装C编译器。安装MSYS2后,请确保将ucrt64\bin文件夹添加到你的PATH中。
→ 详细的步骤指南可以在这里找到。
启用CGO并运行应用程序
cd whatsapp-bridge
go env -w CGO_ENABLED=1
go run main.go
没有这种设置,你可能会遇到如下错误:
二进制文件是使用'CGO_ENABLED=0'编译的,go-sqlite3需要cgo才能工作。
此应用程序由两个主要组件组成:
Go WhatsApp桥接程序(whatsapp-bridge/):一个Go应用程序,它连接到WhatsApp的Web API,通过二维码处理身份验证,并将消息历史记录存储在SQLite中。它充当WhatsApp和MCP服务器之间的桥梁。
Python MCP服务器(whatsapp-mcp-server/):一个实现模型上下文协议(MCP)的Python服务器,它提供了标准化的工具供Claude与WhatsApp数据交互并发送/接收消息。
whatsapp-bridge/store/目录中的SQLite数据库内。一旦连接,你可以通过Claude与你的WhatsApp联系人互动,利用Claude的人工智能能力在你的WhatsApp对话中发挥作用。
Claude可以通过以下工具与WhatsApp互动:
MCP服务器支持发送和接收各种类型的媒体:
你可以向你的WhatsApp联系人发送各种类型的媒体:
send_file工具分享任何受支持的媒体类型。send_audio_message工具将音频文件作为可播放的WhatsApp语音消息发送。
send_file工具发送原始音频文件,但它们不会显示为可播放的语音消息。默认情况下,仅媒体的元数据存储在本地数据库中。消息会指示媒体已被发送。要访问此媒体,你需要使用download_media工具,该工具接受message_id和chat_jid(打印包含媒体的消息时会显示这些信息),这将下载媒体并返回文件路径,然后可以打开或传递给另一个工具。
whatsapp-bridge/store/messages.db 和 whatsapp-bridge/store/whatsapp.db),然后重新启动桥接程序以重新进行身份验证。对于更多的Claude Desktop集成故障排除,请参阅MCP文档。文档中包含了检查日志和解决常见问题的有用提示。