Summa
Provides a Hermes Agent plugin with tools to index files, store text, search stored documents, read passages, view stats, and delete stored data. It keeps large outputs out of context by saving them locally and returning only short previews.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Summasearch what you saved for the rate limit section"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Summa
Read big files, logs, and web pages without filling your agent's context.
Summa is a plugin for Claude Code and Hermes Agent. When a tool returns more than 8,000 characters, Summa saves the full text on your computer. The agent gets the first 3,000 and last 1,000 characters, plus a note pointing to the rest. When it needs something from the middle, it searches and gets back one passage.
Your context fills up more slowly, so long sessions get compacted less often. When they are, Summa reminds the agent which files it changed and which tasks are still open.
/plugin marketplace add lcgm/summa
/plugin install summa@summaEverything Summa stores stays in one SQLite file on your computer. Summa itself never connects to the internet.
At a glance
Characters that reach the agent's context:
Task | Without Summa | With Summa | Saved |
Search a codebase (Grep) | 86,051 | 4,302 | 95% |
Read a source file | 58,472 | 4,302 | 93% |
Read a changelog | 55,419 | 4,302 | 92% |
Run a command ( | 41,071 | 4,302 | 90% |
Read a web page (browser tool) | 24,576 | 4,236 | 83% |
Find one fact in the changelog | 55,419 | ~1,700 | 97% |
BENCHMARK.md has how these numbers were measured and how to run the test yourself (the web page is a Wikipedia article read with a browser tool, measured separately). Your results depend on your files.
Related MCP server: ContextKeep
How it works
Summa checks every Read, Grep, Bash, and MCP tool call (browser tools included). The agent does not need to know which document holds the answer: search looks through everything stored in the project.
What the agent sees
A Wikipedia article read with a browser tool, after Summa:
<the first 3,000 characters of the page>
[... middle omitted by summa ...]
<the last 1,000 characters of the page>
[summa] Output shortened: 24,576 characters, saved locally as doc 5. Only the start and end are
shown above. To get the rest, call summa `search` with a few specific words, or `read` with doc_id=5.Tools
Tool (Claude Code) | Hermes | What it does |
|
| Keyword search (FTS5, BM25 ranking). Returns short snippets with |
|
| Read up to 8,000 characters of a stored document, from any position |
|
| Index a whole file: |
| Store a piece of text under a label of your choice | |
|
| How much was kept out of context, in characters and approximate tokens |
|
| Delete everything stored under one label (asks first) |
|
| Delete everything Summa stored, after you confirm (see Deleting everything) |
In Claude Code you can also type /summa:stats or /summa:purge.
search and read see only the current project. Pass all_projects=true when you want everything.
Knowledge base
Anything stored, whether shortened automatically or indexed on purpose, is searchable later in the same project. Index a manual, a long log, or a folder of notes once with save_file, then ask questions: the agent pulls back the matching passages instead of the whole file. Long files are split into parts that forget removes together.
Session continuity
When Claude Code compacts a long conversation, details get lost. Summa keeps a small log of what the tools did and gives it back after compaction.
Recorded | Files edited or created, task titles and status, terminal errors (redacted, one line each) |
Never recorded | Your messages, file contents, command output that is not an error |
Restored | On |
Kept | Up to 500 events per session; older ones are dropped |
Questions
Will my agent miss something that was cut?
It can, if it never looks. The note after every preview says the rest is saved, and search returns the passage in one call. The 4 lookups in BENCHMARK.md all found their answer.
Does my code or data leave my computer? Summa stores everything in one local SQLite file and makes no network calls. What the agent reads still goes to your model provider, as it always does.
What if an output is small?
Under 8,000 characters, nothing changes. Rule files such as CLAUDE.md and AGENTS.md are never shortened.
How do I undo it?
forget deletes one stored output, purge deletes everything, and SUMMA_DISABLE=1 turns the hook off.
Install
Claude Code
Requires uv, which installs the right Python version on its own.
/plugin marketplace add lcgm/summa
/plugin install summa@summaRestart Claude Code after installing.
Hermes Agent
The Hermes plugin brings its own tools, so you do not need the MCP server.
Install and enable:
hermes plugins install lcgm/summa --enable(or link this folder to$HERMES_HOME/plugins/summa; on Windows, a junction works without admin rights, then runhermes plugins enable summa).To use
summa_index_file, setSUMMA_ROOTSin$HERMES_HOME/.envto the folders it may read. There is no default, because Hermes often runs from the home folder.Optional: set
SUMMA_DIRin$HERMES_HOME/.envto choose where the database lives (default:$HERMES_HOME/summa).Optional:
pip install pypdfin the Hermes environment to index PDFs.
Session continuity after compaction is Claude Code only for now.
Security and privacy
Summa reads your files, command output, and web pages, so it is built to keep that data on your machine and under your control.
Concern | What Summa does |
Where data goes | One SQLite file on your machine: |
Projects | Each document is tagged with its project folder. |
Network | Summa itself makes none: no telemetry, no update checks, no URL fetching. On first launch (and after a cache clear), |
What is captured | Large text outputs of |
Rule files |
|
Partial reads | A |
Secrets | Removed before saving, in the text and in its labels: Anthropic, OpenAI, Stripe, GitHub, and AWS keys, JWTs, |
File import |
|
Deletion |
|
Failure | If the hook fails for any reason, the original output is used, so a tool call never breaks |
Deleting everything
Ask the agent ("clear everything Summa stored") or type /summa:purge. Summa deletes its copies of outputs, session events, and the savings counter, in every project. Your own files are never touched.
Client | How you confirm |
Claude Code | Summa opens a confirmation dialog. Only you can answer it: the agent cannot, so text injected into a page or file cannot wipe your data on its own |
Hermes, or a client without dialogs | Nothing is deleted. The agent shows you a command to run in a terminal on that computer, which asks you to type |
Do not configure anElicitation hook that answers Summa's dialogs automatically. That would let an agent confirm on your behalf.
What Summa does not protect
The preview and anything the agent reads with
searchorreadstill go to the model provider, as any context does. Summa reduces that volume; it does not keep content away from the model.The database holds the full text of large outputs in plain SQLite. If you read sensitive files, a copy of what was stored stays there until you
forgetit orpurgeeverything.Secret redaction is best-effort, not a guarantee. Formats it does not know are stored as they are.
The preview is the tool's own output, not Summa's words, and it can contain prompt injection like any page or file. Summa only makes sure content cannot imitate its markers: a literal
[summa]inside content is shown as[summa (quoted)].Never add
forgetto an allowlist of tools that run without asking.
Configuration
Variable | Default | Purpose |
| plugin data folder, else | Where the database lives |
|
| Which project new content belongs to and which project is searched |
| the project folder (Hermes: none) | Folders |
|
| Outputs larger than this are stored and shortened |
|
|
|
| unset | Delete stored documents older than this many days (checked on each save) |
| unset | Keep at most this much stored text, deleting the oldest documents first |
| unset | Set to |
| unset | Set to |
Limits
Automatic shortening works in Claude Code and Hermes Agent. Other agents can use the MCP server, but without automatic shortening.
Search is keyword-based (SQLite FTS5), not semantic.
No URL fetching: Summa indexes what your tools already brought in, such as a page read with a browser tool.
PDFs: only PDFs with a real text layer. Scanned PDFs and PDFs with a broken text layer (letters mapped to wrong characters) give no useful text; there is no OCR. On Hermes, install
pypdfif it is missing.Images are not indexed.
Development
uv run --with "mcp==1.30.0" --with "pypdf==6.20.1" python -m unittest discover -s tests -t .
python eval/benchmark.py
python eval/retrieval_eval.py eval/example-doc.md eval/example-cases.jsonAcknowledgments
Summa was inspired by context-mode by Mert Koseoglu, which showed how much context an agent saves when large tool outputs stay out of it. Summa is a separate implementation written from scratch in Python, with no code taken from context-mode. It focuses on keeping everything on your machine.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
- MyMemoryOAuthdev.mymemory
Long-term memory for AI assistants: search, read and save your notes, links and documents.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides AI agents with persistent, searchable memory that survives across conversations using semantic search, temporal versioning, and smart organization. Enables long-term context retention and cross-session continuity for AI assistants.14-
- AlicenseNot gradedqualityAmaintenanceProvides infinite long-term memory for AI agents with persistent, searchable storage of project details, preferences, and snippets. Reduces token costs by retrieving only relevant memories while keeping all data stored locally.158MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents with long-term memory and retrieval-augmented generation (RAG) capabilities, allowing them to recall past conversations, search local files, and learn user preferences.MIT
- AlicenseBqualityCmaintenanceProvides persistent local memory for AI coding sessions, enabling agents to save and retrieve project context across different tools and sessions.16MIT