Cortex
Cortex is an MCP server that helps build and maintain a project Memory Bank for AI assistants, enabling reproducible, high-quality AI-driven development with a plan-do-commit loop.
README
Cortex - AI Memory & Context Management Server
Powered by Enlighter and Hyperskill.
Learn how to setup and use Memory Bank directly in Cursor: http://enlightby.ai/projects/37
What it's for
Cortex is an MCP server that helps build and maintain a project Memory Bank so AI assistants always have up-to-date context, plans, and rules.
It follows the Memory Bank pattern and keeps your .cortex/ files (roadmap, activeContext, progress, rules) in sync so agents can reliably run a plan → do → commit loop instead of ad-hoc edits.
Use Cortex when you want reproducible, high-quality AI-driven development that survives restarts, editor changes, and long-running projects.
How to use it
- Install prerequisites: Python 3.13+ and the Rust-based
rumdlMarkdown linter (installed via the Python dev environment; see Prerequisites). - Run the server: Add the config snippet from Running the Server to your
mcp.json(most users pick uvx). - Start with the plan → do → commit loop (see below).
In your IDE/assistant, ask the agent to orchestrate these commands:
- Start a session (get an orientation brief)
- Load task-specific context
- Follow the plan → do → commit loop
For new projects, use the initialize prompt to create the Memory Bank and .cortex/ structure.
Plan → do → commit
This is the daily workflow:
| Step | What happens |
|---|---|
| Plan | Create or refine plans in .cortex/plans/ and register them in roadmap.md. |
| Do | Apply the next PENDING roadmap step with tests and quality checks. |
| Commit | Run the full pre-commit pipeline and push only healthy commits. |
See docs/prompts for setup/migration prompt details.
If Cortex MCP cannot be reached in your environment, you can still do a read-only audit of the repo under the boundaries in AGENTS.md (MCP unavailable: read-only audit fallback) and the runbook MCP unavailable: read-only audits.
Features
- Memory Bank — structured project context that persists across sessions
- Session & Context — orientation briefs, token-budgeted context loading, end-of-session compaction
- Validation & Quality — schema validation, lint/format/type auto-fix, pre-commit checks
- Plans & Roadmap — plan lifecycle management tied to a roadmap
- DRY Linking — transclusion engine to embed content without duplication
- Shared Rules (Synapse) — cross-project rule and prompt sharing via Git submodule
- Refactoring — pattern analysis, suggestions, safe execution with rollback
- Token Optimization — context summarization and relevance scoring
Prerequisites
- Python 3.13+
- rumdl — Markdown linter/formatter installed into the Python environment (for example via
uv sync --extra dev, which adds therumdlCLI to.venv/bin/rumdl)
Running the Server
With uvx (recommended)
{
"mcpServers": {
"cortex": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/igrechuhin/Cortex.git",
"cortex"
]
}
}
}
First run / IDE timeouts: uvx --from git+… must resolve GitHub HEAD, download dependencies, and build the package into uv’s cache. That can take minutes on a cold machine or right after uv cache clean. Some MCP clients time out during the first Initialize if the server is not ready yet. Pre-warm once in a terminal (same command you use in mcp.json), then start or reload the MCP client:
uvx --from git+https://github.com/igrechuhin/Cortex.git cortex --help
Details: Getting started — Stable MCP setup, Troubleshooting — uvx cold start.
Project-level vs global config: Place the snippet in your project's .cursor/mcp.json (or .claude/mcp.json) rather than in the global IDE config. Project-level config lets Cortex resolve the correct workspace root immediately. A global config makes your IDE launch Cortex with CWD set to the home directory; Cortex falls back to a heuristic root-finder that can pick up stale .cortex/ state left in ~/ and show spurious setup prompts.
With Smithery
{
"mcpServers": {
"cortex": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@igrechuhin/cortex",
"--key",
"your_smithery_key"
]
}
}
}
With Docker
{
"mcpServers": {
"cortex": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"19283744/cortex:latest"
]
}
}
}
Manually
Clone the repository, then:
bash scripts/bootstrap.sh
Optionally initialize the Synapse submodule for shared rules:
git submodule update --init --recursive
Add to your mcp.json:
{
"mcpServers": {
"cortex": {
"command": "uv",
"args": ["run", "cortex"]
}
}
}
Developer commands
For local development, use these Make targets (after running bash scripts/bootstrap.sh once to create the virtualenv and install dependencies):
- Dependency setup / connectivity triage: If
uv syncor installs fail (proxy, SSL, or registry access), use Dependency and network verification to separate environment setup failures from actual test failures. make preflight: Probe PyPI orUV_INDEX_URLbeforeuv syncwhen triaging connectivity; see Dependency and network verification.make bootstrap: Runscripts/bootstrap.shto create or update the.venvand install all dependencies.make check: Non-mutating local gate: verify Black onsrc/andtests/, Ruff lint, Pyright, then the fast test suite. Does not rewrite files; usemake fixwhen checks fail for formatting or auto-fixable lint.make fix: Apply Black, Ruff import sorting (I), and Ruff--fixonsrc/andtests/(mutating).make check-ci-parity: Run a broader subset of the GitHub Actions Code Quality workflow viauv run(synapse format/lint scripts, type checks, file/function limits, rumdl, pytest with coverage). Requiresuvon yourPATH. Still not identical to CI: spell check (cspell), the eval suite, Codecov, and health-check upload steps run only in Actions—see Troubleshooting — Local make check vs CI.make test: Run the default suite in parallel (-n auto), skip@pytest.mark.slow, no coverage (timeouts). Usemake check-ci-parityfor the full pytest+coverage command that matches CI.make test-full: Run the full test suite (including slower tests) with a longer timeout.make commit-check: Run the same checks asmake checkbefore using/cortex/commitin Cursor for the full commit pipeline. With Cortex MCP connected, Phase A / Step 12 use the zero-arg tools documented in docs/api/tools.md.
Key Tools
<!-- cortex-published-inventory: tools=13 resources=6 prompts-max=4 -->
Cortex exposes 13 MCP tools, 6 static cortex:// resources, and up to 4 setup prompts (one always-on plus up to three configuration-dependent). Machine-readable inventory: docs/_generated/tool-inventory.json (must match cortex.discovery.published_inventory; CI enforces parity).
Published tools (canonical TOOL_CATEGORIES order — see docs/api/tools.md):
| Tool | Purpose |
|---|---|
manage_file() |
Memory bank read/write (zero-arg reads activeContext.md) |
plan() |
Plan create/list/get/complete/register/archive_completed |
update_memory_bank() |
Roadmap/progress/activeContext mutations |
session() |
Session start, orientation, compact |
run_quality_gate() |
Phase A quality checks and Step 12 final gate (zero-arg) |
autofix() |
Auto-fix lint/format/types/markdown (zero-arg) |
think() |
Reasoning scratchpad |
ingest() |
Stage raw external sources under memory-bank for /cortex/ingest |
run_docs_gate() |
Phase B docs validation (zero-arg) |
pipeline_handoff() |
Inter-phase state exchange (init/write/read/clear) |
write_artifact() |
Allowlisted skill JSON and Synapse rule artifact writes |
compress_memory_bank() |
Compress project CLAUDE.md and memory-bank markdown to reduce session tokens |
memory_wal() |
Memory-bank WAL read, anomaly hints, snapshot/restore |
Read-only discovery uses resources (not in this table): cortex://health/connection, cortex://structure, cortex://context, cortex://rules, cortex://validation, cortex://analysis. Quick “do not” guidance: AGENTS.md quick reference.
Prompts
Prompts are for setup and migration; for daily work use plan → do → commit tools.
| Situation | Prompt |
|---|---|
| New project, no Memory Bank | initialize |
Legacy Memory Bank under IDE .cursor/ (memory-bank/) |
migrate |
| Share rules across projects | setup_synapse |
| tiktoken cache missing (local encoding cache setup) | populate_tiktoken_cache |
Full prompt list: docs/prompts
Memory Bank Structure
The Memory Bank lives under .cortex/ and works with any editor, LLM, or agent.
.cortex/memory-bank/— core files: projectBrief, productContext, activeContext, systemPatterns, techContext, progress, roadmap.cortex/plans/— development plans linked to the roadmap.cortex/synapse/— shared rules and prompts (Git submodule).cortex/config/,.cortex/history/,.cortex/index.json— configuration, history, and metadata
Legacy layouts are migrated by the migrate prompt; see Getting started.
Documentation
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。