Skip to content

Documentation

MCP / Connect AI

Connect Claude Code, Cursor or VS Code to your reports with the Wutbug MCP server so your assistant can investigate and fix bugs.

Wutbug includes an MCP (Model Context Protocol) server. With it, your coding assistant can list reports, read the console with stack traces already translated to your code, inspect failed requests and mark the report as resolved when the fix is done.

You don't need to install anything for an AI to understand a report:

  • Paste the shared link (…/share/<token>) into Claude, ChatGPT, Cursor or Perplexity. When an assistant opens the link, Wutbug responds with a text (Markdown) version of the report instead of the interactive page. It's also always available at …/share/<token>/md.
  • "Copy for AI": in the report (dashboard) it copies the full report with an instruction to fix it; on the shared page it copies only the context.

The text includes a timeline with the key events in order (user clicks, errors, failed or slow requests, frustration clicks), the console, the network (with the bodies of failed responses), the device, the metadata and the link to the screenshot. Sensitive data is already masked.

Texto
0:01.0  USER  Clicked “Pay” ×3
0:01.5  NET   POST /api/checkout → 500 in 1200 ms
0:02.0  ERROR (uncaught) TypeError: Cannot read 'total'
0:08.0  SENT  user opened the report form

1. Create a token

In the dashboard, open Connect AI and create a personal token. It starts with wbt_ and is shown only once: copy it right then.

The token acts as you: it sees the projects of the teams you belong to, and if you leave a team, it loses that access immediately. We only store a hash; you can revoke it any time from the same page.

2. Connect your client

The server URL is the API URL followed by /mcp, for example https://api.wutbug.dev/mcp. The Connect AI page shows the commands with your URL and token.

Claude Code

Terminal
claude mcp add --transport http wutbug https://api.wutbug.dev/mcp \
  --header "Authorization: Bearer wbt_your_token"

Cursor

Add it to .cursor/mcp.json in your project (or to ~/.cursor/mcp.json for all projects):

.cursor/mcp.json
{
  "mcpServers": {
    "wutbug": {
      "url": "https://api.wutbug.dev/mcp",
      "headers": { "Authorization": "Bearer wbt_your_token" }
    }
  }
}

VS Code (Copilot in agent mode)

.vscode/mcp.json
{
  "servers": {
    "wutbug": {
      "type": "http",
      "url": "https://api.wutbug.dev/mcp",
      "headers": { "Authorization": "Bearer wbt_your_token" }
    }
  }
}

Other clients

Any client with HTTP (streamable) transport works:

Texto
URL:    https://api.wutbug.dev/mcp
Header: Authorization: Bearer wbt_your_token

3. Ask it to fix a bug

Texto
Fix Wutbug report WB-128.

You can also pass the report link (from the dashboard or the shared one) instead of the code: get_report accepts all three.

The server includes the fix-report prompt, which guides the assistant: read the report, find the cause in your repository, make the minimal fix with a test, summarize it and mark the report as resolved (it asks you before notifying the reporter). In Claude Code it appears as /mcp__wutbug__fix-report.

Tools

A report is identified by its code (WB-20, or just 20) or by its UUID.

list_projects

Projects you have access to, with their team, public key and id. No parameters.

list_reports

Reports, newest first. By default, the open ones across all your projects.

ParameterTypeDefaultDescription
projectstring—Project name, id or public key. Without it: all projects.
statusopen | all | new | triaged | in_progress | resolved | closedopenopen = new, triaged or in progress.
devicedesktop | mobile | tablet—Filter by device type.
querystring—Text to search in the title, description and page URL.
since_daysnumber (1–365)—Only the last N days.
limitnumber (1–50)20Maximum number of results.

get_report

Everything needed to debug a report: what the person said, the steps they took, console errors with original stack traces and the surrounding source code (if you uploaded source maps), failed requests, the device and environment, and the AI summary if there is one.

ParameterTypeDescription
reportstringReport code or UUID.

get_console_logs

Console entries for the report (the 2 minutes before it was sent), with translated stack traces when source maps are available.

ParameterTypeDefaultDescription
reportstring—Report code or UUID.
levelerror | warn | allallwarn includes errors.
searchstring—Text to search for.
limitnumber (1–300)100Maximum number of results.

get_network_requests

The report's fetch/XHR requests with status, timings and bodies (already masked).

ParameterTypeDefaultDescription
reportstring—Report code or UUID.
failed_onlybooleanfalseOnly failed requests (status 0, 4xx, 5xx or network error).
url_containsstring—Filter by URL.
include_bodiesbooleantrueInclude request and response bodies.
limitnumber (1–200)50Maximum number of results.

update_report_status

Moves a report through the workflow. It's the only tool that modifies data.

ParameterTypeDefaultDescription
reportstring—Report code or UUID.
statustriaged | in_progress | resolved | closed—New status.
notestring—What was fixed. Shown in the dashboard and in the email to the reporter.
notify_reporterbooleanfalseSends an email to the reporter (only if the project allows it and they left their email).
include_groupbooleanfalseAlso resolves the other reports grouped as the same problem.

Privacy

The assistant receives the same data you see in the dashboard, already masked in the user's browser. Keep in mind that this data goes to the provider of the model your assistant uses, under your agreement with that provider.