
How to add MK QA Master to Cursor
Universal MCP server that drives your test suite end-to-end: run pytest/Jest/Cypress/Go/Maestro, analyze pages, generate tests, and advise. Paste the config into ~/.cursor/mcp.json and restart Cursor.
Last updated June 14, 2026 · 37★ · stdio · no auth
Cursor config for MK QA Master
uvx mk-qa-master{
"mcpServers": {
"mk-qa-master": {
"command": "uvx",
"args": [
"mk-qa-master"
],
"env": {
"QA_RUNNER": "pytest",
"QA_PROJECT_ROOT": "/path/to/your-test-project"
}
}
}
}Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.
Setup steps
- 1Open Cursor → Settings → MCP → Add new MCP server (or edit ~/.cursor/mcp.json directly).
- 2Paste the MK QA Master config below into the "mcpServers" object.
- 3Fill in placeholder secrets, then save.
- 4Cursor reloads MCP servers automatically — check Settings → MCP for a green status dot.
- 5Ask Cursor to use one of MK QA Master's tools to confirm it's connected.
Before you start
- uv (for the recommended uvx zero-install path) or Python 3 with pip
- QA_RUNNER and QA_PROJECT_ROOT environment variables
- Per-runner deps: pytest-playwright + 'playwright install chromium' for pytest; a Node project with jest/cypress installed; Go toolchain for go; Maestro CLI + a booted simulator/emulator/device for maestro
- API runners: 'pip install mk-qa-master[api]' for Schemathesis; 'npm install -g newman' for Newman
- Edge runner: 'pip install mk-qa-master[edge]' + ffmpeg + mediamtx on PATH
What MK QA Master can do in Cursor
get_runner_infoReport which test runner is active plus all available runners.
list_testsEnumerate the tests in the project under test.
run_testsRun tests with optional filter / headed / browser options (headed and browser are pytest-playwright only).
run_failedRe-run only the last failures (pytest --lf).
get_test_reportReturn a summary: pass / fail / skipped / duration / flaky-in-run.
get_failure_detailsPer-failure message plus paths to screenshot, Playwright trace, and video.
generate_testGenerate a test skeleton; with a module from analyze_url/analyze_screen, writes a runnable Playwright .py or Maestro .yaml with concrete selectors.
auto_generate_testsOne-shot: analyze a URL then generate one test per discovered module.
Security
The AI Visual Challenge Solver (reCAPTCHA/hCaptcha) and the OWASP API Security scanner are dangerous capabilities and are disabled by default. They require explicit opt-in env vars: QA_VISUAL_CHALLENGE_CONSENT=true and QA_API_SECURITY_CONSENT=true respectively, plus per-call confirmation. Authorized-domain allowlists (QA_VISUAL_CHALLENGE_AUTHORIZED_DOMAINS, QA_API_SECURITY_AUTHORIZED_DOMAINS) restrict where they operate; hard-stop blacklists refuse known identity providers and camera-vendor hosts. The security scanner runs adversarial test cases and the mass_assignment rule mutates server state — never point it at systems you do not own or are not authorized to test. Secrets in env (auth headers, tokens) are redacted from archived reports by default unless QA_NO_REDACT=1.
MK QA Master + Cursor FAQ
Where is the Cursor config file?
Cursor reads MCP servers from ~/.cursor/mcp.json. Paste the MK QA Master config there under the "mcpServers" key and restart the client.
Is MK QA Master safe to use with Cursor?
The AI Visual Challenge Solver (reCAPTCHA/hCaptcha) and the OWASP API Security scanner are dangerous capabilities and are disabled by default. They require explicit opt-in env vars: QA_VISUAL_CHALLENGE_CONSENT=true and QA_API_SECURITY_CONSENT=true respectively, plus per-call confirmation. Authorized-domain allowlists (QA_VISUAL_CHALLENGE_AUTHORIZED_DOMAINS, QA_API_SECURITY_AUTHORIZED_DOMAINS) restrict where they operate; hard-stop blacklists refuse known identity providers and camera-vendor hosts. The security scanner runs adversarial test cases and the mass_assignment rule mutates server state — never point it at systems you do not own or are not authorized to test. Secrets in env (auth headers, tokens) are redacted from archived reports by default unless QA_NO_REDACT=1.
How do I choose which test framework runs?
Set the QA_RUNNER env var to one of pytest / jest / cypress / go / maestro / schemathesis / newman / edge, and QA_PROJECT_ROOT to the project under test. Each runner has its own prerequisites (e.g. 'playwright install chromium' for pytest-playwright, 'npm install -g newman' for Newman).
Is the CAPTCHA solver enabled by default?
No. Both inspect_visual_challenge and solve_visual_challenge return a consent_required error until you set QA_VISUAL_CHALLENGE_CONSENT=true, and solving requires per-call confirm=true. It also refuses hard-stop domains like known identity providers regardless of consent.
Does it bundle JIRA/Slack/GitHub integrations?
No — it stays a pure test-execution and analysis layer. You compose workflows by running other MCP servers (Atlassian, Slack, GitHub, Sentry, Filesystem) side-by-side in the same client config and letting the AI client orchestrate the chain across servers.