mcpField
E
Exocortex

Exocortex

本地服务
github.com/fuwasegu记忆与知识2412 周前更新

关于 Exocortex

Exocortex 是一个本地运行的 MCP 服务,为开发者提供跨项目的持久化记忆库,用于保存开发洞见、技术决策和排错记录。它面向使用 Cursor 等 AI 助手的开发者,与按仓库隔离存储的方式不同,所有项目共享同一知识库。

主要功能

  1. 01跨项目集中式知识存储
  2. 02基于语义的记忆检索
  3. 03记忆之间的链接与知识图谱
  4. 04按访问频率和时间调整召回排序
  5. 05内置 Web 仪表盘用于浏览与可视化
  6. 06数据与 AI 处理均在本地完成

适用场景

  1. 01在一个项目中记录的经验供其他项目复用
  2. 02检索过往的排错记录与技术决策
  3. 03审计知识库中的矛盾与过时信息

MCP 相关

Exocortex 本身是 MCP 服务,向 MCP 客户端(如 Cursor)暴露 exo_store_memory、exo_recall_memories、exo_curiosity_scan 等工具,供 AI 助手读写记忆。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"exocortex": {
"command": "uvx",
"args": [
"git+https://github.com/fuwasegu/exocortex"
]
}
}
}
启动命令uvx 'git+https://github.com/fuwasegu/exocortex'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypigit+https://github.com/fuwasegu/exocortex

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Exocortex 🧠

“拓展你的思维。”——你的外部大脑

点击这里查看日语版 (Japanese)


Exocortex 是一个本地 MCP(Model Context Protocol)服务,充当开发者的“第二大脑”。

它会持久保存开发心得、技术决策和问题排查记录,让 AI 助手(如 Cursor)在需要时检索与当前上下文相关的记忆。

为什么选择 Exocortex?

🌐 跨项目共享知识

与按仓库存储数据的工具(例如每个项目中的 .serena/)不同,Exocortex 使用单一的集中式知识库。

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!

优势:

  • 🔄 知识迁移:在一个项目中积累的经验,可立即用于其他项目
  • 🏷️ 基于标签的发现:通过共享标签,在不同项目间查找相关记忆
  • 📈 持续学习:你的外部大脑会随时间变得更聪明,而不是逐个项目分别成长
  • 🔍 模式识别:在整个开发历程中发现常见问题及其解决方案

功能

  • 🔒 完全本地化:所有数据和 AI 处理都保留在你的设备上,保障隐私。
  • 🔍 语义搜索:按含义而非仅按关键词查找记忆。
  • 🕸️ 知识图谱:通过显式链接维护项目、标签和记忆之间的关系。
  • 🔗 记忆链接:关联相关记忆,构建可遍历的知识网络。
  • ⚡ 轻量快速:使用嵌入式 KùzuDB 和轻量快速的 fastembed 模型。
  • 🧠 记忆动态机制:根据新近程度和频率智能召回——访问频繁的记忆会显示在更靠前的位置。
  • 🔥 挫折感索引:优先处理“痛苦的记忆”——调试噩梦会在搜索结果中获得更高权重。
  • 🖥️ Web 仪表板:采用精美的赛博朋克风格界面,可浏览记忆、监控运行状况并可视化知识图谱。

📚 使用指南

→ 查看完整使用指南

  • 包含使用场景的工具参考
  • 实用工作流
  • 提示词技巧
  • 实用技巧

安装

# Clone the repository
git clone https://github.com/fuwasegu/exocortex.git
cd exocortex

# Install dependencies with uv
uv sync

使用

启动服务
uv run exocortex
Cursor 配置

将以下内容添加到 ~/.cursor/mcp.json:

选项 1:直接从 GitHub 获取(推荐)

uvx 缓存过期后会自动更新。无需手动执行 git pull。

{
  "mcpServers": {
    "exocortex": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/fuwasegu/exocortex", "exocortex"]
    }
  }
}
选项 2:本地安装

适用于开发或自定义。

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

**注意:**无论选择哪种选项,你的数据都会存储在 ~/.exocortex/ 中并得到保留。

选项 3:代理模式(多个 Cursor 实例——推荐)

如果你想在多个 Cursor 窗口中同时使用 Exocortex,请采用此方法。

