GhostQA logo

GhostQA

Runs vision-based behavioral tests against web apps through AI personas, producing findings, screenshots, and structured reports.

Install GhostQA

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "ghostqa": {
      "command": "uvx",
      "args": [
        "specterqa"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

uvx specterqa

Process exited before answering initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked Today.

Overview

GhostQA MCP server exposes SpecterQA's AI-driven application testing through MCP tools. It uses Playwright screenshots and Claude vision models to let configured personas navigate web journeys without selectors or handwritten test scripts. Use it to run behavioral tests, inspect prior reports, list configured products, or initialize a project. It requires SpecterQA configuration files, Playwright browsers, and an Anthropic API key.

Use cases

  • Run AI-driven onboarding checks against a web application
  • Inspect configured products and their test journeys
  • Retrieve structured results from earlier behavioral test runs
  • Initialize a SpecterQA project for a new application

Key features

  • Screenshot-driven browser testing with AI personas
  • YAML-based products, personas, and journeys
  • Behavioral run reports with evidence and findings
  • Configurable model routing and cost limits
  • JUnit XML and JSON output for CI workflows
  • Stuck detection and service precondition checks

Tools4

What GhostQA lets your agent do. Expand a tool for its parameters.

Self-reported~97 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

Not checked yetLast checked Today

We have not completed a health check for this listing yet.

0/23 checks healthy over the last 90d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 19h ago via OSV.dev · specterqa (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

Last commit7mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Tools exposed4Callable tools this server registers over MCP.

How GhostQA works

What GhostQA MCP server does

GhostQA MCP server connects an MCP-compatible agent to SpecterQA, a testing engine for evaluating applications through simulated user behavior. Instead of relying on DOM selectors or fixed interaction scripts, it uses AI personas that interpret the visible interface and attempt configured journeys. The resulting run report can include findings, screenshots, cost information, and structured test results.

The primary use case is behavioral and UX testing for web applications. A product configuration identifies the application and its services, while persona and journey YAML files describe who is testing, what they want to accomplish, and any preconditions or checkpoints. This lets teams test flows such as onboarding, registration, and dashboard access using human-readable configuration.

How it works

A test run follows a screenshot-driven loop. Playwright captures the current page, a vision model evaluates the image along with the persona and journey context, and the selected action is executed in the browser. Actions can include clicking, filling fields, navigating, scrolling, waiting, completing a goal, or reporting that progress is blocked. The process continues until the journey succeeds, the agent becomes stuck, or a configured budget is reached.

Simple navigation can be routed to a lower-cost Haiku model, while more involved decisions use Sonnet. The project also documents optional Ollama routing for straightforward actions. Stuck detection can escalate the model and stop repeated ineffective actions. Runs can operate headlessly and return exit codes suitable for CI workflows.

Setup and configuration

Install the Python package with Python 3.10 or newer, then download the Playwright browser binaries. MCP support is installed through the package's optional MCP extra. Running tests requires the ANTHROPIC_API_KEY environment variable. The optional native extra is available for macOS native applications and iOS Simulator support.

Use the initialization tool to scaffold a project directory. SpecterQA stores configuration under .specterqa/, with YAML files for products, personas, and journeys. Product files can define base URLs, service health checks, viewports, and cost limits. Persona files describe user characteristics and credentials, while journeys contain goals, preconditions, checkpoints, and persona references.

Tools and capabilities

GhostQA MCP server provides these MCP operations:

  • specterqa_init creates a new SpecterQA project at a specified directory.
  • specterqa_list_products lists configured products and their journeys.
  • specterqa_run executes a behavioral test for a selected product. It accepts a product name and optional level and directory values, then returns a RunReport JSON object.
  • specterqa_get_results retrieves a previous report using its run ID.

The underlying project supports JSON output, JUnit XML output for CI systems, evidence directories, budget limits, template variables from persona configuration, and service precondition checks.

Limitations and notes

The testing engine depends on Playwright browser binaries and an Anthropic API key for its documented vision-model workflow. Model calls can incur cost, although per-run, daily, and monthly limits are supported. The quality of a run depends on the product, persona, journey, and service configuration supplied in .specterqa/.

GhostQA is intended for configured journeys rather than unrestricted application exploration. It reports when an agent is stuck or a budget is exhausted, but those conditions should be reviewed alongside the saved screenshots and findings. The README names Claude Desktop and Cursor as MCP integration targets; no other client-specific setup is described.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about GhostQA

GhostQA is an MCP server that connects AI agents to SpecterQA for vision-based behavioral testing of configured applications. Its main tools initialize projects, list products and journeys, run persona-driven tests, and retrieve prior run reports. Tests use Playwright and require an Anthropic API key for the documented workflow.

Install SpecterQA with Python 3.10 or newer and its MCP extra, then install the Playwright browser binaries. Set `ANTHROPIC_API_KEY` before running tests. The documented package commands are `pip install specterqa[mcp]` and `specterqa install`; the optional `native` extra supports native macOS and iOS Simulator testing.

Use `specterqa_run` with a configured product name, optionally supplying a test level and project directory. Products, personas, and journeys must be defined in the `.specterqa/` configuration structure. The tool returns a `RunReport` JSON object.

Yes, Cursor is named as an MCP integration target in the README. Install the package with MCP support, configure the server in Cursor, and provide the required SpecterQA project configuration and Anthropic API key before running tests.

Yes, SpecterQA supports JUnit XML and JSON output for CI workflows. The MCP run tool returns a structured `RunReport`, while the command-line workflow can write JUnit XML or JSON files and uses exit codes to indicate test status.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewGhostQA AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/ghostqa?style=directory)](https://allmcps.com/mcp/ghostqa)
HTML Embed
<a href="https://allmcps.com/mcp/ghostqa"><img src="https://allmcps.com/api/badge/ghostqa?style=directory" alt="GhostQA on AllMCPs" /></a>