Labsco
MCP SERVER

Jinni

by smat-dev

Give a model your whole project in one call instead of feeding it files one at a time.

Codebase Context Packing & Compression
Summary
The failure mode tells you which files to exclude, instead of just refusing.

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.

What it is

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.

What you get
  • 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
Requirements

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.

Setup effort

One command — pip install jinni