KùzuDB 不支持多个进程并发写入。使用 stdio 方式时,每个 Cursor 实例都会启动自己的服务进程,因此会发生锁冲突。代理模式会在后台自动启动一个 SSE 服务,每个 Cursor 实例都通过代理连接。

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

工作原理:

  1. 第一个 Cursor 启动 Exocortex → SSE 服务自动在后台启动
  2. 后续的 Cursor 连接到现有 SSE 服务
  3. 所有 Cursor 共用同一个服务 → 不会发生锁冲突!

**注意:**无需手动启动服务。如果服务尚未运行,--ensure-server 选项会自动启动它。

选项 4:手动管理服务(高级)

如果你更倾向于手动管理服务:

步骤 1:启动服务

# Start the server in a terminal (can also run in background)
uv run --directory /path/to/exocortex exocortex --transport sse --port 8765

步骤 2:配置 Cursor

{
  "mcpServers": {
    "exocortex": {
      "url": "http://127.0.0.1:8765/mcp/sse"
    }
  }
}

**额外福利:**通过此配置,你还可以访问位于 http://127.0.0.1:8765/ 的 Web 仪表板。

**提示:**若要在系统启动时自动启动服务,可在 macOS 上使用 launchd,或在 Linux 上使用 systemd。

MCP 工具

基础工具
工具描述
exo_ping健康检查,用于确认服务正在运行
exo_store_memory存储一条新记忆
exo_recall_memories通过语义搜索回忆相关记忆
exo_list_memories分页列出已存储的记忆
exo_get_memory按 ID 获取特定记忆
exo_delete_memory删除一条记忆
exo_get_stats获取已存储记忆的统计信息
高级工具
工具描述
exo_link_memories在两条记忆之间创建关联
exo_unlink_memories移除记忆之间的关联
exo_update_memory更新记忆的内容、标签或类型
exo_explore_related通过图遍历发现相关记忆
exo_get_memory_links获取一条记忆的所有出向关联
exo_trace_lineage🕰️ 追踪一条记忆的演变过程/脉络(时间推理)
exo_curiosity_scan🤔 扫描矛盾、过时信息和知识缺口
exo_analyze_knowledge分析知识库的健康状况并获取改进建议
exo_sleep触发后台整合(去重、孤立记忆恢复、自动关联)
exo_consolidate从记忆簇中提取抽象模式
exo_compact🧹 重建数据库以释放磁盘空间(参见压缩)
🤖 知识自主性

Exocortex 会自动改进你的知识图谱!存储一条记忆时,系统会:

  1. 建议关联:查找相似的现有记忆并建议建立关联
  2. 检测重复项:如果新记忆与现有记忆过于相似,则发出警告
  3. 识别模式:识别成功经验是否可能解决过去的失败
// Example exo_store_memory response with suggestions
{
  "success": true,
  "memory_id": "...",
  "suggested_links": [
    {
      "target_id": "existing-memory-id",
      "similarity": 0.78,
      "suggested_relation": "extends",
      "reason": "High semantic similarity; may be an application of this insight"
    }
  ],
  "insights": [
    {
      "type": "potential_duplicate",
      "message": "This memory is very similar (94%) to an existing one.",
      "suggested_action": "Use exo_update_memory instead"
    }
  ]
}
🧠 自动记忆整合

正如人类在睡眠中整合记忆一样,Exocortex 会提示 AI 在存储后进行整理。

exo_store_memory 成功后,响应中会包含 next_actions,引导 AI:

  1. 关联高相似度记忆(相似度 ≥ 0.7)
  2. 处理重复项和矛盾
  3. 定期运行健康检查(每 10 条记忆一次)
// Example response with next_actions
{
  "success": true,
  "memory_id": "abc123",
  "summary": "...",
  "consolidation_required": true,
  "consolidation_message": "🧠 Memory stored. 2 consolidation action(s) required.",
  "next_actions": [
    {
      "action": "link_memories",
      "priority": "high",
      "description": "Link to 2 related memories",
      "details": [
        {
          "call": "exo_link_memories",
          "args": {
            "source_id": "abc123",
            "target_id": "def456",
            "relation_type": "extends",
            "reason": "High semantic similarity"
          }
        }
      ]
    },
    {
      "action": "analyze_health",
      "priority": "low",
      "description": "Run knowledge base health check",
      "details": { "call": "exo_analyze_knowledge" }
    }
  ]
}

预期流程:

User: "Remember this insight"
    ↓
AI: exo_store_memory() → receives next_actions
    ↓
AI: exo_link_memories() for each high-priority action
    ↓
AI: "Stored and linked to 2 related memories."

⚠️ 重要限制:是否执行 next_actions 由 AI Agent 自行决定。尽管服务会通过 SERVER_INSTRUCTIONS 和 consolidation_required: true 强烈指示进行整合,但并不能保证 100% 执行。这是 MCP 协议的固有限制——服务只能提出建议,不能强制执行操作。实际上,大多数现代 AI 助手都会遵循这些指示,但在复杂对话中或与其他任务冲突时,可能会跳过这些操作。

exo_link_memories 的关系类型
类型描述
related大体相关的记忆
supersedes此记忆更新/替换目标记忆
contradicts此记忆与目标记忆矛盾
extends此记忆扩展/阐述目标记忆
depends_on此记忆依赖目标记忆
evolved_from此记忆由目标记忆演变而来(时间推理)
rejected_because此记忆因目标记忆而被拒绝
caused_by此记忆由目标记忆导致
使用 exo_trace_lineage 进行时间推理

追踪决策和知识的沿革。了解某事为何演变成现在的样子。

参数描述示例
memory_id起始记忆 ID"abc123"
direction"backward"(查找祖先)或 "forward"(查找后代)"backward"
relation_types要追踪的关系["evolved_from", "caused_by"]
max_depth最大遍历深度10(默认值)

示例:了解做出某项决策的原因

Current Architecture Decision
    │
    ▼ trace_lineage(direction="backward")
    │
    ├─ [depth 1] Previous Design (evolved_from)
    │      "Switched from monolith to microservices"
    │
    └─ [depth 2] Original Problem (caused_by)
           "Scaling issues with single database"

用法:

AI: exo_trace_lineage(memory_id="current-decision", direction="backward")
    ↓
Result: Shows the evolution chain of how the current decision came to be

使用场景:

  • 🔍 架构考古:「我们为什么选择这种方案?」
  • 🐛 根因分析:「是什么导致了这个错误?」
  • 📚 知识演变:「我们的理解发生了哪些变化?」
使用 exo_curiosity_scan 启动好奇心引擎

好奇心引擎会像好奇的人一样主动审视你的知识库。它会扫描不一致之处,查找未关联的记忆,并生成问题以提升知识质量。

检测内容:

类别描述示例
🔴 矛盾彼此冲突的记忆关于同一主题的成功与失败
📅 过时信息可能需要复核的旧知识已被取代但未建立关联的记忆
🔗 建议关联应当建立关联的未关联记忆共享标签、上下文或高度相似的记忆
❓ 问题针对你的知识提出的类人问题「这仍然有效吗?」

建议关联的检测策略:

策略置信度描述
共享标签高(0.7+)共享 2 个或更多标签的记忆可能相关
共享上下文中(0.6)相同项目 + 相同类型(洞见/决策)
语义相似度高(0.7+)向量相似度高(>70%)但尚未关联

输出示例:

{
  "contradictions": [
    {
      "memory_a_summary": "Caching approach works perfectly",
      "memory_b_summary": "Caching approach failed badly",
      "reason": "success vs failure on same topic",
      "confidence": 0.85
    }
  ],
  "suggested_links": [
    {
      "source_summary": "Database optimization technique",
      "target_summary": "Query performance improvement",
      "reason": "Share 3 tags: database, performance, optimization",
      "link_type": "tag_shared",
      "confidence": 0.8,
      "suggested_relation": "related"
    }
  ],
  "outdated_knowledge": [],
  "questions": [
    "🤔 These memories seem to contradict. Are both still valid?",
    "🔗 Found unlinked related memories. Link them to strengthen the graph?"
  ],
  "next_actions": [
    {
      "action": "create_link",
      "priority": "medium",
      "details": {
        "call": "exo_link_memories",
        "args": {
          "source_id": "...",
          "target_id": "...",
          "relation_type": "related"
        }
      }
    }
  ]
}

用法:

AI: exo_curiosity_scan(context_filter="my-project")
    ↓
Result: Report of issues, suggested links, and questions
    ↓
AI: Executes next_actions to create links
    ↓
Result: Knowledge graph becomes richer and more connected!

