MCP Tools Reference
Generated from packages/mcp-server/src/tools.ts. All five tools are
registered by @frontend-qa/mcp-server; see the MCP Server guide
for how to run it.
frontend.run_scan
Section titled “frontend.run_scan”Runs a scan (equivalent to frontend-qa scan) and returns a text summary.
{ url?: string; // must be a valid URL if provided routes?: string[]; outDir?: string; headed?: boolean; timeoutMs?: number; // positive integer failOn?: 'critical' | 'high' | 'medium' | 'low' | 'never'; discoverRoutes?: boolean; har?: boolean; a11y?: boolean; perf?: boolean; visual?: boolean;}Returns a text content block: run ID, report path, and issue counts by severity. Returns an error result if no URL was given and no dev server could be found or launched.
frontend.get_report
Section titled “frontend.get_report”Reads back a previously written Report in full.
{ runId?: string; // omit for the most recent run outDir?: string;}Returns the full Report as pretty-printed JSON text. Errors if no report
is found.
frontend.get_issues
Section titled “frontend.get_issues”Reads a report’s issues, filterable.
{ runId?: string; outDir?: string; minSeverity?: 'critical' | 'high' | 'medium' | 'low' | 'info'; collector?: string; category?: string;}Returns Issue[] as JSON text, filtered by minSeverity (inclusive,
ranked info < low < medium < high < critical), collector, and/or
category — all optional and combinable.
frontend.get_console_errors
Section titled “frontend.get_console_errors”Shorthand for get_issues filtered to collector === 'browser.console'.
{ runId?: string; outDir?: string;}frontend.get_screenshot
Section titled “frontend.get_screenshot”Returns a route’s screenshot as an image content block.
{ runId?: string; outDir?: string; route?: string; // omit for the first scanned route}Returns { type: 'image', data: <base64>, mimeType: 'image/png' }. Errors
if no report or no matching screenshot is found. Route-to-file matching uses
the same slug() function the browser collectors use to name screenshot
files, so the route string doesn’t need to match a file path directly.
Common behavior
Section titled “Common behavior”Every tool other than run_scan reads from an already-written report on
disk (.local/frontend-qa/runs/<runId>/report.json) — they don’t trigger a
new scan. Run frontend.run_scan first, or point runId/outDir at an
existing run produced by the CLI.