Skip to main content
Glama
gfb-47

WhatsApp MCP Server

by gfb-47

WhatsApp MCP 服务器

概述

WhatsApp MCP(模型上下文协议)服务器是一个 Node.js 应用程序,支持通过编程方式与 macOS 上的 WhatsApp 桌面应用程序进行交互。它使用 AppleScript 自动化功能,提供了一个简单的界面来发送消息和检查 WhatsApp 状态,而无需直接与 WhatsApp UI 交互。

Related MCP server: WhatsApp Web MCP

特征

1. 向联系人发送消息

向 WhatsApp 联系人列表中的特定联系人发送短信:

  • 消息通过您连接的 WhatsApp 桌面应用程序发送

  • 支持正确的消息格式,包括换行符

  • 使用 AppleScript 实现 WhatsApp 桌面界面自动化

2. 检查 WhatsApp 状态(开发中)

验证 WhatsApp 应用程序当前是否正在运行:

  • 返回 WhatsApp 的当前运行状态

  • 帮助防止尝试发送消息时出现错误

3. 列出最近的联系人(WIP)

由于 WhatsApp 的隐私保护,此功能提供的功能有限:

  • 告知用户 WhatsApp 的隐私限制

  • 需要准确的联系人姓名才能发送消息

技术实现

内置

  • @modelcontextprotocol/sdk - MCP 服务器和 stdio 传输

  • Zod - 模式验证

  • Node.js 内置模块(child_process、util、fs)

  • 用于 macOS 自动化的 AppleScript

建筑学

  • 使用模型上下文协议 (MCP) 进行标准化工具通信

  • 使用 stdio 传输进行通信

  • 执行 AppleScript 命令与 WhatsApp 桌面应用程序进行交互

  • 实现全面的错误日志记录以进行调试

要求

  • macOS 操作系统

  • WhatsApp 桌面应用程序已安装

  • Node.js v14.0.0 或更高版本

  • 互联网连接

安装

# 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 服务器,请按照以下步骤操作:

  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. 发送 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 Inc. 或 Meta Platforms, Inc. 无关。请自行决定使用并遵守 WhatsApp 的服务条款。

One-click Deploy
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gfb-47/whatsapp-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server