关于 WhatsApp Chat Reader (Unofficial)
WhatsApp Chat Reader (Unofficial) 是读取本机 WhatsApp 桌面应用聊天数据库的只读工具,适合需要查询和分析个人聊天记录的用户。数据留在本机,并通过 MCP 客户端提供消息和活跃聊天列表。
主要功能
- 01只读访问本机聊天数据库
- 02按时间范围获取消息文本
- 03按群组或个人聊天筛选
- 04列出活跃聊天名称
- 05生成离线活动仪表板
适用场景
- 01汇总近期群聊消息
- 02查找一段时间内活跃的聊天
- 03查看消息活动的时间变化
MCP 相关
作为 MCP 服务,提供读取消息文本和获取活跃聊天列表的两个只读工具;数据仅返回给本地 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx wa-chat-readerWHATSAPP_DB_PATHSSemicolon-separated paths to ChatStorage.sqlite. If unset, a platform default is used.WHATSAPP_BACKUP_PATHSSemicolon-separated fallback database paths, tried after the primary paths.WHATSAPP_MAX_DAYSMaximum look-back window in days a caller may request.WHATSAPP_DEBUGSet to 'true' for verbose logging to stderr.WHATSAPP_LOG_FILEOptional path to also write logs to a file.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
wa-chat-reader
面向本地 WhatsApp 聊天记录的非官方、只读 MCP 服务。
wa-chat-reader 会读取 WhatsApp 桌面应用保存在你设备上的 WhatsApp ChatStorage.sqlite 数据库,并向任何 MCP 客户端(Claude
Code、Claude Desktop 等)提供两个工具,让你总结、搜索并分析自己的消息。所有操作都在本地进行——数据绝不会离开你的电脑。
⚠️ 与 WhatsApp 或 Meta 无任何关联、背书或联系。 “WhatsApp” 是 Meta Platforms, Inc. 的商标。这是一款独立的非官方工具,只读取 WhatsApp 已保存在你设备上的数据库。
隐私与安全
此工具会接触高度敏感的数据——你的私人对话。请先阅读此部分。
- 只读。 数据库以 SQLite
mode=ro&immutable=1模式打开;服务绝不会写入、修改或删除任何内容。 - 仅限本地。 此工具不包含任何网络代码。消息只会返回给你的 MCP 客户端,不会发送到其他地方。当然,你连接的任何大模型/客户端都会看到你要求它读取的消息文本——你可以通过选择要运行的客户端来控制这一点。
- 你的同意,你的数据。 仅对你自己的设备和聊天记录运行此工具。请勿用它访问他人的消息。
- macOS 访问权限。 WhatsApp 数据库位于受保护的群组容器中。运行此服务的进程需要完全磁盘访问权限(系统设置 → 隐私与安全性 → 完全磁盘访问权限),或者将
WHATSAPP_DB_PATHS指向你自行导出且可读取的副本。 - 范围控制。
WHATSAPP_MAX_DAYS(默认值为 30)会限制单次调用可读取的历史天数。
安装
需要 Python ≥ 3.10。建议使用 uv,让服务在隔离环境中运行。
# one-shot run (no install)
uvx wa-chat-reader
# or install with pip
pip install wa-chat-reader
wa-chat-reader
在 Claude Code 中使用
claude mcp add wa-chat-reader -- uvx wa-chat-reader
或者将其安装为插件(请参阅下方的市场版块),然后向 Claude 提出以下问题:
- “总结过去 3 天中我尚未读过的 WhatsApp 群聊。”
- “列出本周我活跃过的 WhatsApp 聊天。”
配置
所有配置都通过环境变量完成(均为可选):
| 变量 | 默认值 | 说明 |
|---|---|---|
WHATSAPP_DB_PATHS | 平台默认路径 | 以 ; 分隔的 ChatStorage.sqlite 候选路径(使用第一个可读取的路径) |
WHATSAPP_BACKUP_PATHS | — | 以 ; 分隔的备用路径,在主要路径之后尝试 |
WHATSAPP_MAX_DAYS | 30 | 调用方可请求的最大回溯天数 |
WHATSAPP_DEBUG | false | 设为 true 可将详细日志输出到 stderr |
WHATSAPP_LOG_FILE | — | 可选路径,也可将日志写入文件 |
默认数据库位置:
| 操作系统 | 路径 |
|---|---|
| macOS | ~/Library/Group Containers/group.net.whatsapp.WhatsApp.shared/ChatStorage.sqlite |
| Windows | ~/AppData/Roaming/WhatsApp/Databases/ChatStorage.sqlite |
| Linux | ~/.local/share/whatsapp/ChatStorage.sqlite |
工具
| 工具 | 说明 |
|---|---|
get_whatsapp_messages | 在回溯时间范围内,拼接群聊和个人聊天中的消息文本。参数:days(1–最大值)、chat_type(all/groups/personal)。只读。 |
get_whatsapp_chat_list | 在回溯时间范围内列出活跃聊天名称(不包含消息正文)。参数:days。只读。 |
两个工具都标注了 readOnlyHint: true。
附加功能:活动仪表板
whatsapp_dashboard.py 可直接从同一数据库生成一个独立的离线 HTML 仪表板,展示你的消息活动(随时间变化的消息量、每日/每周节奏、热门聊天):
python3 whatsapp_dashboard.py # -> whatsapp_dashboard.html
生成的 HTML 包含真实联系人姓名——该文件已加入 git 忽略规则,应该保留在本地。
开发
git clone https://github.com/NabheetCloud/wa-chat-reader
cd wa-chat-reader
pip install -e .
python3 simple_whatsapp_mcp.py # run from source without installing
许可证
MIT © 2026 Nabheet Madan
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。