# Bugsly MCP: error tracking your AI agent operates

Condensed markdown version of https://bugsly.dev/mcp.

## At a glance

- **What it is:** Bugsly is error tracking built for AI agents to operate: your agent (ChatGPT, Claude, Cursor, Gemini CLI) reads, triages and, when asked, resolves issues over MCP while you tag the work, approve and review. It is hosted, accepts Sentry SDK events and adds AI explanations, cron and uptime monitoring and session replay.
- **Who it is for:** Engineering teams at startups and small companies that let an AI agent work on their errors (your agent does the reading and triage, you approve and audit); individual developers who want to ask their assistant about their own app's errors.
- **What it does not do:** It is not open source and cannot be self-hosted, it has no single sign-on, and it never merges code by itself (AI fix pull requests are opt-in and left for you to review).
- **Price:** Free plan, no card (1 project, 100 new issues and 50,000 events a month, 7-day retention, 10 AI explanations a month). Team $19/month (2,000 issues), Business $49/month (20,000 issues), Enterprise custom. Billed by unique issues, not events; paid plans have unlimited users. Money-back: ask within 7 days of your first payment and we refund it in full. EU and UK withdrawal rights are unaffected.
- **Integrations:** Any Sentry SDK (point it at a Bugsly DSN) plus @bugsly/browser, @bugsly/react, @bugsly/nextjs and @bugsly/node. Alerts by email, Slack, Telegram and webhook. GitHub for opt-in AI fix pull requests.
- **Data and security:** Hosted by Bugsly; TLS in transit and encryption at rest (see the privacy policy). Retention is 90 days on Team, 365 on Business. AI analysis is processed by OpenAI. MCP access is revocable under Settings, AI Agent / MCP.
- **How to start:** Sign up (no card), copy your project's DSN into your existing Sentry SDK configuration, and send a test error. Or connect an AI assistant over MCP and ask it about your errors.
- **MCP server:** https://bugsly.dev/api/mcp (Streamable HTTP, OAuth 2.1; ChatGPT: https://bugsly.dev/api/mcp/chatgpt). Official MCP Registry name: dev.bugsly/mcp-server. Install steps: https://bugsly.dev/mcp

## Connect

