Metadata-Version: 2.5
Name: verdict-qa-mcp
Version: 0.60.0
Summary: Read-only MCP server and release gate over Verdict QA state: verdicts, findings, flaky quarantine, run history.
Project-URL: Homepage, https://github.com/ArtJack/verdict
Project-URL: Repository, https://github.com/ArtJack/verdict
Project-URL: Issues, https://github.com/ArtJack/verdict/issues
Project-URL: Changelog, https://github.com/ArtJack/verdict/blob/main/CHANGELOG.md
Author: ArtJack
License: MIT License
        
        Copyright (c) 2026 ArtJack
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: claude-code,flaky-tests,mcp,qa,regression,release-gate,testing
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.10
Requires-Dist: mcp[cli]<2,>=1.27
Description-Content-Type: text/markdown

# verdict-qa-mcp

<!-- mcp-name: io.github.ArtJack/verdict -->

**A read-only MCP server and release gate over [Verdict](https://github.com/ArtJack/verdict)'s
QA state — so anything that speaks MCP can consult your QA memory.**

Verdict is a Claude Code QA agent that keeps a baseline and reports what broke since
yesterday: findings with stable IDs and ages, every red test classified, flaky tests
quarantined *with an expiry*, and a verdict of `pass | pass with risks | blocked | fail`
that names what was **not** tested.

This distribution is the part of Verdict that other tools talk to. It reads the same state
files the agent writes and never writes to them — an orchestrator gating a merge, a Cursor
or Codex session, or a CI step commenting on a PR can all ask what the tester last found.
The agent itself is a Claude Code plugin with zero dependencies and works without this
package.

> **Note on the name.** The distribution is `verdict-qa-mcp`; the console script is still
> `verdict-mcp`, and the import package is still `verdict_mcp`. `verdict-mcp` was taken on
> PyPI by an unrelated project.

## Install

```
claude mcp add verdict -- uvx --from verdict-qa-mcp verdict-mcp
```

Or `pip install verdict-qa-mcp` / `uv pip install verdict-qa-mcp`.

## MCP tools

Every tool carries a read-only annotation, and the server never writes — the tester's
memory is public API; the tester's pen is not.

| Tool | Returns |
|---|---|
| `get_verdict(project)` | last verdict, release blockers, report path, not-tested list |
| `get_findings(project, status)` | `open` (default), `all`, or `NEW / STILL_OPEN / RESOLVED / REGRESSED` — REGRESSED ranked first |
| `get_quarantine(project)` | the flaky ledger, each entry with a computed `expired` flag |
| `get_history(project)` | run-over-run trend parsed from the report index |
| `get_report(project, report?)` | full report content, path-guarded to the QA root — so CI can quote the evidence, not just link it |
| `get_profile(project)` | isolation rules, risk areas, real test commands, and the lessons ledger when one exists |
| `get_trends(project)` | trajectory, current pressure (open by severity, age, quarantine size), and **hotspots** — where this project's defects actually cluster |
| `list_projects()` / `get_state(project)` | everything with a baseline / the raw state |

`project` is a key under the solo root (`~/.claude/verdict/`, override with `VERDICT_HOME`)
or a repo path in team mode, which resolves `<repo>/.qa/`.

## Command-line entry points

| Command | Does |
|---|---|
| `verdict-mcp` | the MCP server above |
| `verdict-gate` | exit-code release gate for CI — keeps "never ran" distinct from "said no" |
| `verdict-validate` | checks a state file is well-formed (`--at-rest` for a committed one) |
| `verdict-run` | runs a pass through the harness |
| `verdict-facts` / `verdict-finalize` | measure-then-judge harness halves |

## Documentation

Full documentation, the plugin itself, and the published eval results live on GitHub:

- [Repository and plugin install](https://github.com/ArtJack/verdict)
- [Published eval results](https://github.com/ArtJack/verdict/blob/main/eval/README.md#published-results) — including the runs that scored badly
- [State schema](https://github.com/ArtJack/verdict/blob/main/docs/state-schema.md)
- [Changelog](https://github.com/ArtJack/verdict/blob/main/CHANGELOG.md)

MIT licensed.
