MCP integration
Token Saver
Cut token cost without cutting quality. An installer MCP that teaches your agent to spend fewer tokens on its own prose while keeping code, commands and context verbatim.
@prom.codes/saver is the third prom.codes MCP server. Where the
context engine answers "what does this codebase look like?" and the
memory server answers "what did we already learn and decide?", the
saver answers a blunter question: "why is this agent burning tokens
narrating itself?" It installs a small efficient-output rule block
into your agent runtime so the model spends fewer tokens on its own
prose — preamble, play-by-play narration, pasted tool-output recaps —
while keeping everything that actually matters verbatim.
The tagline is "lean, not terse." It shapes phrasing, never what the agent does and never what it remembers.
Pure JS — npx just works
Unlike the context and memory servers, Saver has no database, no
embeddings, and no native modules. It is pure JavaScript, so
npx -y @prom.codes/saver@latest is turnkey on every platform — no
build step, no native-dependency compilation, no platform-specific
binaries. If npx has ever stalled on a native build for you, this one
won't.
What it keeps verbatim (anti-context-loss)
This is the whole point, so it is stated plainly: correctness, safety, completeness and the agent's own working context come first; token-saving comes second. If they conflict, Saver does not compress. The rules leave the following untouched, word for word:
- Code, diffs and commands — never paraphrased or trimmed.
- API names, file paths and exact error strings — kept literally.
- Load-bearing caveats, trade-offs and negations — anything hinging on "not", "only", "unless" stays in full.
- Destructive or multi-step sequences — the steps an agent must not drop or reorder are preserved.
- The agent's own working context — anything the agent will need on a later turn is never compressed away.
What it does trim is the model's own filler: conversational preamble, step-by-step narration of work already shown in tool calls, and restating tool output that the reader can already see.
The setup tool
Saver exposes exactly one tool, setup. Run it once per
workspace. It writes the efficient-output rule block into whichever
agent-runtime rule files are present, idempotently, inside a marked
block — it never touches foreign content in those files.
| Argument | Values | Default | Purpose |
|---|---|---|---|
level | lite · balanced · aggressive | balanced | How hard to lean out the prose. |
runtimes | array of claude-code / cursor / augment / agents | auto-detected | Which runtime rule files to write. Omit to let Saver detect what's present. |
Where the rules land
setup installs the rule block into the rule file for each detected
runtime, always inside a marked, idempotently-replaced block:
| Runtime | Rule file |
|---|---|
| Claude Code | CLAUDE.md |
| Cursor | .cursor/rules/prom-saver.mdc |
| Augment | .augment/rules/prom-saver.md |
| Generic agents | AGENTS.md |
Re-running setup updates the block in place rather than duplicating
it, and only the content between the markers is ever rewritten — your
own instructions in those files are left alone.
Levels
| Level | What it does | When to use |
|---|---|---|
lite | Drops filler only — preamble and obvious narration. | The lightest touch; you want to keep almost all of the agent's voice. |
balanced | Default and recommended. The conservative setting — trims prose meaningfully while protecting all the verbatim categories above. | Almost everyone. Start here. |
aggressive | Telegraphic output; opt-in. Auto-falls back to balanced for code-generation, debugging and destructive work. | Power users who want maximum leanness and accept the terser style on routine turns. |
Setup
Add the server next to the context and memory engines — same optional
API key. Because Saver is pure JS, the npx line is the only thing you
need; there is no index to build:
{
"mcpServers": {
"saver": {
"command": "npx",
"args": ["-y", "@prom.codes/saver@latest"],
"env": {
"PROMETHEUS_WORKSPACE_ROOT": "/absolute/path/to/your/repo"
}
}
}
}
Then ask your agent to run setup once per workspace. It detects which
runtimes are present (Claude Code, Cursor, Augment, generic AGENTS.md)
and installs the efficient-output rule block. The install is idempotent:
re-running updates the block in place instead of duplicating it.
The optional API key
Saver works fully without a key. Unlike the context and memory
servers — where PROMETHEUS_API_KEY is required — here it is optional:
- No key — Saver runs keyless and installs rules exactly the same.
- With a key — the same
prom_live_…/prom_test_…key you use for the context and memory servers ties the install to your account. It is the hook for future metering; today it changes nothing about whatsetupwrites. - A malformed key just prints a warning and continues keyless — it never blocks the install.
Environment variables
| Variable | Required | Default | Purpose |
|---|---|---|---|
PROMETHEUS_WORKSPACE_ROOT | no | cwd | Absolute path to the repo whose rule files setup writes into. |
PROMETHEUS_API_KEY | no | — | Optional. Same key as the context/memory servers; ties the install to your account and is the hook for future metering. A malformed value warns and continues keyless. |
Requirements
Node ≥ 20.10. No database, no embeddings, no native modules — the whole
package is JavaScript, which is what makes npx turnkey here.