mcpField
M
mcp-benchmark-hygiene

mcp-benchmark-hygiene

本地服务
github.com/sudo-ai-git开发工具09 周前更新

关于 mcp-benchmark-hygiene

mcp-benchmark-hygiene 是确定性的 MCP 服务,用于检测可能扭曲 Agent 基准测试评分的继承式 pytest 配置。它检查工作区设置,并在发现评分门槛时给出修正后的测试命令。

主要功能

  1. 01追踪至文件系统根目录的 pytest 配置
  2. 02检测 addopts 中的覆盖率与中止门槛
  3. 03将工作区判定为 CLEAN、CORRUPTED 或 UNKNOWN
  4. 04提供修正后的 pytest 命令
  5. 05生成简洁分析摘要

适用场景

  1. 01诊断代码通过但基准评分失败的情况
  2. 02检查嵌套工作区继承的 pytest 设置
  3. 03选择可避开宿主评分门槛的测试命令

MCP 相关

它通过 stdio 或 Streamable HTTP 向 MCP 客户端提供工作区检查、addopts 检查和分析摘要工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sudo-ai-git-mcp-benchmark-hygiene": {
"command": "uvx",
"args": [
"mcp-benchmark-hygiene"
]
}
}
}
启动命令uvx mcp-benchmark-hygiene

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-benchmark-hygiene1.0.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-benchmark-hygiene

mcp-name: io.github.sudo-ai-git/mcp-benchmark-hygiene

确定性检测 pytest 配置泄漏,避免其悄无声息地破坏 Agent 基准测试/函数评分。

无需大模型。无需联网。只需回答一个问题,而且答案可靠:

如果我在此工作区内运行 python -m pytest <tests>,它是否会继承主机的覆盖率/中止门槛,导致将通过的代码错误判为失败?


此工具捕获的错误

自动化 Agent 评估框架通常会在目标工作区内运行 python -m pytest <hidden_tests>。如果该工作区嵌套在含有 pytest addopts 的仓库根目录下,例如:

[tool.pytest.ini_options]
addopts = "--cov=harness --cov-report=term-missing:skip-covered --cov-fail-under=80"

……pytest 就会将主机的 pyproject.toml 解析为其 rootdir,继承其中的 addopts,并因主机自身的覆盖率门槛而失败(harness 的收集结果为 0% → 低于阈值 → 退出码非零)。随后,框架会将功能上通过的代码记录为失败。

sudo-ai-git/vulcanbench-findings 记录的正是这个错误:VulcanBench 的声明式评分器因此将每个功能任务都误判为 0.0;使用 -o addopts= 消除泄漏后,同一批工作区全部通过,成绩为 10/10。

提供的修复方案

当工作区被标记为 CORRUPTED 时,工具会返回修正后的命令:

python -m pytest -o addopts= <tests>

-o addopts= 会移除继承的覆盖率/中止门槛。(或者从仓库根目录之外运行评分器。)

工具

工具用途
inspect_workspace(path)完整分析:ini 链、有效的 addopts、CLEAN/CORRUPTED/UNKNOWN 判定及修正后的命令
check_addopts(path)简化的布尔检查:corrupted + 原因
summarize(analysis)单行、可执行的摘要字符串

确定性核心(无依赖)

分析会从工作区目录向上遍历至文件系统根目录,按 pytest 的优先顺序读取 pyproject.toml / pytest.ini / tox.ini / setup.cfg,并提取 addopts。检测项:

  • 覆盖率门槛 — --cov、--cov-fail-under、--cov-report、--cov-config
  • 中止/严格门槛 — --maxfail、-x、--strict、--strict-markers、--pdb、--ff

只标记会改变退出码或中止评分的门槛。无害的 addopts 会连同其确切字符串一起报告为 CLEAN。

安装与运行(MCP stdio)

一条命令(推荐)——从仓库安装,无需 PyPI 令牌:

uv tool install git+https://github.com/sudo-ai-git/mcp-benchmark-hygiene
mcp-benchmark-hygiene                        # run stdio server
mcp-benchmark-hygiene --http --port 8137     # or Streamable HTTP

也可以使用 pipx:pipx install git+https://github.com/sudo-ai-git/mcp-benchmark-hygiene

直接从源代码运行(备用方案):

{ "mcpServers": {
    "benchmark-hygiene": { "command": "python3", "args": ["/abs/path/to/mcp_server.py"] }
}}

需要官方的 mcp Python 包(pip install mcp)。确定性核心(inspect_workspace / check_addopts / summarize)导入和运行时无需任何依赖——只有 stdio 服务需要 mcp 包。

Streamable HTTP(远程/可发布至 Smithery)
python3 mcp_server.py --http --port 8137   # serves on http://<host>:8137/mcp/

使用 --http 通过 Streamable HTTP(远程 MCP 端点)提供服务,而非使用 stdio。这是 smithery mcp publish <url> 进行基于 URL 发布时所需的传输方式,因此只要已有 Smithery 服务令牌,服务即可直接部署。

示例

inspect_workspace(path="/home/runner/vulcanbench/workspace/task-1")
→ {
    "ok": true,
    "workspace": "/home/runner/vulcanbench/workspace/task-1",
    "ini_chain": [{"file": "/home/runner/vulcanbench/pyproject.toml",
                   "addopts": "--cov=harness ... --cov-fail-under=80"}],
    "effective_addopts": "--cov=harness ... --cov-fail-under=80",
    "will_corrupt_grading": true,
    "verdict": "CORRUPTED",
    "fixed_command": ["python3", "-m", "pytest", "-o", "addopts=", "<tests>"],
    "reasons": ["coverage gate(s) present: ['--cov', '--cov-fail-under']"]
}

验证

  • python3 test_detector.py — 5/5 项核心检测检查(根目录门槛、嵌套继承、干净配置、中止门槛、无 pytest 配置的 pyproject)
  • python3 test_e2e.py — 驱动真实的 MCP stdio 传输(initialize → tools/call),并断言 CORRUPTED / CLEAN 状态会沿传输链路传递

家族成员

这是 sudo-ai-git 推出的三个确定性、无 LLM Agent 信任 MCP 服务之一:

同系列产品: mcp-token-saver — 面向 Agent 对话的令牌成本代理 + 分析器(在计费前去重冗余令牌;已通过实时验证,减少 74%)。讨论

同系列还有(一款免费 CLI,并非 MCP 服务):harness-audit — 确定性的 Agent 评估 / 基准测试评分卫生审计,可捕获同类静默配置泄漏误评分问题。免费的引流工具;秉持同样的验证原则,零依赖,可逐行审计。

许可证与来源

MIT。独立衍生自有文档记录的 VulcanBench #79 发现;不代表 morganlinton/VulcanBench 为此背书或与其有关联。

定制集成

需要将其接入你的内部系统(身份验证、日志记录、安全扫描通行、托管)?请提交定制构建请求。MIT 参考资源可免费使用。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。