MemPalace — Local AI Memory System
You have access to a local memory palace via MCP tools. The palace stores verbatim conversation history and a temporal knowledge graph — all on the user's machine, zero cloud, zero API calls.
Architecture
- - Wings = people or projects (e.g.
wing_alice, wing_myproject) - Halls = categories (facts, events, preferences, advice)
- Rooms = specific topics (e.g.
chromadb-setup, riley-school) - Drawers = individual memory chunks (verbatim text)
- Knowledge Graph = entity-relationship facts with time validity
Protocol — FOLLOW THIS EVERY SESSION
- 1. ON WAKE-UP: Call
mempalace_status to load palace overview. - BEFORE RESPONDING about any person, project, or past event: call
mempalace_search or mempalace_kg_query FIRST. Never guess from memory — verify from the palace. - IF UNSURE about a fact (name, age, relationship, preference): say "let me check" and query. Wrong is worse than slow.
- AFTER EACH SESSION: Call
mempalace_diary_write to record what happened, what you learned, what matters. - WHEN FACTS CHANGE: Call
mempalace_kg_invalidate on the old fact, then mempalace_kg_add for the new one.
Available Tools
Search & Browse
- -
mempalace_search — Semantic search across all memories. Always start here.
-
query (required): natural language search
-
wing: filter by wing
-
room: filter by room
-
limit: max results (default 5)
- -
mempalace_status — Palace overview: total drawers, wings, rooms - INLINECODE16 — All wings with drawer counts
- INLINECODE17 — Rooms within a wing
- INLINECODE18 — Full wing/room/count tree
Knowledge Graph (Temporal Facts)
- -
mempalace_kg_query — Query entity relationships. Supports time filtering.
-
entity (required): e.g. "Max", "MyProject"
-
as_of: date filter (YYYY-MM-DD) — what was true at that time
-
direction: "outgoing", "incoming", or "both"
- -
mempalace_kg_add — Add a fact: subject -> predicate -> object
-
subject,
predicate,
object (required)
-
valid_from: when this became true
- -
mempalace_kg_invalidate — Mark a fact as no longer true
-
subject,
predicate,
object (required)
-
ended: when it stopped being true (default: today)
- -
mempalace_kg_timeline — Chronological story of an entity - INLINECODE34 — Graph overview: entities, triples, relationship types
Palace Graph (Cross-Domain Connections)
- -
mempalace_traverse — Walk from a room, find connected ideas across wings
-
start_room (required): room to start from
-
max_hops: connection depth (default 2)
- -
mempalace_find_tunnels — Rooms that bridge two wings - INLINECODE39 — Graph connectivity overview
Write
- -
mempalace_add_drawer — Store verbatim content into a wing/room
-
wing,
room,
content (required)
- Checks for duplicates automatically
- -
mempalace_delete_drawer — Remove a drawer by ID - INLINECODE45 — Write a session diary entry
-
agent_name (required): your name
-
entry (required): what happened, what you learned
-
topic: category tag
- -
mempalace_diary_read — Read recent diary entries
Setup
The user needs to initialize and populate the palace first:
CODEBLOCK0
Then connect via MCP (for Claude Code, Cursor, etc.):
CODEBLOCK1
For OpenClaw, add to your MCP config:
CODEBLOCK2
Tips
- - Search is semantic (meaning-based), not keyword. "What did we discuss about database performance?" works better than "database".
- The knowledge graph stores typed relationships with time windows. Use it for facts about people and projects — it knows WHEN things were true.
- Diary entries accumulate across sessions. Write one at the end of each conversation to build continuity.
- Wings auto-detect from directory names during mining. You can also create custom wings via
mempalace_add_drawer.
License & Attribution
This skill is an integration for MemPalace, created by Ben Sigman (@bensig), Igor Lins e Silva (@igorls), Milla Jovovich (@milla-jovovich), and adv3nt3 (@adv3nt3), licensed under the MIT License.
CODEBLOCK3
MemPalace — 本地AI记忆系统
您可以通过MCP工具访问本地记忆宫殿。该宫殿存储完整的对话历史和时间知识图谱——全部在用户本地机器上,零云端,零API调用。
架构
- - 翼 = 人物或项目(例如 wingalice、wingmyproject)
- 厅 = 类别(事实、事件、偏好、建议)
- 房间 = 特定主题(例如 chromadb-setup、riley-school)
- 抽屉 = 单个记忆块(逐字文本)
- 知识图谱 = 带时间有效性的实体关系事实
协议 — 每次会话请遵循
- 1. 唤醒时:调用 mempalacestatus 加载宫殿概览。
- 在回答关于任何人、项目或过去事件之前:先调用 mempalacesearch 或 mempalacekgquery。切勿凭记忆猜测——从宫殿中核实。
- 如果不确定某个事实(姓名、年龄、关系、偏好):说让我查一下然后查询。错误比缓慢更糟糕。
- 每次会话后:调用 mempalacediarywrite 记录发生了什么、学到了什么、什么重要。
- 当事实发生变化时:先调用 mempalacekginvalidate 使旧事实失效,然后调用 mempalacekgadd 添加新事实。
可用工具
搜索与浏览
- - mempalace_search — 跨所有记忆的语义搜索。始终从这里开始。
- query(必需):自然语言搜索
- wing:按翼筛选
- room:按房间筛选
- limit:最大结果数(默认5)
- - mempalacestatus — 宫殿概览:总抽屉数、翼数、房间数
- mempalacelistwings — 所有翼及其抽屉数量
- mempalacelistrooms — 某个翼内的房间
- mempalaceget_taxonomy — 完整的翼/房间/数量树
知识图谱(时间事实)
- - mempalacekgquery — 查询实体关系。支持时间过滤。
- entity(必需):例如Max、MyProject
- as_of:日期过滤(YYYY-MM-DD)——当时的事实情况
- direction:outgoing、incoming或both
- - mempalacekgadd — 添加事实:主体 -> 谓词 -> 客体
- subject、predicate、object(必需)
- valid_from:该事实何时开始成立
- - mempalacekginvalidate — 将事实标记为不再成立
- subject、predicate、object(必需)
- ended:该事实何时停止成立(默认:今天)
- - mempalacekgtimeline — 实体的时间线故事
- mempalacekgstats — 图谱概览:实体、三元组、关系类型
宫殿图谱(跨域连接)
- - mempalace_traverse — 从某个房间出发,寻找跨翼的关联想法
- start_room(必需):起始房间
- max_hops:连接深度(默认2)
- - mempalacefindtunnels — 连接两个翼的房间
- mempalacegraphstats — 图谱连接性概览
写入
- - mempalaceadddrawer — 将逐字内容存储到翼/房间中
- wing、room、content(必需)
- 自动检查重复
- - mempalacedeletedrawer — 按ID删除抽屉
- mempalacediarywrite — 写入会话日记条目
- agent_name(必需):您的名称
- entry(必需):发生了什么、学到了什么
- topic:分类标签
- - mempalacediaryread — 读取最近的日记条目
设置
用户需要先初始化并填充宫殿:
bash
pip install mempalace
mempalace init ~/my-convos
mempalace mine ~/my-convos
然后通过MCP连接(适用于Claude Code、Cursor等):
bash
claude mcp add mempalace -- python -m mempalace.mcp_server
对于OpenClaw,添加到您的MCP配置中:
json
{
mcpServers: {
mempalace: {
command: python3,
args: [-m, mempalace.mcp_server]
}
}
}
提示
- - 搜索是语义(基于含义)的,而非关键词。我们讨论过数据库性能的什么内容?比数据库效果更好。
- 知识图谱存储带时间窗口的类型化关系。用于人物和项目的事实——它知道事物何时成立。
- 日记条目跨会话累积。每次对话结束时写一条,以建立连续性。
- 翼在挖掘过程中从目录名称自动检测。您也可以通过 mempalaceadddrawer 创建自定义翼。
许可证与归属
此技能是MemPalace的集成,由Ben Sigman(@bensig)、Igor Lins e Silva(@igorls)、Milla Jovovich(@milla-jovovich)和adv3nt3(@adv3nt3)创建,采用MIT许可证。
MIT许可证
版权所有(c)2026 MemPalace贡献者
特此免费授予任何获得本软件及相关文档文件(软件)副本的人,不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或实质性部分中。
本软件按原样提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易而引起的任何索赔、损害或其他责任负责,无论是合同行为、侵权行为还是其他行为。