
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.
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.
Installation
In SourceWeft
- Open Mcp Benchmark Hygiene in the dashboard and add it to a workspace.
- 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.:
...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:
-o addopts= strips inherited coverage/abort gates. (Or run the grader from
outside the repo root.)
Tools
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:
Or with pipx: pipx install git+https://github.com/sudo-ai-git/mcp-benchmark-hygiene
Direct from source (fallback):
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)
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
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:
mcp-skill-sec— pre-install skill/security auditmcp-verify-claim— evidence-gated, honestly-tiered claim reportingmcp-benchmark-hygiene— pytest config-leakage / eval-honesty detection (this repo)
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
0Version history
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