Skip to main content
Glama
anhhuyn411-alt

crowd-test-mcp

crowd-test-mcp 🔥

The mob, on tap — an MCP server for 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

pip install crowd-test-mcp

An LLM key is required in the server's environment: ANTHROPIC_API_KEY or OPENAI_API_KEY.

Claude Code

claude mcp add crowd-test -e ANTHROPIC_API_KEY=sk-... -- crowd-test-mcp

Claude Desktop / Cursor / anything MCP

{
  "mcpServers": {
    "crowd-test": {
      "command": "crowd-test-mcp",
      "env": { "ANTHROPIC_API_KEY": "sk-..." }
    }
  }
}

Related MCP server: Prufa

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 agent. Automation artifacts get disputed instead of panicking you. Details in the crowd-test README.

Deeper layers need one-time extras:

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

Available Tools

3 tools
list_personasA

List the built-in ringleader personas and what each one catches.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies a read-only operation (listing) and specifies that it covers built-in personas, which is useful behavioral context. However, it does not explicitly state non-destructiveness or any authentication needs. Still, it is clear and not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It directly states the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and the presence of an output schema, the description provides sufficient context for a simple listing tool. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, schema coverage is 100%. The description adds meaning by specifying the scope ('built-in ringleader personas') and the content ('what each one catches'), which is beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list', the resource 'built-in ringleader personas', and the additional information they provide ('what each one catches'). It effectively distinguishes from sibling tools like preview_mob and read_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool vs alternatives, nor does it mention any prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_mobB

Preview the random mob members a given count/seed would generate.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavior. It correctly implies a read-only preview operation, but it does not mention side effects, authentication needs, rate limits, or output format. More detail is needed for a complete behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without extraneous information. It is front-loaded and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate given the presence of an output schema (not shown), which likely details return values. However, it omits information about default behaviors (e.g., what happens when seed is null) and does not clarify the relationship between count and seed. Overall, it is minimally sufficient but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It mentions 'count/seed', linking them to the parameters, but does not explain what seed controls (e.g., randomness source) or the meaning of count beyond quantity. It adds basic semantic value but lacks detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Preview') and the resource ('random mob members'), and mentions the key parameters (count/seed). It distinguishes the tool from siblings like 'list_personas' and 'read_report' by focusing on a specific preview of mob generation. However, it could be more explicit about what 'mob members' refers to.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no scenarios where it should or should not be used. It is a minimal statement of function without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_reportA

Return the newest crowd-test markdown report under a directory.

Defaults to ~/crowd-test-reports, where run_crowd_test writes.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It declares the tool returns the newest markdown report, which implies read-only behavior. However, it does not specify behavior when no reports exist or potential errors, but the simplicity of the tool limits gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences and 18 words. The main action is front-loaded in the first sentence, and the second sentence adds essential default context with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one optional parameter and an output schema (which defines return structure), the description is largely complete. It mentions the report type (markdown) and connects to run_crowd_test. A minor gap is lack of error handling details, but for a simple read tool this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'report_dir' is optional with default null. The description adds meaning by explaining it specifies 'under a directory' and defaults to '~/crowd-test-reports', which clarifies the parameter's role beyond the schema (which only shows type and default).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool returns the newest crowd-test markdown report under a directory, with a clear verb ('return') and resource ('newest crowd-test markdown report'). It distinguishes itself from sibling tools (list_personas, preview_mob) by focusing on reading a report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by stating the default directory and noting that run_crowd_test writes there, implying this tool is used to read those reports. However, it does not explicitly state when not to use it or provide alternatives, but the context is sufficient given simple siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.0
    • First observedlist_personas
    • First observedpreview_mob
    • First observedread_report

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

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    AI-powered exploratory QA agent. Explores web apps like a real user — 18 MCP tools for clicking, filling forms, and navigating. Automatically verifies that actions persist (fake deletes, failed edits). Runs 16 detection types including dead links, SEO, accessibility, and performance checks.
    29
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Point your coding agent at a URL and get a real-browser QA audit: broken signup/login/checkout flows, JS console errors, missing analytics, consent + security headers, mobile tap targets, and accessibility — returned as machine-verified findings graded A-F.
    44
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    ▎ Enables AI assistants to unleash a crowd of role-played virtual users — impatient shoppers, seniors, keyboard-only users, privacy hawks, chaos monkeys — on a website. Each persona browses in a real Chromium browser, files UX/QA findings in character, and the site receives a damage report with an S–F survival grade. Accusations can be cross-examined by up to three independent verification engines
    2
    MIT