Skip to main content

butler-memory-mcp

License Python MCP

给你的 AI agent 一份真正属于你的长期记忆。 一个 MCP 服务器,把你明确要求 记住的事实、偏好和项目上下文写入你自己的 PostgreSQL——每次写入带修订历史 与审计证据,检索自动按敏感度过滤。模型不能静默写入;推断出的东西只会变成 等你决定的候选。接任何 MCP 客户端即用。

仓库简介

Layered long-term memory for AI agents as an MCP server — PostgreSQL-backed, versioned, audited. Agents remember only what you explicitly asked.

Butler 分层记忆的 MCP 桥:把 ai-butler-framework 的 MemoryService / LayeredMemoryService 以标准 MCP 工具暴露给任何 MCP 客户端 (DSH、Claude Code、Codex 等),同时提供一个仅限 loopback 的 HTTP API 供 DSH Web 面板(dsh-butler-memory)读取。

DSH agent ──(MCP stdio)──► ai-butler-memory-mcp ──► MemoryService ──► PostgreSQL
DSH web 面板 ──(HTTP 127.0.0.1:8771)──► 同一进程、同一 principal

自包含分发(vendored)

本包运行时零依赖 ai-butler-framework:所需的记忆领域代码 (MemoryService/LayeredMemoryService/ORM 模型/数据库与配置辅助)以 vendoring 方式内置于 ai_butler_memory_mcp/vendored/,归属校验、敏感度上限、 revision 乐观锁、审计与证据同事务等语义与上游逐字一致。上游文件清单、 行号区间与漂移检查见 VENDORED.mdscripts/check-vendored.py)。

Schema 迁移仍由 ai-butler-framework 的部署负责(ai-butler-db upgrade); 本包只连接已有数据库,不创建、不修改 schema。

安装

从 PyPI(发布后推荐)

pip install butler-memory-mcp

本地开发(源码 checkout)

cd butler-memory-mcp && python3 -m venv .venv
.venv/bin/pip install -e '.[dev]'

首次初始化(自举,无需 ai-butler-framework)

全新用户三步即可用:

# 1. 建表(对已迁移的库是安全 no-op,只建缺失表)
ai-butler-memory-mcp initdb

# 2. 创建属主用户与桥设备(token 只显示一次)
ai-butler-memory-mcp admin bootstrap \
  --user-name 博士 --device-name dsh-agent --device-kind agent \
  --scope memory:read --scope memory:write
# 输出 user_id / device_id / device_token

# 3. 把 user_id / device_id 填进配置

配置

把环境配置放进 ~/.config/butler-memory-mcp/.env(DSH 的 stdio 桥会清洗 疑似凭据的环境变量,env 文件是可靠通道):

AI_BUTLER_DATABASE_URL=postgresql+asyncpg://ai_butler:密码@127.0.0.1:5432/ai_butler
AI_BUTLER_MCP_USER_ID=<bootstrap 输出的 user_id>
AI_BUTLER_MCP_DEVICE_ID=<bootstrap 输出的 device_id>

与 ai-butler-framework 共用同一数据库的部署无需 initdb/bootstrap: 沿用框架的 ai-butler-db upgrade 迁移和 ai-butler-admin add-device 注册, 把打印的 user_id/device_id 填进上面两个变量即可。

写操作只有在这台设备真实属于该用户时才会被接受——身份与审计不因 MCP 而放松。

运行

ai-butler-memory-mcp                       # stdio MCP(给 agent 用,DSH 会自动 spawn)
ai-butler-memory-mcp --transport http --port 8771   # 面板 API(0.1.2+ 的 DSH 插件已不需要)

暴露的工具(DSH 中为 mcp__butler__memory_*)

工具 语义 敏感度
memory_list / memory_search 列出/检索记忆(search 自动排除 private/secret) internal 封顶
memory_revisions 不可变修订历史
memory_create / memory_revise / memory_archive 显式写入,revision 绑定 public/internal 封顶
memory_candidates / memory_candidate_accept / memory_candidate_reject 推断候选,绝不静默入库

当前边界(v0.1 刻意取舍)

  • 无浏览器式强确认:MCP 写入依赖工具描述约束("仅当用户明确要求")+ 敏感度 封顶,不等于框架 Web 端的 L2 确认卡片。后续可接 DSH ask-user
  • 仅 loopback:HTTP 面板 API 拒绝非 loopback 绑定;stdio 模式不监听端口。
  • 单用户单设备 principal:多用户映射属后续设计(见 PLAN.md)。
  • 数据 durable 但备份/恢复尚未实现(框架 P9 未完成),发布说明中需如实标注。

测试

.venv/bin/pytest     # 离线协议测试;vendored 领域代码与上游逐字一致
.venv/bin/python scripts/check-vendored.py --upstream ../ai-butler-framework   # 漂移检查

License

Apache License 2.0,与上游 ai-butler-framework 一致。本项目不包含 任何专有模型或素材;发布衍生作品时请保留许可与署名要求。

相关项目

  • ai-butler-framework — 记忆领域服务的上游实现方(owner/revision/audit 语义的权威来源;本包 vendoring 其记忆领域代码并做漂移检查);
  • dsh-butler-memory — DeepSeek Harness 接入组合包:agent 工具 + Web 记忆面板。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

butler_memory_mcp-0.2.1.tar.gz (47.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

butler_memory_mcp-0.2.1-py3-none-any.whl (51.8 kB view details)

Uploaded Python 3

File details

Details for the file butler_memory_mcp-0.2.1.tar.gz.

File metadata

  • Download URL: butler_memory_mcp-0.2.1.tar.gz
  • Upload date:
  • Size: 47.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for butler_memory_mcp-0.2.1.tar.gz
Algorithm Hash digest
SHA256 62c0d04e1517b848ee8d4abd87a147ff4ee1be986f1d86fdba38dde28a13f7ee
MD5 236810c6ce30fd986bb9600c8bb42e15
BLAKE2b-256 b762a82e856bf4a516a973fefd6d382dbe637e088832c14b7b458a259950cd3b

See more details on using hashes here.

File details

Details for the file butler_memory_mcp-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for butler_memory_mcp-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fdd21b575986946d7e57c8fc4712906db149c320c450509285bfe17fab9ad0ec
MD5 acdc6fcbbd7859de65b36b70678a8fe1
BLAKE2b-256 4367612dd64b1de638994d8e6c0a71a099de59bc8df55eb9cde834606a585adc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page