使用场景:

  • 🔍 知识审计:「我的知识中是否存在矛盾?」
  • 🔗 图谱扩充:「查找应当建立关联的未关联记忆」
  • 🧹 质量维护:「有哪些内容需要清理?」
  • 💡 发现:「我应该围绕自己的知识提出哪些问题?」
可选:增强型情感分析

如需在 exo_curiosity_scan 中更准确地检测矛盾,可以启用基于 BERT 的情感分析:

# Local installation
pip install exocortex[sentiment]
# or
uv sync --extra sentiment
// mcp.json with sentiment support
{
  "mcpServers": {
    "exocortex": {
      "command": "uvx",
      "args": [
        "--from", "exocortex[sentiment] @ git+https://github.com/fuwasegu/exocortex",
        "exocortex", "--mode", "proxy", "--ensure-server"
      ]
    }
  }
}

注意: 会增加约 2.5GB 的依赖项(PyTorch + Transformers)。默认的基于关键词的检测适用于大多数情况,并同时支持英语和日语。

环境变量

变量默认值描述
EXOCORTEX_DATA_DIR~/.exocortex数据库存储目录
EXOCORTEX_LOG_LEVELINFO日志级别(DEBUG/INFO/WARNING/ERROR)
EXOCORTEX_EMBEDDING_MODELsentence-transformers/all-MiniLM-L6-v2要使用的嵌入模型
EXOCORTEX_TRANSPORTstdio传输模式(stdio/sse/streamable-http)
EXOCORTEX_HOST127.0.0.1服务绑定地址(用于 HTTP 模式)
EXOCORTEX_PORT8765服务端口号(用于 HTTP 模式)

架构

Stdio 模式(默认)
┌─────────────────┐     stdio      ┌─────────────────────────────┐
│  AI Assistant   │ ◄──────────► │       Exocortex MCP         │
│   (Cursor)      │    MCP        │                             │
└─────────────────┘               │  ┌─────────┐  ┌──────────┐  │
                                  │  │ Tools   │  │ Embedding│  │
                                  │  │ Handler │  │  Engine  │  │
                                  │  └────┬────┘  └────┬─────┘  │
                                  │       │            │        │
                                  │  ┌────▼────────────▼─────┐  │
                                  │  │       KùzuDB          │  │
                                  │  │  (Graph + Vector)     │  │
                                  │  └────────────────────────┘  │
                                  └─────────────────────────────┘
HTTP/SSE 模式(多个实例)
┌─────────────────┐                
│  Cursor #1      │──────┐         
└─────────────────┘      │         
                         │  HTTP   ┌─────────────────────────────┐
┌─────────────────┐      ├────────►│       Exocortex MCP         │
│  Cursor #2      │──────┤   SSE   │      (Standalone)           │
└─────────────────┘      │         │                             │
                         │         │  ┌─────────┐  ┌──────────┐  │
┌─────────────────┐      │         │  │ Tools   │  │ Embedding│  │
│  Cursor #3      │──────┘         │  │ Handler │  │  Engine  │  │
└─────────────────┘                │  └────┬────┘  └────┬─────┘  │
                                   │       │            │        │
                                   │  ┌────▼────────────▼─────┐  │
                                   │  │       KùzuDB          │  │
                                   │  │  (Graph + Vector)     │  │
                                   │  └────────────────────────┘  │
                                   └─────────────────────────────┘
知识图谱结构
Memory ─── ORIGINATED_IN ──► Context (project)
Memory ─── TAGGED_WITH ────► Tag
Memory ─── RELATED_TO ─────► Memory (with relation type)
记忆动态

Exocortex 实现了一套受人类认知启发的记忆动态系统。记忆具有会影响搜索结果的“寿命”和“强度”:

混合评分公式:

Score = (S_vec × w_vec) + (S_recency × w_recency) + (S_freq × w_freq) + (S_frustration × w_frustration)
组成部分描述默认权重
S_vec向量相似度(语义相关性)0.50
S_recency新近度分数(指数衰减:e^(-λ×Δt))0.20
S_freq频率分数(对数刻度:log(1 + count))0.15
S_frustration挫折分数(提升痛苦记忆的权重)0.15

工作原理:

  • 每次回忆记忆时,都会更新其 last_accessed_at 和 access_count
  • 经常访问的记忆会获得更高的 S_freq 分数
  • 最近访问的记忆会获得更高的 S_recency 分数
  • 痛苦的记忆(调试噩梦)会获得更高的 S_frustration 分数,以提升优先级
  • 陈旧且未使用的记忆会自然衰减,但仍可搜索

这样就构建了一个智能回忆系统,其中:

  • 📈 重要记忆(经常使用)会始终保持突出
  • ⏰ 优先考虑近期上下文
  • 🔥 痛苦的记忆永远不会被遗忘——以避免重蹈覆辙
  • 🗃️ 陈旧记忆会逐渐淡去,但不会消失
挫折索引(躯体标记假说)

基于神经科学的发现:“痛苦的记忆在决策时会被优先考虑”,Exocortex 会自动提升调试困境和来之不易的解决方案的重要性。

用法:

# Explicitly mark as a painful memory
exo_store_memory(
    content="Spent 3 hours debugging KùzuDB lock issues. Root cause was...",
    context_name="exocortex",
    tags=["bug", "kuzu"],
    is_painful=True,  # ← Important!
    time_cost_hours=3.0,  # ← Record time spent
)

自动检测: 即使没有 is_painful,系统也会根据内容自动检测挫折程度:

  • 😓 低(0.2-0.4):“棘手”“奇怪”“变通方案”
  • 🔥 中(0.4-0.6):“终于”“漏洞”“数小时”
  • 🔥🔥 高(0.6-0.8):“卡住”“沮丧”
  • 🔥🔥🔥 极高(0.8-1.0):“噩梦”“不可能”“地狱”

搜索结果:

{
  "memories": [
    {
      "id": "...",
      "summary": "KùzuDB lock issue resolution",
      "frustration_score": 0.85,
      "pain_indicator": "🔥🔥🔥",   // ← Visual emphasis
      "time_cost_hours": 3.0
    }
  ]
}
睡眠/梦境机制

就像人类在睡眠中巩固记忆一样,Exocortex 有一个后台巩固进程,用于整理你的知识图谱:

┌─────────────────────────────────────────────────────────────┐
│                    exo_sleep() called                        │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│              Dream Worker (Detached Process)                 │
│  ┌──────────────────────────────────────────────────────┐   │
│  │ 1. Deduplication                                      │   │
│  │    - Find memories with similarity >= 95%             │   │
│  │    - Link newer → older with 'related' relation       │   │
│  ├──────────────────────────────────────────────────────┤   │
│  │ 2. Orphan Rescue                                      │   │
│  │    - Find memories with no tags and no links          │   │
│  │    - Link to most similar memory with 'related'       │   │
│  ├──────────────────────────────────────────────────────┤   │
│  │ 3. Auto-linking (High Confidence Only)                │   │
│  │    - Tag sharing: 3+ shared tags → 'related'          │   │
│  │    - Semantic: 80%+ similarity → 'related'            │   │
│  ├──────────────────────────────────────────────────────┤   │
│  │ 4. Pattern Mining (Phase 2)                           │   │
│  │    - Extract common patterns from memory clusters     │   │
│  └──────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

用法:

AI: "I've completed the task. Let me consolidate the knowledge base."
    ↓
AI: exo_sleep() → Worker spawns in background
    ↓
AI: "Consolidation process started. Your knowledge graph will be optimized."

主要功能:

  • 🔄 非阻塞:立即返回,巩固在后台运行
  • 🔐 安全:使用文件锁,避免与活动会话发生冲突
  • 📊 日志:启用 enable_logging=True 以跟踪进度

ℹ️ 代理模式:从 v1.1.0 起,exo_sleep 可在代理模式下运行。现在,服务会在启动工作进程前移交数据库锁,并在几秒钟无活动后自动释放该锁。

这只是尽力而为,并非保证:如果服务正忙于处理请求,它可能会在工作进程(该进程会先加载嵌入模型)获取锁之前重新获取数据库锁。如果工作进程报告锁超时,只需等系统空闲时重试即可。

压缩

如果你的数据库目录远大于其中的数据量——几千条记忆就占用数百 MB——说明它受到 v1.1.0 之前存在的写入路径漏洞影响,导致体积膨胀。每条写入查询都会执行完整的存储检查点,而每次检查点都会重写关系列数据块,却不回收页面(每个关系都会让文件增长约 386 KiB)。受影响严重的数据库最终甚至无法读取膨胀后的列:

RuntimeError: Buffer manager exception: Unable to allocate memory!

v1.1.0 修复了问题根源,但已经膨胀的数据库不会自行缩小。请重新构建:

