SpecterQA sends AI personas through your application — they look at the screen, decide what to do, and interact like real humans. No test scripts. No
SpecterQA sends AI personas through your application — they look at the screen, decide what to do, and interact like real humans. No test scripts. No selectors. You describe personas and journeys in YAML, and SpecterQA handles the rest. Exposed over MCP by the ghostqa mcp server, that capability becomes something an assistant can invoke while it works, not something you go and do afterwards.
Traditional E2E tests are brittle. You write selectors, they break. You maintain scripts, they rot. SpecterQA takes a different approach: AI vision models look at your actual UI and navigate it the way a person would.
Everything the assistant can do here goes through one of these:
specterqa_run — Execute behavioral tests. Parameters: product (str), level (str, optional), directory (str, optional). Returns a RunReport JSON objectspecterqa_list_products — List all products and their configured journeys. No parameters requiredspecterqa_get_results — Retrieve a previous run report by run_idspecterqa_init — Initialize a new SpecterQA project at a given directoryspecterqa on PyPI is all you need. Most clients run it directly, so configuration is a few lines and a restart.
You will need 3 environment variables: ANTHROPIC_API_KEY, SPECTERQA_BUDGET, SPECTERQA_ALLOWED_DIRS. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Plenty of file and storage access servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Ghostqa's toolset — specterqa_run, specterqa_list_products, specterqa_get_results and 1 more — is a fair guide to whether it matches your workflow. It is maintained by synctek-llc; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| specterqa_run | Execute behavioral tests. Parameters: product (str), level (str, optional), directory (str, optional). Returns a RunReport JSON object. |
| specterqa_list_products | List all products and their configured journeys. No parameters required. |
| specterqa_get_results | Retrieve a previous run report by run_id. |
| specterqa_init | Initialize a new SpecterQA project at a given directory. |
{
"mcpServers": {
"ghostqa": {
"command": "uvx",
"args": ["specterqa"],
"env": {
"ANTHROPIC_API_KEY": "your-value",
"SPECTERQA_BUDGET": "your-value",
"SPECTERQA_ALLOWED_DIRS": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| ANTHROPIC_API_KEY | Credential the server authenticates with. | Yes |
| SPECTERQA_BUDGET | Configuration value read at startup. | Optional |
| SPECTERQA_ALLOWED_DIRS | Filesystem location the server is allowed to use. | Optional |
Scoped local file access — read, write, search and reorganise files in directories you explicitly allow.
Search and read your Drive — Docs, Sheets and files become context your assistant can actually use.
Query, modify and analyse local SQLite databases in conversation — the fastest way to chat with a data file.
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Chat with your second brain — search, read and write vault notes through the Local REST API.
Connects AI models to an Obsidian knowledge base for direct access and manipulation of notes and folders.