Kortexio Memory MCP server
Commit Sep 28, 2026Provides an agentic memory gateway that manages session wikis and history for AI agents using an OpenAI-compatible API.
Also known as Kortexio/ContextMemory, contextmemory
- Stars
- 8
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 1.0.0
- Last commit
- Sep 28, 2026
- License
- AGPL-3.0
What is Kortexio Memory MCP?
Kortexio Memory provides an agentic memory gateway that manages session wikis and history for AI agents using an OpenAI-compatible API.
Summary generated from the project's README
About Kortexio Memory MCP server
Kortexio Memory acts as an agentic memory gateway designed for developers building AI applications. It sits between your client and your LLM engine, such as llama.cpp, vLLM, or Ollama, to manage session history and knowledge. Instead of requiring clients to send entire conversation histories, this gateway handles the context by maintaining session wikis in markdown format. This approach allows users to open, edit, and audit memory as plain text files on disk or in Postgres rather than using opaque vector embeddings.
Users can deploy this via Docker for full self-hosting or use Kortexio Cloud for a managed experience. The system supports an agentic tool loop that includes a sandbox runtime for shell or python execution and an MCP catalog. It provides specialized tools like wiki_search and wiki_grep to manage shared knowledge. Developers can also implement guardrails, validators, and human-in-the-loop confirmation for sensitive actions, all while maintaining a standard OpenAI-compatible API interface.
What you can do with it
- 1Provide permanent memory for IDEsDevelopers can integrate the server into Cursor or Claude Desktop to allow agents to save and retrieve specific facts.
- 2Execute code in a secure environmentThe gateway can run an agentic loop that utilizes a sandbox for executing python or node code.
Written from the project's README. Every use case is checked against a quote from it.
How to install Kortexio Memory MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall Kortexio Memory MCP in Claude Code
$ claude mcp add --transport http contextmemory https://mcp.kortexio.io/%7BappId%7D/mcpInstall Kortexio Memory MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"contextmemory": {
"url": "https://mcp.kortexio.io/%7BappId%7D/mcp"
}
}
}Install Kortexio Memory MCP in VS Code
.vscode/mcp.json
{
"servers": {
"contextmemory": {
"type": "http",
"url": "https://mcp.kortexio.io/%7BappId%7D/mcp"
}
}
}Install Kortexio Memory MCP in VS Code CLI
$ code --add-mcp '{"name":"contextmemory","type":"http","url":"https://mcp.kortexio.io/%7BappId%7D/mcp"}'Install Kortexio Memory MCP in Codex
$ codex mcp add contextmemory --url https://mcp.kortexio.io/%7BappId%7D/mcpInstall Kortexio Memory MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.contextmemory] url = "https://mcp.kortexio.io/%7BappId%7D/mcp"
Install Kortexio Memory MCP in Gemini CLI
$ gemini mcp add -s user --transport http contextmemory https://mcp.kortexio.io/%7BappId%7D/mcpInstall Kortexio Memory MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"contextmemory": {
"url": "https://mcp.kortexio.io/%7BappId%7D/mcp",
"type": "http"
}
}
}Automated checks
Ran Nov 14, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work · What to fix for more points
- Source repository linked and reachablekortexio/contextmemory is public and reachablegithub.com/kortexio/contextmemory ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)Not checked
- Open source license (OSI)AGPL-3.0spdx.org/licenses/AGPL-3.0.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-09-28github.com/kortexio/contextmemory ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNot checked
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeEndpoint did not answer initialize: HTTP 400Finding
README
View on GitHubTry 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:
- Authenticates the tenant and attaches session wiki + history
- Runs an agentic tool loop when tools are enabled (wiki search, sandbox, MCP, …)
- Applies skills, guardrails, validators, and optional HITL before destructive actions
- Returns a standard OpenAI-shaped
chat.completionsresponse (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 client | Session markdown wiki + history inject; send only the new message |
| Memory you can open, edit, audit | Files on disk / Postgres — not opaque embeddings |
| Shared company/docs knowledge in chat | Global Wiki digests + on-demand wiki_search / wiki_grep (not classic RAG / embeddings) |
| Tools without a second orchestrator | Same /v1: sandbox + MCP + wiki tools |
| Safer agents | Skills & guardrail packs, validators, HITL [CONFIRM:id] |
| Cursor / Claude permanent memory fast | MCP wedge: memory_save / memory_search / memory_get |
| Any LLM per tenant | BYO /v1 — Ollama, vLLM, LM Studio, ExLlamaSharp, OpenAI, Azure-compatible, custom |
| Operate without a test client | Admin + Playground |
| Full control / zero ops | Docker self-host · Kortexio Cloud (cmk_live_…) |
Capabilities (summary)
Full detail: docs/architecture-and-features.md · Admin: docs/admin-ui.md · HITL: docs/hitl.md.
| Area | Highlights |
|---|---|
| Memory | Session wiki + rolling summary; history budgets; Global Wiki digests/FTS/revisions (asOf); no vector RAG |
| Agentic | Server-side tool loop; sandbox; MCP catalog; artifacts; subagents; validators; HITL; egress policy |
| Skills | Platform + per-app skills/guardrails (skill / always_on / requestable) |
| MCP | Outbound wedge (Cursor → CM) · inbound catalog (CM → your MCP servers) |
| Ops | Admin 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:
| Chat | You say | Agent should |
|---|---|---|
| A | Remember: staging DB is postgres-staging-01 |
memory_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 Cloud | Self-host (this repo) | |
|---|---|---|
| Best for | Zero ops | Full control (API + Admin + MCP + sandbox) |
| Key | cmk_live_… (no X-App-Id) |
cm_live_… + X-App-Id |
| Chat body | Identical OpenAI /v1 |
Identical OpenAI /v1 |
| LLM | BYO provider in dashboard | BYO engine in Admin / env |
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
| Doc | Topic |
|---|---|
| docs/compare.md | Why it exists · vs Mem0 / Zep / Letta · why we are not RAG |
| docs/architecture-and-features.md | Wiki, temporal facts, agentic, skills, LLM backends |
| docs/admin-ui.md | Admin UI map |
| docs/hitl.md | Human-in-the-loop |
| docs/api.md | HTTP API |
| docs/cloud.md · docs/self-host.md | Cloud · Docker / Compose |
| docs/ops.md | Ops & troubleshooting |
| docs/README.md | Full 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.
Kortexio Memory MCP questions
How do I add Kortexio Memory MCP to Claude Code?
Run claude mcp add --transport http contextmemory https://mcp.kortexio.io/%7BappId%7D/mcp in your terminal. Add --scope user to make it available in every project.
How do I add Kortexio Memory MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.