{"name":"io.github.ArtJack/verdict","slug":"artjack-verdict","title":"Verdict QA","description":"Read-only MCP server over Verdict QA state: verdicts, findings, flaky quarantine, history.","url":"https://mcp.market/server/artjack-verdict","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":18,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-09-19T04:22:45.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/ArtJack/verdict","website":null,"version":"0.90.1","remotes":[],"packages":[{"registryType":"pypi","identifier":"verdict-qa-mcp","version":"0.90.1","transport":{"type":"stdio"}}],"tools":[{"name":"get_findings","description":"Findings for a project. status: 'open' (default), 'all', 'accepted' (the maintainer's accepted risks), or one of NEW / STILL_OPEN / RESOLVED / REGRESSED / ACCEPTED. REGRESSED sort first, then by severity, then by age (oldest first shown last run's pressure).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_history","description":"Run history, oldest first. Machine-native from runs.jsonl where it exists; the INDEX.md markdown parse remains as the legacy fallback for history that predates the file.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_profile","description":"The project's QA profile — isolation rules, risk areas, real test commands — plus the lessons ledger (judgment corrections) when one exists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_quarantine","description":"The flaky-test quarantine ledger, with an expired flag per entry.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_questions","description":"The questions the tester parked for a person — parked ones with their age, and answers no run has read yet. Answer with `verdict-answer`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_report","description":"Content of a QA report. Default: the last run's report; pass `report` (a path relative to the QA root, as returned by get_verdict/get_history) for an earlier one. Reports over 512KB are truncated with a flag.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_state","description":"The full raw state.json for a project (escape hatch; schema in docs/state-schema.md).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_trends","description":"Run-over-run trajectory: per-run test counts and verdicts parsed from the INDEX, plus the current pressure picture — open findings by severity, age distribution, quarantine size. Direction is the signal; cells the INDEX writes as prose come back raw with parsed numbers where possible.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_verdict","description":"The last recorded verdict, release blockers, and report path for a project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"List every project with a Verdict baseline in the solo state root.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-19T21:03:54.134Z","report":{"scannerVersion":"0.1.8","scannedAt":"2026-09-19T21:03:54.164Z","components":{"code":{"score":20,"max":25,"notes":["22 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.shell-true","severity":"medium","component":"code","title":"subprocess with shell=True","evidence":"verdict_qa_mcp-0.90.1/src/verdict_mcp/harness.py: …roc = subprocess.run(cmd, cwd=str(cwd), shell=True, capture_output=True, text=True, …"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"verdict-qa-mcp","version":"0.90.1","found":true,"dependencyCount":1,"publishedAt":"2026-09-19T01:37:04.984137Z","repositoryUrl":"https://github.com/ArtJack/verdict"}],"repo":{"found":true,"owner":"ArtJack","repo":"verdict","archived":false,"pushedAt":"2026-09-19T04:22:45Z","stars":1,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/87881848?v=4","ownerCreatedAt":"2021-07-23T23:01:51Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/87881848?v=4&s=128","source":"registry"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T04:22:45.000Z","score":18}}}},"grade_history":[{"kind":"restore","fromGrade":"C","toGrade":"A","reason":"score 85: subprocess with shell=True","createdAt":"2026-09-19T21:03:54.628Z"},{"kind":"downgrade","fromGrade":"B","toGrade":"C","reason":"score 66: Whole environment serialized (possible credential exfil); subprocess with shell=True","createdAt":"2026-09-19T00:30:31.227Z"}],"reviews":[]}