Token导航 LogoToken导航

MCP Server · 搜索检索

Nova Rag Benchmark

rag-bench是一个用于测量代码检索增强生成(RAG)服务器性能的基准测试工具,支持多种查询类型和A/B对比测试。

stdio官方级别未说明来源级核验工具 0
Python开发工具搜索

快速开始

作者 / 组织
Miro96
提供方
Miro96
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Nova Rag Benchmark 属于搜索检索类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

搜索检索

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

python3 -m venv .venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

抹布长凳

代码RAG MCP服务器基准测试 --衡量RAG如何帮助AI找到正确的代码。

没有现有基准涵盖以下交叉点 代码搜索+MCP协议+A/B比较抹布长凳填补了这个空白。

它衡量什么

ragbench索引真实的开源存储库(Flask、FastAPI、Express),并运行105个已知正确答案的代码搜索查询。它衡量:

度量它告诉你什么
Hit@1 / Hit@5RAG在顶部结果中找到了正确的文件吗?
符号Hit@5它是否找到了正确的函数/类?
平均倒数排名第一个正确结果的排名有多高?
潜伏期p50/p95查询速度有多快?
摄入速度索引代码库的速度有多快?
RAM/索引大小资源消耗
综合得分所有指标的加权组合

查询类型

  • locate --“X在哪里定义?”(最常见的开发人员问题)
  • callers --“什么叫X?”
  • explain --“X是如何工作的?”(需要多个相关文件)
  • impact --“如果我改变X,会发生什么?”
  • multi_hop --“通过多个文件跟踪X到Y”(传递性推理)
  • cross_package --“模块A如何与模块B交互?”
  • architecture --“项目的结构和层次是怎样的?”
  • dead_code --“函数X真的在任何地方被调用吗?”
  • conditional_path --“当条件C为真时,存在哪些代码路径?”
  • test_traceability --“哪些测试涵盖了函数X?”

A/B模式

比较RAG与grep/glob基线,以衡量RAG提供的实际改善:

  • 工具调用减少了多少?
  • 找到正确的代码要快多少?
  • RAG真的有帮助吗?或者grep足够吗?

快速开始

# Clone
git clone https://github.com/Miro96/nova-rag-benchmark.git
cd nova-rag-benchmark

# Install
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

# Run benchmark on your RAG MCP server
rag-bench run --command "python -m your_server" --transport stdio

# Or use a preset
rag-bench run --preset mcp-local-rag

# Run tests (325 tests)
pytest tests/ -v

用法

对单个服务器进行基准测试

# With a preset
rag-bench run --preset nova-rag

# With a custom command
rag-bench run --command "npx -y mcp-local-rag" --transport stdio

# With a config file
rag-bench run --config my-server.json

# Only test on one repo
rag-bench run --preset nova-rag --repo flask

# A/B comparison vs grep baseline
rag-bench run --preset nova-rag --ab-baseline

比较多台服务器

rag-bench compare --presets nova-rag,mcp-local-rag,chroma-mcp

运输方式

rag bench支持三种客户端传输模式 BaseClient 接口:

模式标志描述
MCP 标准--transport stdioJSON-RPC通过子进程stdin/stdout(默认)
CLI子流程--transport cli带有CLI参数的子进程,stdout捕获
过程中的--transport inprocess直接导入Python(仅预设)
# MCP stdio (default)
rag-bench run --command "python -m my_server" --transport stdio

# CLI subprocess
rag-bench run --command "my-rag search" --transport cli

# In-process (requires Python module)
rag-bench run --preset naive-rag --transport inprocess

排行榜

# Start the web leaderboard
rag-bench serve --port 8080

# Submit results
rag-bench submit results/run_*.json \
  --git-url https://github.com/you/your-rag \
  --git-user yourusername \
  --server-url http://localhost:8080

打开 http://localhost:8080 查看带有排序、过滤和雷达图比较的排行榜。

服务器配置格式

为RAG MCP服务器创建JSON配置:

{
  "name": "my-rag-server",
  "git_url": "https://github.com/you/my-rag",
  "command": "python -m my_rag.server",
  "transport": "stdio",
  "tool_mapping": {
    "ingest": {
      "tool": "index_directory",
      "params": { "path": "{path}" }
    },
    "query": {
      "tool": "search",
      "params": { "query": "{query}", "limit": "{top_k}" }
    }
  }
}

如果 tool_mapping 如果省略,rag bench将通过分析来自的工具名称和模式来自动检测工具 tools/list.

预摄取命令

您可以通过以下方式声明在索引之前运行shell命令 pre_ingest 现场。使用 {repo_path} 作为存储库目录的模板变量,以及 {cwd} 对于基准时间的工作目录:

{
  "name": "my-rag-server",
  "pre_ingest": [
    "pip install -r {repo_path}/requirements.txt",
    "cd {repo_path} && npm install"
  ]
}

索引目录

预设配置可以声明要索引的目录(默认为repo根目录):

{
  "name": "my-rag-server",
  "index_directories": ["src/", "lib/"]
}

默认情况下,所有未被忽略的文件都会被索引; index_directories 限制对特定子目录的索引。

内置预设

