本项目是一个基于 Node.js 的单进程应用程序,主要用于连接 WhatsApp Web API 并提供 MCP(Model Context Protocol)服务,帮助开发者便捷地与 WhatsApp 服务交互,并集成到 AI 应用程序中。
./data/whatsapp.db),认证信息和敏感数据存于 ./auth_info/ 目录,避免意外提交到版本控制系统。npm install
运行以下命令启动 MCP 服务:
node src/main.ts
首次启动时,程序会生成 QR 码链接并在控制台输出,使用手机扫描该链接完成登录。
claude_desktop_config.json:{
"servers": [
{
"name": "whatsapp",
"command": "node",
"args": ["{{PROJECT_PATH}}/src/main.ts"],
"stdio": "pipe"
}
]
}
{{PROJECT_PATH}} 为实际项目路径。mcp.json:{
"servers": [
{
"name": "whatsapp",
"command": "node",
"args": ["{{PROJECT_PATH}}/src/main.ts"],
"stdio": "pipe"
}
]
}
在 AI 客户端中调用以下工具:
searchContacts:搜索联系人。listChats:列出最近聊天记录。readMessages:读取消息内容。sendMessage:发送新消息。@whiskeysockets/baileys 库与 WhatsApp Web API 通信。node:sqlite 库实现)如果出现登录失效,请执行以下步骤:
./auth_info/ 目录下的所有文件。data/ 和 auth_info/ 文件夹。程序使用 Pino 库记录日志,默认输出到控制台。可以通过配置 Pino 的选项来调整日志级别和格式。
import { log } from 'pino';
const logger = log({ level: 'info' });
logger.info('启动 WhatsApp MCP 服务');
使用 Zod 库对输入参数进行严格验证,确保 API 调用的安全性和可靠性。
import { z } from 'zod';
type SendMessageParams = {
text: string;
};
const validateMessage = z.object({
text: z.string().min(1)
});
async function sendMessage(params: SendMessageParams) {
const validated = await validateMessage.parseAsync(params);
// 处理消息
}
此 WhatsApp MCP 服务器项目为开发者提供了强大的工具集,可以方便地与 WhatsApp 服务进行交互,并通过 MCP 协议集成到 AI 应用程序中。希望这份指南能帮助您顺利部署和使用该服务。