Skip to main content
Glama
sudo-ai-git

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

by sudo-ai-git

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: Debug Companion 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

inspect_workspace(path)

análisis completo: cadena ini, addopts efectivos, veredicto CLEAN/CORRUPTED/UNKNOWN + comando corregido

check_addopts(path)

booleano simple: corrupted + razones

summarize(analysis)

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-config

  • barreras 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 HTTP

O 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ón

  • mcp-verify-claim — informe de afirmaciones basado en evidencia y con niveles honestos

  • mcp-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.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local-first MCP and coding-agent reliability harness that captures bounded, sanitized failure evidence and generates deterministic executable regression tests. Capture is opt-in; no API key or hosted service is required.
    2
    Apache 2.0

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sudo-ai-git/mcp-benchmark-hygiene'

If you have feedback or need assistance with the MCP directory API, please join our Discord server