Kortexio Memory

Registre officiel IA et agents

Hosted ambient memory for AI agents. Retrieve context and save notes via MCP tools with OAuth.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http kortexio-memory 'https://mcp.kortexio.io/{appId}/mcp'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "kortexio-memory": {
            "type": "http",
            "url": "https://mcp.kortexio.io/{appId}/mcp"
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Try it in three commands
  2. What is ContextMemory?
  3. What it gives developers
  4. Capabilities (summary)
  5. More ways to run
  6. Documentation & support
  7. License

Try it (3 commands) · Engines · Docs · vs Mem0 / Zep / Letta

Self-hosted memory gateway for your llama.cpp / vLLM server.

Put one OpenAI-compatible /v1 URL in front of your engine. Your client sends only the new message; the gateway keeps session memory as markdown you can open, edit, and diff. No vector DB, no client rewrite.


Try it in three commands

git clone https://github.com/Kortexio/ContextMemory.git && cd ContextMemory
docker compose -f docker-compose.yml -f docker-compose.llamacpp.yml up --build -d   # CPU; GPU: docker-compose.vllm.yml
./scripts/aha-chat.sh                                                             # Windows: .\scripts\aha-chat.ps1

aha-chat sends two requests in the same session. The second one carries only the new question:

==> Turn 1: "Remember this for later: our staging database host is postgres-staging-01."
==> Turn 2: "What is our staging database host?"   (no history in the request body)
AHA OK — the client sent no history; the gateway remembered 'postgres-staging-01'.

The same check runs in CI against a real llama-server on every push (e2e-llamacpp). First start downloads a ~2 GB GGUF; pick another model with LLAMACPP_HF_MODEL (Engines). Admin UI: http://localhost:5200.


What is ContextMemory?

ContextMemory is the open-source agentic memory gateway behind Kortexio.

Your app (or Cursor/Claude) keeps talking to a normal chat API. The gateway:

  1. Authenticates the tenant and attaches session wiki + history
  2. Runs an agentic tool loop when tools are enabled (wiki search, sandbox, MCP, …)
  3. Applies skills, guardrails, validators, and optional HITL before destructive actions
  4. Returns a standard OpenAI-shaped chat.completions response (streaming supported)
Your client (OpenAI SDK / Cursor MCP / curl)
        │
        ▼  POST /v1/chat/completions
┌────────────────────────────────────────────┐
│  ContextMemory (.NET 9)                    │
│  Auth · session wiki · Global Wiki tool    │
│  Agentic loop · skills · guardrails · HITL │
│  LLM backend (per app — BYO engine)        │
└───────┬──────────────────┬─────────────────┘
        ▼                  ▼
 sandbox-runtime      mcp-runtime / MCP servers
 (shell/python/node)  (HTTP + stdio, OAuth)
 or Azure ACA sessions

Honest boundaries: this is a gateway + server-side harness, not a client agent framework (LangGraph/CrewAI) and not an agent OS (Letta). You keep your OpenAI client; the loop runs on the server.

LLM engines: ContextMemory does not ship or lock to one inference stack. Per tenant you pick any OpenAI-compatible /v1 host — Ollama, vLLM, LM Studio, ExLlamaSharp, OpenAI, Azure-compatible, LiteLLM, custom. Compose ships llama.cpp and vLLM overrides; swap engines per app in Admin → Config → LLM.

How we compare (Mem0 / Zep / Letta / why we are not RAG): docs/compare.md.


What it gives developers

You need…ContextMemory provides…
Memory that survives turns without rewriting your clientSession markdown wiki + history inject; send only the new message
Memory you can open, edit, auditFiles on disk / Postgres — not opaque embeddings
Shared company/docs knowledge in chatGlobal Wiki digests + on-demand wiki_search / wiki_grep (not classic RAG / embeddings)
Tools without a second orchestratorSame /v1: sandbox + MCP + wiki tools
Safer agentsSkills & guardrail packs, validators, HITL [CONFIRM:id]
Cursor / Claude permanent memory fastMCP wedge: memory_save / memory_search / memory_get
Any LLM per tenantBYO /v1 — Ollama, vLLM, LM Studio, ExLlamaSharp, OpenAI, Azure-compatible, custom
Operate without a test clientAdmin + Playground
Full control / zero opsDocker self-host · Kortexio Cloud (cmk_live_…)

Capabilities (summary)

Full detail: docs/architecture-and-features.md · Admin: docs/admin-ui.md · HITL: docs/hitl.md.

AreaHighlights
MemorySession wiki + rolling summary; history budgets; Global Wiki digests/FTS/revisions (asOf); no vector RAG
AgenticServer-side tool loop; sandbox; MCP catalog; artifacts; subagents; validators; HITL; egress policy
SkillsPlatform + per-app skills/guardrails (skill / always_on / requestable)
MCPOutbound wedge (Cursor → CM) · inbound catalog (CM → your MCP servers)
OpsAdmin UI · File or Postgres · Prometheus /metrics · Compose (API + Admin + mcp-runtime + sandbox)

More ways to run

The gateway talks OpenAI-compatible /v1 to the engine (and Ollama native /api/chat when you need num_ctx). Change the engine anytime in Admin → Config → LLM or PATCH /admin/apps/{id}/config.

Engine already running (llama-server, vLLM, LM Studio, …) — API image only
docker run --rm -p 5100:8080 \
  -v contextmemory-data:/app/data \
  -e ContextMemory__MasterKey=cm_master_dev_key_change_me \
  -e ContextMemory__Apps__demo-dev__ApiKey=cm_live_dev_key_change_me \
  -e ContextMemory__Apps__demo-dev__LlmBackend=openai-compatible \
  -e ContextMemory__Apps__demo-dev__LlmModel=local-model \
  -e ContextMemory__Apps__demo-dev__LlmEndpoint=http://host.docker.internal:8080 \
  --add-host=host.docker.internal:host-gateway \
  ghcr.io/kortexio/contextmemory:latest

Host-level default for all apps: ContextMemory__LlmEndpoint. Ollama on the host works too (ContextMemory__LlmEndpoint=http://host.docker.internal:11434). Engine flags that matter (llama.cpp --jinja, vLLM tool parser): Engines. Full stack (API + Admin + MCP + sandbox): docs/self-host.md.

Cursor / Claude memory (MCP)
git clone https://github.com/Kortexio/ContextMemory.git
cd ContextMemory/mcp-server && npm install && node print-mcp-config.mjs

Paste into Cursor → Settings → MCP (or ~/.cursor/mcp.json). Same snippet works for Claude Desktop. Details: mcp-server/README.md.

Then, in two separate chats:

ChatYou sayAgent should
ARemember: staging DB is postgres-staging-01memory_save
B (new)What is our staging DB?memory_search + answer

Same flow without Cursor (wiki API, no LLM): ./scripts/aha-demo.sh or .\scripts\aha-demo.ps1.

No GPU, no ops: Kortexio Cloud
Kortexio CloudSelf-host (this repo)
Best forZero opsFull control (API + Admin + MCP + sandbox)
Keycmk_live_… (no X-App-Id)cm_live_… + X-App-Id
Chat bodyIdentical OpenAI /v1Identical OpenAI /v1
LLMBYO provider in dashboardBYO engine in Admin / env

Guides: Cloud · Self-host

Chat drop-in
curl -X POST http://localhost:5100/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-App-Id: demo-dev" -H "X-User-Id: user-42" -H "X-Session-Id: sess-abc" \
  -H "Authorization: Bearer cm_live_dev_key_change_me" \
  -d '{"model":"local-model","messages":[{"role":"user","content":"Hello"}]}'

Thin header helpers (not full SDKs): @kortexio/contextmemory · kortexio-contextmemory


Documentation & support

DocTopic
docs/compare.mdWhy it exists · vs Mem0 / Zep / Letta · why we are not RAG
docs/architecture-and-features.mdWiki, temporal facts, agentic, skills, LLM backends
docs/admin-ui.mdAdmin UI map
docs/hitl.mdHuman-in-the-loop
docs/api.mdHTTP API
docs/cloud.md · docs/self-host.mdCloud · Docker / Compose
docs/ops.mdOps & troubleshooting
docs/README.mdFull docs index

Website: kortexio.io · Email: hello@kortexio.io


License

AGPL-3.0 for this open-source core — self-host it freely, including commercially. Need to embed it in a closed-source product without AGPL obligations? Use Kortexio Cloud or a commercial license. See docs/license-and-support.md.

Questions fréquentes

Qu'est-ce que Kortexio Memory ?

Hosted ambient memory for AI agents. Retrieve context and save notes via MCP tools with OAuth.

Comment installer Kortexio Memory ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http kortexio-memory 'https://mcp.kortexio.io/{appId}/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Kortexio Memory ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

Kortexio Memory est-il open source ?

Oui. Son code est sur GitHub sous licence AGPL-3.0.

Qui maintient Kortexio Memory ?

Il est publié par Kortexio. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.