WhatsApp MCP Server

WhatsApp MCP Server

一个 Node.js 应用程序,它可以通过 AppleScript 自动化实现与 macOS 上的 WhatsApp 桌面版的程序化交互,允许用户发送消息和检查 WhatsApp 状态,而无需直接的 UI 交互。 (Alternatively, a slightly more formal translation:) 一个 Node.js 应用程序,旨在通过 AppleScript 自动化,实现与 macOS 桌面版 WhatsApp 的程序化交互。该应用允许用户发送消息并检查 WhatsApp 状态,无需直接操作用户界面。

Category
访问服务器

Tools

send-whatsapp-message

Send a message to a contact on WhatsApp

check-whatsapp-status

Check if WhatsApp is currently running

list-recent-contacts

List recently contacted people on WhatsApp (simplified)

README

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 的隐私限制
  • 需要确切的联系人姓名才能发送消息

技术实现

构建工具

  • @modelcontextprotocol/sdk - MCP 服务器和 stdio 传输
  • Zod - Schema 验证
  • Node.js 内置模块 (child_process, util, fs)
  • AppleScript 用于 macOS 自动化

架构

  • 使用模型上下文协议 (MCP) 进行标准化工具通信
  • 采用 stdio 传输进行通信
  • 执行 AppleScript 命令与 WhatsApp 桌面应用程序交互
  • 实施全面的错误日志记录以进行调试

要求

  • macOS 操作系统
  • 已安装 WhatsApp 桌面应用程序
  • Node.js v14.0.0 或更高版本
  • 互联网连接

安装

# 克隆存储库
git clone https://github.com/yourusername/whatsapp-mcp-server.git

# 导航到项目目录
cd whatsapp-mcp-server

# 安装依赖项
npm install

用法

启动服务器

node index.js

与 Claude 集成

要使 Claude 能够使用 WhatsApp MCP 服务器,请按照以下步骤操作:

  1. 设置您的 MCP 服务器

    • 按照上述说明安装和配置 WhatsApp MCP 服务器
    • 确保服务器在您的本地计算机上正常运行
  2. 使用您的 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"]
      }
    }
  ]
}
  1. 测试集成
    • 与 Claude 创建一个测试对话
    • 要求 Claude 向测试联系人发送 WhatsApp 消息
    • 验证消息是否通过 WhatsApp 桌面应用程序成功发送

可用的 MCP 工具

1. send-whatsapp-message

向指定的 WhatsApp 联系人发送消息。

参数:

  • contactName:联系人在 WhatsApp 中显示的完整姓名
  • message:要发送的消息的内容

示例用法(通过 MCP 客户端):

const response = await client.invoke("send-whatsapp-message", {
  contactName: "John Doe",
  message: "Hello, how are you today?"
});

2. check-whatsapp-status

检查 WhatsApp 应用程序当前是否正在运行。

无需参数。

示例用法(通过 MCP 客户端):

const response = await client.invoke("check-whatsapp-status", {});

3. list-recent-contacts

提供有关 WhatsApp 联系人列表隐私限制的信息。

无需参数。

示例用法(通过 MCP 客户端):

const response = await client.invoke("list-recent-contacts", {});

实现细节

AppleScript 自动化

服务器使用 AppleScript 自动化 WhatsApp 桌面应用程序:

  • 激活 WhatsApp 应用程序
  • 使用键盘快捷键导航界面
  • 按姓名搜索联系人
  • 使用向下箭头导航选择联系人
  • 输入并发送消息

错误处理

全面的错误处理和日志记录:

  • 控制台错误输出
  • 基于文件的日志记录在 ~/Library/Logs/whatsapp-mcp/
  • 优雅地处理 AppleScript 执行错误
  • 进程级异常处理

将 WhatsApp MCP 工具与 Claude 结合使用

将 WhatsApp MCP 工具与 Claude 集成后,您可以使用自然语言指示 Claude:

发送消息

示例提示:

  • "Send a WhatsApp message to John saying I'll be 10 minutes late for our meeting" (给 John 发送一条 WhatsApp 消息,说我开会要迟到 10 分钟)
  • "Message Sarah on WhatsApp with the following text: Here's the document you requested" (在 WhatsApp 上给 Sarah 发送以下文本:这是您请求的文档)
  • "Send 'Happy birthday!' to Mom on WhatsApp" (在 WhatsApp 上给妈妈发送“生日快乐!”)

检查 WhatsApp 状态

示例提示:

  • "Is WhatsApp running on my computer?" (我的电脑上 WhatsApp 正在运行吗?)
  • "Check if WhatsApp is active" (检查 WhatsApp 是否处于活动状态)
  • "Verify WhatsApp status before sending a message" (在发送消息之前验证 WhatsApp 状态)

获取联系人信息

示例提示:

  • "Can you list my recent WhatsApp contacts?" (你能列出我最近的 WhatsApp 联系人吗?)
  • "Show me who I've messaged recently on WhatsApp" (向我展示我最近在 WhatsApp 上给谁发过消息)

Claude 将根据您的请求使用适当的 MCP 工具,并提供有关结果的反馈。

局限性

  • 由于 AppleScript 依赖性,仅适用于 macOS
  • 需要安装 WhatsApp 桌面应用程序
  • 联系人选择可能会受到 WhatsApp UI 更改的影响
  • 由于隐私保护,对 WhatsApp 联系人列表的访问受到限制
  • 需要正确配置 Claude 才能访问您的本地 MCP 工具

安全注意事项

  • 服务器与您的个人 WhatsApp 帐户交互
  • 消息从您的帐户发送,并显示为您发送
  • 仅在受信任的环境中使用

许可证

MIT

免责声明

本项目与 WhatsApp Inc. 或 Meta Platforms, Inc. 无关。请自行决定使用,并遵守 WhatsApp 的服务条款。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选