WhatsApp MCP服务器

一个连接个人WhatsApp账户到AI助手的服务器,提供全文搜索、活动摘要、未读消息跟踪和消息发送功能。

  • by jonzarecki
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jonzarecki/wa-mcp

使用说明

wa-mcp——WhatsApp mcp服务器

WhatsApp 模型上下文协议 (MCP)服务器,具有FTS5全文搜索、活动摘要、未读跟踪和HTTP传输。

将您的个人WhatsApp帐户连接到人工智能助手(Claude、Cursor等),用于搜索消息、获取追赶摘要、跟踪未读对话和发送消息。

特性

  • FTS5全文搜索 在所有对话中--布尔运算符、精确短语、排除、通配符
  • catch_up 消化 --活跃聊天、消息计数、针对您的问题、媒体摘要
  • 未读跟踪 — list_unread_chats + mark_as_read 对于收件箱零工作流
  • 模糊收件人匹配 --不发送给“Bob” 972501234567@s.whatsapp.net
  • 自然时间框架 — today, this_week, last_3_days 而不是ISO-8601时间戳
  • MCP提示 --小组摘要、人员追赶、行动项目提取的指导性工作流程
  • 可流式HTTP传输 --与MCP堆栈一起作为docker compose服务运行
  • stdio传输 --也可以作为Cursor/Claude Desktop的直接集成

快速开始

Docker编写(HTTP模式)

whatsapp:
  image: ghcr.io/jonzarecki/wa-mcp:latest
  container_name: whatsapp-mcp
  restart: always
  ports:
    - "8085:8085"
  environment:
    - MCP_TRANSPORT=http
    - MCP_HTTP_ADDR=:8085
    - TZ=UTC
    - LOG_LEVEL=INFO
  volumes:
    - whatsapp-store:/app/store

然后添加到您的MCP客户端:

{
  "mcpServers": {
    "whatsapp": {
      "url": "http://localhost:8085/mcp",
      "type": "http"
    }
  }
}

光标/克劳德桌面(stdio模式)

{
  "mcpServers": {
    "whatsapp": {
      "command": "path/to/wa-mcp"
    }
  }
}

首次运行

首次运行时,终端/日志中会出现一个二维码。使用手机上的WhatsApp进行扫描(设置>链接设备>链接设备)。会话在重新启动后仍然存在。

MCP工具

工具 说明
list_chats 列出对话、按姓名/电话搜索、仅限组过滤器、分页
list_messages 与模糊收件人聊天的消息、自然时间范围、日期范围
search_messages FTS5跨聊天搜索:布尔值、短语、通配符、排除、±2上下文
send_message 通过模糊收件人匹配发送文本/媒体,回复线程
download_media 将媒体从邮件下载到本地存储
get_connection_status WhatsApp连接健康状况+数据库统计数据
catch_up 活动摘要:活跃聊天、为您提问、媒体摘要
list_unread_chats 包含未读消息计数的聊天
mark_as_read 将聊天中的消息标记为已读

MCP提示

提示 描述
digest_group 获取最近小组活动的摘要
catch_up_person 查找一个人在所有聊天中说的所有内容
extract_action_items 从对话中寻找承诺和要求
search_topic 使用FTS5搜索所有对话中的主题

MCP资源

资源 描述
whatsapp://guides/search-syntax FTS5搜索运算符参考
whatsapp://guides/timeframes 有效的时间范围预设

配置

环境变量 默认值 描述
DB_DIR store SQLite数据库和媒体目录
LOG_LEVEL INFO 日志记录级别(调试、信息、警告、错误)
FFMPEG_PATH ffmpeg 用于音频转换的ffmpeg路径
MCP_TRANSPORT stdio 运输方式: stdio 或 http
MCP_HTTP_ADDR :8085 HTTP侦听地址(当传输=HTTP时)
MCP_API_KEY -- HTTP身份验证的可选承载令牌
TZ UTC 时间戳显示时区

从源头构建

需要Go 1.24+和C编译器(FTS5需要CGO)。

make build    # Build binary with FTS5 support
make run      # Build and run
make tidy     # Tidy go modules

积分

该项目建立在几个WhatsApp MCP实现的基础上:

许可证

麻省理工学院——见 许可证.