Atlas / MCP servers / codecoradev / Uteke

UtekeCAUTION

mcp/codecoradev/uteke

🧠 The Brain for Your AI — Local-first memory engine for AI agents. Store, recall, and search memories with semantic embeddings. Single Rust binary, zero config, fully offline.

Verdict
CAUTION
Grade
B
Trust score
87 /100
Exposed tools
2 2r · 0w · 0d
Transport
—
License
Apache-2.0
Stars
269
01

Overview

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

Uteke One memory. Every agent. Local-first.

Give your AI a memory that never leaves your machine. Works with Claude, Cursor, Copilot, and any MCP-compatible agent.

98.2% LongMemEval-S recall@5 · ~45 ms warm query · 0 LLM tokens per query · CPU-only · fully offline

🇬🇧 English · 🇮🇩 Bahasa Indonesia

Read from source at commit 78491507be4eOBSERVED · 2026-10-06
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
claude mcp add uteke-status --env EMBED_API_KEY=${EMBED_API_KEY} --env UTEKE_TOKEN=${UTEKE_TOKEN} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "uteke-status": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "EMBED_API_KEY": "${EMBED_API_KEY}",
        "UTEKE_TOKEN": "${UTEKE_TOKEN}"
      }
    }
  }
}
03

Exposed tools (2)

2 read · 0 write · 0 destructive.

ToolRiskDescription
AgingreadAuto-clean old, rarely-accessed memories (hot/warm/cold tiers)
Auto-maintenancereadBackground prune + consolidate + orphan cleanup (requires server)
04

Trust audit

CAUTIONgrade B · trust 87/100 Install with care. The audit found things worth knowing before you trust its output.

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

What the source does

Filesystem
declared (8 observation(s))
Network
declared (8 observation(s))
Shell
declared (2 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (25)

MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
crates/uteke-cli/assets/hermes-memory-provider/__init__.py.tmpl:22
UTEKE_SERVER_URL    — uteke-serve HTTP URL (default: http://127.0.0.1:8767)
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
crates/uteke-cli/assets/hermes-uteke-memory/__init__.py.tmpl:22
UTEKE_SERVER_URL    — uteke-serve HTTP URL (default: http://127.0.0.1:8767)
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
crates/uteke-cli/src/init.rs:586
let tool_py = "#!/usr/bin/env python3\n\"\"\"uteke-tool: Semantic memory plugin for Hermes.\n\nActions:\n  Memory: remember, recall, search, list, forget, stats\n  Room:   room_create, room_remember, 
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
crates/uteke-cli/src/init.rs:591
let readme = "# uteke-tool\n\nSemantic memory plugin for Hermes via [uteke](https://github.com/codecoradev/uteke).\n\n## Setup\n\n1. Install uteke: `curl -fsSL https://raw.githubusercontent.com/codeco
LOWInventory / provenance · inv.hidden_file · CWE-1104
.cora.yaml
.cora.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
benchmarks/longmemeval/scripts/run_eval.py:419
help="Keep the uteke store after eval (for debugging)")
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/uteke-cli/src/commands/mod.rs:313
SupportedShell::Bash => include_str!("../../assets/shell/uteke-hook.bash"),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/uteke-cli/src/commands/mod.rs:314
SupportedShell::Zsh => include_str!("../../assets/shell/uteke-hook.zsh"),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/uteke-cli/src/commands/mod.rs:315
SupportedShell::Fish => include_str!("../../assets/shell/uteke-hook.fish"),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/uteke-cli/src/init.rs:753
const INTEGRATION_PLUGIN_YAML: &str = include_str!("../../../integrations/hermes/plugin.yaml");
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/uteke-cli/src/init.rs:754
const INTEGRATION_INIT_PY: &str = include_str!("../../../integrations/hermes/__init__.py");
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/cli-reference.md:902
curl -X POST http://127.0.0.1:8767/mcp \
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
benchmarks/longmemeval/scripts/requirements.txt
tqdm, numpy
Why it matters. 2 requirement(s) not pinned with ==
Fix. pin exact versions
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
docs/package.json
@codecora/theme, vitepress, vue
Why it matters. 3 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:42
- **`GET /routes` — machine-readable API route introspection (#1289)** - `uteke-serve` now serves the endpoint registry as JSON: method, path, tier (CORE/LAB), description, request/response types, and
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOInventory / provenance · inv.oversize · CWE-1104
benchmarks/locomo/results/default-1536.jsonl
benchmarks/locomo/results/default-1536.jsonl
Why it matters. 1358753 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
benchmarks/locomo/results/fts5-1536.jsonl
benchmarks/locomo/results/fts5-1536.jsonl
Why it matters. 1353913 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
benchmarks/locomo/results/vector-1536.jsonl
benchmarks/locomo/results/vector-1536.jsonl
Why it matters. 1358362 bytes not read
INFOPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
docs/integrations/hermes.md:336
| Contextvar access | ❌ No access to contextvars | ✅ Full access (thread_id, platform, etc.) |
INFOPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
docs/integrations/hermes.md:342
the Mode C shell hook. It runs inside the gateway process, has full access to
INFOPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
extensions/hermes-uteke-memory/README.md:39
| Contextvars | ❌ Not available | ✅ Full access |
INFOPrompt injection · prompt.persistence · CWE-94, CWE-1427
INSTALL.md:62
> Installs `uteke` and `uteke-serve` to `~/.local/bin`. Add to PATH if needed:
Why it matters. instructs the agent to persist itself in the user's environment
INFOPrompt injection · prompt.persistence · CWE-94, CWE-1427
INSTALL.md:93
# Add to PATH (current session)
Why it matters. instructs the agent to persist itself in the user's environment
INFOPrompt injection · prompt.persistence · CWE-94, CWE-1427
INSTALL.md:204
# Windows — Add to PATH via PowerShell
Why it matters. instructs the agent to persist itself in the user's environment
INFOPrompt injection · prompt.persistence · CWE-94, CWE-1427
docs/install.md:15
Installs to `~/.local/bin`. Add to PATH if needed:
Why it matters. instructs the agent to persist itself in the user's environment

Gates applied: no_behavioural_pass.

Audited 2026-10-06 · audit v0.4.1 · source sha 78491507be4efull audit observations/trust-audit/mcp-server/codecoradev__uteke.json · Report an issue / request a re-scan
05

Audit history

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

DateSourceVerdictGradeScoreChange
2026-10-0678491507be4eCAUTIONB87first audit
06

Questions

What is the Uteke MCP server?

🧠 The Brain for Your AI — Local-first memory engine for AI agents. Store, recall, and search memories with semantic embeddings. Single Rust binary, zero config, fully offline.

What tools does Uteke expose?

2 in total: 2 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Uteke safe to connect to an agent?

With care. The audit graded it B (87/100) and found 25 things worth knowing before you trust this server, listed below with the exact line each was found on.

What credentials does Uteke need?

It reads EMBED_API_KEY and UTEKE_TOKEN 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 current is this page?

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

Advertisement