预设服务器描述
nova-rag诺瓦拉格混合语义+图形+关键字RAG
naive-rag仅嵌入基线原始嵌入相似性(无代码图)
cocoindex-codeCocoIndex v0.2.33CocoIndex代码检索预设
grep-glob关键字基线纯grep/glob关键字搜索(无嵌入)
mcp-local-ragmcp本地抹布MCP本地RAG服务器
chroma-mcp色度mcpChroma矢量数据库MCP服务器

比较结果(105个查询,3个重复)

Flask+FastAPI+Express上所有内置预设的四向比较:

rag-bench compare --presets nova-rag,naive-rag,cocoindex-code,grep-glob --replicates 3
度量nova-ragnaive ragcocoindex代码grep-glob
Hit@120.0%1.9%4.8%20.0%
Hit@545.7%6.7%16.2%55.2%
Hit@1053.3%7.6%23.8%74.3%
符号Hit@533.3%13.3%0.0%0.0%
平均倒数排名0.3150.0370.0990.340
延迟p5014.6毫秒3.5毫秒447.1毫秒22.3毫秒
延迟p9524.4毫秒4.0毫秒573.5毫秒90.6毫秒
摄入速度2675 f/s206 f/s----
综合得分0.5500.3640.3270.523

关键要点:

  • 诺瓦拉格 是解析符号的唯一预设(33.3%符号Hit@5)--grep/glob和仅嵌入的方法无法识别函数/类名。
  • grep glob 在原始文件召回中获胜(55.2%Hit@5)但不返回符号级结果。
  • 天真的破布 (仅嵌入)在文件召回方面表现最差(6.7%)Hit@5),表明仅凭语义相似性不足以进行代码搜索。
  • cocoindex代码 具有高延迟(~450ms p50),而其他方法的延迟低于25ms。
  • 诺瓦拉格 索引速度比原始rag快13倍(2675比206文件/秒)。

再现性:所有预设在3个重复的复合评分中的CV均小于0.05。

数据集

3个真正的开源存储库,105个查询包含基本事实:

存储库语言大小查询
烧瓶Python约15K LOC35
快速APIPython约40K LOC35
快速JavaScript约15K LOC35

每个查询都有:

  • 预期文件(地面实况)
  • 预期符号(函数/类名)
  • 难度级别(易/中/难)
  • 查询类型(定位/调用者/解释/影响/多操作/交叉包/架构/死代码/条件路径/测试跟踪性)

指标

综合得分公式

Score = 0.30 * Hit@5
      + 0.15 * SymbolHit@5
      + 0.15 * MRR
      + 0.15 * ToolCallEfficiency
      + 0.15 * LatencyScore
      + 0.10 * ResourceScore

建筑

rag_bench/
├── cli.py              # CLI entry point (click)
├── transport/          # Client transport layer
│   ├── base.py         # BaseClient interface
│   ├── mcp_client.py   # MCP JSON-RPC client (stdio)
│   ├── cli_client.py   # Subprocess CLI client
│   └── in_process.py   # In-process (Python import) client
├── adapter.py          # Normalizes different RAG server interfaces
├── runner.py           # Orchestrates: ingest → warmup → benchmark → metrics
├── metrics.py          # Hit@K, MRR, latency percentiles, composite score
├── baseline.py         # Grep/Glob baseline for A/B comparison
├── report.py           # Rich terminal tables
├── submit.py           # HTTP submit to leaderboard
├── presets/            # JSON configs for known servers
└── datasets/           # Repos + 105 queries with ground truth

server/
├── app.py              # FastAPI leaderboard server
├── db.py               # SQLite storage
├── models.py           # Pydantic models
└── static/             # Leaderboard web UI

贡献

  1. 添加查询 --更多的查询提高了基准测试的可靠性。添加 rag_bench/datasets/queries/
  2. 添加预设 --中新RAG MCP服务器的配置文件 rag_bench/presets/
  3. 添加仓库 --中的新测试存储库 rag_bench/datasets/repos.json
  4. 提交结果 --运行基准测试并提交到公共排行榜

为什么存在

现有的基准测试不包括RAG+MCP+代码搜索交集:

CodeRAG工作台GrepRAGMCP工作台抹布长凳
代码RAG是是否是
MCP协议否否是是
A/B:RAG与无RAG部分是否是
自定义仓库否否不是
排行榜否否拥抱脸自托管

许可证

麻省理工学院

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

代码检索Python本地部署性能评估RAG基准测试开发工具

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

查资料带出处

把网页、论文和文档的检索结果连同链接一起带回对话。

站内知识检索

在自己的文档库里做语义搜索,比关键词更贴题。

事实核对

交叉多个来源确认一条信息,减少模型凭记忆作答。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在搜索检索场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Nova Rag Benchmark

MCP World · 本页

0stdio有1 个2026-05-17
Baidu Netdisk

MCP World

未标注未说明未标注1 个2026-05-17
Sequentialthinking

MCP.so

1SSE有2 个2026-05-17
Brave Search 433812ff

MCP World

2未说明未标注1 个2026-05-17
mindsdb (430e18)

MCP World

0未说明有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Nova Rag Benchmark 怎么安装?

公开资料给出的安装命令是 python3 -m venv .venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Nova Rag Benchmark 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Nova Rag Benchmark 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Nova Rag Benchmark 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Nova Rag Benchmark 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP