BugScout MCP Server
Enables autonomous web QA by exposing Playwright browser control as MCP tools for navigation, accessibility snapshotting, interaction, and bug detection.
README
š BugScout ā Autonomous Web QA Agent
Point it at a URL. It finds your bugs. It writes the regression tests.
BugScout is an AI-powered web QA agent that autonomously explores any web application, maps its user flows, detects bugs (console errors, broken links, a11y violations, layout issues, dead buttons), and generates production-ready Playwright regression suites ā all from a single command.
Why BugScout?
- Zero setup ā
npx bugscout <url>and you get a report with screenshots - Finds real bugs ā console errors, 4xx/5xx, broken links, a11y violations, dead buttons, layout overflow
- Generates Playwright tests ā deterministic, self-validating specs from discovered user flows
- Plays well with CI ā GitHub Action for PR previews, regression diffing
- MCP-native ā browser control exposed as MCP tools (works with Claude, Cursor, any MCP client)
- Accessibility-first ā snapshot via accessibility tree, not raw DOM (cheaper + more robust)
Quick Start
# Install
npm install -g bugscout
# Or run directly
npx bugscout https://example.com
# With options
npx bugscout https://example.com \
--output ./qa-results \
--max-pages 30 \
--agentic \
--generate-tests
How It Works
Target URL
ā
ā¼
Explorer agent āāāā Playwright (CDP) ā crawls same-origin pages
ā accessibility-tree-first, screenshot on ambiguity
ā¼
Flow map āāā pages, interactive elements, forms, links
ā
āāāāŗ Bug detector ā console errors, 4xx/5xx, broken links,
ā a11y violations, dead buttons, layout overflow
ā
āāāāŗ Test generator ā deterministic Playwright specs per flow
ā (role/label > testid > CSS selector strategy)
ā
āāāāŗ Reporter ā markdown report + screenshots
CLI Options
| Flag | Description | Default |
|---|---|---|
--output <dir> |
Output directory | ./bugscout-output |
--max-pages <n> |
Max pages to crawl | 50 |
--max-depth <n> |
Max crawl depth | 5 |
--no-headless |
Show browser window | true (headless) |
--timeout <s> |
Page timeout in seconds | 30 |
--agentic |
LLM-driven agentic exploration (v1) | false |
--generate-tests |
Generate Playwright specs (v1) | false |
Architecture
src/
āāā cli.ts ā CLI entry point (commander)
āāā explorer.ts ā Playwright crawler + flow map builder
āāā bug-detector.ts ā Cheap bug detectors (no LLM required)
āāā reporter.ts ā Markdown report + console summary
āāā agent.ts ā LLM-driven agentic exploration (v1)
āāā mcp-server.ts ā MCP server: browser as tools
āāā test-generator.ts ā Deterministic Playwright spec generation
āāā ci.ts ā GitHub Action + regression diff + security stub
āāā types.ts ā Shared TypeScript types
MCP Server
BugScout exposes a Playwright browser as MCP tools:
npx tsx src/mcp-server.ts
Tools: navigate, snapshot (a11y tree + screenshot), click, fill, evaluate, console_logs, network_errors, close
Use it directly with Claude Code or any MCP-compatible client.
CI Integration
# Generate a GitHub Actions workflow
npx bugscout ci --init
# Compare two scan results for regressions
npx bugscout diff baseline.json current.json
The generated workflow runs on PR preview deployments, comments findings directly on the PR.
Roadmap
| Version | What | Status |
|---|---|---|
| v0 | Explorer + cheap bug detection + markdown reports | ā Done |
| v1 | Agentic exploration + Playwright test generation | ā Done |
| v2 | Real-world OSS testing + repro GIFs + upstream bugs | š Pending |
| v3 | CI mode + regression diffing + security extension | ā Done |
Real-World Scans
BugScout has been tested against real, high-traffic production sites:
| Site | Pages | Bugs Found | High | Medium | Low | Duration |
|---|---|---|---|---|---|---|
| Hacker News (news.ycombinator.com) | 10 | 194 | 13 | 174 | 7 | 57s |
| Reddit (old.reddit.com) | 20 | 445 | 40 | 405 | ā | 214s |
Bugs detected include: missing accessible labels (a11y), layout overflow on narrow viewports, broken intra-site links, and console errors.
Run the agentic mode (
--agentic) to enable LLM-driven exploration and automatic Playwright test generation from discovered flows.
Metrics
All numbers published are real and verifiable:
- 639 total bugs found across 2 production sites (30 pages, 3,600+ links)
- Pages crawled per scan, cost + wall-clock time, and bug severity breakdown
- Upcoming: bugs filed ā confirmed by upstream maintainers; test flake rate
Tech Stack
- TypeScript end-to-end
- Playwright for browser automation (Chromium via CDP)
- MCP SDK (
@modelcontextprotocol/sdk) for tool exposure - Claude API for agentic exploration + test generation (v1+)
- axe-core for accessibility violation detection
License
MIT ā Muhammad Taha Khan
639 bugs found across 2 production sites. Real numbers, real scans.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.