bugAgent

The QA platform for AI-native teams.

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeRead-only

What it can do

  • Create Bug Report: File a new bug report. Auto-classifies bug type if not provided. Returns the created report with classification.
  • List Bug Reports: List bug reports with optional filters by type, severity, status, resolution, root cause, reporter, or search query. Each result includes reporter_user_id so you can see who filed ea
  • Pick Next Bug: Return the next bug(s) the agent loop should work on, ordered by priority (S1 → S2 → S3, oldest first within each bucket). Automatically scoped to your workspace — shows tickets across

What data it sees

Do you need an account

An API key from the service settings is required

The QA platform for AI-native teams. Bug reports, test management, Playwright automation, security scanning, and performance testing — all 109 tools available from your AI assistant.

How to connect

How to connect bugAgent to Claude

The server address to paste into Claude settings:

https://bugagent-mcp--bugagent.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect bugAgent to ChatGPT

The server address to paste into ChatGPT settings:

https://bugagent-mcp--bugagent.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect bugAgent to Cursor

The server address to paste into Cursor settings:

https://bugagent-mcp--bugagent.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (60)

Raw names from tools/list. Only developers need these.

create_bug_reportFile a new bug report. Auto-classifies bug type if not provided. Returns the created report with classification.
list_bug_reportsList bug reports with optional filters by type, severity, status, resolution, root cause, reporter, or search query. Each result includes reporter_user_id so you can see who filed each report. To filter by reporter name (e.g. "show reports by Johnson Russell"), first call list_team_members to find that person's userId, then pass it as reporter_user_id.
pick_next_bugReturn the next bug(s) the agent loop should work on, ordered by priority (S1 → S2 → S3, oldest first within each bucket). Automatically scoped to your workspace — shows tickets across all projects in your team. READ-ONLY — does not atomically claim tickets. Use a separate claim flow (today: update_bug_report with status=in-progress; eventually: claim_bug per TEST-177) when actually picking up work. Returns rows in the same shape as list_bug_reports for tool composability.
claim_bugAtomically claim a bug for the calling user. Sets status="in-progress", assigned_to=caller, and claimed_at=NOW() — but ONLY if the ticket is currently in status="new". Returns {claimed: true, bug} if the claim succeeded; {claimed: false, reason} if another consumer already claimed it (race-loser path) or the ticket no longer exists. Race-free via Postgres row-level lock — safe to call from multiple agents/replicas concurrently. Pair with pick_next_bug for the read-then-claim pattern.
get_bug_reportGet full details of a specific bug report by ID. Accepts either the UUID or the workspace-scoped short ID (e.g. TEST-BA-123). Short IDs are resolved within the caller's team only.
update_bug_reportUpdate an existing bug report. Only provided fields will be changed. Use assigned_to with a user ID from list_team_members to assign the bug to someone. Accepts either the UUID or the short ID (e.g. TEST-BA-123). Set `resolution` and `root_cause` whenever transitioning out of `new` — required by the agent-loop convention so analytics + Kanban render correctly.
classify_bugClassify a bug description into a bug type (ui, performance, crash, security, logic, data, network) with confidence score.
get_usageCheck current usage against plan limits. Shows reports used and remaining quota for your plan period.
sync_to_jiraSync a bug report to Jira. Creates a Jira issue with mapped fields, labels, and priority. Requires a connected Jira account.
push_to_claudeGenerate (or regenerate) the Developer Notes for a bug report — root cause, affected areas, suggested fix, verification steps, and risk assessment. Internally runs a multi-step chain that adapts to severity: medium/low bugs get a three-step chain (Sonnet draft → OpenAI challenger critique → Sonnet synthesis); critical/high bugs escalate to a five-step debate (draft → critique → Sonnet rebuttal → adjudicator, where a different model — default Claude Opus — reads the full transcript and writes the final notes with independent judgment). The response exposes every round (draft, critique, rebuttal, challenger_model, adjudicator_model, debated flag) so agents can inspect the reasoning chain. Any step failing falls through to the next-best answer. Uses platform keys — no per-team Claude connection required. Auto-fires on bug creation. Accepts UUID or short ID (PREFIX-NNN).
analyze_fix_areaGenerate (or regenerate) the "Likely Fix Area" for a bug report — a narrow Sonnet output that names where in the codebase the fix most likely belongs. Uses the platform Anthropic key (no per-team Claude connection required). When the project has a GitHub repo mapped and the team has a github_connections row, the output is grounded in real file snippets; otherwise it falls back to general guidance with a nudge to connect a repo. Writes the result back onto bug_reports (likely_fix_area, likely_fix_area_status, likely_fix_area_generated_at) so the dashboard picks it up automatically. Accepts UUID or short ID (PREFIX-NNN).
list_projectsList available projects for the current user. Returns project names, slugs, and which is the default. Use a project slug with create_bug_report to file bugs into a specific project.
get_statsGet bug report statistics: daily counts, breakdowns by type/severity/status. Use to answer questions like "how many bugs yesterday?" or "what types of bugs are most common?"
upgrade_planUpgrade your bugAgent subscription plan. Returns a Stripe checkout URL for the user to complete payment. After upgrading, use get_usage to confirm the new plan is active.
register_accountCreate a new bugAgent account with email and password. The account is auto-confirmed and ready to use immediately. Returns user_id and email.
loginSign in to bugAgent with email and password. Returns access tokens. In stdio mode, credentials are saved to ~/.bugagent/credentials.json for future sessions.
update_profileUpdate your display name.
change_passwordChange your account password.
get_settingsGet your profile info, plan, and notification preferences.
update_settingsUpdate notification preferences.
create_projectCreate a new project. The first project becomes the default. Enforces plan limits.
delete_projectDelete a project. Choose how to handle its bug reports: move to another project, unassign, or delete them. All other project data (automations, test cases, mobile apps, schedules, geo snaps, notes, time entries) is permanently deleted. Only owner/manager can delete. Cannot delete last project.
create_performance_testCreate a performance test configuration. Combines Lighthouse page audits with k6 Cloud load testing. Enterprise only.
list_performance_testsList performance test configurations for the current team.
run_performance_testRun a Lighthouse + k6 Cloud performance test. Triggers a page audit and optional load test. Results include Core Web Vitals, performance scores, and load test metrics. Auto-creates bug reports when thresholds are breached.
get_performance_resultsGet results for a performance test run. Includes Lighthouse scores (Performance, Accessibility, Best Practices, SEO), Core Web Vitals (LCP, FID, CLS, FCP, TTFB, INP, TBT, SI), and load test metrics (VUs, requests, RPS, p50/p90/p95/p99 latencies).
get_performance_usageCheck monthly performance test usage against plan limits. Performance testing is Enterprise-only. Limits: Free=0, Team=0, Enterprise=unlimited, Admin=unlimited.
create_security_scanCreate a security scan configuration. Web: Quick Scanner + Nuclei + ZAP DAST. Mobile: MobSF binary analysis for APK/IPA. Code: Semgrep SAST for 30+ languages. Configurable auto-bug creation with severity threshold. Enterprise only.
list_security_scansList security scan configurations for the current team. Returns scan names, types, targets, and status.
run_security_scanTrigger a security scan run. Web: Quick Scanner + Nuclei + ZAP. Mobile: MobSF binary analysis. Code: Semgrep SAST. Returns a run ID to poll for results.
get_security_resultsGet results for a security scan run. Includes findings categorized by severity (Critical, High, Medium, Low, Info) with vulnerability type, description, affected URL/file, and remediation guidance.
get_security_usageCheck monthly security scan usage against plan limits. Security scanning is Enterprise-only. Limits: Enterprise=unlimited, Admin=unlimited.
list_code_reviewsList recent AI code reviews for the team. Returns review ID, repo, PR number/title, quality score, severity counts, and timestamps. Enterprise only.
get_code_reviewGet a code review with all findings. Each finding includes severity, category (bug/security/performance/style/logic/maintainability), title, description, code suggestion, file path, and line numbers.
get_code_review_usageCheck monthly code review usage. AI code review is Enterprise-only. Enterprise: unlimited. Free and Team: 0.
get_code_review_analyticsGet code review analytics: trends, finding categories/sources, severity breakdown, velocity metrics, top repos, top authors. Enterprise only.
list_explorationsList Exploratory AI configs for the team. Each exploration targets a URL and can be run to autonomously find bugs.
create_explorationCreate a new Exploratory AI config. The exploration will autonomously crawl the target URL, generate test scripts, execute them, and file bug reports for issues found. Enterprise only.
get_explorationGet an exploration config with its recent runs.
get_exploration_runGet results of an exploration run including all findings, phase data, and linked bugs.
get_exploration_usageCheck monthly Exploratory AI usage. Exploratory AI is Enterprise-only. Enterprise: unlimited.
flush_reportsBulk delete old bug reports. Only team owners and admins can flush. Optionally limit to a specific project.
generate_api_keyCreate a named API key. The full key is returned only once — save it securely.
list_api_keysList your active API keys. Shows key prefix (first 16 chars) but never the full key.
regenerate_api_keyRevoke an existing API key and create a new one with the same name and scopes. The new key is returned only once.
delete_api_keyRevoke and delete an API key. The key will immediately stop working.
check_jira_syncCheck if a Jira-synced bug report has remote changes. Returns field differences and new Jira comments. Use before merge_jira_sync.
merge_jira_syncBi-directional merge between bugAgent and Jira. Updates both systems to match. Use check_jira_sync first to see differences.
add_commentAdd a comment to a bug report. If the report is synced to Jira, the comment is automatically pushed to the Jira issue. Accepts UUID or short ID (PREFIX-NNN). Pass author_user_id to post the comment as a specific agent account (the target user must have is_agent=true — use list_team_members to find the Claude bot user ID).
list_commentsList all comments on a bug report, oldest first, with author names. Comments are not part of get_bug_report — use this to read the discussion thread on a ticket. Accepts UUID or short ID (PREFIX-NNN).
link_bug_reportsCreate a directional link between two bug reports. Use `duplicate-of` to mark one report as a duplicate of another, `parent-of` for parent/child hierarchies, `related-to` for a non-directional related-issue link, and `depends-on` to record that the from-report cannot ship until the to-report does. Both reports must be in the same workspace. Accepts UUIDs or short IDs (PREFIX-NNN).
unlink_bug_reportsRemove a previously-created bug-report link by its UUID. Use list_bug_report_links to find the link_id.
list_bug_report_linksList every user-curated link touching a bug report. Returns the link as it reads from this report's perspective — a stored `duplicate-of` row where this report is the target renders as `duplicated-by`, a `parent-of` row where this report is the target renders as `subtask-of`, and `depends-on` rows where this report is the target render as `blocks`. `related-to` is symmetric. Accepts UUID or short ID (PREFIX-NNN).
list_team_membersList all members of your current team/workspace with their roles and status.
invite_team_memberInvite a user to your team by email. Only managers and above can invite. The invited user receives an email with a 5-day expiry link.
create_automationCreate a new automation with a custom Playwright script (no FAB recording required). Returns the automation ID. Team plan required. To duplicate an existing automation, first call get_automation to retrieve the script, then call this tool with name set to "[Copy] Original Name" and pass the original script, target_url, and project_id. The duplicate starts in draft status with no version history.
list_automationsList Playwright automation scripts for the current team. Filter by project or status.
get_automationGet full details of a Playwright automation script including the generated script code, recent run history, and the saved script_versions stack. Inspect script_versions (array of { script, source, timestamp }, oldest-first, capped at 100) before calling run_automation with version_index if you need to replay a specific historical version; omit version_index to run the current live script.
run_automationTrigger an immediate run of a Playwright automation script. Runs on virtual headless browser by default, or on a real BrowserStack browser when browserstack=true. Pass version_index to replay a historical version of the script instead of the current live one.
list_automation_runsList recent runs for a Playwright automation script with status, duration, and error details.