Exocortex

by fuwasegu

267 downloads Not rated yet
GitHub

About

xocortex — an MCP server that gives your AI persistent memory across ALL your projects.

Explore

- 🔒 Fully Local: All data and AI processing stays on your machine. Privacy guaranteed.
- 🔍 Semantic Search: Find memories by meaning, not just keywords.
- 🕸️ Knowledge Graph: Maintains relationships between projects, tags, and memories with explicit links.
- 🔗 Memory Links: Connect related memories to build a traversable knowledge network.
- ⚡ Lightweight & Fast: Uses embedded KùzuDB and lightweight fastembed models.
- 🧠 Memory Dynamics: Smart recall based on recency and frequency—frequently accessed memories surface higher.
- 🔥 Frustration Indexing: Prioritize "painful memories"—debugging nightmares get boosted in search results.
- 🖥️ Web Dashboard: Beautiful cyberpunk-style UI for browsing memories, monitoring health, and visualizing the knowledge graph.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Exocortex
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository


→ See the full usage guide

- Tool reference with use cases
- Practical workflows
- Prompting tips
- Tips & Tricks

uv sync

Add the following to your ~/.cursor/mcp.json:

For development or customization.

{
  "mcpServers": {
    "exocortex": {
      "command": "uv",
      "args": ["--directory", "/path/to/exocortex", "run", "exocortex"]
    }
  }
}

> Note: Your data is stored in ~/.exocortex/ and is preserved regardless of which option you choose.

pip install exocortex[sentiment]

| Variable | Default | Description |
|----------|---------|-------------|
| EXOCORTEX_DATA_DIR | ~/.exocortex | Database storage directory |
| EXOCORTEX_LOG_LEVEL | INFO | Logging level (DEBUG/INFO/WARNING/ERROR) |
| EXOCORTEX_EMBEDDING_MODEL | sentence-transformers/all-MiniLM-L6-v2 | Embedding model to use |
| EXOCORTEX_TRANSPORT | stdio | Transport mode (stdio/sse/streamable-http) |
| EXOCORTEX_HOST | 127.0.0.1 | Server bind address (for HTTP modes) |
| EXOCORTEX_PORT | 8765 | Server port number (for HTTP modes) |

uv sync

exo_ping

Health check to verify server is running

exo_store_memory

Store a new memory

exo_recall_memories

Recall relevant memories via semantic search

exo_list_memories

List stored memories with pagination

exo_get_memory

Get a specific memory by ID

exo_delete_memory

Delete a memory

exo_get_stats

Get statistics about stored memories

exo_link_memories

Create a link between two memories

exo_unlink_memories

Remove a link between memories

exo_update_memory

Update content, tags, or type of a memory

exo_explore_related

Discover related memories via graph traversal

exo_get_memory_links

Get all outgoing links from a memory

exo_trace_lineage

🕰️ Trace the evolution/lineage of a memory (temporal reasoning)

exo_curiosity_scan

🤔 Scan for contradictions, outdated info, and knowledge gaps

exo_analyze_knowledge

Analyze knowledge base health and get improvement suggestions

exo_sleep

Trigger background consolidation (deduplication, orphan rescue, auto-linking)

exo_consolidate

Extract abstract patterns from memory clusters

| Tool | Description |
|------|-------------|
| exo_ping | Health check to verify server is running |
| exo_store_memory | Store a new memory |
| exo_recall_memories | Recall relevant memories via semantic search |
| exo_list_memories | List stored memories with pagination |
| exo_get_memory | Get a specific memory by ID |
| exo_delete_memory | Delete a memory |
| exo_get_stats | Get statistics about stored memories |

| Tool | Description |
|------|-------------|
| exo_link_memories | Create a link between two memories |
| exo_unlink_memories | Remove a link between memories |
| exo_update_memory | Update content, tags, or type of a memory |
| exo_explore_related | Discover related memories via graph traversal |
| exo_get_memory_links | Get all outgoing links from a memory |
| exo_trace_lineage | 🕰️ Trace the evolution/lineage of a memory (temporal reasoning) |
| exo_curiosity_scan | 🤔 Scan for contradictions, outdated info, and knowledge gaps |
| exo_analyze_knowledge | Analyze knowledge base health and get improvement suggestions |
| exo_sleep | Trigger background consolidation (deduplication, orphan rescue, auto-linking) |
| exo_consolidate | Extract abstract patterns from memory clusters |

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "exocortex": {
            "exocortex": {
                "command": "uvx",
                "args": [
                    "--from",
                    "git+https://github.com/fuwasegu/exocortex",
                    "exocortex",
                    "--mode",
                    "proxy",
                    "--ensure-server"
                ]
            }
        }
    }
}

McpServers

{
    "exocortex": {
        "command": "uvx",
        "args": [
            "--from",
            "git+https://github.com/fuwasegu/exocortex",
            "exocortex",
            "--mode",
            "proxy",
            "--ensure-server"
        ]
    }
}

> "Extend your mind." - Your External Brain

日本語版はこちら (Japanese)

---

Exocortex is a local MCP (Model Context Protocol) server that acts as a developer's "second brain."

It persists development insights, technical decisions, and troubleshooting records, allowing AI assistants (like Cursor) to retrieve contextually relevant memories when needed.

Why Exocortex?

🌐 Cross-Project Knowledge Sharing

Unlike tools that store data per-repository (e.g., .serena/ in each project), Exocortex uses a single, centralized knowledge store.

Traditional approach (per-repository):
project-A/.serena/    ← isolated knowledge
project-B/.serena/    ← isolated knowledge
project-C/.serena/    ← isolated knowledge

Exocortex approach (centralized):
~/.exocortex/data/ ← shared knowledge across ALL projects
├── Insights from project-A
├── Insights from project-B
└── Insights from project-C
↓
Cross-project learning!

Benefits:
- 🔄 Knowledge Transfer: Lessons learned in one project are immediately available in others
- 🏷️ Tag-based Discovery: Find related memories across projects via shared tags
- 📈 Cumulative Learning: Your external brain grows smarter over time, not per project
- 🔍 Pattern Recognition: Discover common problems and solutions across your entire development history

Features

- 🔒 Fully Local: All data and AI processing stays on your machine. Privacy guaranteed.
- 🔍 Semantic Search: Find memories by meaning, not just keywords.
- 🕸️ Knowledge Graph: Maintains relationships between projects, tags, and memories with explicit links.
- 🔗 Memory Links: Connect related memories to build a traversable knowledge network.
- ⚡ Lightweight & Fast: Uses embedded KùzuDB and lightweight fastembed models.
- 🧠 Memory Dynamics: Smart recall based on recency and frequency—frequently accessed memories surface higher.
- 🔥 Frustration Indexing: Prioritize "painful memories"—debugging nightmares get boosted in search results.
- 🖥️ Web Dashboard: Beautiful cyberpunk-style UI for browsing memories, monitoring health, and visualizing the knowledge graph.

📚 Usage Guide

→ See the full usage guide

- Tool reference with use cases
- Practical workflows
- Prompting tips
- Tips & Tricks

Installation

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.