Blowing the size limit is the normal way this goes wrong, and the error names the ten largest files that got you there — so the fix is one edit away rather than a guessing game. The other design choice worth knowing: the model can narrow the scope itself, so "read context for the tests" works without you rewriting a config.
A context tool with an MCP server and a CLI. It concatenates the relevant files of a project into one document, each preceded by a path header.
- read_context — the tool the model calls, taking a project_root, a list of targets and a list of rules, and returning the concatenated content
- usage — returns the README as a string, so the model can look up its own options
- Opinionated defaults that exclude binaries, dotfiles, hidden directories and the usual logs, build directories and temp files
- Granular control through .contextfiles, which work like .gitignore but define inclusions and take priority over it; .gitignore itself is respected automatically
- list_only mode returning just the relative paths, and size_limit_mb to override the limit
- A size guard: over the limit — 100MB by default — it aborts with an error naming the 10 largest contributing files
- A CLI for the same job, writing to a file or to standard output
Uv installed, then a client config running uvx with jinni-server. Optionally add --root with an absolute path to confine the server to one tree. Cursor users should know that Cursor can silently drop oversized context — if the tool call seems not to have happened, narrow what you are pulling in.
One command — pip install jinni
