这是一个使用TypeScript实现的用于WhatsApp Web的模型上下文协议(MCP)服务器。该项目是原始whatsapp-mcp仓库的TypeScript版本。
通过这个MCP服务器,你可以:
此MCP服务器由以下部分组成:
克隆此仓库
git clone https://github.com/mario-andreschak/mcp-whatsapp-web.git
cd mcp-whatsapp-web
安装依赖
npm install
构建项目
npm run build
配置环境变量(可选)
复制示例环境文件并根据需要进行修改:
cp .env.example .env
您可以调整日志级别,并指定FFmpeg路径(如果需要)。
FLUJO 提供了简化安装过程:
https://github.com/mario-andreschak/mcp-whatsapp-webFLUJO将自动处理克隆、依赖安装和构建过程。
npm start
这将默认使用stdio传输启动MCP服务器,适合与Claude Desktop或其他类似应用集成。
重要:首次启动服务器后,您必须通过使用
get_qr_code工具生成二维码并通过手机扫描来认证WhatsApp。请参阅认证部分获取详细说明。
npm run dev
这将以开发模式启动服务器,启用TypeScript监视模式和自动服务器重启。
npm run debug
这将启动MCP Inspector工具,它提供了一个Web界面,用于测试和调试您的MCP服务器。Inspector允许您:
为Claude Desktop创建配置文件:
{
"mcpServers": {
"whatsapp": {
"command": "node",
"args": [
"PATH_TO/dist/index.js"
]
}
}
}
将PATH_TO替换为仓库的绝对路径。
将其保存为claude_desktop_config.json在您的Claude Desktop配置目录中:
~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.json重新启动Claude Desktop
为Cursor创建配置文件:
{
"mcpServers": {
"whatsapp": {
"command": "node",
"args": [
"PATH_TO/dist/index.js"
]
}
}
}
将PATH_TO替换为仓库的绝对路径。
将其保存为mcp.json在您的Cursor配置目录中:
~/.cursor/mcp.json重新启动Cursor
首次运行服务器时,您需要通过WhatsApp进行认证:
get_qr_code工具生成二维码
您的会话将在本地的whatsapp-sessions目录中保存,并在后续运行中自动重用。如果您没有通过二维码进行认证,则无法使用任何WhatsApp功能。
您可以检查当前的认证状态并管理会话:
check_auth_status工具验证是否已认证logout工具从当前会话注销get_qr_code工具通过新的二维码进行认证这特别有用的情况有:
get_qr_code - 获取用于WhatsApp Web认证的二维码check_auth_status - 检查当前是否已认证WhatsApplogout - 从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 Web连接。服务器包含一个强大的浏览器进程管理系统,以防止孤立的Chrome进程。
服务器自动:
.chrome-pids.json中维护浏览器PID记录如果您注意到未被自动清理的孤立Chrome进程,可以使用包含的清理实用程序:
npm run cleanup-browsers
该实用程序将:
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工具,然后请求新的二维码check_auth_status确认您的认证状态npm run cleanup-browsers以检测并清理孤立的进程ps aux | grep chrome检查孤立的进程MIT
此项目是lharries的原始whatsapp-mcp的TypeScript版本。