MCP Roo Memory

Communauté Outils de développement

Persistent fractal graph memory for coding agents: semantic search, hot/cold/archive context tiers and decision tracking on Qdrant.

Installation

Les étapes d'installation sont dans la documentation ci-dessous. Documentation

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. MCP Roo Memory
  2. Quick Start
  3. Problems This Solves
  4. Architecture
  5. Using as Primary Roo Memory
  6. Tools Overview
  7. Configuration
  8. Project Structure
  9. Deep Dive
  10. Development
  11. License

MCP Roo Memory

Persistent, graph-based memory for Roo Code via the Model Context Protocol (MCP).

LLMs have a short memory. Every new conversation starts from scratch — context windows overflow, past decisions fade, and reasoning chains disappear.

MCP Roo Memory gives your AI agent a structured, persistent brain:

  • Graph memory — knowledge is not a flat dump, but a fractal graph of tasks, entities, facts, and decisions
  • Semantic search — find what matters by meaning, not keywords (50+ languages)
  • Context window control — hot/cold/archive tiers so you don't drown in tokens
  • Knowledge evolution — decisions can be superseded, facts can be updated, stale data gets archived
  • Temporal awareness — time as first-class citizen: chronological walks, session timelines, temporal vector filters

⚠️ Disclaimer

This is an experimental project — a search for form and architecture. It works, it has tests, but treat it as a Proof of Concept (PoC). The software is provided "AS IS", without any warranty of any kind. Use it at your own risk. See LICENSE for details.


Quick Start

Zero system dependencies — just Docker. Everything runs in containers; no Python, no venv, no pip.

1. Start the stack
git clone https://github.com/mcasdfgf/mcp-roo-memory.git
cd mcp-roo-memory
docker compose up -d

This starts two containers:

ContainerWhat it does
cortex-qdrantVector database (port 6333)
cortex-mcpCortex server (idle, waits for MCP connections)
2. Global MCP configuration

Add Cortex as a global MCP server for all your projects. The server is always running in Docker, so any project can connect.

Edit ~/.config/VSCodium/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json (or the equivalent path for VS Code):

{
  "mcpServers": {
    "cortex": {
      "command": "docker",
      "args": ["exec", "-i", "cortex-mcp", "python3", "-m", "src.cortex"]
    }
  }
}

VSCode users: replace VSCodium with Code in the path above.

3. Project-level configuration (for workspace isolation)

If you want memory isolated per project, copy the reference .roo/ directory into your project:

cp -r ./mcp-roo-memory/.roo ./your-project/

Then edit .roo/mcp.json in your project and add --workspace your-project-name:

{
  "mcpServers": {
    "cortex": {
      "command": "docker",
      "args": [
        "exec", "-i", "cortex-mcp", "python3",
        "-m", "src.cortex", "--workspace", "your-project-name"
      ],
      "alwaysAllow": ["desktop_open", "graph_add_node", "vector_search", "graph_get_node",
                       "graph_add_relation", "graph_search", "desktop_focus",
                       "desktop_history", "graph_traverse", "graph_walk",
                       "graph_decompose", "graph_update_node", "graph_supersede",
                       "graph_delete_node", "vector_store",
                       "temporal_walk", "session_timeline"]
    }
  }
}

Replace your-project-name with a unique identifier — mcp-roo-memory, researcher, ai-pulse, etc.

How isolation works:

  • desktop_open() and graph_add_node() — always write to your project's workspace
  • vector_search() without workspace_id — searches across all projects (cross-project recall)
  • vector_search(workspace_id="project") — narrows search to one project
4. Done

Restart Roo Code. Your agent now has persistent memory — zero system pollution.


🏠 Native pip (advanced)

If you prefer running without Docker — or you're developing Cortex itself:

# Requirements: Python 3.11+
git clone https://github.com/mcasdfgf/mcp-roo-memory.git
cd mcp-roo-memory
python -m venv .venv
source .venv/bin/activate
pip install -e .

# Qdrant is still needed:
docker run -d --name qdrant -p 6333:6333 qdrant/qdrant

MCP config:

{
  "mcpServers": {
    "cortex": {
      "command": "python",
      "args": ["-m", "src.cortex"],
      "env": {
        "CORTEX_DB_PATH": "/path/to/cortex.db",
        "CORTEX_QDRANT_HOST": "localhost",
        "CORTEX_QDRANT_PORT": "6333"
      }
    }
  }
}

Problems This Solves

ProblemHow Cortex solves it
Flat memory — facts are stored as unrelated chunksFractal graph — tasks decompose into subtasks, facts connect to decisions, entities index files
Context window overflow — everything grows unboundedDesktop Viewport — Hot (always loaded) / Cold (on focus) / Archive (search only) tiers
No navigation — can't walk a reasoning chainGraph traversal — follow supersedes, derives_from, leads_to relations like a path
Stale facts linger — old decisions pollute contextMutation strategy — Update (typo fix) / Supersede (approach changed) / Stale-cascade (rework)
Keyword search fails — "auth implementation" doesn't find "JWT with RS256"Semantic vector search — multilingual embeddings (50+ languages) via Qdrant + fastembed
No time axis — can't answer "what happened in what order"Temporal layer — chronological walks, session timelines, temporal vector filters

Architecture

┌──────────────────────────────────────────────┐
│              MCP Client (Roo Code)            │
└──────────────────────┬───────────────────────┘
                        │ stdio (MCP protocol)
┌──────────────────────▼───────────────────────┐
│               CortexServer                     │
│         17 tools · 4 resources                 │
├──────────┬──────────┬──────────┬─────────────┤
│ Graph    │ Vector   │ Desktop  │ Database    │
│ CRUD,    │ Qdrant + │ Hot/     │ SQLite      │
│ traverse,│ fastembed│ Cold/    │ graph +     │
│ walk     │ semantic │ Archive  │ history     │
└──────────┴──────────┴──────────┴─────────────┘

