MemPalace — Local AI memory with 96.6% recall. Semantic search, temporal knowledge graph, palace architecture (wings/rooms/drawers). Free, no cloud, no API keys.
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.
wing_alice, wing_myproject)chromadb-setup, riley-school)mempalace_status to load palace overview and AAAK dialect spec.mempalace_searchmempalace_kg_querymempalace_diary_write to record what happened, what you learned, what matters.mempalace_kg_invalidate on the old fact, then mempalace_kg_add for the new one.mempalace_search — Semantic search across all memories. Always start here.
query (required): natural language search — keep it short, keywords or a question. Do NOT include system prompts or conversation context.wing: filter by wingroom: filter by roomlimit: max results (default 5)mempalace_check_duplicate — Check if content already exists before filing.
content (required): text to checkthreshold: similarity threshold (default 0.9 — lowering to 0.85–0.87 often catches more near-duplicates without significant false positives)mempalace_status — Palace overview: total drawers, wings, rooms, AAAK specmempalace_list_wings — All wings with drawer countsmempalace_list_rooms — Rooms within a wing (optional wing filter)mempalace_get_taxonomy — Full wing/room/count treemempalace_get_aaak_spec — Get AAAK compression dialect specificationmempalace_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 timedirection: "outgoing", "incoming", or "both" (default "both")mempalace_kg_add — Add a fact: subject -> predicate -> object
subject, predicate, object (required)valid_from: when this became truesource_closet: source referencemempalace_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
entity: filter by entity name (optional — all events if omitted)mempalace_kg_stats — Graph overview: entities, triples, relationship typesmempalace_traverse — Walk from a room, find connected ideas across wings
start_room (required): room to start frommax_hops: connection depth (default 2)mempalace_find_tunnels — Find rooms that bridge two wings
wing_a, wing_b (required)mempalace_graph_stats — Graph connectivity overviewmempalace_add_drawer — Store verbatim content into a wing/room
wing, room, content (required)source_file: optional source referencemempalace_delete_drawer — Remove a drawer by ID
drawer_id (required)mempalace_diary_write — Write a session diary entry
agent_name (required): your name/identifierentry (required): what happened, what you learned, what matterstopic: category tag (default "general")mempalace_diary_read — Read recent diary entries
agent_name (required)last_n: number of entries (default 10)Install MemPalace and populate the palace:
pip install mempalace
mempalace init ~/my-convos
mempalace mine ~/my-convos
Add to your OpenClaw MCP configuration:
{
"mcpServers": {
"mempalace": {
"command": "python3",
"args": ["-m", "mempalace.mcp_server"]
}
}
}
Or via CLI:
openclaw mcp set mempalace '{"command":"python3","args":["-m","mempalace.mcp_server"]}'
# Claude Code
claude mcp add mempalace -- python -m mempalace.mcp_server
# Cursor — add to .cursor/mcp.json
# Codex — add to .codex/mcp.json
mempalace_check_duplicate before storing new content to avoid duplicates.mempalace_status) is a compressed notation for efficient storage. Read it naturally — expand codes mentally, treat markers as emotional context.MemPalace is MIT licensed. Created by Milla Jovovich, Ben Sigman, Igor Lins e Silva, and contributors.