MCP Roo Memory
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CORTEX_DB_PATH | No | SQLite database path | cortex.db |
| CORTEX_QDRANT_HOST | No | Qdrant host | localhost |
| CORTEX_QDRANT_PORT | No | Qdrant port | 6333 |
| CORTEX_QDRANT_TIMEOUT | No | Connection timeout (s) | 30 |
| CORTEX_COLLECTION_NAME | No | Qdrant collection name | cortex_memory |
| CORTEX_EMBEDDING_MODEL | No | Embedding model (50+ languages) | sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 |
| CORTEX_DESKTOP_HOT_LIMIT | No | Max hot nodes in viewport | 5 |
| CORTEX_DESKTOP_HISTORY_LIMIT | No | Max history entries | 10 |
| CORTEX_ARCHIVE_DAYS_THRESHOLD | No | Days before auto-archive | 7 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| desktop_openA | Open a workspace session and return its Desktop Viewport (Hot/Cold/Archive tiers). Use at the START of every task to initialize or resume a session. Returns: session root, hot nodes (current focus + direct relations), cold nodes (other active nodes, titles only), archive info (old nodes, search only). Hot=3-10 nodes always in context, Cold=10-100 by focus/search, Archive=100+ by vector_search only. Without workspace_id, opens YOUR PROJECT's workspace (from CORTEX_WORKSPACE_ID / --workspace). To see another project's viewport, pass its workspace_id explicitly. |
| desktop_focusA | Focus on a specific node — expand its subgraph with all relations and child nodes. Use when you need to explore context around a specific task, fact, or decision. Also logs this focus to navigation history for Hot/Cold tier calculations. workspace_id is OPTIONAL. |
| desktop_historyA | Get navigation history for a workspace session. Use to understand what was recently worked on or to restore context. workspace_id is OPTIONAL. |
| graph_add_nodeA | Add a node to the knowledge graph. Supports 13 types (entity, fact, decision, thought, chunk, question, hypothesis, action, error, note, pattern, goal, constraint — all vectorized; session, task, subtask, fileref — graph only). Text in data.text or data.title is automatically indexed into Qdrant vector search for vectorizable types. For fileref nodes, pass path in data.path. workspace_id is OPTIONAL. |
| graph_get_nodeA | Get a node with its relations and child nodes. Use to inspect a node's full context: what it contains, what it relates to, what references it. |
| graph_add_relationB | Create a relation between two nodes. Supports 22 relation types: Hierarchical (contains, decomposes_to, belongs_to), Semantic (derives_from, supports, contradicts, related_to, questions, answers), Index (indexes Entity->Fileref, extracted_from Fact/Chunk->Fileref, references, implements, relates_to_file), Chronological (sequel_to, supersedes, leads_to, resolves, triggers), Dependency (depends_on, blocks, constrained_by). |
| graph_traverseA | Traverse the graph starting from a node, following relations. Optionally filter by relation type. Uses recursive CTE up to specified depth. Use to discover how nodes are connected in the graph. |
| graph_walkA | Walk along a reasoning chain following sequel_to, derives_from, and leads_to relations. Use to reconstruct the chain of thought: how one thought led to another, what decisions were derived from what facts. Returns nodes in chronological order. |
| graph_decomposeA | Decompose a task node into subtasks. Creates subtask nodes and adds decomposes_to relations. Use for planning and breaking down complex tasks into manageable pieces. |
| graph_update_nodeA | Update a node's data in-place (Strategy A: Update). If data.text changes, the Qdrant vector is automatically re-indexed. Use for small corrections and improvements. For major decision changes, use graph_supersede instead. |
| graph_supersedeA | Supersede an old node with a new one (Strategy B: Supersedes). Marks old node as stale, creates a new node with supersedes relation. Use when a decision or fact fundamentally changes — preserves history of why previous decision was made. The old node remains searchable but is marked stale and deprioritized in results. |
| graph_delete_nodeA | Delete a node and its vector from Qdrant. With cascade=true, also deletes all child nodes (subtree). Use with caution — prefer graph_supersede (stale) for history preservation. |
| temporal_walkA | Walk the graph along the time axis. Returns nodes ordered by created_at ASC within optional time range. Use to reconstruct the chronological sequence of decisions and events. workspace_id is OPTIONAL. |
| session_timelineA | Show a flat timeline of the session: nodes created + navigation events. All merged and sorted by created_at ASC. Use to answer 'what happened in this session over time?'. workspace_id is OPTIONAL. |
| vector_searchA | Semantic vector search across all indexed layers (Entity + Chunk + Fact). Use to FIND RELEVANT KNOWLEDGE by meaning. Returns nodes sorted by relevance score. Then use graph_get_node or desktop_focus to expand the context. This is the PRIMARY entry point for the regression search pattern: 1. vector_search (meaning) -> 2. graph_get_node (context) -> 3. read files (specifics). CROSS-PROJECT: without workspace_id, searches ALL workspaces. Add workspace_id to narrow to one project. |
| vector_storeA | Store text with automatic vectorization into Qdrant. Use for quick ad-hoc storage of facts without creating a full graph node. For structured knowledge, prefer graph_add_node which creates both a graph node and a vector. workspace_id in metadata is OPTIONAL. |
| graph_searchA | Hybrid search: vector search + expanded subgraphs. Does vector_search first, then expands each result's subgraph. Returns both vector results and their graph contexts. Use when you need deep context around search results — faster than calling vector_search then graph_get_node for each result manually. CROSS-PROJECT: without workspace_id, searches ALL workspaces. Add workspace_id to narrow to one project. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Graph | Full session graph |
| Node | Specific node with context |
| Desktop | Current desktop viewport |
| Search | Search results |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mcasdfgf/mcp-roo-memory'
If you have feedback or need assistance with the MCP directory API, please join our Discord server