crowd-test-mcp
README.md
# crowd-test-mcp š„
**The mob, on tap ā an MCP server for [crowd-test](https://github.com/anhhuyn411-alt/crowd-test).**
Ask Claude Desktop, Claude Code, Cursor, or any MCP client to unleash a crowd
of AI virtual users ā impatient shoppers, confused seniors, keyboard-only
users, chaos monkeys ā on your website. They browse it in real Chromium,
file findings, and hand back a damage report with a **survival grade** (SāF).
> *"Send the mob at https://staging.myapp.com and tell me what to fix first."*
That's the whole workflow now.
## Install
```bash
pip install crowd-test-mcp
```
An LLM key is required in the server's environment: `ANTHROPIC_API_KEY` or
`OPENAI_API_KEY`.
### Claude Code
```bash
claude mcp add crowd-test -e ANTHROPIC_API_KEY=sk-... -- crowd-test-mcp
```
### Claude Desktop / Cursor / anything MCP
```json
{
"mcpServers": {
"crowd-test": {
"command": "crowd-test-mcp",
"env": { "ANTHROPIC_API_KEY": "sk-..." }
}
}
}
```
## Tools
| Tool | What it does |
|---|---|
| `run_crowd_test` | Send the crowd at a URL. Pick personas, add a random `mob`, set a `goal`, choose the verification depth (`none` / `detective` / `cross` / `tribunal`). Returns a compact damage summary; full markdown/HTML reports land in `~/crowd-test-reports/`. |
| `list_personas` | The ten built-in ringleaders and what each one catches. |
| `preview_mob` | Preview the random mob a given `count`/`seed` would generate. |
| `read_report` | Fetch the newest full markdown report from disk. |
## The verification tribunal
Findings can be cross-examined by up to three independent harnesses before
they count against the grade ā a skeptical detective agent, a raw Playwright
probe, and a [Microsoft Webwright](https://github.com/microsoft/Webwright)
agent. Automation artifacts get disputed instead of panicking you. Details in
the [crowd-test README](https://github.com/anhhuyn411-alt/crowd-test#the-tribunal-%EF%B8%8F).
Deeper layers need one-time extras:
```bash
pip install crowd-test[probe] && playwright install chromium # verify="cross"
pip install git+https://github.com/microsoft/Webwright # verify="tribunal"
```
## Good to know
- **Runs take minutes, not seconds** ā every persona drives a real browser.
Start with 2ā3 personas; escalate to `mob=10` when you mean it.
- **Only test what you own.** The mob is for your own staging and production
sites, not other people's.
- Reports default to `~/crowd-test-reports/<host>-<timestamp>/`.
## License
[MIT](LICENSE)
TDQS
A3.7/5.0
Scored across 3 tools
Disambiguation5/5
Each tool targets a distinct action: listing personas, previewing mob members, and reading reports. There is no overlap in functionality.
Naming Consistency5/5
All tool names follow the verb_noun pattern consistently (list_personas, preview_mob, read_report).
Tool Count4/5
With only 3 tools, the server is thin but appropriate for a focused utility that augments an external test runner. The count is slightly under but reasonable for the scope.
Completeness3/5
The tools cover listing, previewing, and reading reports, but there is no tool to execute the crowd test itself, which is a notable gap given the server's purpose.
Maintenance
ActivityStale
ResponsivenessNo issues