Skip to main content
Glama
Unified Memory MCP

Unified Memory MCP

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 --help

The 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.json

Backups 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 tools
handoff_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_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

    B3.2/5.0

    Scored across 16 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      A
      maintenance
      Provides 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 npm
      16
      Apache 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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.
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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 PyPI
      Apache 2.0