get_runner_infoLABSCO SUMMARY
The analyse-then-generate loop is what separates it from a test-command wrapper.
Pointing it at a URL gives back named page modules, and handing one of those modules to the generator produces a test with real selectors that runs — which is the step most "AI writes your tests" tooling leaves as a TODO comment. The scanning and challenge-solving tools sit behind explicit consent gates and hard-stop domains, so treat those as opt-in rather than part of the normal suite run.
What it is
A QA runner exposed as an MCP server, published on PyPI as mk-qa-master. The runner is chosen by the QA_RUNNER environment variable, and every runner feeds the same report, history, flake and optimizer pipeline — so web, mobile and API suites come back in one shape. It also analyses a live page or mobile screen into modules, then generates a runnable test file from one of those modules rather than a stub.
What you get
- Suites run across pytest and pytest-playwright, Jest, Cypress,
go test, Maestro for iOS and Android, Schemathesis against an OpenAPI 3.x or Swagger 2.0 schema, and Newman against a Postman v2.x collection —run_tests,run_failed,list_tests,get_runner_info - Failure artifacts that survive the run: base64-inlined screenshots, video, Playwright
trace.zipand Maestro recordings, plus JUnit XML for CI —get_failure_details,get_test_report,generate_html_report - Run history snapshotted per run, with a sparkline trend in the HTML report and flaky tests separated from real failures —
get_test_history,get_telemetry - A live page or mobile screen broken into forms, navigation, dialogs and CTAs, with the API endpoints the page hits —
analyze_url,analyze_screen - A runnable Playwright
.pyor Maestro.yamlwritten from an analyser module with concrete selectors —generate_test,auto_generate_tests - A post-run coaching pass over suite quality, MCP usability and generation effectiveness, and a project knowledge file the server reads back —
get_optimization_plan,init_qa_knowledge,get_qa_context - An OWASP API security scan behind an explicit consent gate, and a visual-challenge solver behind another —
run_api_security_scan,inspect_visual_challenge,solve_visual_challenge
Requirements
No account and no key for the server itself. The zero-install path is uvx mk-qa-master with QA_RUNNER and QA_PROJECT_ROOT in the client config; pip install mk-qa-master works too. Each runner brings its own prerequisite: pytest-playwright plus playwright install chromium for the pytest path, a Node project with jest or cypress installed, a Go toolchain on PATH, the Maestro CLI plus a booted simulator, emulator or device, pip install 'mk-qa-master[api]' for Schemathesis, and npm install -g newman for the Newman path — Newman is an npm package, so it is not available as a Python extra. mk-qa-master doctor walks the Python version, binaries on PATH, core dependencies, extras and the tool surface, and exits 1 when something critical is missing. Published version 1.4.0.
Setup effort
One command — uvx mk-qa-master
USE CASES
Running one suite the same way across web, mobile and API
Set the runner per project and call the same tools; results, history and flake handling come back in one shape whichever framework produced them.
Turning a failing run into something you can act on
Fetch the failure detail with its screenshot, video or trace attached, then re-run only what failed instead of the whole suite.
Covering a page that has no tests yet
Analyse the live page into modules, then generate a runnable test from the module you care about rather than describing the DOM by hand.
Testing an API you only have a schema or collection for
Point the Schemathesis runner at an OpenAPI schema for property-based fuzzing, or the Newman runner at an exported Postman collection so its embedded assertions come back as individual test IDs.
22 tools
Listed in project docs. Your client may show a different list.
list_testsrun_testsrun_failedget_test_reportget_failure_detailsgenerate_testauto_generate_testscodegengenerate_html_reportget_test_historyanalyze_urlanalyze_screeninit_qa_knowledgeget_qa_contextget_optimization_planinspect_visual_challengesolve_visual_challengerun_api_security_scanqa_planverify_plananalyze_streamBEFORE YOU INSTALL
What to know first
Tools you get
22 tools named in the project's documentation.
Requires
uvx on PATH
INSTALLATION
Connect your client
Add the block to your client, or run the command directly.
Server setup
Configuration file
{
"mcpServers": {
"mk-qa-master": {
"command": "uvx",
"args": [
"mk-qa-master"
],
"env": {
"QA_RUNNER": "pytest",
"QA_PROJECT_ROOT": "<YOUR_QA_PROJECT_ROOT>"
}
}
}
}uvx
uvx mk-qa-master