LabscoMCP early access ↗
kao273183MCP SERVER · OFFICIAL PROJECT

MK QA Master

One MCP surface over pytest, Jest, Cypress, go test, Maestro, Schemathesis and Newman — run the suite, get failure artifacts, and have the server write the next test from a page it analysed.

by kao273183 ↗Automated Testing & QA✓ Official

LABSCO 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.zip and 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 .py or Maestro .yaml written 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