- ChatGPT (Settings, Apps, Advanced, Developer mode): custom MCP server https://bugsly.dev/api/mcp/chatgpt with OAuth.
- Claude (claude.ai): Settings, Connectors, Add custom connector, https://bugsly.dev/api/mcp. Claude Code: `claude mcp add --transport http bugsly https://bugsly.dev/api/mcp` or the plugin https://github.com/airdropfi/bugsly-claude-plugin.
- Cursor and VS Code: https://bugsly.dev/api/mcp with header `Authorization: Bearer <bgs_ token>`; see https://github.com/airdropfi/bugsly-cursor-kit.
- Gemini CLI: `gemini extensions install https://github.com/airdropfi/bugsly-gemini-extension` then `/mcp auth bugsly`.
- Local stdio package (only for clients that cannot call a URL; currently 0.3.0 on npm; it does not apply the hosted server's redaction, size cap or rate limits): `BUGSLY_TOKEN=bgs_... npx -y @bugsly/mcp-server`.
- Official MCP Registry: dev.bugsly/mcp-server.

## Agent quickstart

### Discover
- https://bugsly.dev/llms.txt and https://bugsly.dev/llms-full.txt describe the product, pricing and tools.
- https://bugsly.dev/.well-known/mcp/server-card.json is the machine-readable server card (URL, auth, tools, registry name).
- Official MCP Registry name: dev.bugsly/mcp-server.
- https://bugsly.dev/pricing.md and https://bugsly.dev/mcp.md are markdown versions of the pricing and this page.

### Authenticate
- OAuth 2.1 with PKCE and dynamic client registration, discovered from the server's 401 WWW-Authenticate challenge (RFC 9728 resource metadata). The human owner signs in to Bugsly and presses Allow on a consent page. Supported redirect targets: the Claude and ChatGPT connector callbacks and localhost URLs.
- Or a bgs_ agent token as Authorization: Bearer. A human creates it under Settings, AI Agent / MCP (by default 90 days, revocable, up to 20 active). An agent with no browser can create its own account with POST https://bugsly.dev/api/v1/auth/agent-signup {"name": "my-agent"}, which returns a token, org_id, project_id and a DSN (5 requests per minute per IP). That account has no password or email you control; the token is the only way in, so hand the DSN and token to the human owner.

### Minimal call sequence
- `list_projects` {}: Your projects with project IDs, platform and DSN host.
- `list_issues` {"project_id": 12, "status": "unresolved", "sort": "last_seen"}: Issues with IDs, titles, event counts and last-seen times.
- `get_issue_events` {"issue_id": 345, "limit": 5}: Up to 5 recent events with stack traces and breadcrumbs (hosted server: size-capped; no user email, IP, username or extra data).
- `resolve_issue` {"issue_id": 345}: The issue marked resolved, only after the human asked for it. Idempotent; reported again as a regression if the error recurs.

### Limits
- 60 tool calls per minute per user; over the limit the call returns isError with "Too many tool calls; try again in a minute."
- create_project: 10 per hour per user ("Project creation limit reached (10 per hour); try again later.").
- Request body up to 1,000,000 bytes; batch JSON-RPC requests are not supported.
- Plan quotas (issues per month, retention, monitors) are on https://bugsly.dev/pricing.md. get_usage returns issues used, the limit and the plan.

### Errors to handle
- HTTP 401 with WWW-Authenticate: No valid token, or the token was revoked, expired or issued for another MCP URL. Ask the human to reconnect (OAuth) or create a new token; do not retry.
- isError: "Invalid arguments: ...": Missing, unknown or out-of-range argument (the message names it). Fix the arguments and retry once.
- isError: "Bugsly API 403: ...": The user's role or plan does not allow the action (for example get_checkout_url needs an organization admin or owner). Report it to the human; do not retry.
- isError: "Bugsly API 404: ...": The project or issue ID does not exist for this user. Call list_projects or search_errors again for current IDs.
- isError: "Too many tool calls..." / "Project creation limit reached...": Rate limit. Wait a minute (or an hour for create_project) and retry.
- isError: "Bugsly API <status>: ..." for plan or quota limits: The API refuses actions the current plan does not include (for example cron and uptime monitors need Team or above) or that exceed quota. The status code and body come from the REST API. Call get_usage, tell the human which limit applies, and offer get_checkout_url so a person can upgrade.
- HTTP 402 with code `plan_limit_reached`: The Free plan's hard cap was hit (for example a second project). This is a machine-readable refusal, not a transient error. Do not retry. Tell the human which limit applies, and on surfaces that expose it offer get_checkout_url so a person can upgrade in the browser.
- HTTP 402 with code `trial_required`: Only while the paid trial is switched on: the organization has not started a trial and has no active plan, so the API refuses the call. Do not retry. Tell the human the organization has no active plan, and on surfaces that expose it offer get_checkout_url so a person can start the trial in the browser.

### Hand-off
Hand-off: give the human the issue ID, what you read and the change you propose. Resolve or ignore only when they ask. For an upgrade, call get_checkout_url and show them the link: nothing is charged until a person opens it, accepts the terms and pays in the browser.

## Human oversight
- **Approve access:** OAuth consent page: the human sees which client is asking and presses Allow or Deny before any token exists.
- **See every connection:** Settings, AI Agent / MCP lists each token (named "MCP: <client>" for OAuth connections) with its last use.
- **Revoke at any time:** Revoke next to a token; it stops working immediately. Tokens also expire after 90 days.
- **Confirm risky tool calls:** Every tool carries readOnlyHint, destructiveHint and idempotentHint annotations; resolve_issue and ignore_issue are marked destructive, so clients such as Claude, ChatGPT, Cursor and Gemini CLI can ask before running them.
- **Undo status changes:** A resolved or ignored issue can be reopened in the dashboard; a resolved issue is reported again as a regression if the error recurs.
- **Review what changed:** The dashboard shows each issue's current status and events; the agent cannot delete projects or issues, and cannot pay for a plan.
- **Limit blast radius:** Tool-call rate limit (60 per minute), project creation limit (10 per hour), and, on the hosted server only, size-capped event output with no user email, IP, username or DSN key in tool output. The local npm package (currently 0.3.0) applies none of these filters or limits.
- Not available today: a per-action approval queue inside Bugsly, and a reviewable history of every agent action.

## Tools (16)
- `list_projects`: List the projects in your first organization, with project IDs and DSN host (the DSN key is not shown).
- `list_issues`: List a project's issues; unresolved by default.
- `get_issue`: Get one issue with its metadata.
- `get_issue_events`: Get recent occurrences with stack traces and breadcrumbs. On the hosted server: capped in size; user email, IP address, username and extra data are omitted.
- `search_errors`: Search issues by title keyword.
- `get_project_stats`: Get transaction performance stats for a project.
- `get_usage`: Get current billing usage for your organization: events used, limit and plan.
- `get_crash_free`: Get crash-free sessions % and crash-free users % over the last N days; null until the SDK has sent sessions.
- `list_monitors`: List cron monitors with status and last check-in.
- `get_monitor`: Get a cron monitor's details and recent check-ins.
- `list_uptime_monitors`: List uptime monitors with status, latency and monitored URL.
- `get_uptime_status`: Get uptime %, average latency and p95 for a monitor.
- `resolve_issue` (changes data): Mark an issue resolved. Changes it for everyone on the project; reopen it in the dashboard.
- `ignore_issue` (changes data): Mark an issue ignored. Changes it for everyone on the project; reversible in the dashboard.
- `create_project` (changes data): Create a new project and return its DSN host. Each call creates a project.
- `get_checkout_url` (changes data): Return the organization's billing-page link for the Team or Business plan. A person reads the terms, ticks the consent box and continues to checkout there; this call creates no checkout and charges nothing. Organization admin or owner only. Not offered in ChatGPT.
