Overview

NovaCortex is a self-hosted, privacy-first, MCP-native memory layer for AI agents — typed memories, semantic search, and a relation graph on your own infrastructure.

NovaCortex is a self-hostable, graph-native memory layer for AI agents. It gives your agents a persistent, queryable memory: typed memories, semantic vector search, a typed relation graph, and a knowledge base — all running on your own infrastructure. You can use it from Claude / Cursor (over MCP), the REST API, the CLI, or the TypeScript and Python SDKs.

The open-source core is licensed under Apache-2.0 and runs fully self-hosted with no key.

Why NovaCortex

NovaCortex is built around three things most agent-memory tools give up:

  • Privacy-first. All memory data is stored and served on your own infrastructure (SurrealDB + Qdrant + Redis). Semantic search is off by default — it only sends text to an embedding provider when you explicitly set OPENAI_API_KEY. Point OPENAI_BASE_URL at a local OpenAI-compatible server (Ollama, LiteLLM) to keep embeddings local too.
  • Self-host. One docker compose brings up the whole stack. Data is bind-mounted under a directory you control, so it survives container and image rebuilds. No managed service, no external dependency required.
  • Portable. The whole graph exports and imports as a Portable Memory Format (PMF) file — JSON, binary MessagePack (~60% smaller), or AES-256-GCM encrypted — with Merkle + content-hash integrity. No lock-in.

What it does

  • Memory types — episodic, semantic, procedural, and working memories, with salience and decay.
  • Semantic search — natural-language queries are embedded server-side and matched via a Qdrant vector index, with a transparent substring fallback when embeddings are off.
  • Relation graph — typed edges (causes, supports, contradicts, supersedes, same_as, …). Your agent asserts the links; NovaCortex stores and serves the graph.
  • Knowledge base — drop in documents and get auto-generated, searchable semantic memories.
  • Namespaces — isolate memory per agent or project.
  • Ops-ready — scope-gated tokens, audit log, webhooks, and opt-in OpenTelemetry traces.

Architecture

A NovaCortex deployment is four application surfaces over three storage backends:

ComponentRoleDefault port
APIREST API + Swagger UI; the authority for all reads/writes3001
WebNext.js dashboard; proxies the browser to the API3000
MCP serverNative MCP transport for Claude / Cursor (15 tools)—
CLI / SDKsnovacortex CLI, @novacortex/sdk (TS), novacortex (Python)—
BackendRole
SurrealDBPrimary store — memories, relations, tokens, metadata
QdrantVector index for semantic search
RedisSession and rate-limit cache

The API, MCP server, and CLI/SDKs all talk to the same SurrealDB namespace and Qdrant collection, so a memory written through one interface is immediately visible to the others. The Web UI never talks to the database directly — it proxies through the API.

 Claude / Cursor ──MCP──┐
 CLI / SDKs ──REST──────┤
 Browser ──> Web UI ────┼──> API ──┬──> SurrealDB  (memories, relations)
                        │          ├──> Qdrant     (vectors)
                        │          └──> Redis       (sessions, rate limits)
                        │
                        └──> Embeddings (OpenAI-compatible, optional)

Who it's for

  • Agent developers who want persistent, queryable memory for Claude, Cursor, or any MCP client without sending data to a third-party SaaS.
  • Self-hosters running on Unraid or any Docker host who want full control over where memory lives and how it is backed up.
  • Teams with privacy or compliance requirements that rule out a managed memory service and need on-prem storage with local embeddings.

Licensing & tiers

The open-source core is Apache-2.0. The free tier runs fully self-hosted with no key. Pro and Enterprise unlock more namespaces and federation via an ed25519-signed offline license key — the build embeds only the public key, so keys are verified offline and cannot be forged.

TierNamespacesNotable
Unregistered1No key
Free (self-host)3Full engine, MCP / REST / SDK / CLI, PMF export/import
Pro10Namespace federation, higher rate limits
EnterpriseUnlimitedSLA, onboarding & migration help

Next steps

  • Quickstart — get the full stack running in about 5 minutes.
  • Installation — Docker requirements, compose variants, volumes, ports, and version upgrades.
  • Configuration — every environment variable, with meanings and defaults.