WhatsApp MCP服务器
概述
WhatsApp MCP(模型上下文协议)服务器是一个Node.js应用程序,可以在macOS上与WhatsApp桌面应用程序进行编程交互。使用AppleScript自动化,它提供了一个简单的界面来发送消息和检查WhatsApp状态,而不需要与WhatsApp UI直接交互。
特性
1.向联系人发送消息
向WhatsApp联系人列表中的特定联系人发送短信:
- 消息通过您连接的WhatsApp桌面应用程序传递
- 支持消息的正确格式,包括换行符
- 使用AppleScript自动化WhatsApp桌面界面
2.检查WhatsApp状态(WIP)
验证WhatsApp应用程序当前是否正在运行:
- 返回WhatsApp的当前运行状态
- 有助于防止在尝试发送消息时出错
3.列出最近联系人(WIP)
由于WhatsApp的隐私保护,此功能提供的功能有限:
- 通知用户WhatsApp的隐私限制
- 需要确切的联系人姓名才能发送消息
技术实现
构建于
- @模型上下文协议/sdk -MCP服务器和stdio传输
- 萨德 -架构验证
- Node.js内置模块(child_process、util、fs)
- 用于macOS自动化的AppleScript
建筑
- 使用模型上下文协议(MCP)进行标准化工具通信
- 采用标准传输进行通信
- 执行AppleScript命令以与WhatsApp桌面应用程序交互
- 实施全面的错误日志记录以进行调试
需求
- macOS操作系统
- 已安装WhatsApp桌面应用程序
- Node.js v14.0.0或更高版本
- Internet连接
安装
# Clone the repository
git clone https://github.com/yourusername/whatsapp-mcp-server.git
# Navigate to the project directory
cd whatsapp-mcp-server
# Install dependencies
npm install用法
启动服务器
node index.js与克劳德融合
要使Claude能够使用WhatsApp MCP服务器,请执行以下步骤:
- 设置您的MCP服务器
- 如上所述安装和配置WhatsApp MCP服务器 - 确保服务器在本地计算机上正常运行
- 使用MCP工具配置Claude Desktop
- 修改您的 claude_desktop_config.json 包含WhatsApp MCP工具的文件 - 此文件通常位于Claude Desktop应用程序配置目录中 - 添加以下配置以注册您的WhatsApp MCP工具:
{
"mcpServers": [
{
"name": "whatsapp-mcp",
"transport": {
"command": "node",
"args": ["path/to/your/index.js"]
}
}
]
}- 测试集成
- 与Claude创建测试对话 - 让Claude向测试联系人发送WhatsApp消息 - 验证消息是否已通过WhatsApp桌面应用程序成功发送
MCP工具可用
1.发送whatsapp消息
向指定的WhatsApp联系人发送消息。
参数:
contactName:联系人在WhatsApp中显示的全名message:要发送的消息的内容
示例用法(通过MCP客户端):
const response = await client.invoke("send-whatsapp-message", {
contactName: "John Doe",
message: "Hello, how are you today?"
});2.检查whatsapp状态
检查WhatsApp应用程序当前是否正在运行。
无需参数。
示例用法(通过MCP客户端):
const response = await client.invoke("check-whatsapp-status", {});3.列出最近的联系人
提供有关WhatsApp联系人列表隐私限制的信息。
无需参数。
示例用法(通过MCP客户端):
const response = await client.invoke("list-recent-contacts", {});实现细节
AppleScript自动化
服务器使用AppleScript自动运行WhatsApp桌面应用程序:
- 激活WhatsApp应用程序
- 使用键盘快捷键导航界面
- 按姓名搜索联系人
- 使用向下箭头导航选择联系人
- 键入并发送消息
错误处理
全面的错误处理和日志记录:
- 控制台错误输出
- 基于文件的登录
~/Library/Logs/whatsapp-mcp/ - 巧妙处理AppleScript执行错误
- 流程级异常处理
与Claude一起使用WhatsApp MCP工具
将WhatsApp MCP工具与Claude集成后,您可以使用自然语言指示Claude:
发送消息
示例提示:
- “给约翰发一条WhatsApp消息,说我开会要迟到10分钟”
- “在WhatsApp上给Sarah发消息,内容如下:这是您请求的文档”
- 在WhatsApp上向妈妈发送“生日快乐!”
检查WhatsApp状态
示例提示:
- “WhatsApp在我的电脑上运行吗?”
- “检查WhatsApp是否处于活动状态”
- “发送消息前验证WhatsApp状态”
获取联系信息
示例提示:
- “你能列出我最近的WhatsApp联系人吗?”
- “显示我最近在WhatsApp上给谁发过消息”
Claude将根据您的要求使用适当的MCP工具,并对结果提供反馈。
局限性
- 由于AppleScript依赖关系,仅适用于macOS
- 需要安装WhatsApp桌面应用程序
- 联系人选择可能会受到WhatsApp UI更改的影响
- 由于隐私保护,对WhatsApp联系人列表的访问受限
- 需要正确配置Claude才能访问本地MCP工具
安全考虑
- 服务器与您的个人WhatsApp帐户进行交互
- 消息从您的帐户发送,并显示为您发送的
- 仅在受信任的环境中使用
许可证
麻省理工学院
免责声明
本项目不隶属于WhatsApp股份有限公司或Meta Platforms,股份有限公司。根据WhatsApp的服务条款自行使用。
