Retrieval Spec
jMRI v1.0 β open specification for token-efficient context retrieval in MCP servers. SDKs, reference server, benchmark.
Ask AI about Retrieval Spec
Powered by Claude Β· Grounded in docs
I know everything about Retrieval Spec. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
mcp-retrieval-spec
The jMRI (jMunch Retrieval Interface) specification β an open interface standard for token-efficient context retrieval in MCP servers.
What Is jMRI?
Agents that read whole files to answer specific questions waste 99% of their token budget. jMRI is a minimal interface for MCP servers that do retrieval right: index once, search by intent, retrieve exactly what you need.
Four operations. One response envelope. Two compliance levels.
The problem in numbers: A typical FastAPI codebase costs ~42,000 tokens to read naively. jMRI retrieval of the same answer costs ~480 tokens. At $3/1M tokens, that's $0.126 vs. $0.0014 per query. Across millions of queries, the savings are material.
The jMunch tools have saved billions of tokens across user sessions. This spec is the formal definition of what they do.
How It Works
Agent
β
ββ discover() β What knowledge sources are available?
ββ search(query) β Which symbols/sections are relevant? (IDs + summaries only)
ββ retrieve(id) β Give me the exact source for this ID.
ββ metadata(id?) β What would naive reading have cost?
Every response includes a _meta block with tokens_saved and total_tokens_saved. Agents can see exactly what they're saving on every call.
Spec
β SPEC.md
The full jMRI v1.0 specification. Apache 2.0. Implement it however you want.
Reference Implementations
The spec is open. The best implementations are commercial.
| Implementation | Domain | Stars | Install |
|---|---|---|---|
| jCodeMunch | Code (70+ languages) | 1,500+ | uvx jcodemunch-mcp |
| jDocMunch | Docs (MD, RST, HTML, notebooks) | 135+ | uvx jdocmunch-mcp |
| jDataMunch | Tabular data (CSV, Excel, Parquet, JSONL) | new | uvx jdatamunch-mcp |
Both implement jMRI-Full. Licenses available at https://j.gravelle.us/jCodeMunch/
Quick Start
Using the Python SDK
from sdk.python.mri_client import MRIClient
client = MRIClient() # connects to local jcodemunch-mcp
# List available repos
sources = client.discover()
# Search
results = client.search("database session dependency", repo="fastapi/fastapi")
for r in results:
print(r["id"], r["summary"])
# Retrieve
symbol = client.retrieve(results[0]["id"], repo="fastapi/fastapi")
print(symbol["source"])
print(f"Tokens saved: {symbol['_meta']['tokens_saved']:,}")
Claude Code Integration
Add to your ~/.claude.json:
{
"mcpServers": {
"jcodemunch-mcp": {
"command": "uvx",
"args": ["jcodemunch-mcp"]
},
"jdocmunch-mcp": {
"command": "uvx",
"args": ["jdocmunch-mcp"]
}
}
}
See examples/claude-code/ for full setup.
Cursor Integration
See examples/cursor/.
Repo Structure
mcp-retrieval-spec/
βββ SPEC.md # The jMRI specification (Apache 2.0)
βββ CHANGELOG.md # Spec version history
βββ LICENSE # Spec: Apache 2.0. Reference impls: commercial.
βββ reference/
β βββ server.py # Minimal jMRI-compliant server
β βββ config.example.json # Sample configuration
βββ sdk/
β βββ python/mri_client.py # Python client helper (Apache 2.0)
β βββ typescript/mri-client.ts
βββ examples/
β βββ claude-code/ # Claude Code integration
β βββ cursor/ # Cursor integration
β βββ generic-agent/ # Minimal jMRI agent
βββ benchmark/ # munch-benchmark suite
Licensing
| Component | License |
|---|---|
| SPEC.md | Apache 2.0 β implement freely |
| SDK clients | Apache 2.0 β use freely |
| Reference server | Requires jMunch license for commercial use |
| Benchmark suite | Apache 2.0 |
This is the Stripe model: the API spec is open and well-documented; the best implementation is commercial.
Benchmark
β benchmark/
Clone and run in under 5 minutes. Compares Naive, Chunk RAG, and jMRI on FastAPI and Flask. Results are honest: if RAG beats jMRI on a metric, it's reported.
Real numbers on FastAPI (950K naive tokens):
| Method | Avg Tokens | Cost/Query | Precision |
|---|---|---|---|
| Naive (read all files) | 949,904 | $2.85 | 100% |
| Chunk RAG | 330,372 | $0.99 | 74% |
| jMRI | 480 | $0.0014 | 96% |
1,979x fewer tokens than naive. Higher precision than RAG.
Contributing
The spec is intentionally minimal. PRs that extend the core interface require strong justification. PRs that improve examples, fix errors, or add language-specific SDK clients are welcome.
Open an issue before proposing spec changes.
