mcp检索规范
jMRI(jMunch检索接口)规范——MCP服务器中令牌高效上下文检索的开放接口标准。
______________________________________________________________________
什么是jMRI?
读取整个文件以回答特定问题的代理浪费了99%的代币预算。jMRI是MCP服务器的一个最小接口,可以正确检索:一次索引,按意图搜索,准确检索所需内容。
四个操作。一个响应信封。两个合规级别。
数字问题: 一个典型的FastAPI代码库需要大约42000个令牌才能被天真地读取。jMRI检索相同答案的成本约为480个令牌。以3/10万美元的代币计算,每次查询的价格为0.126美元,而每次查询的金额为0.0014美元。在数百万次查询中,节省的金额是巨大的。
jMunch工具在用户会话中节省了数十亿个令牌。此规范是对它们所做工作的正式定义。
______________________________________________________________________
运作原理
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?每个回复都包含一个 _meta 块状 tokens_saved 和 total_tokens_saved特工们可以准确地看到他们每次通话节省了多少钱。
______________________________________________________________________
规格
→ 规格.md
完整的jMRI v1.0规范。Apache 2.0。你想怎么做就怎么做。
______________________________________________________________________
参考实现
规范是开放的。最好的实现是商业化的。
| 实施 | 域 | 星 | 安装 |
|---|---|---|---|
| jCodeMunch | 代码(70+种语言) | 1500+ | uvx jcodemunch-mcp |
| jDocMunch | 文档(MD、RST、HTML、笔记本) | 135+ | uvx jdocmunch-mcp |
| jDataMunch | 表格数据(CSV、Excel、Parquet、JSONL) | 新增 | uvx jdatamunch-mcp |
两者都实现了jMRI Full。许可证可在https://j.gravelle.us/jCodeMunch/
______________________________________________________________________
快速开始
使用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代码集成
添加到您的 ~/.claude.json:
{
"mcpServers": {
"jcodemunch-mcp": {
"command": "uvx",
"args": ["jcodemunch-mcp"]
},
"jdocmunch-mcp": {
"command": "uvx",
"args": ["jdocmunch-mcp"]
}
}
}看 示例/claude代码/ 进行完整设置。
光标集成
看 示例/光标/.
______________________________________________________________________
回购结构
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______________________________________________________________________
许可
| 组件 | 许可证 |
|---|---|
| SPEC.md | Apache 2.0——自由实现 |
| SDK客户端 | Apache 2.0——自由使用 |
| 参考服务器 | 商业用途需要jMunch许可证 |
| 一致性套件 | Apache 2.0 |
| 基准测试套件 | Apache 2.0 |
这就是 条纹模型:API规范是公开的,并且有充分的文件记录;最好的实现是商业化的。
______________________________________________________________________
一致性
任何声称符合jMRI的MCP检索服务器都可以运行捆绑的一致性套件,以根据规范进行验证(Core 必须/ Full 应),14个命名案例被固定到特定 SPEC.md 不变量。CI/CD仪表板的Markdown或JSON输出。
pip install jmri-sdk
python -m jmri.conformance --repo owner/repo --server-cmd "your-jmri-server"判决: jMRI-Full compliant / jMRI-Core compliant / NOT compliant — N MUST failure(s)。在符合Core的运行中退出代码0(有或没有完全间隙),否则退出代码1。
仅限自我报告。 维护人员在自己的服务器上运行该套件并发布报告。我们不与竞争对手竞争一致性——这是对抗性的,不是我们希望标准制定者采取的形式。声称合规的第三方:运行、保存、链接。
______________________________________________________________________
引用
 
如果你在研究中引用jMRI或将其作为基准测试的基础,请引用规范,而不是供应商的方法论论文。规范引用是Zenodo矿床:
Gravelle,J.(2026)。 *jMRI:jMunch检索接口规范* (v1.1.1)\[软件\]。泽诺多。https://doi.org/10.5281/zenodo.20102349
CITATION.cff 在repo中,根具有引用管理器的结构化形式。
______________________________________________________________________
基准
→ 基准/
克隆并在5分钟内运行。在FastAPI和Flask上比较Naive、Chunk RAG和jMRI。结果是诚实的:如果RAG在指标上击败了jMRI,它就会被报道。
FastAPI上的真实数字(950K幼稚代币):
| 方法 | 平均令牌 | 成本/查询 | 精度 |
|---|---|---|---|
| 天真(阅读所有文件) | 949904 | 2.85 | 100% |
| 大块RAG | 330372 | 0.99美元 | 74% |
| 磁共振成像杂志 | 480 | $0.0014 | 96% |
代币比天真少1979倍。精度高于RAG。
______________________________________________________________________
贡献
规格故意保持最小。扩展核心接口的PR需要强有力的理由。欢迎改进示例、修复错误或添加特定语言SDK客户端的PR。
在提出规范更改之前打开一个问题。
