Mcp Benchmark Hygiene

io.github.sudo-ai-gitPublished by GitHub account sudo-ai-gitv1.0.1Updated Oct 24, 2026

Detect pytest config-leakage that corrupts agent-benchmark grading. Deterministic, no-LLM.

VerifiedSTDIODesktop onlyDeveloper ToolsAI & ML

Overview

AI-generated overview

A local, deterministic MCP server that checks whether a pytest workspace inherits host coverage or abort gates that would mis-score passing code as failed.

What you can do
Inspect a workspace path and walk its pytest config chain (pyproject.toml, pytest.ini, tox.ini, setup.cfg) up to the filesystem root to find effective addopts and return a CLEAN, CORRUPTED or UNKNOWN verdict with a corrected command when corrupted. Run a thin boolean check that reports whether the workspace is corrupted and why. Produce a one-line actionable summary from an analysis result.
When to use it
Useful when running or debugging automated agent-evaluation harnesses that invoke pytest inside a target workspace nested under a repo with its own pytest settings, and you suspect grading failures come from inherited coverage or abort gates rather than the code itself.
Requirements
Runs as a local stdio process, installed from the project's Git repository with uv or pipx, or launched directly from source with python3. The official mcp Python package is needed for the server; the detection core itself has no dependencies. No network access, accounts, keys or environment variables are required.
Before you install
The analysis reads configuration files from the given workspace path and every parent directory up to the filesystem root, so it inspects files outside the workspace. It only reads configuration and does not modify files or run tests; the corrected command it suggests is for you to run yourself.

Installation

In SourceWeft

  1. Open Mcp Benchmark Hygiene in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mcp-benchmark-hygiene

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

Deterministic detection of pytest config-leakage that silently corrupts agent-benchmark / function grading.

No LLM. No network. One question, answered reliably:

If I run python -m pytest <tests> inside this workspace, will it inherit a host coverage/abort gate that mis-scores passing code as failed?


The bug this catches

Automated agent-evaluation harnesses often run python -m pytest <hidden_tests> inside the target's workspace. If that workspace nests under a repo root carrying pytest addopts — e.g.:

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

...pytest resolves that host pyproject.toml as its rootdir, inherits the addopts, and fails on the host's own coverage gate (harness collected at 0% → below threshold → non-zero exit). The harness then records functionally PASSING code as FAILED.

This is exactly the bug documented in sudo-ai-git/vulcanbench-findings: VulcanBench's declarative grader mis-scored every functional task as 0.0 for this reason; with -o addopts= neutralizing the leak, the same workspaces passed 10/10.

The fix it hands you

When a workspace is flagged CORRUPTED, the tool returns the corrected command:

bash
python -m pytest -o addopts= <tests>

-o addopts= strips inherited coverage/abort gates. (Or run the grader from outside the repo root.)

Tools

toolpurpose
inspect_workspace(path)full analysis: ini chain, effective addopts, CLEAN/CORRUPTED/UNKNOWN verdict + corrected command
check_addopts(path)thin boolean: corrupted + reasons
summarize(analysis)one-line actionable summary string

Deterministic core (no deps)

The analysis walks the workspace directory up to filesystem root, reading pyproject.toml / pytest.ini / tox.ini / setup.cfg in pytest's first-found order, and extracts addopts. Flags:

  • coverage gates — --cov, --cov-fail-under, --cov-report, --cov-config
  • abort/strict gates — --maxfail, -x, --strict, --strict-markers, --pdb, --ff

Only gates that change exit codes / abort grading are flagged. A harmless addopts is reported CLEAN with the exact string.

Install & run (MCP stdio)

One command (recommended) — installs from the repo, no PyPI token needed:

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

Or with pipx: pipx install git+https://github.com/sudo-ai-git/mcp-benchmark-hygiene

Direct from source (fallback):

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

Requires the official mcp python package (pip install mcp). The deterministic core (inspect_workspace / check_addopts / summarize) imports and runs with zero dependencies — the mcp package is only needed for the stdio server.

Streamable HTTP (remote/Smithery-publishable)

bash
python3 mcp_server.py --http --port 8137   # serves on http://<host>:8137/mcp/

Run with --http to serve over Streamable HTTP (a remote MCP endpoint) instead of stdio. This is the transport smithery mcp publish <url> expects for URL-based publishing — so once a Smithery service token exists, the server deploys as-is.

Example

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']"]}

Verification

  • python3 test_detector.py — 5/5 core detection checks (root gate, nested inheritance, clean, abort gate, pyproject-no-pytest)
  • python3 test_e2e.py — drives the real MCP stdio transport (initialize → tools/call) and asserts CORRUPTED / CLEAN thread through the wire

Part of a family

This is one of three deterministic, no-LLM agent-trust MCP servers by sudo-ai-git:

Sibling product: mcp-token-saver — token-cost proxy + analyzer for agent conversations (dedupes redundant tokens before they're billed; live-proven 74% cut). Discussion

Also in the family (a free CLI, not an MCP server): harness-audit — deterministic agent-eval / benchmark-grading hygiene audit that catches the same silent config-leakage mis-scoring class. Free lead-magnet; the same verification discipline, zero dependencies, auditable line-by-line.

License & provenance

MIT. Independently derived from the documented VulcanBench #79 finding; no endorsement by or affiliation with morganlinton/VulcanBench implied.

Hire a custom integration

Need this connected to your internal system (auth, logging, security-scan pass, hosted)? Open a custom-build request. MIT reference assets are free to use either way.

Source: README.md at commit 5931318

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts