The trade is explicit: nothing to maintain when the DOM shifts, but a vision model decides every click, so runs cost money and take time — `specterqa_run` is synchronous, documented at 45-300s, with a default budget of $5.00 and hard per-run, per-day and per-month caps. What you get back is the kind of finding a selector suite structurally cannot produce, like a disabled submit button with no validation message explaining why.
A behavioral test runner an assistant can call. You describe personas and journeys in YAML; the engine screenshots the page, asks a Claude vision model what a person like that would do next, and executes the decision through Playwright. There are no selectors, so a layout change does not break the suite — and visual problems a selector test cannot see become findings.
- `specterqa_run` executes a journey against a product and returns step results, findings ranked by severity, and a cost breakdown
- `specterqa_list_products` lists the configured products and the journeys under each
- `specterqa_get_results` pulls back the full report of an earlier run by its run ID
- `specterqa_init` scaffolds a new project directory with sample product, persona and journey files
- Every run leaves evidence on disk: screenshots, a findings report and a structured JSON result
Python 3.10 or later. Install with `pip install specterqa[mcp]` (package `specterqa`, version 0.4.0), then `specterqa install` to fetch the Playwright browsers, and start it with `specterqa-mcp`. `ANTHROPIC_API_KEY` is required — the vision model does the walking and each run bills against your key. Set `SPECTERQA_ALLOWED_DIRS` to an explicit allowlist: left unset, the `directory` parameter of `specterqa_run` can point anywhere the process can reach.
One command plus a key — pip install specterqa[mcp], then supply credentials
