Unified Memory MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Unified Memory MCP save a memory: API key rotation due Friday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Memory
Local, single-tenant memory and handoffs for MCP clients.
The core uses Python's standard library and SQLite FTS5: no account, hosted service or runtime dependency is needed. Optional embeddings are a separate extra and may download model weights; the default installation uses text search.
Install
Python 3.11 or newer; candidate qualification uses Python 3.12.
python -m venv .venv
# Activate .venv using your platform's standard command.
python -m pip install .
python -m unittest discover -s tests -v
unified-memory-admin --helpThe distribution name is unified-memory-mcp. Version 2.5.1 in this snapshot
is the public-safe candidate, not a claim that a package was uploaded.
Related MCP server: mcp-memory-bridge
Connect a stdio client
Use your MCP client's configuration syntax, with explicit executable and database paths. For a client accepting a mcpServers object, the shape is:
{
"mcpServers": {
"memory": {
"command": "/absolute/path/to/.venv/bin/unified-memory-mcp",
"env": {
"UNIFIED_MEMORY_DB": "/absolute/private/path/memory.db",
"MEMORY_AUTOSYNC": "0"
}
}
}
}On Windows the installed executable is under .venv/Scripts. The same user can point multiple local MCP processes at one SQLite store. Do not share a database between mutually untrusted users or tenants.
Tools include memory_save/search/recall, memory_bootstrap, handoff_save/load, memory_policy and explicit-confirmation pruning. Scopes organize records; they are not user identities or RBAC boundaries.
Public-safe defaults
No local assistant memory is imported automatically.
Explicit import needs MEMORY_AUTOSYNC=1 and CLAUDE_MEM_DIR or CLAUDE_MEM_GLOB pointing to a reviewed directory. Importing private text is your decision.
Personal private-store integration and the workstation-specific sync utility are not included.
The optional HTTP gateway requires --workspace-root explicitly. It offers authenticated file operations as well as memory; use stdio when those capabilities are unnecessary.
HTTP is for a trusted loopback/tunnel deployment, not public Internet exposure. Configure MEMORY_GATEWAY_TOKEN or MEMORY_GATEWAY_TOKEN_FILE; do not commit it.
No real database, token, deployment settings, autostart task or SSH material is shipped or activated.
The history-free snapshot contains no workstation paths, personal assistant memory, private records, database files, tokens, raw logs or private settings.
The source manifest records original/exported hashes and AST transformations. The private live server is not modified by building this snapshot.
Backup and restart check
Use only a fresh synthetic directory for a first test:
unified-memory-admin restart-drill --work-root ./restart-demo
unified-memory-admin write-deployment-profile --output ./deployment-profile.jsonBackups and restore-copy require explicit paths; restore-copy never overwrites an existing destination. Protect database and backup permissions yourself. The strict deployment preflight includes Windows-specific storage/ACL checks; do not infer Linux ACL qualification from portable stdio tests.
See SECURITY.md. This candidate is released under MIT; third-party dependencies and optional model weights retain their own terms.
Available Tools
16 toolshandoff_completeC
Mark a handoff complete once the transferred task is finished.
Inputs: id (required), notes.
handoff_listC
Audit recent handoff checkpoints for a project.
Inputs: project (required), limit, status.
handoff_loadC
Load recent unfinished handoffs for a project, normally from another client.
Inputs: project (required), consumer (required), limit, include_own, +1 more.
handoff_saveC
Create or update a structured work checkpoint so another Claude/Codex session can continue from the same state. Reuses project+source+session_id.
Inputs: source (required), project (required), summary (required), id, +12 more.
memory_bootstrapA
Start or resume work across Codex and Claude. Returns the latest active handoff from another client plus relevant durable memory chunks. Call once at the beginning of substantial work.
Inputs: project (required), consumer (required), query, scope, +3 more.
memory_deleteC
Delete a memory by id.
Inputs: id (required).
memory_getC
Fetch a single memory by id.
Inputs: id (required).
memory_listC
List most recently updated memories, optionally filtered by scope or tag.
Inputs: tag, limit, scope.
memory_policyB
Report content-free scope authorization, quota, retention, and usage state.
Inputs: no named parameters.
memory_pruneC
Delete expired memories and completed handoffs. Requires confirm=true.
Inputs: confirm (required).
memory_recallA
Semantic recall from memory: returns the most RELEVANT chunks by meaning (cosine over embeddings), falling back to keyword search if embeddings are off. Prefer this over memory_search when you want the best context for a topic.
Inputs: query (required), k, scope.
memory_reindexA
Rebuild chunks + embeddings for all memories. Run once after enabling embeddings (fastembed).
Inputs: no named parameters.
memory_saveA
Save a memory (fact, preference, decision, context) to the shared local store that both Codex and Claude read. Auto-chunked and embedded for semantic recall. Use for durable info worth recalling.
Inputs: content (required), tags, scope, source.
memory_searchC
Full-text (keyword) search of whole memories. Returns ranked matches.
Inputs: query (required), limit, scope.
memory_syncA
Pull Claude's file memories (*.md) into the store. Idempotent and cheap: only files whose content changed are rewritten and re-embedded. Runs automatically on server start.
Inputs: no named parameters.
memory_updateB
Update a memory's content, tags, or scope by id (re-chunks on content change).
Inputs: id (required), tags, scope, content.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 16 tools
Most tools have clearly distinct purposes, but memory_search and memory_recall overlap as search mechanisms, and memory_bootstrap overlaps with handoff_load/handoff_list by also returning handoff data. Descriptions help clarify preferred usage, so misselection is unlikely for careful agents.
All tool names use consistent snake_case with a predictable domain prefix: memory_ or handoff_. Actions are generally verbs and the pattern is stable across the set.
16 tools is slightly above the typical 3-15 range, but each tool serves a distinct role in memory management or handoff lifecycle. The set is rich but not bloated.
The surface covers memory CRUD, search, recall, admin tasks, and handoff lifecycle, so core workflows are complete. Minor gaps include no direct handoff_get by id, though handoff_load/list and memory_prune cover most needs.
Maintenance
Related MCP Connectors
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Hosted agent memory: store, search, and recall facts across sessions from any MCP client.
Persistent memory, hybrid search and a goal graph for AI agents, over stdio or remote HTTP.
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceProvides a drop-in MCP memory server over stdio using a local SQLite store, enabling agents to store, search, and audit memory with provenance, scoped access, and contradiction tracking without requiring API keys, LLMs, or embedding providers.1,593 npm16Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables concurrent MCP clients to share a persistent SQLite-backed key-value memory store with semantic search, write attribution, and audit history.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and any MCP-compatible client to persist, search, update, and delete plain-text memories across sessions, using BM25 lexical ranking over SQLite FTS5 with namespace filtering, tags, free-form metadata, and JSONL export/import — entirely local, with zero external infrastructure.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables LLM applications and agents to persist and recall scoped memories in a local SQLite store, with semantic/hybrid/metadata search, review-first corrections and summaries, and controlled export, backup, and purge operations over stdio.60 PyPIApache 2.0