io.github.sudo-ai-git/mcp-benchmark-hygiene
mcp-benchmark-hygiene
mcp-name: io.github.sudo-ai-git/mcp-benchmark-hygiene
Detección determinista de fugas de configuración de pytest que corrompen silenciosamente el benchmark de agentes / la calificación de funciones.
Sin LLM. Sin red. Una pregunta, respondida de forma fiable:
Si ejecuto
python -m pytest <tests>dentro de este espacio de trabajo, ¿heredará una barrera de cobertura/aborto del host que puntúe erróneamente como fallido el código que pasa?
El error que detecta
Los harnesses automatizados de evaluación de agentes suelen ejecutar python -m pytest <hidden_tests> dentro del espacio de trabajo del objetivo. Si ese espacio de trabajo está anidado bajo una raíz de repositorio que contiene addopts de pytest — p. ej.:
[tool.pytest.ini_options]
addopts = "--cov=harness --cov-report=term-missing:skip-covered --cov-fail-under=80"...pytest resuelve ese pyproject.toml del host como su rootdir, hereda los addopts y falla en la barrera de cobertura del propio host (harness recopilado al 0% → por debajo del umbral → salida distinta de cero). El harness registra entonces el código que PASA funcionalmente como FALLIDO.
Este es exactamente el error documentado en sudo-ai-git/vulcanbench-findings: el calificador declarativo de VulcanBench puntuó erróneamente cada tarea funcional como 0.0 por esta razón; con -o addopts= neutralizando la fuga, los mismos espacios de trabajo pasaron 10/10.
Related MCP server: forge-repo-mcp
La solución que te ofrece
Cuando un espacio de trabajo se marca como CORRUPTED, la herramienta devuelve el comando corregido:
python -m pytest -o addopts= <tests>-o addopts= elimina las barreras de cobertura/aborto heredadas. (O ejecuta el calificador desde fuera de la raíz del repositorio).
Herramientas
herramienta | propósito |
| análisis completo: cadena ini, addopts efectivos, veredicto CLEAN/CORRUPTED/UNKNOWN + comando corregido |
| booleano simple: |
| cadena de resumen accionable de una línea |
Núcleo determinista (sin dependencias)
El análisis recorre el directorio del espacio de trabajo hasta la raíz del sistema de archivos, leyendo pyproject.toml / pytest.ini / tox.ini / setup.cfg en el orden de primer hallazgo de pytest, y extrae los addopts. Señala:
barreras de cobertura —
--cov,--cov-fail-under,--cov-report,--cov-configbarreras de aborto/estrictas —
--maxfail,-x,--strict,--strict-markers,--pdb,--ff
Solo se señalan las barreras que cambian los códigos de salida / abortan la calificación. Un addopts inofensivo se informa como CLEAN con la cadena exacta.
Instalación y ejecución (MCP stdio)
Un solo comando (recomendado) — instala desde el repositorio, sin necesidad de token de 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 HTTPO con pipx: pipx install git+https://github.com/sudo-ai-git/mcp-benchmark-hygiene
Directamente desde el código fuente (alternativa):
{ "mcpServers": {
"benchmark-hygiene": { "command": "python3", "args": ["/abs/path/to/mcp_server.py"] }
}}Requiere el paquete oficial de Python mcp (pip install mcp). El núcleo determinista (inspect_workspace / check_addopts / summarize) se importa y se ejecuta con cero dependencias — el paquete mcp solo se necesita para el servidor stdio.
Streamable HTTP (remoto/publicable en Smithery)
python3 mcp_server.py --http --port 8137 # serves on http://<host>:8137/mcp/Ejecuta con --http para servir a través de Streamable HTTP (un endpoint MCP remoto) en lugar de stdio. Este es el transporte que smithery mcp publish <url> espera para la publicación basada en URL — así que, una vez que existe un token de servicio de Smithery, el servidor se despliega tal cual.
Ejemplo
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']"]
}Verificación
python3 test_detector.py— 5/5 comprobaciones de detección del núcleo (barrera raíz, herencia anidada, limpio, barrera de aborto, pyproject-sin-pytest)python3 test_e2e.py— maneja el transporte MCP stdio real (initialize → tools/call) y verifica que CORRUPTED / CLEAN se transmiten a través del cable
Parte de una familia
Este es uno de los tres servidores MCP de confianza de agentes deterministas, sin LLM de sudo-ai-git:
mcp-skill-sec— auditoría de habilidades/seguridad previa a la instalaciónmcp-verify-claim— informe de afirmaciones basado en evidencia y con niveles honestosmcp-benchmark-hygiene— detección de fugas de configuración de pytest / honestidad de la evaluación (este repositorio)
Licencia y procedencia
MIT. Derivado de forma independiente del hallazgo documentado de VulcanBench #79; no implica respaldo ni afiliación con morganlinton/VulcanBench.
Contrata una integración personalizada
¿Necesitas esto conectado a tu sistema interno (autenticación, registro, aprobación del escaneo de seguridad, alojamiento)? Abre una solicitud de compilación personalizada. Los recursos de referencia MIT son de uso gratuito en cualquier caso.
This server cannot be deployed
Maintenance
Related MCP Connectors
Find your AI agent's likely failure mode, get runtime settings, and clarify ambiguous prompts.
Enforces architectural invariants and code quality rules inside your AI agent's edit loop.
418Deterministic pre-execution audit for trading agents. PASS/WAIT/FAIL, reproducible verdict_hash.
Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to run and analyze pytest tests for desktop applications through interactive commands. Supports test execution, filtering, result analysis, and debugging for comprehensive test automation workflows.2-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to investigate and repair Python/pytest repositories in isolated Git worktrees with audit trails, without modifying the original repository.MIT
- AlicenseAqualityBmaintenanceProvides structured, sandboxed test and lint feedback for coding agents, returning compact typed verdicts with failure fingerprints instead of raw runner output. It enables impact-selected test execution in isolated containers, distinguishing pre-existing failures from regressions.4Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables deterministic evaluation of coding agents by exposing controlled repository tools and returning structured verification reports with pattern checks and repeat-run comparisons.MIT