这篇读完,你能把自己手机里的微信聊天记录,变成 AI 能直接检索的本地知识库——全程数据不出本机。
微信聊天记录是每个人最私密、信息密度最高的语料库,但它一直锁在客户端里,AI 摸不到。现在有一条纯本地的路子:用开源项目 Tulpa 的 MCP 轻量版,把微信聊天导入本地数据库,再通过 MCP 协议暴露给你的 AI 智能体——全程数据不出本机,微信服务器不参与,Agent 也不需要微信登录态。
我实测跑通了整条链路:22,936 条消息、465 个会话(跨度近一年)接进了 Hermes Agent,Agent 现在能直接检索我的微信聊天。这篇文章把完整操作流程讲清楚。
为什么这是热点
过去想让 AI 读微信,只有两条烂路:一是把聊天记录导出成文件再喂给模型,一次性、不实时、还容易泄露;二是调用非官方的微信协议接口,账号有风险。
MCP(Model Context Protocol)出现后,出现了第三条路:让一个本地工具去读微信数据,再以标准协议把"查询能力"交给 Agent。Agent 看到的是一个个工具调用(搜索消息、列出会话、读取上下文),而不是一堆裸数据。数据留在本地,能力交给 Agent——这是当下 AI 智能体圈子里最受关注的一类玩法。
Tulpa 就是干这件事的工具。它支持 QQ 和微信,本次用的是它的 MCP 轻量版。

整体架构:数据怎么流动
先搞清楚链路,再动手。整条路分三段,全部发生在本机:
① 微信PC客户端本地库 ──(Tulpa读取器解密+快照)──► Tulpa本地数据库
D:\...\xwechat_files\ (加密SQLite) chats.sqlite3
② Tulpa本地数据库 ──(MCP服务 127.0.0.1:18777)──► AI智能体
22936条消息 Hermes / 其他MCP客户端
两个关键认知:
- 微信客户端只在"导入"时需要开着。导入完成后,查询走的是 Tulpa 的本地快照,跟微信客户端无关。
- MCP 是查询通道,不是导入通道。真正的导入由 Tulpa 的读取器完成,MCP 只负责把查询能力实时交给 Agent。
实操五步
第一步:下载并解压 Tulpa
到项目发布页下载 MCP 轻量版(Tulpa-MCP-0.5.3-win-x64.zip):
https://github.com/fumingyang2004/Tulpa/releases/tag/v0.5.3
轻量版包含导入、实时读取、聊天浏览、OneBot 和 MCP;语音模型按需安装,使用系统 WebView2。Windows 10/11 x64 适用。
完整解压后打开 Tulpa/Tulpa.exe。建议在设置里勾选「关闭窗口后留在托盘」,因为 MCP 服务挂在 Tulpa 进程上,Tulpa 必须保持运行,Agent 才查得到数据。
第二步:导入微信数据
打开 Tulpa 界面,进入「数据与同步」:
- 选择「微信」平台
- 确认数据目录正确(Tulpa 会自动探测微信 PC 版的本地数据目录)
- 起始/截止日期留空(留空 = 全量导入)
- 点击「读取」,等待导入完成
导入过程中,界面会实时显示进度:已新增、已有、跳过、已提交批次、用时。已完成批次会保存,中途停止后按相同设置重读可以继续,读取时会重新核对源数据并去重。
💡 如果你的聊天记录很多,首次全量导入可能耗时几分钟。Tulpa 默认每会话读取上限是 500 条,如需完整历史,在读取选项中把「每会话条数」调大(最高 10000)。
第三步:创建 MCP 连接凭据
顺序很重要:先导入数据,再创建凭据。
进入「外部 Agent / MCP」页面:
- 启用 MCP 服务,端口默认
18777 - 创建连接:连接名填一个你记得住的名字(如
hermes) - 平台勾选「微信」
- 日期范围留空
- 权限按最小化原则勾选(见下节)
- 创建后,Token 只显示一次,立刻复制保存
这个 Token 是本地凭据,绑定数据源和账号。一旦遗失,在 Tulpa 里撤销重建即可——它只对本机 127.0.0.1 生效,泄露风险有限。
第四步:在 AI 智能体里配置 MCP
以 Hermes Agent 为例,在 config.yaml 里加入一个 MCP 服务条目:
mcp_servers:
tulpa:
url: http://127.0.0.1:18777/mcp
headers:
Authorization: Bearer <你保存的Token>
connect_timeout: 60
enabled: true
Tulpa 对外提供的是 Streamable HTTP MCP,所以配置用 url + headers.Authorization 的写法。保存后重启 Agent 网关。
第五步:验证
先测连通性:
hermes mcp test tulpa
正常会返回 Connected,并列出可用工具(实测 18 个)。再真实调一次数据状态工具,应该看到微信消息数和时间范围。
之后你就可以直接对 Agent 说:「查一下微信聊天里 XX 说过什么」,它会自动调用 Tulpa 的工具去检索。
权限最小化:只给只读
Tulpa 的 MCP 权限是可细分的。如果只是让 Agent 检索历史聊天,全部勾只读即可:
| 权限项 | 是否开启 | 说明 |
|---|---|---|
| 微信(读) | ✅ | 查询聊天记录 |
| 全部会话 | ✅ | 覆盖所有会话 |
| 发送消息 | ❌ | 不需要 |
| 媒体/语音/表情 | ❌ | 不需要 |
| 管理/OneBot | ❌ | 不需要 |
只读权限意味着 Agent 不可能以你的名义发消息。需要更多能力时,再回到 Tulpa 撤销凭据、重建、把新 Token 更新到 Agent 配置里。

总结
| 维度 | 说明 |
|---|---|
| 数据流向 | 全程本地,微信服务器不参与 |
| 导入方式 | Tulpa 读取器解密本地库 → Tulpa 数据库 |
| 查询方式 | MCP 实时查询,Agent 不落盘副本 |
| 微信客户端 | 仅导入时需要,查询时可关 |
| Tulpa | 必须常开(MCP 挂在它进程上) |
| 协议 | Streamable HTTP MCP,127.0.0.1:18777/mcp |
| 权限 | 可最小化到只读 |
| 工具数 | 18 个 |
一句话总结:Tulpa 负责"把微信变成可查询的本地数据",MCP 负责"把查询能力交给 Agent",两者分工,数据始终在你手里。
项目地址:https://github.com/fumingyang2004/Tulpa/releases/tag/v0.5.3
如果觉得有帮助,点个「赞」和「在看」支持一下 👇
