Atlas / MCP servers / gambletan / Cortex

CortexBLOCK

mcp/gambletan/cortex-9

Memory for AI agents that never leaves your device. Local-first, end-to-end-encrypted, zero-telemetry memory engine (Rust, MCP) — gives Claude & any MCP client persistent cross-session memory.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
—
Transport
stdio
License
MIT
Stars
35
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/gambletan/cortex/stargazers) [](https://opensource.org/licenses/MIT)

[🧠 Try Cortex in your browser](https://gambletan.github.io/cortex/) — zero install, 124KB WASM, runs entirely client-side. If Cortex helps your AI remember, [give it a ⭐](https://github.com/gambletan/cortex/stargazers) — it takes 1 second and helps others discover the project.

中文 | 日本語 | 한국어

Local memory for personal AI agents.

Private. Free. Local. — a memory engine for personal AI agents.

Your AI's memory archive lives on your device. Pure Rust. 3.8MB binary. The local engine needs no hosted service and collects zero telemetry. Optional encrypted sync uses your own cloud storage; optional Muse sharing sends only the excerpts you approve to Cortex Cloud and Meta. (On-device semantic search downloads a ~30MB model once on first use, then runs fully offline — or go 100% offline with CORTEX_NO_EMBEDDINGS=1. See Security & Privacy.)

What you get

  • 🔒 Private by default — memories live in a local SQLite file; sync and Muse sharing require explicit opt-in. Zero telemetry (CI-enforced).
  • 🧠 Real memory, not a text file — 4 tiers, multi-signal retrieval, self-correcting Bayesian beliefs, a cross-channel people graph.
  • ⚡ Sub-millisecond — 156μs ingest, 568μs search. ~528× faster than cloud memory APIs, with no network round-trip.
  • 🔌 Drop-in for any agent — one MCP server gives Claude Code / Claude Desktop (or any MCP client) persistent cross-session memory.
  • 🤝 Connect Meta Muse to chosen excerpts — your archive stays local. The optional service at https://cortex.alvinsclub.ai serves only your approved e
Read from source at commit 3bc7bcf5a959OBSERVED · 2026-10-08
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (oci)
claude mcp add cortex-http:2.4.0 -- docker run -i --rm ghcr.io/gambletan/cortex/cortex-http:2.4.0:None
03

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (7 observation(s))
Network
declared (12 observation(s))
Shell
declared (1 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (24)

HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
deploy/cortex-cloud/deploy.sh:10
SSH_KEY="${SSH_KEY:-$HOME/.ssh/id_ed25519_usa}"
Why it matters. touches a credential store
MEDIUMInventory / provenance · inv.binary · CWE-1104
$TMPDB4
$TMPDB4
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
$TMPDB4-shm
$TMPDB4-shm
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
$TMPDB4-wal
$TMPDB4-wal
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
bench/recall_multihop.py:164
(["Carmen leads the Beacon coalition.",
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
bench/recall_multihop.py:165
"The Beacon coalition lobbies the Granite assembly.",
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
cortex-mcp-server/src/gateway/cloud.rs:295
assert!(check_transport("http://127.0.0.1:8080").is_ok());
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
cortex-mcp-server/src/gateway/cloud.rs:298
assert!(check_transport("http://127.0.0.1.evil.example").is_err());
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
cortex-mcp-server/src/gateway/cloud.rs:314
let _ = s.write_all(b"HTTP/1.1 307 Temporary Redirect\r\nLocation: http://127.0.0.1:1/x\r\nContent-Length: 0\r\n\r\n");
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
cortex-mcp-server/src/gateway/cloud.rs:317
let dev = Device::new(Device::generate_secret(), Some("AAAAAAAAAAAAAAAAAAAAAA".into()), format!("http://127.0.0.1:{port}"));
LOWInventory / provenance · inv.binary · CWE-1104
docs/pkg/cortex_wasm_bg.wasm
cortex_wasm_bg.wasm
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWNetwork egress · net.beacon_words · CWE-200, CWE-319
cortex-core/tests/test_privacy_sync.rs:168
"the beacon memory travels",
LOWNetwork egress · net.beacon_words · CWE-200, CWE-319
cortex-core/tests/test_privacy_sync.rs:184
.retrieve_with_namespace("beacon memory", 5, None, None, None, None)
LOWNetwork egress · net.beacon_words · CWE-200, CWE-319
cortex-core/tests/test_privacy_sync.rs:193
.retrieve_with_namespace("beacon memory", 5, None, None, None, None)
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
cortex-cloud/tests/cloud_acceptance.rs:171
format!("http://127.0.0.1:{}", self.port)
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
obsidian-plugin/package.json
esbuild, typescript
Why it matters. 2 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
openclaw-plugin/package.json
@types/node, typescript
Why it matters. 2 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
QUICK_START_PROMPT.md:11
Run: curl -fsSL https://raw.githubusercontent.com/gambletan/cortex/main/install.sh | bash -s -- --ide claude
LOWSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
README.md:235
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
LOWSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
README.md:782
curl -fsSL https://raw.githubusercontent.com/gambletan/cortex/main/install.sh | bash
LOWSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
README_CN.md:197
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
LOWSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
README_CN.md:580
curl -fsSL https://raw.githubusercontent.com/gambletan/cortex/main/install.sh | bash
LOWInventory / provenance · mcp.no_tools_extracted · CWE-1104
server.json
Why it matters. the tool list is enumerated at runtime by tools/list, not declared in source
Fix. the page says so rather than showing an empty table
INFOInventory / provenance · inv.oversize · CWE-1104
bench/data/locomo10.json
bench/data/locomo10.json
Why it matters. 2805274 bytes not read

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha 3bc7bcf5a959full audit observations/trust-audit/mcp-server/gambletan__cortex-9.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-083bc7bcf5a959BLOCKD69first audit
05

Questions

What is the Cortex MCP server?

Memory for AI agents that never leaves your device. Local-first, end-to-end-encrypted, zero-telemetry memory engine (Rust, MCP) — gives Claude & any MCP client persistent cross-session memory.

Is Cortex safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.

What credentials does Cortex need?

It reads ANTHROPIC_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Cortex run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @cortex-ai-memory/cortex-memory at 2.4.0.

How current is this page?

The grade is for one exact copy of the source (3bc7bcf5a959), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement