local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Enables searching and reading WhatsApp messages, searching contacts, sending messages to individuals or groups, and sending/receiving various media files including images, videos, documents, and audio.
MCP WhatsApp 网页版 (TypeScript)
一个用于 WhatsApp Web 的模型上下文协议 (MCP) 服务器,使用 TypeScript 实现。该项目是原始whatsapp-mcp代码库的 TypeScript 移植版本。
使用此 MCP 服务器,您可以:
- 搜索并阅读您的个人 WhatsApp 消息(包括媒体)
- 搜索您的联系人
- 向个人或群组发送消息
- 发送和接收媒体文件(图像、视频、文档、音频)
特征
- TypeScript 实现:完全类型的代码库,可提供更好的开发人员体验和代码可靠性
- WhatsApp Web 集成:使用whatsapp-web.js直接连接到 WhatsApp Web
- MCP 服务器:实现模型上下文协议,实现与 AI 助手的无缝集成
- 媒体支持:发送和接收图像、视频、文档和音频信息
- 多种传输选项:支持 stdio 和 SSE 传输,实现灵活集成
建筑学
该 MCP 服务器包括:
- TypeScript MCP 服务器:实现模型上下文协议,为 AI 助手与 WhatsApp 交互提供标准化工具
- WhatsApp Web 服务:通过 whatsapp-web.js 连接到 WhatsApp Web,处理身份验证并管理消息发送/接收
- 工具实现:提供联系人、聊天、消息、媒体和身份验证的各种工具
先决条件
- Node.js >= 18.0.0
- npm 或 yarn
- Chrome/Chromium(Puppeteer 用于 WhatsApp 网络连接)
- FFmpeg(可选,用于音频信息转换)
安装
手动安装
- 克隆此存储库Copy
- 安装依赖项Copy
- 构建项目Copy
- 配置环境变量(可选)复制示例环境文件并根据需要修改:如果需要,您可以调整日志记录级别并指定 FFmpeg 的路径。Copy
使用 FLUJO 安装
FLUJO提供了简化的安装流程:
- 导航至 FLUJO 中的 MCP 部分
- 点击“添加服务器”
- 复制并粘贴此 GitHub 存储库 URL:
https://github.com/mario-andreschak/mcp-whatsapp-web
- 点击“解析”、“克隆”、“安装”、“构建”和“更新服务器”
FLUJO 将自动为您处理克隆、依赖项安装和构建过程。
用法
启动 MCP 服务器
这将默认使用 stdio 传输启动 MCP 服务器,适合与 Claude Desktop 或类似应用程序集成。
**重要提示:**首次启动服务器后,您必须使用
get_qr_code
工具并使用手机扫描二维码来向 WhatsApp 进行身份验证。有关详细说明,请参阅“身份验证”部分。
开发模式
这将以 TypeScript 监视模式在开发模式下启动服务器并自动重启服务器。
使用 MCP Inspector 进行调试
这将启动 MCP 检查器工具,该工具提供了一个用于测试和调试 MCP 服务器的 Web 界面。检查器允许您执行以下操作:
- 查看所有可用工具及其方案
- 直接执行工具并查看其响应
- 无需连接到 AI 助手即可测试您的服务器
- 调试工具执行并检查响应
连接到 Claude Desktop
- 为Claude Desktop创建配置文件:将Copy
PATH_TO
替换为存储库的绝对路径。 - 将其保存为 Claude Desktop 配置目录中的
claude_desktop_config.json
:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
- 重启Claude桌面
连接到光标
- 为Cursor创建配置文件:将Copy
PATH_TO
替换为存储库的绝对路径。 - 将其保存为 Cursor 配置目录中的
mcp.json
:- macOS/Linux:
~/.cursor/mcp.json
- Windows:
%USERPROFILE%\.cursor\mcp.json
- macOS/Linux:
- 重启光标
验证
第一次运行服务器时,您需要使用 WhatsApp 进行身份验证:
- 启动 MCP 服务器
- **重要提示:**您必须使用
get_qr_code
工具来生成二维码- 在 Claude 或其他 AI 助手中,明确要求“使用 get_qr_code 工具验证 WhatsApp”
- 助手将调用此工具并显示二维码图像
- 使用 WhatsApp 移动应用扫描二维码
- 在手机上打开 WhatsApp
- 前往“设置”>“已链接设备”>“链接设备”
- 将手机摄像头对准显示的二维码
您的会话将保存在 WhatsApp 本地的whatsapp-sessions
目录中,并在后续运行时自动重复使用。如果您不使用二维码进行身份验证,则将无法使用任何 WhatsApp 功能。
身份验证状态和注销
您可以检查当前的身份验证状态并管理您的会话:
- 使用
check_auth_status
工具验证您当前是否已通过身份验证 - 如果您需要使用其他 WhatsApp 帐户进行身份验证或重新进行身份验证:
- 使用
logout
工具退出当前会话 - 然后使用
get_qr_code
工具通过新的二维码进行身份验证
- 使用
这在以下情况下尤其有用:
- 您想在不同的 WhatsApp 帐户之间切换
- 您的会话已过期或失效
- 您遇到连接问题,需要重新进行身份验证
可用的 MCP 工具
验证
get_qr_code
- 获取 WhatsApp Web 身份验证的二维码check_auth_status
- 检查您当前是否已通过 WhatsApp 进行身份验证logout
- 从 WhatsApp 注销并清除当前会话
联系方式
search_contacts
- 按姓名或电话号码搜索联系人get_contact
获取有关特定联系人的信息
聊天
list_chats
- 列出可用的聊天记录及元数据get_chat
- 获取有关特定聊天的信息get_direct_chat_by_contact
- 查找与特定联系人的直接聊天
消息
list_messages
- 使用可选过滤器检索消息get_message
- 根据 ID 获取特定消息send_message
- 向聊天发送短信
媒体
send_file
- 向聊天发送文件(图像、视频、文档)send_audio_message
- 发送音频消息(语音注释)download_media
- 从消息中下载媒体
浏览器进程管理
此 MCP 服务器使用 Puppeteer 控制 Chrome 浏览器,以实现 WhatsApp 网页连接。该服务器包含一个强大的浏览器进程管理系统,以防止出现孤立的 Chrome 进程。
自动浏览器清理
服务器自动:
- 使用 PID 跟踪系统跟踪 Chrome 浏览器进程
- 在启动时清理孤立进程
- 关机时正确关闭浏览器进程
- 在
.chrome-pids.json
中维护浏览器 PID 记录
手动浏览器清理
如果您发现未自动清理的孤立 Chrome 进程,则可以使用附带的清理实用程序:
此实用程序将:
- 扫描可能与 WhatsApp Web 相关的 Chrome 进程
- 显示潜在孤立进程的列表
- 在解雇他们之前要求确认
- 清理PID跟踪文件
发展
项目结构
src/index.ts
入口点src/server.ts
- MCP 服务器实现src/services/whatsapp.ts
- WhatsApp Web 服务src/tools/
- WhatsApp 各种功能的工具实现src/types/
——TypeScript 类型定义src/utils/
——实用函数
脚本
npm run build
构建 TypeScript 代码npm run dev
- 在开发模式下运行并监视npm run lint
- 运行 ESLintnpm run format
- 使用 Prettier 格式化代码npm run cleanup-browsers
- 检测并清理孤立的 Chrome 浏览器进程
故障排除
身份验证问题
- 如果二维码没有出现,请尝试重启服务器
- 如果您已经通过身份验证,则不会显示二维码(使用
check_auth_status
进行验证) - 如果需要重新验证,请先使用
logout
工具,然后请求新的二维码 - WhatsApp 限制链接设备的数量;您可能需要移除现有设备
- 如果您收到一条消息说“当前没有可用的二维码”,但您已经通过身份验证,这是正常现象 - 使用
check_auth_status
来确认您的身份验证状态
连接问题
- 确保您拥有稳定的互联网连接
- 如果连接失败,请尝试重新启动服务器
- 检查日志以获取详细的错误消息
浏览器进程问题
- 如果您发现 CPU 使用率或内存消耗过高,则可能存在孤立的 Chrome 进程
- 运行
npm run cleanup-browsers
来检测并清理孤立进程 - 如果服务器频繁崩溃,请检查孤立进程并清理它们
- 在 Windows 上,您还可以使用任务管理器在命令行中使用“headless”查找多个 Chrome 进程
- 在 Linux/macOS 上,使用
ps aux | grep chrome
检查孤立进程
执照
麻省理工学院
该项目是lharries的原始whatsapp-mcp的 TypeScript 端口。