高效检索接口

jMRI是一个用于MCP服务器的高效检索接口标准,旨在通过索引和精确检索大幅减少令牌使用量。

  • by jgravelle
  • Python
  • 本地部署
  • 34 星标
  • 更新于
在 GitHub 查看 jgravelle/mcp-retrieval-spec

使用说明

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/一致性/

任何声称符合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。

在提出规范更改之前打开一个问题。