Skip to main content
Glama
memory-bridge

memory-bridge

by LewenW

memory-bridge

Cross-project memory sharing for Claude Code and Cowork. Stop teaching Claude the same thing twice.

Claude's memory is project-isolated. Teach it "use pnpm" in project A, repeat yourself in project B. memory-bridge adds a shared layer — namespaces — between global and project scope. Solves #36561 and #39195.

Global      ~/.claude/CLAUDE.md                      (Claude native)
Namespace   ~/.claude/shared-memory/<ns>/*.md         (memory-bridge)
Project     ~/.claude/projects/<proj>/memory/*.md     (Claude native)

Install

Claude Code (one command)

claude mcp add memory-bridge -- uvx claude-memory-bridge

Done. No clone, no config files. Requires uv (curl -LsSf https://astral.sh/uv/install.sh | sh).

Cowork Desktop

Add to your config file (Settings > Developer > Edit Config):

{
  "mcpServers": {
    "memory-bridge": {
      "command": "uvx",
      "args": ["claude-memory-bridge"]
    }
  }
}

Requires uv. Then restart Cowork.

Manual install (advanced)

git clone https://github.com/LewenW/claude-memory-bridge.git
cd claude-memory-bridge
pip install -e .
python scripts/install.py

Related MCP server: Central Brain

Tools

Tool

What it does

search_memories

Search across all projects and shared namespaces

promote_memory

Move a memory from project to shared namespace

sync_memory

Copy a memory to specific projects

list_shared_memories

Browse namespace contents

manage_namespaces

Create, delete, subscribe, unsubscribe

get_memory_health

Find duplicates, stale entries, broken indexes

Quick start

In a Claude Code or Cowork session:

# Create a namespace
"Create a shared namespace called 'frontend' for React conventions"

# Share knowledge
"Promote 'Use pnpm, not npm' to the frontend namespace"

# Subscribe a project
"Subscribe my dashboard project to the frontend namespace"

# Search across everything
"Search memories for pnpm"

Client compatibility

Client

Auto

Manual

Claude Code (CLI)

Yes

Yes

Cowork — Code mode

Yes

Yes

Cowork — Cowork mode

:(

Yes — mention "memory-bridge" or tool name

Cowork mode loads the MCP tools but doesn't inject server instructions, so Claude won't use them unprompted. Workaround: say "use search_memories" or mention "memory-bridge". This will work automatically once Cowork supports MCP instructions.

How it works

  • Reads/writes Claude's native ~/.claude/projects/*/memory/*.md directly — no database

  • Shared memories in ~/.claude/shared-memory/<namespace>/

  • registry.json tracks namespace subscriptions

  • Word-boundary TF-IDF search scoring

  • Trigram Jaccard similarity for duplicate detection (threshold 0.45)

Uninstall

claude mcp remove memory-bridge    # Claude Code

Or remove the memory-bridge entry from your Cowork config file.

Project structure

src/memory_bridge/
├── server.py              MCP server, 6 tools
├── config.py              Paths + constants
├── models.py              Dataclasses
├── store/
│   ├── base.py            MemoryStore interface
│   └── filesystem.py      File I/O + keyword search
└── engine/
    ├── retriever.py       Cross-project search
    ├── promoter.py        Project → namespace promotion
    ├── namespace_manager.py   Namespace CRUD
    └── health_analyzer.py     Dedup + staleness + index audit

License

MIT

Available Tools

6 tools
get_memory_healthA

Analyze saved memory health across all projects and sessions. Reports duplicates, stale memories, index integrity, and actionable suggestions.

Args: fix_indexes: If true, rebuild all MEMORY.md indexes from actual files on disk.

Inputs: fix_indexes. Returns: result

list_shared_memoriesA

List memories saved across sessions in shared namespaces. If namespace is omitted, shows all namespaces and their summaries.

Args: namespace: A specific namespace to list memories from.

Inputs: namespace. Returns: result

manage_namespacesA

Create, delete, subscribe, unsubscribe, or list namespaces.

Args: action: "create" | "delete" | "subscribe" | "unsubscribe" | "list" namespace: Namespace name (required for all except "list"). description: Description (for "create"). project: Project name or id (for "subscribe" / "unsubscribe"). tags: Comma-separated tags (for "create").

Inputs: action (required), namespace, description, project, +1 more. Returns: result

promote_memoryA

Save a memory to a shared namespace so it persists across sessions and multiple projects can access it. Use when the user teaches you something that applies beyond the current project.

Args: content: The memory content to promote. target_namespace: Namespace to promote into (created if missing). source_project: Original project (name or id). title: Title for the shared memory. description: One-line description. memory_type: user / feedback / project / reference. tags: Comma-separated tags. source_memory_id: If promoting an existing memory, its id. remove_source: Remove the original after promotion.

Inputs: content (required), target_namespace (required), source_project, title, +5 more. Returns: result

search_memoriesA

Search memories saved in previous sessions, across all projects and shared namespaces. Use this when the user asks if you remember something, references past conversations, or when you want to check for existing knowledge before a task.

Args: query: Keywords to search for. scope: "all" | "shared" | "project" | a namespace name. project: Limit to a specific project (name or id). limit: Max results (default 10).

Inputs: query (required), scope, project, limit. Returns: result

sync_memoryA

Copy a memory to one or more specific projects so they can use it in future sessions.

Args: content: The memory content. target_projects: Comma-separated list of project names or ids. title: Memory title. description: One-line description. memory_type: user / feedback / project / reference. tags: Comma-separated tags.

Inputs: content (required), target_projects (required), title, description, +2 more. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct operation: health analysis, listing shared memories, namespace management, promotion to shared, searching, and syncing to projects. No two tools have overlapping purposes.

    Naming Consistency5/5

    All tools use consistent snake_case verb_noun pattern (get_, list_, manage_, promote_, search_, sync_), making them predictable and easy to distinguish.

    Tool Count5/5

    Six tools cover the core memory management tasks without unnecessary duplication. The count feels well-scoped for a memory bridge server.

    Completeness4/5

    The set covers health checks, listing, namespace management, promotion, search, and syncing. Missing direct memory deletion or retrieval by ID, but the core workflow of saving and sharing memories is complete.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Cross-project memory for Claude Code, enabling local semantic recall and secure, git-versioned markdown storage of reusable knowledge across repositories.
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Persistent memory + intelligent context for Claude Code. Save and reuse solutions, decisions, and patterns across projects.
      43
      7
      MIT