使用说明
WAHA MCP服务器
模型上下文协议(MCP)服务器,使人工智能助手能够通过WAHA(WhatsApp HTTP API)平台与WhatsApp进行交互。
特性
- 聊天管理:获取最近WhatsApp聊天的概述
- 消息操作:检索、发送消息并将其标记为已读
- MCP资源:通过缓存将WhatsApp数据作为上下文感知资源访问
- MCP集成:与MCP客户端完全兼容(stdio传输)
安装
-
克隆此仓库
-
安装依赖项:
npm install -
配置WAHA API连接:
cp .env.example .env然后编辑
.env使用您的WAHA实例详细信息。
配置
中所需的环境变量 .env:
WAHA_BASE_URL:您的WAHA服务器URL(例如。,http://localhost:3000)WAHA_API_KEY:用于身份验证的WAHA API密钥WAHA_SESSION:WhatsApp会话名称(默认值:default)
发展
构建项目
npm run build
在开发模式下运行并自动重新加载
npm run dev
使用MCP检查员进行测试
MCP检查器是一个基于网络的工具,用于交互式测试您的MCP服务器:
npm run inspector
这将:
- 启动WAHA MCP服务器
- 启动MCP检查器web UI
- 自动打开浏览器
使用检查器:
- 交互式测试所有工具
- 查看工具架构
- 查看请求/响应数据
- 调试工具调用
生产运行
npm start
使用Claude Desktop
将此添加到您的Claude Desktop MCP配置中:
窗户:
{
"mcpServers": {
"waha": {
"command": "node",
"args": ["C:\\Users\\YourUsername\\path\\to\\waha\\dist\\index.js"],
"env": {
"WAHA_BASE_URL": "http://localhost:3000",
"WAHA_API_KEY": "your-api-key-here",
"WAHA_SESSION": "default"
}
}
}
}
Mac/Linux:
{
"mcpServers": {
"waha": {
"command": "node",
"args": ["/absolute/path/to/waha-mcp-server/dist/index.js"],
"env": {
"WAHA_BASE_URL": "http://localhost:3000",
"WAHA_API_KEY": "your-api-key-here",
"WAHA_SESSION": "default"
}
}
}
}
注: Windows用户应使用双反斜杠(
\\)在道路上。
可用工具
聊天管理
| 工具 | 说明 |
|---|---|
waha_get_chats |
获取最近WhatsApp聊天的概述 |
waha_get_messages |
从特定聊天中获取消息 |
waha_mark_chat_read |
将聊天中的消息标记为已读 |
waha_mark_chat_unread |
将聊天记录标记为未读 |
waha_clear_chat_messages |
清除聊天中的所有消息(破坏性) |
waha_delete_chat |
完全删除聊天(破坏性) |
waha_archive_chat |
存档聊天记录 |
waha_unarchive_chat |
存档聊天记录 |
waha_get_chat_picture |
获取聊天的个人资料图片URL |
消息传递
| 工具 | 说明 |
|---|---|
waha_send_message |
向聊天室发送短信 |
waha_send_media |
发送图像、视频或文档 |
waha_send_audio |
发送音频/语音信息 |
waha_send_location |
发送位置坐标 |
waha_send_contact |
使用vCard格式发送联系人卡片 |
waha_edit_message |
编辑已发送的消息(仅限自己的消息) |
waha_delete_message |
删除特定消息(破坏性) |
waha_pin_message |
在聊天中固定消息 |
waha_unpin_message |
在聊天中取消发送消息 |
waha_react_to_message |
添加或删除表情符号反应 |
waha_star_message |
标记或取消标记消息 |
群组
| 工具 | 说明 |
|---|---|
waha_get_groups |
列出所有具有筛选和分页功能的组 |
waha_get_groups_count |
获取组总数 |
waha_get_group_info |
获取特定组的详细信息 |
waha_get_group_picture |
获取群组资料图片URL |
waha_set_group_picture |
设置或更新组配置文件图片 |
waha_delete_group_picture |
删除组配置文件图片 |
waha_create_group |
创建新的WhatsApp群组 |
waha_update_group_subject |
更改组名/主题 |
waha_update_group_description |
更新组描述 |
waha_leave_group |
离开群组 |
waha_get_group_participants |
列出组中的所有成员 |
waha_add_group_participants |
将成员添加到组(需要管理员) |
waha_remove_group_participants |
从组中删除成员(需要管理员) |
waha_promote_group_admin |
将参与者提升为管理员(需要管理员) |
waha_demote_group_admin |
删除管理员权限(需要管理员权限) |
waha_get_group_invite_code |
获取群组邀请链接 |
waha_revoke_group_invite_code |
撤销邀请链接并生成新的邀请链接(需要管理员) |
waha_join_group |
使用邀请码/链接加入群 |
waha_get_group_join_info |
无需加入即可从邀请链接获取群信息 |
waha_set_group_messages_admin_only |
切换仅管理员消息(需要管理员) |
waha_set_group_info_admin_only |
切换仅管理员组信息编辑(需要管理员) |
联系人
| 工具 | 说明 |
|---|---|
waha_get_contact |
通过ID获取联系信息 |
waha_get_all_contacts |
按页码列出所有联系人 |
waha_check_contact_exists |
检查WhatsApp上是否注册了电话号码 |
waha_get_contact_about |
获取联系人的关于/状态文本 |
waha_get_contact_profile_picture |
获取联系人的个人资料图片URL |
waha_block_contact |
阻止联系人 |
waha_unblock_contact |
解除联系人锁定 |
存在
| 工具 | 说明 |
|---|---|
waha_get_presence |
获取聊天的在线/离线/键入状态 |
waha_subscribe_presence |
订阅状态更新进行聊天 |
waha_get_all_presence |
获取所有已订阅的状态信息 |
waha_set_presence |
设置自己的在线状态(在线、离线、打字等) |
MCP资源
除了工具,服务器还公开 MCP资源 对于上下文感知数据访问:
可用资源
waha://chats/overview-最近的聊天记录和最新消息预览waha://chat/{chatId}/messages-特定聊天的消息历史记录
资源支持用于过滤和分页的查询参数。数据缓存5分钟以提高性能。
项目结构
waha-mcp-server/
├── src/
│ ├── index.ts # Server entry point
│ ├── config.ts # Configuration management
│ ├── types/ # TypeScript type definitions
│ ├── tools/ # MCP tool implementations
│ ├── resources/ # MCP resource implementations
│ │ ├── base/ # Base resource class
│ │ ├── implementations/ # Concrete resources
│ │ ├── cache/ # LRU caching layer
│ │ └── manager/ # Resource registry
│ └── client/ # WAHA API client
├── dist/ # Built JavaScript output
├── .env # Your configuration (not in git)
├── .env.example # Configuration template
├── package.json
└── tsconfig.json
聊天ID格式
WhatsApp聊天ID有特定的格式:
- 个人聊天:
<phone_number>@c.us(例如。,1234567890@c.us) - 群聊:
<group_id>@g.us(例如。,123456789012345678@g.us)
您可以通过以下方式获取聊天ID waha_get_chats 工具第一。
许可证
ISC
