WAHA MCP服务器
适用于Claude Desktop和MCP兼容客户端的WhatsApp HTTP API集成
 ](https://nodejs.org/)  
文档 • 安装 • 配置 • 🤖 Claude代码设置 • 工具参考
______________________________________________________________________
🚀 什么是WAHA MCP?
WAHA MCP服务器连接了强大的 WAHA(WhatsApp HTTP API) 借助Claude Desktop等人工智能助手,通过模型上下文协议(MCP)实现无缝的WhatsApp自动化。
✨ 主要特点
- 📱 完成WhatsApp控制 -发送/接收消息、管理聊天、创建群组
- 🎯 63工具 -全面的API覆盖会话、消息、联系人、群组和交互式工作流
- 🔄 智能媒体处理 -自动转换语音/视频,支持URL和本地文件
- 🤖 人工智能原生 -专为通过MCP集成LLM而构建
- 🔒 安全 -基于环境的API密钥管理
- ⚡ 快速可靠 -TypeScript支持强大的错误处理
______________________________________________________________________
📋 先决条件
在开始之前,请确保您已经:
______________________________________________________________________
🛠️ 安装
1.克隆和安装
git clone https://github.com/dudu1111685/waha-mcp.git
cd waha-mcp
npm install
npm run build2.设置环境变量
创建 .env 文件或导出变量:
export WAHA_API_KEY="your-api-key-here"
export WAHA_URL="http://localhost:3001" # Optional, defaults to localhost:3001______________________________________________________________________
⚙️ 配置
克劳德桌面版
添加到 claude_desktop_config.json:
Linux: ~/.config/claude/claude_desktop_config.json\ macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"waha": {
"command": "node",
"args": ["/absolute/path/to/waha-mcp/dist/index.js"],
"env": {
"WAHA_API_KEY": "your-api-key-here",
"WAHA_URL": "http://localhost:3001"
}
}
}
}Cline/VS代码
添加到您的Cline MCP设置(~/.vscode/mcp.json 或工作空间设置):
{
"mcpServers": {
"waha": {
"command": "node",
"args": ["/absolute/path/to/waha-mcp/dist/index.js"],
"env": {
"WAHA_API_KEY": "your-api-key-here"
}
}
}
}克劳德代码(自主开发)
🤖 实现真正自主的人工智能开发:
当需要用户输入时,Claude不会停止,它可以通过WhatsApp提问并继续工作!
🚀 完整安装指南: CLAUDE_CODE_SETUP.md
快速配置示例:
{
"mcpServers": {
"waha": {
"command": "node",
"args": ["/path/to/waha-mcp/dist/index.js"],
"env": {
"WAHA_API_KEY": "your-key",
"USER_WHATSAPP_CHAT_ID": "1234567890@c.us"
}
}
},
"globalInstructions": "When you need user input during development, use ask_user_via_whatsapp tool. Never stop and wait for manual console input."
}它是如何工作的:
- 克劳德提出了一个问题→ 通过WhatsApp提问
- 您通过手机回复
- 克劳德立即继续工作
- 零停机时间! ⚡
📖 另请参见:
CLAUDE_CODE_SETUP.md-完整的设置指南CLAUDE_CODE_INSTRUCTIONS.md-AI助手的使用示例
其他MCP客户端
使用 mcporter 用于快速测试的CLI:
mcporter call 'waha-mcp.waha_list_sessions()'
mcporter call 'waha-mcp.waha_send_text(chatId: "1234567890@c.us", text: "Hello from MCP!")'______________________________________________________________________
🧰 工具参考
📂 分类
Session Management (8 tools)
| 工具 | 说明 |
|---|---|
waha_list_sessions | 列出所有会话及其状态 |
waha_get_session | 获取会话的详细信息 |
waha_create_session | 创建新会话 |
waha_start_session | 启动已停止的会话 |
waha_stop_session | 停止正在运行的会话 |
waha_restart_session | 重新启动会话 |
waha_delete_session | 永久删除会话 |
waha_logout_session | 断开WhatsApp帐户与会话的连接 |
Authentication (3 tools)
| 工具 | 说明 |
|---|---|
waha_get_qr_code | 获取WhatsApp身份验证的二维码 |
waha_request_pairing_code | 请求电话号码配对码 |
waha_check_auth_status | 检查会话身份验证状态 |
Messaging (14 tools)
| 工具 | 说明 |
|---|---|
waha_send_text | 发送短信 |
waha_send_image | 发送图像(本地文件或URL) |
waha_send_video | 发送带有自动转换功能的视频 |
waha_send_voice | 发送带有自动转换功能的语音信息 |
waha_send_file | 发送任何文档/文件 |
waha_send_location | 发送位置密码 |
waha_send_contact | 发送联系人vCard |
waha_send_poll | 创建并发送投票 |
waha_react_to_message | 用表情符号做出反应👍❤️😂 |
waha_forward_message | 转发消息 |
waha_get_messages | 获取带分页的邮件 |
waha_delete_message | 删除消息 |
waha_edit_message | 编辑已发送的消息 |
waha_mark_as_read | 将邮件标记为已读 |
waha_star_message | 添加/取消添加消息 |
📤 媒体上传功能:
- ✅ 支持本地文件和URL
- ✅ 自动MIME类型检测
- ✅ 自动将视频/语音转换为WhatsApp格式
- ✅ 支持50多种文件类型
- ✅ 自动处理Base64编码
Chat Management (7 tools)
| 工具 | 说明 |
|---|---|
waha_list_chats | 列出所有聊天记录 |
waha_get_chat | 获取详细聊天信息 |
waha_archive_chat | 存档/取消存档聊天记录 |
waha_pin_chat | 闲聊/不愉快 |
waha_mute_chat | 将聊天静音/取消静音 |
waha_delete_chat | 删除聊天 |
waha_clear_chat | 清除所有消息 |
Contacts (5 tools)
| 工具 | 说明 |
|---|---|
waha_get_contacts | 获取所有联系人 |
waha_get_contact | 获取联系人信息 |
waha_check_number_exists | 检查号码是否在WhatsApp上 |
waha_block_contact | 阻止/取消阻止联系人 |
waha_get_profile_picture | 获取个人资料图片URL |
Groups (13 tools)
| 工具 | 说明 |
|---|---|
waha_create_group | 创建新组 |
waha_list_groups | 列出所有组 |
waha_get_group | 获取详细的组信息 |
waha_get_group_participants | 列出小组参与者 |
waha_add_group_participants | 添加参与者 |
waha_remove_group_participants | 删除参与者 |
waha_promote_group_participant | 晋升为管理员 |
waha_demote_group_participant | 从管理员降级 |
waha_update_group_subject | 更新组名 |
waha_update_group_description | 更新组描述 |
waha_update_group_picture | 设置群组头像 |
waha_leave_group | 离开群组 |
waha_get_group_invite_code | 获取邀请链接 |
waha_revoke_group_invite | 撤销并重新生成链接 |
Presence & Status (5 tools)
| 工具 | 说明 |
|---|---|
waha_set_presence | 设置在线/离线状态 |
waha_get_presence | 获取联系人的存在 |
waha_start_typing | 显示打字指示器 |
waha_stop_typing | 停止打字指示器 |
waha_send_status | 发布文本状态/故事 |
Labels (5 tools)
| 工具 | 说明 |
|---|---|
waha_get_labels | 获取所有标签 |
waha_create_label | 创建新标签 |
waha_delete_label | 删除标签 |
waha_add_label_to_chat | 在聊天中添加标签 |
waha_remove_label_from_chat | 从聊天中删除标签 |
🆕 Interactive Workflows (1 tool)
| 工具 | 说明 |
|---|---|
ask_user_via_whatsapp | 🚀 新 发送问题并等待用户回复(阻止操作)。非常适合在执行过程中需要用户输入的Claude Code工作流。 |
用例示例:
// Claude Code is building a feature and needs clarification
const reply = await ask_user_via_whatsapp({
question: "Should I use REST or GraphQL for the API?",
chatId: "1234567890@c.us",
timeoutMinutes: 30
});
// User replies from phone: "Use GraphQL"
// Claude Code continues with GraphQL implementation它是如何工作的:
- 通过WhatsApp发送您的问题
- 用户新消息的投票
- 收到回复文本后返回
- 包括超时处理(默认值:60分钟)
非常适合:
- 🤖 Claude Code在工作流程中提问
- 💡 在您离开计算机时获取用户输入
- 🔄 构建真正的交互式人工智能自动化
- 📱 在AI继续工作的同时从手机接听
______________________________________________________________________
📚 聊天ID格式
了解WhatsApp ID格式:
| 类型 | 格式 | 示例 |
|---|---|---|
| 用户 | {phone}@c.us | 1234567890@c.us |
| 群组 | {id}@g.us | 1234567890-1234567890@g.us |
| 频道 | {id}@newsletter | 1234567890@newsletter |
| 状态 | status@broadcast | status@broadcast |
注: 电话号码应排除 + 前缀。______________________________________________________________________
🎯 快速示例
发短信
mcporter call 'waha-mcp.waha_send_text(
chatId: "1234567890@c.us",
text: "Hello from WAHA MCP!"
)'从URL发送图像
mcporter call 'waha-mcp.waha_send_image(
chatId: "1234567890@c.us",
imageUrl: "https://example.com/photo.jpg",
caption: "Check this out!"
)'创建组并添加参与者
# Create group
mcporter call 'waha-mcp.waha_create_group(
name: "Team Chat",
participants: ["1111111111@c.us", "2222222222@c.us"]
)'
# Add more participants
mcporter call 'waha-mcp.waha_add_group_participants(
chatId: "{group_id}@g.us",
participants: ["3333333333@c.us"]
)'列出所有聊天
mcporter call 'waha-mcp.waha_list_chats()'______________________________________________________________________
🧪 发展
在监视模式下运行
npm run dev # Recompiles on file changes运行测试
npm test为生产而建
npm run build______________________________________________________________________
📖 文档
有关详细文档,请参阅 文档 文件夹:
______________________________________________________________________
🤝 贡献
欢迎投稿!请随时提交问题或拉取请求。
- 克隆该仓库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
______________________________________________________________________
📄 许可证
该项目根据 MIT许可证 -看看 许可证 文件以获取详细信息。
______________________________________________________________________
🙏 致谢
- WAHA(WhatsApp HTTP API) -这种整合的支柱
- 模型上下文协议 -实现AI原生工具集成
- Anthropic -适用于Claude Desktop和MCP SDK
______________________________________________________________________
建于❤️ 对于MCP社区