Three layers of intelligence:

  1. Graph (SQLite) — who relates to who, what decomposes into what
  2. Vector (Qdrant) — what does this mean, what's semantically similar
  3. Desktop (viewport) — what fits in the context window right now

Using as Primary Roo Memory

Make Cortex your agent's default memory system by copying the .roo/ directory into your project:

# Copy reference config from this repo
cp -r ./mcp-roo-memory/.roo ./your-project/

The .roo/ directory contains ready-to-use reference configs:

File / DirPurpose
custom_instructions.mdCortex bootstrap — mandatory sequence, core principles
mcp.jsonReference MCP server config (edit --workspace for your project)
rules/Boot, save, templates, triggers — memory lifecycle
rules-architect/Memory rules for Architect mode
rules-ask/Memory rules for Ask mode
rules-code/Memory rules for Code mode
rules-coding-teacher/Memory rules for Coding Teacher mode
rules-debug/Memory rules for Debug mode
rules-documentation-writer/Memory rules for Documentation Writer mode
rules-orchestrator/Memory rules for Orchestrator mode
rules-project-research/Memory rules for Project Research mode

For deep understanding of the memory model, see CONCEPT.md.


Tools Overview

ToolWhat it does
desktop_openOpen/restore a workspace session
desktop_focusBring a node into hot context
desktop_historyGet navigation history for a workspace
graph_add_nodeStore any knowledge: entity, fact, decision, task...
graph_get_nodeRetrieve a node with its relations
graph_add_relationCreate a relation between two nodes
graph_traverseWalk the graph from a starting node
graph_walkWalk along a reasoning chain
graph_decomposeBreak a task into structured subtasks
graph_update_nodeUpdate a node's data in-place
graph_supersedeReplace outdated knowledge (keeps history)
graph_delete_nodeDelete a node and its vector
vector_searchFind things by meaning, across 50+ languages
vector_storeStore text with automatic vectorization
graph_searchHybrid: semantic + graph subgraph expansion
temporal_walkChronological graph traversal (time axis)
session_timelineFlat timeline of all events in a session
That's all 17 toolsSee full list in CONCEPT.md §8

Configuration

All via CORTEX_* environment variables:

VariableDefaultDescription
CORTEX_DB_PATHcortex.dbSQLite database path
CORTEX_QDRANT_HOSTlocalhostQdrant host
CORTEX_QDRANT_PORT6333Qdrant port
CORTEX_QDRANT_TIMEOUT30Connection timeout (s)
CORTEX_COLLECTION_NAMEcortex_memoryQdrant collection name
CORTEX_EMBEDDING_MODELsentence-transformers/paraphrase-multilingual-MiniLM-L12-v2Embedding model (50+ languages)
CORTEX_ARCHIVE_DAYS_THRESHOLD7Days before auto-archive
CORTEX_DESKTOP_HOT_LIMIT5Max hot nodes in viewport
CORTEX_DESKTOP_HISTORY_LIMIT10Max history entries

Project Structure

.
├── docker-compose.yml    ← Two services: cortex + qdrant
├── Dockerfile            ← Multi-stage, python:3.11-slim
├── .dockerignore
├── src/cortex/
│   ├── __init__.py    — Cortex factory (component assembly)
│   ├── __main__.py    — MCP server entry point (stdio)
│   ├── config.py      — Configuration (pydantic-settings)
│   ├── db.py          — DatabaseManager (SQLite)
│   ├── desktop.py     — DesktopManager (viewport + timeline)
│   ├── graph.py       — GraphManager (CRUD, navigation, mutation, temporal)
│   ├── models.py      — Pydantic models (Node, Relation, Viewport)
│   ├── server.py      — MCP server (17 tools, 4 resources)
│   └── vector.py      — VectorManager (Qdrant, embeddings, temporal filters)
└── tests/

Deep Dive

DocumentWhat you'll find
CONCEPT.mdFull philosophy, data model, node taxonomy (17 types), relation taxonomy (22 types), SQL schema
ADR-001Fractal memory architecture decision
ADR-002SQLite + JSON for graph instead of Neo4j/Cayley
ADR-003Qdrant for vectors (existing)
ADR-004fastembed for embeddings (paraphrase-multilingual-MiniLM-L12-v2)
ADR-005Desktop Viewport — context window strategy
ADR-006Knowledge evolution: update / supersede / stale
ADR-007Regression search: meaning → context → files
ADR-008Temporal layer — time as first-class citizen
CHANGELOG.mdProject release history
CONTRIBUTING.mdDevelopment guidelines

Development

# Native install (inside venv)
pip install -e .
pip install pytest pytest-asyncio

# Run all tests (188+ tests)
pytest tests/ -v

# With coverage
pytest tests/ --cov=src.cortex -v

Tests cover every component: models (17), config (19), database (26), graph (19), desktop (14), vector (19), server (19), integration (3) — 136+ total.

See CONTRIBUTING.md for guidelines.


License

MIT © 2026

Questions fréquentes

Qu'est-ce que MCP Roo Memory ?

Persistent fractal graph memory for coding agents: semantic search, hot/cold/archive context tiers and decision tracking on Qdrant.

Comment installer MCP Roo Memory ?

Suivez les étapes d'installation de sa documentation, affichée sur cette page et dans son dépôt.

MCP Roo Memory est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient MCP Roo Memory ?

Il est publié par mcasdfgf. AI.tn le référence sans le maintenir ni le recommander.

Issu des listes communautaires awesome-mcp-servers et du dépôt GitHub du projet. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.