{"name":"tech.bugbrain/mcp","slug":"bugbrain-mcp","title":null,"description":"BugBrain QA platform for AI coding tools: autonomous exploratory testing, test plans, a11y audits.","url":"https://mcp.market/server/bugbrain-mcp","rating":null,"grade":"C","score":58,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":10,"stars":null,"forks":null,"downloads_week":21,"last_push_at":null,"license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":null,"website":"https://bugbrain.tech","version":"0.2.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@bugbrain/mcp","version":"0.2.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"BugBrain API key (sk_live_...) — create one in BugBrain → Settings → API Keys","isRequired":true,"isSecret":true,"name":"BUGBRAIN_API_KEY"},{"description":"Override the BugBrain API base URL (default https://api.bugbrain.tech)","name":"BUGBRAIN_BASE_URL"},{"description":"Custom tunnel command template for the create_tunnel tool ({port} is substituted; default uses cloudflared)","name":"BUGBRAIN_TUNNEL_CMD"}]}],"tools":[{"name":"bugbrain_connect","description":"Validate the API key and return the active organization, plan, usage/quota, and the scopes this key holds. Call this first to confirm the connection.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cancel_run","description":"Request cancellation of an in-flight run.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ci_gate","description":"One-call CI gate: start a run (exploratory / accessibility / compliance), wait for it to finish, then PASS/FAIL it against thresholds \\u2014 severity, max new issues vs the previous run, and a minimum trust score. Returns a clear verdict + reasons for your pipeline. Blocks until the run completes or times out.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_test_case","description":"Create a curated test case from a plain-English description (e.g. \"verify a user can reset their password\"). The AI turns it into structured steps.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_tunnel","description":"Expose a local dev server (http://localhost:PORT) via a secure public tunnel so BugBrain can test it before you deploy. Returns a public URL to pass as targetUrl when starting a run. Requires the local stdio bridge and a tunnel binary (cloudflared by default).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_webhook","description":"Remove an outbound webhook subscription by id.","write_action":true,"price_micros":0,"input_schema":null},{"name":"execute_test_case","description":"Run a single curated test case. Returns immediately with an execution id \\u2014 poll get_execution_result for the PASS / FAIL / INCONCLUSIVE verdict and confidence.","write_action":true,"price_micros":0,"input_schema":null},{"name":"execute_test_plan","description":"Run an entire test plan (its cases, in parallel). Returns immediately with a test-plan-run id \\u2014 poll get_test_plan_run for the pass/fail rollup.","write_action":true,"price_micros":0,"input_schema":null},{"name":"generate_test_cases","description":"Run the Synthesizer agent to generate curated test cases from the project\\u2019s learned knowledge + recent runs. Returns a job id immediately; poll list_test_cases to see new cases appear.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_accessibility_report","description":"Fetch the aggregated accessibility report: WCAG score, failing rules (with criteria/level), per-page breakdown, and coverage.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ai_quality_summary","description":"Get aggregated AI quality metrics for a project: average consistency score, hallucination risk trend, top issues by category, and recent run health. Useful for CI dashboards and PR quality gates.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ai_test_results","description":"Fetch the full results of an AI test run: status, quality metrics (consistency, hallucination risk, toxicity, injection vulnerability), and the per-turn conversation trace.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_compliance_report","description":"Fetch the aggregated compliance report: per-framework score, control-by-control status + evidence counts, manual-only controls, and overall risk level.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_execution_failure","description":"For a FAILED execution: the failing step + reasoning, plus a local Playwright reproduce command and trace/HAR/storage-state URLs so you can reproduce it on your machine.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_execution_result","description":"Fetch a test-case execution: status, verdict (PASS/FAIL/INCONCLUSIVE), confidence, and evidence.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project","description":"Fetch a single project by id (name, websiteUrl, environment, whether credentials are configured).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_run_comparison","description":"Diff a run\\u2019s issues against the previous run for the project: new / resolved / still-present.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_run_observation","description":"Fetch the LLM-as-judge trust report for a run: per-issue validity (real / false-positive / insufficient-evidence), failure root-cause, and an overall run-quality score (1\\u20135). Set generate=true to (re)generate it (spends LLM budget). The honest answer to \"can I trust this run?\".","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_run_status","description":"Fetch a run\\u2019s status, counters, business context, and discovered test plan.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_run_trace","description":"Fetch the step-by-step agent trajectory (thought / action / observation) for a run.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_test_plan_run","description":"Fetch a test-plan run rollup: items total/passed/failed/skipped, status, duration.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_web_qa_report","description":"Fetch the consolidated, severity-categorized report for a Web-Test run: status, the swarm config (breadth / agent count), the merged bug report, and the issue count. Poll until status is COMPLETED.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_ai_test_cases","description":"List AI test cases for a project. Optionally filter by kind (e.g. PROMPT_CONSISTENCY, INJECTION_PROBE, HALLUCINATION_SCAN) or status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_ai_test_runs","description":"List recent AI test runs for a project, optionally filtered by test case. Returns status, key metrics (consistency score, hallucination risk), and timestamps.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_api_keys","description":"List the organization\\u2019s API keys (id, name, scopes, created/last-used). Never returns the secret.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_environments","description":"List the environments available for a project and which one it currently targets (production / staging / development).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_llm_targets","description":"List all LLM/AI test targets configured for a project. Each target represents an AI system under test \\u2014 a chatbot, voice agent, or LLM endpoint.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_project_issues","description":"List issues for a project, with severity, category, status, page URL, and AI confidence.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"List the projects (web apps under test) in the connected organization.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_run_issues","description":"List the issues a run found, with severity, category, page URL, AI confidence, and screenshot links.","write_action":true,"price_micros":0,"input_schema":null},{"name":"list_runs","description":"List recent runs for a project (or across the org when projectId is omitted).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_test_cases","description":"List curated test cases for a project (or across the org when projectId is omitted).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_test_plans","description":"List test plans (collections of test cases) for a project, or across the org.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_webhooks","description":"List the organization\\u2019s outbound webhook subscriptions (url, events, enabled).","write_action":false,"price_micros":0,"input_schema":null},{"name":"mint_api_key","description":"Create a new least-privilege API key. Pass `scopes` to restrict it (empty = full access). The secret is returned ONCE \\u2014 store it immediately.","write_action":true,"price_micros":0,"input_schema":null},{"name":"push_finding_to_tracker","description":"File a compliance finding (by its signature) into the org\\u2019s connected issue tracker (Jira or Linear). Returns the created issue key + URL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"register_webhook","description":"Subscribe a public https URL to run events (run.completed / run.failed) for push-driven CI. Returns the signing secret ONCE \\u2014 store it to verify the HMAC signature on delivery.","write_action":false,"price_micros":0,"input_schema":null},{"name":"revoke_api_key","description":"Permanently revoke an API key by id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_accessibility_audit","description":"Run a dedicated WCAG 2.1/2.2-AA accessibility audit (axe-core + agent verification). Returns immediately with a run id \\u2014 poll get_run_status, then get_accessibility_report for the score.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_ai_test","description":"Trigger execution of an AI test case. Returns immediately with a run id \\u2014 poll get_ai_test_results for the outcome. Requires the org to have an available AI test quota.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_compliance_scan","description":"Run a compliance scan (SOC2 / GDPR / ADA / WCAG 2.2 AA / ISO 27001 / EU AI Act) that maps findings to framework controls with evidence. Returns a run id immediately \\u2014 poll get_run_status, then get_compliance_report.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_duo_test","description":"Run a TWO-USER test: two agents drive the app at the same time as different users to surface permission leaks (one user seeing another's data), broken collaboration, and state races. actorA logs in with the project's configured credential; provide actorB's login inline (encrypted at rest). Describe the collaboration scenario to exercise. Returns a runId; poll get_web_qa_report. Metered as one Web-","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_web_qa","description":"Point Web-Test at a URL or an existing project and a swarm of QA agents explores and bug-tests the site \\u2014 clicking flows, filling forms, probing edge cases \\u2014 and files what it finds as issues. Returns a runId immediately; poll get_web_qa_report for the consolidated, severity-categorized bug report. For live progress use get_run_status / list_run_issues / watch_run (a Web-Test run is a no","write_action":true,"price_micros":0,"input_schema":null},{"name":"set_environment","description":"Switch the environment a project targets (production / staging / development).","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_exploratory_run","description":"Kick off an AUTONOMOUS exploratory test run: the AI agent explores the site, discovers flows, and finds bugs/accessibility issues nobody scripted. Returns immediately with a run id \\u2014 poll get_run_status (or use watch_run) for progress.","write_action":true,"price_micros":0,"input_schema":null},{"name":"start_regression_run","description":"Start a run intended for regression: explores like an exploratory run, then use get_run_comparison to diff issues against the previous run (new / resolved / still-present).","write_action":true,"price_micros":0,"input_schema":null},{"name":"test_changed_files","description":"Given the files changed in your diff, pick the most relevant APPROVED test cases (by token overlap vs title/module/tags) and run them. Returns the selection + the queued executions. Set dryRun=true to only see the selection. Poll get_execution_result for each verdict.","write_action":false,"price_micros":0,"input_schema":null},{"name":"triage_issue","description":"Fetch one issue\\u2019s full detail incl. the AI triage: root-cause hypothesis, impact area, reproduction confidence, an engineering summary, and a suggested fix.","write_action":false,"price_micros":0,"input_schema":null},{"name":"watch_run","description":"Stream a run\\u2019s live progress as MCP progress notifications until it finishes, then return the final run state. Use for interactive sessions; prefer start + get_run_status polling for fire-and-forget automation.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":58,"grade":"C","scanned_at":"2026-09-26T05:12:40.068Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T05:12:40.093Z","components":{"code":{"score":25,"max":25,"notes":["6 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@bugbrain/mcp","version":"0.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-07-11T20:39:07.520Z","weeklyDownloads":21}],"repo":{"found":false},"icon":{"url":"https://bugbrain.tech/icon.png?84553f15da4b058b","source":"site","width":236,"height":276},"presence":{"stars":null,"forks":null,"downloadsWeek":21,"license":"MIT","lastPushAt":null,"score":10}}}},"grade_history":[],"reviews":[]}