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(可选,用于音频信息转换)
安装
手动安装
- 克隆此存储库
- 安装依赖项
- 构建项目
- 配置环境变量(可选)复制示例环境文件并根据需要修改:如果需要,您可以调整日志记录级别并指定 FFmpeg 的路径。
使用 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创建配置文件:将
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创建配置文件:将
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 端口。
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Whatsapp-Web MCP
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that enables saving and sharing Claude Desktop conversations, allowing users to store chats privately or make them public through a web interface.Last updated -26TypeScriptMIT License
- AsecurityAlicenseAqualityAn MCP server that enables posting messages to Discord webhooks, allowing customization of content, username, and avatar URL.Last updated -10JavaScriptMIT License
- -securityAlicense-qualityA Node.js application that connects WhatsApp Web with AI models through the Model Context Protocol, enabling automated messaging, contact management, and group chat functionality through AI-driven workflows.Last updated -1918TypeScriptMIT License
- -securityAlicense-qualityA macOS app that provides an MCP server to your Messages, Contacts, and moreLast updated -586Apache 2.0