# As a CLI (the server must not be running)
uvx --from git+https://github.com/fuwasegu/exocortex exocortex --mode compact

# Keep no backup (the pre-compaction copy is kept under ~/.exocortex/backups/ by default)
uvx --from git+https://github.com/fuwasegu/exocortex exocortex --mode compact --no-backup

或者让你的 AI 助手调用 exo_compact。

原始数据库会被移至 ~/.exocortex/backups/,只有在重建完全成功后才会被替换。已经无法读取的关系文本无法恢复——这些列会被报告并以空内容重新构建,以保留图谱的其余部分。

EXPORT DATABASE 不能替代压缩:对于恰好需要压缩的数据库,该命令会耗尽内存。

模式抽象(概念形成)

Exocortex 可以从具体记忆中提取抽象模式,构建分层知识结构:

┌─────────────────────────────────────────────────────────────────┐
│                         Pattern Layer                            │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ "Always use connection pooling for database connections"   │  │
│  │ Confidence: 0.85 | Instances: 5                           │  │
│  └───────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘
                    ▲ INSTANCE_OF    ▲ INSTANCE_OF
       ┌────────────┴────────────────┴────────────┐
┌──────┴──────┐  ┌───────────┐  ┌───────────┐  ┌──┴────────┐
│ Memory #1   │  │ Memory #2 │  │ Memory #3 │  │ Memory #4 │
│ PostgreSQL  │  │ MySQL     │  │ Redis     │  │ MongoDB   │
│ pooling fix │  │ pool size │  │ conn reuse│  │ pool leak │
└─────────────┘  └───────────┘  └───────────┘  └───────────┘
                     Memory Layer (Concrete)

用法:

AI: exo_consolidate(tag_filter="database") → Extracts patterns from database-related memories
    ↓
Result: "Created 2 patterns from 8 memories"

优势:

  • 🎯 泛化:发现适用于各种具体情况的规则
  • 🔍 元学习:在不同项目中找出有效和无效的方法
  • 📈 建立信心:随着关联的实例增多,模式会变得更可靠

Web 仪表板

Exocortex 提供了一个精美的 Web 仪表板,用于可视化和管理你的知识库。

访问仪表板
🚀 使用代理模式时(推荐)

无需运行终端命令! 使用 Cursor 配置代理模式(--mode proxy --ensure-server)时,SSE 服务会自动在后台运行。

只需在浏览器中打开:

http://127.0.0.1:8765/
Cursor starts
    ↓
Proxy mode → SSE server auto-starts (port 8765)
    ↓
├─ MCP: http://127.0.0.1:8765/mcp/sse ← Used by Cursor
└─ Dashboard: http://127.0.0.1:8765/ ← Just open in browser!
手动启动服务

如果你想在不使用 Cursor 的情况下查看仪表板:

# Start SSE server (includes dashboard)
uv run exocortex --transport sse --port 8765

URL:

  • 仪表板:http://127.0.0.1:8765/
  • MCP SSE:http://127.0.0.1:8765/mcp/sse
仪表板功能
标签页说明
概览统计数据、上下文、标签和知识库健康评分
记忆分页浏览、筛选和搜索记忆
梦境日志后台整合流程的实时流式日志
图谱显示记忆关联的可视化知识图谱
截图

概览标签页

  • 按类型统计记忆总数(洞见、成功、失败、决策、笔记)
  • 上下文和标签云,便于快速导航
  • 健康评分及改进建议

记忆标签页

  • 按类型筛选(洞见/成功/失败/决策/笔记)
  • 按上下文(项目)筛选
  • 点击任意记忆,即可查看完整详情和链接

图谱标签页

  • 交互式节点可视化
  • 按记忆类型使用不同颜色:
    • 🔵 青色:洞见
    • 🟠 橙色:决策
    • 🟢 绿色:成功
    • 🔴 红色:失败
  • 连线表示记忆之间的 RELATED_TO 关联
独立仪表板模式

你也可以在其他端口单独运行仪表板:

uv run exocortex --mode dashboard --dashboard-port 8766

**注意:**在独立模式下,仪表板连接到同一个数据库,但不包含 MCP 服务。

文档

开发

# Install dependencies
uv sync

# Run tests
uv run pytest

# Run with debug logging
EXOCORTEX_LOG_LEVEL=DEBUG uv run exocortex

许可证

MIT 许可证

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。