qaradar_healthcheckLABSCO SUMMARY
An agent could compute this itself — the argument is that it shouldn't.
The README makes the case openly: a capable agent with bash could run git log, parse coverage.xml and glob for test files, but that is several sequential calls, hundreds of KB of context, and a weighted score improvised each session. Doing it in code makes the answer reproducible and cheap. The diff-aware scoring is the sharpest piece — it normalises against the full repository so a file with two commits in a PR is not flagged critical just because it is the only file the agent can see.
What it is
A Python analyser that reads three signals out of a repository — how often a file changes, how well it is covered, and whether it has a corresponding test file — and combines them into a per-file risk score with readable reasons. It runs as an MCP server for coding agents and as a CLI for humans and CI. The point is that the answer is computed the same way every time, rather than reasoned out from raw git log in the model's context.
What you get
qaradar_healthcheckfor a full quality overview of a repositoryqaradar_risky_modulesranks files by risk with the reasons behind each ratingqaradar_churnfinds the hotspots;qaradar_coverage_gapsfinds the blind spots;qaradar_untested_filesfinds source files with no test at allqaradar_pr_riskscores only the files changed between a base ref and HEAD, but normalises against the whole repo so a small PR does not get falsely flagged criticalqaradar_should_runanswers whether a re-analysis is warranted and whether it should cover the diff or the full repo- Coverage formats normalised across coverage.py JSON, Istanbul/Jest JSON, Cobertura XML, LCOV and Go cover profiles
- Test-naming conventions encoded per language for Python, JavaScript/TypeScript, Go, Swift, Kotlin, Dart and Objective-C, with best-effort support for Java, Ruby and Rust
- Five slash commands when installed as a Claude Code plugin:
/qaradar:qa-check,/qaradar:qa-risky,/qaradar:qa-untested,/qaradar:qa-plan,/qaradar:qa-pr-risk
Requirements
No account and no key — it reads the repository you point it at. uvx qaradar serve runs it without installing; pip install qaradar installs it. Package qaradar, version 0.4.0, stdio transport. In Claude Code the one-step path is /plugin marketplace add Muratkus/qaradar then /plugin install qaradar@qaradar-marketplace, which wires the server and the slash commands together. Coverage signals need an existing coverage report in the repo; churn and test mapping work without one. Persistence is opt-in via --save, writing to .qaradar/state.json.
Setup effort
One command — uvx qaradar serve
USE CASES
Deciding what to test first in an unfamiliar repo
Get a ranked list of risky modules with the reason for each, instead of guessing from directory names.
Reviewing your own PR before opening it
Score only the changed files against a base ref and see which ones need a test.
Finding the regression magnets
Look at commit frequency and recency to see where changes keep landing.
Deciding whether to re-analyse at all
Ask whether enough has changed to warrant a run, and whether it should be diff-scoped or full.
7 tools
Listed in project docs. Your client may show a different list.
qaradar_risky_modulesqaradar_churnqaradar_coverage_gapsqaradar_untested_filesqaradar_pr_riskqaradar_should_runBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
Requires
uvx on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx qaradar serveMCP Clients
Claude Code
{
"mcpServers": {
"qaradar": {
"command": "uvx",
"args": [
"qaradar",
"serve"
]
}
}
}