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@latestThe -- 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
.nodefiles on Windows, and a live update can abort half-way withEBUSYand 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. Runindex_statusto 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, setPROMETHEUS_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 setPROMETHEUS_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
.gitignoreand 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.