AI platforms

Claude Code

Wire the prom.codes MCP servers — context engine, agent memory, and token saver — into Claude Code. This is the canonical setup.

Claude Code is the reference MCP host. Install all three servers with claude mcp add:

claude mcp add context --env PROMETHEUS_API_KEY=prom_live_… -- npx -y @prom.codes/context-mcp@latest
claude mcp add memory  --env PROMETHEUS_API_KEY=prom_live_… -- npx -y @prom.codes/memory-mcp@latest
claude mcp add saver -- npx -y @prom.codes/saver@latest

The -- separator is required before the command. Repeat --env KEY=val per variable. The context and memory servers need your PROMETHEUS_API_KEY; the saver needs no key.

Get a key

Both context (managed code embeddings via the api.prom.codes proxy) and memory are unlocked by one prom_live_… key. Sign in at app.prom.codes/app/api-keys → mint a key, then paste it into the commands above.

Hardened npm needs nothing special

Since context-mcp@0.19.0 / memory-mcp@0.15.0 the SQLite native module ships prebuilt, in per-platform packages npm selects and copies. No install script runs, so ignore-scripts=true (corporate hardening) and npm v12's opt-in scripts are simply not in the way — the commands above work as-is, with your hardening left on. Background: Install on hardened npm.

Updating

Since context-mcp@0.13.0, global installs auto-update by default: on boot, if a newer version is published, the server hands it to a detached updater that installs only once every prom window has closed (it can never corrupt a running install). Opt out with PROMETHEUS_AUTO_UPDATE=0. You can also ask the agent to run update_servers (≥ 0.10.0) any time — it checks versions, finds every running prom server, and runs the same updater. Details in the Local dashboard & updates guide.

Two rules of thumb whichever way you update:

  • Close your Claude Code / VS Code windows first — a running server locks its native .node files on Windows, and a live update can abort half-way with EBUSY and corrupt the install.
  • Reconnect (/mcp) or reload the window afterwards so the client picks up the new build.

A prefix install is not reached by auto-update — you update it by re-running its install line.

Run setup for the saver

The saver builds no index and needs no key. Once it's registered, ask the agent to run setup once per workspace — see Token Saver.

Optional: .mcp.json

Instead of the CLI you can drop a committable .mcp.json at the project root (this is not claude_desktop_config.json):

{
  "mcpServers": {
    "context": { "type": "stdio", "command": "npx", "args": ["-y", "@prom.codes/context-mcp@latest"], "env": { "PROMETHEUS_API_KEY": "prom_live_…" } },
    "memory":  { "type": "stdio", "command": "npx", "args": ["-y", "@prom.codes/memory-mcp@latest"],  "env": { "PROMETHEUS_API_KEY": "prom_live_…" } },
    "saver":   { "type": "stdio", "command": "npx", "args": ["-y", "@prom.codes/saver@latest"] }
  }
}

Cursor uses .cursor/mcp.json and VS Code uses .vscode/mcp.json — same JSON shape.

Scopes

claude mcp add writes to local scope by default (just you). Add --scope project to write the committable .mcp.json above (shared with the team), or --scope user to enable the server across all your projects.

Manage servers with claude mcp list, claude mcp get <name>, claude mcp remove <name>, or /mcp inside a session.

No workspace root needed

PROMETHEUS_WORKSPACE_ROOT is auto-detected and optional — Claude Code passes the open project automatically. Set it only to point a server at a different folder. The databases are auto-defaulted too: the code index lives at ~/.prometheus/<workspace-hash>.db and memory at ~/.prometheus/memory.db; PROMETHEUS_DB_PATH / PROMETHEUS_MEMORY_DB_PATH are optional overrides.

What gets indexed (and how to scope it)

The context server indexes only the folder under its resolved workspace root — it never climbs to the parent, so the root itself acts as your allowlist. Three guarantees keep indexing tight:

  • It won't crawl your home folder — or your whole code directory. Open a fresh terminal or window with no project and the workspace falls back to the current directory — often your home folder (~, C:\Users\you) or the parent folder where all your repos live (~/Coding, …). The server refuses to auto-index the home directory, a filesystem/drive root, or a folder that merely contains many projects: it logs a hint and leaves the index empty until you open one real project. So the classic "I opened a terminal in my user/code root and it started slurping everything" never happens. Run index_status to see the resolved root and why indexing was skipped. (A real project or monorepo — anything with a .git, package.json, go.mod, … at its root — is always indexed, however large. To force-index an unconventional root anyway, set PROMETHEUS_INDEX_ROOT_OK=1.)

  • Point it at one folder. To index exactly one project, open it (Claude Code passes it via CLAUDE_PROJECT_DIR) or set PROMETHEUS_WORKSPACE_ROOT=/path/to/repo. Nothing outside that root is ever read — that is the real "which folders may be indexed" control.

  • Subtract or allowlist paths inside the root. The indexer honours the repo's .gitignore and a .prometheusignore (same syntax) on top of a built-in deny-list (node_modules, dist, .next, target, .venv, …). To index only a subtree, use the gitignore allowlist idiom in .prometheusignore — ignore everything, then re-include what you want:

    /*
    !/.prometheusignore
    !/src/

Repairing an index that already pulled in too much (older versions, or before you added a .prometheusignore) is covered under Troubleshooting → indexes too much.

What tools become available

The context server exposes sixteen tools (search_code, get_symbol, find_references, get_architecture, reindex, dashboard, update_servers, …) — see MCP tools. The memory server exposes eight (memory_read, memory_write, memory_capture, memory_search, memory_list, memory_delete, memory_setup, memory_status) — see Agent Memory. The saver exposes two (setup, status) — see Token Saver.