io.github.sudo-ai-git/mcp-benchmark-hygiene
mcp-benchmark-hygiene
mcp-name: io.github.sudo-ai-git/mcp-benchmark-hygiene
Deterministische Erkennung des pytest-Konfigurationslecks, das Agent-Benchmark-/Funktionsbewertung stillschweigend korrumpiert.
Kein LLM. Kein Netzwerk. Eine Frage, zuverlässig beantwortet:
Wenn ich
python -m pytest <tests>in diesem Workspace ausführe, erbt es dann ein Host-Coverage-/Abbruch-Gate, das bestehenden Code fälschlich als fehlgeschlagen bewertet?
Der Fehler, den dies erkennt
Automatisierte Agenten-Bewertungs-Harnesses führen oft python -m pytest <hidden_tests> im Workspace des Ziels aus. Wenn dieser Workspace unter einer Repository-Wurzel verschachtelt ist, die pytest-addopts trägt — z. B.:
[tool.pytest.ini_options]
addopts = "--cov=harness --cov-report=term-missing:skip-covered --cov-fail-under=80"...pytest löst diese Host-pyproject.toml als sein Rootdir auf, erbt die addopts und scheitert an dem eigenen Coverage-Gate des Hosts (harness bei 0 % gesammelt → unter dem Schwellenwert → Exit-Code ungleich Null). Das Harness zeichnet dann funktional BESTANDENEN Code als FEHLGESCHLAGEN auf.
Genau das ist der Fehler, der in sudo-ai-git/vulcanbench-findings dokumentiert ist: Der deklarative Grader von VulcanBench bewertete aus diesem Grund jede funktionale Aufgabe fälschlich als 0.0; mit -o addopts=, das das Leck neutralisiert, bestanden dieselben Workspaces 10/10.
Related MCP server: forge-repo-mcp
Der Fix, den es dir an die Hand gibt
Wenn ein Workspace als CORRUPTED markiert ist, gibt das Tool den korrigierten Befehl zurück:
python -m pytest -o addopts= <tests>-o addopts= entfernt geerbte Coverage-/Abbruch-Gates. (Oder führe den Grader außerhalb der Repository-Wurzel aus.)
Werkzeuge
tool | purpose |
| vollständige Analyse: ini-Kette, effektive addopts, CLEAN/CORRUPTED/UNKNOWN-Ergebnis + korrigierter Befehl |
| schlanker Boolean: |
| einzeiliger, umsetzbarer Zusammenfassungs-String |
Deterministischer Kern (ohne Abhängigkeiten)
Die Analyse durchläuft das Workspace-Verzeichnis bis zur Dateisystemwurzel, liest pyproject.toml / pytest.ini / tox.ini / setup.cfg in der Reihenfolge, in der pytest sie zuerst findet, und extrahiert addopts. Markiert werden:
Coverage-Gates —
--cov,--cov-fail-under,--cov-report,--cov-configAbbruch-/Strict-Gates —
--maxfail,-x,--strict,--strict-markers,--pdb,--ff
Nur Gates, die Exit-Codes ändern / die Bewertung abbrechen, werden markiert. Ein harmloses addopts wird als CLEAN mit der exakten Zeichenkette gemeldet.
Installation und Ausführung (MCP stdio)
Ein Befehl (empfohlen) — installiert aus dem Repo, kein PyPI-Token nötig:
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 HTTPOder mit pipx: pipx install git+https://github.com/sudo-ai-git/mcp-benchmark-hygiene
Direkt aus dem Quellcode (Fallback):
{ "mcpServers": {
"benchmark-hygiene": { "command": "python3", "args": ["/abs/path/to/mcp_server.py"] }
}}Erfordert das offizielle mcp-Python-Paket (pip install mcp). Der deterministische Kern (inspect_workspace / check_addopts / summarize) importiert und läuft mit null Abhängigkeiten — das mcp-Paket wird nur für den stdio-Server benötigt.
Streamable HTTP (remote/für Smithery veröffentlichbar)
python3 mcp_server.py --http --port 8137 # serves on http://<host>:8137/mcp/Führe mit --http aus, um über Streamable HTTP (einen entfernten MCP-Endpunkt) statt über stdio zu dienen. Dies ist der Transport, den smithery mcp publish <url> für die URL-basierte Veröffentlichung erwartet — sobald also ein Smithery-Service-Token existiert, lässt sich der Server unverändert bereitstellen.
Beispiel
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']"]
}Verifizierung
python3 test_detector.py— 5/5 Kern-Erkennungsprüfungen (Root-Gate, verschachtelte Vererbung, sauber, Abbruch-Gate, pyproject-no-pytest)python3 test_e2e.py— treibt den echten MCP-stdio-Transport (initialize → tools/call) und prüft, dass CORRUPTED / CLEAN über die Leitung übertragen werden
Teil einer Familie
Dies ist einer von drei deterministischen, LLM-freien Agent-Trust-MCP-Servern von sudo-ai-git:
mcp-skill-sec— Pre-Install-Skill-/Sicherheitsauditmcp-verify-claim— evidenzbasierte, ehrlich gestufte Meldung von Behauptungenmcp-benchmark-hygiene— pytest-Konfigurationsleck-/Eval-Honesty-Erkennung (dieses Repo)
Lizenz & Herkunft
MIT. Unabhängig abgeleitet aus dem dokumentierten VulcanBench-#79-Befund; keine Unterstützung durch oder Verbindung mit morganlinton/VulcanBench impliziert.
Eine individuelle Integration beauftragen
Muss das mit deinem internen System verbunden werden (Auth, Logging, Security-Scan-Pass, gehostet)? Öffne eine Custom-Build-Anfrage. Die MIT-Referenz-Assets können in jedem Fall frei verwendet werden.
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