Bugsnag MCP

Live

OAUTH 2.0

MONITORING

Monitoring

Let your agent triage Bugsnag errors, read stack traces, and check release stability as the engineer who owns the project.

  • Acts as the engineer. Every error read and resolve is attributed to the real user, not a shared monitoring bot.
  • Tokens stay vaulted. Bugsnag OAuth credentials sit in an AES-256 vault, resolved per request, never in the prompt.
  • Scoped before every call. Project and organization scopes enforced ahead of each API call, with a 90-day audit trail.
Bugsnag MCP
agent · Acme Q3
Run
What are the top open errors in the checkout project this week?
S
bugsnag_errors_list
88ms
Bugsnag agent
3 open errors in checkout. TypeError on submit (device 214), OutOfMemoryError on Android (device 96), and a NetworkError spike (device 41).
Sources: 3 errors, checkout project, last 7 days
bugsnagmcp
3 errors
18:29
Message Claude...

Tools your monitoring agent reaches for on Bugsnag, scoped per user.

CALL ANY TOOL
List and inspect errors, pull events and stack traces, check release stability, and resolve or reopen errors, each call scoped to the authenticated engineer's project access.
bugsnagmcp_bugsnag_get_build
Bugsnag get build
Retrieve details for a specific build by its ID, including source control metadata.
Parameters
Name
Type
Required
Description
buildId
string
Required
Unique identifier of the app build
projectId
string
Optional
Unique identifier of the project. This is optional if a current project is set and is used to set the current project for BugSnag tools.
bugsnagmcp_bugsnag_get_current_project
Bugsnag get current project
bugsnagmcp_bugsnag_get_error
Bugsnag get error
bugsnagmcp_bugsnag_get_event
Bugsnag get event
bugsnagmcp_bugsnag_get_event_details_from_dashboard_url
Bugsnag get event details from dashboard url
bugsnagmcp_bugsnag_get_events_on_an_error
Bugsnag get events on an error
bugsnagmcp_bugsnag_get_network_endpoint_groupings
Bugsnag get network endpoint groupings
bugsnagmcp_bugsnag_get_release
Bugsnag get release
bugsnagmcp_bugsnag_get_span_group
Bugsnag get span group
bugsnagmcp_bugsnag_get_trace
Bugsnag get trace
bugsnagmcp_bugsnag_list_project_errors
Bugsnag list project errors
bugsnagmcp_bugsnag_list_project_event_filters
Bugsnag list project event filters
bugsnagmcp_bugsnag_list_projects
Bugsnag list projects
bugsnagmcp_bugsnag_list_releases
Bugsnag list releases
bugsnagmcp_bugsnag_list_span_groups
Bugsnag list span groups
bugsnagmcp_bugsnag_list_spans
Bugsnag list spans
bugsnagmcp_bugsnag_list_trace_fields
Bugsnag list trace fields
bugsnagmcp_bugsnag_set_network_endpoint_groupings
Bugsnag set network endpoint groupings
bugsnagmcp_bugsnag_update_error
Bugsnag update error
Build your Agent
The same per-user auth pattern wires into every agent framework.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { ChatOpenAI } from "@langchain/openai";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const sk = new ScalekitClient(process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["bugsnagmcp"], toolNames: ["bugsnag_errors_list", "bugsnag_error_get", "bugsnag_events_list"] },
pageSize: 100,
});

const agent = createReactAgent({ llm: new ChatOpenAI({ model: "gpt-4o" }), tools });
await agent.invoke({ messages: [{ role: "user", content: "Triage open checkout errors" }] });
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const openai = new OpenAI();
const sk = new ScalekitClient(process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["bugsnagmcp"], toolNames: ["bugsnag_errors_list", "bugsnag_error_get", "bugsnag_events_list"] },
pageSize: 100,
});

const res = await openai.responses.create({
model: "gpt-4o",
input: "Show top open errors in checkout",
tools,
});
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const anthropic = new Anthropic();
const sk = new ScalekitClient(process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["bugsnagmcp"], toolNames: ["bugsnag_errors_list", "bugsnag_error_get", "bugsnag_events_list"] },
pageSize: 100,
});

const msg = await anthropic.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
tools,
messages: [{ role: "user", content: "Resolve the checkout TypeError" }],
});
import { LlmAgent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["bugsnagmcp"], toolNames: ["bugsnag_errors_list", "bugsnag_error_get", "bugsnag_events_list"] },
pageSize: 100,
});

const agent = new LlmAgent({ name: "bugsnag_agent", model: "gemini-2.0-flash", tools });
await agent.run("List new errors in the latest release");
Try these prompts
Paste any prompt into your agent to start working Bugsnag errors.
Triage & resolve
Copy the prompt
Copied
What are the top open errors in the checkout project this week?
Copy the prompt
Copied
Mark the submit TypeError as fixed and reassign it to me.
Copy the prompt
Copied
Ignore the noisy NetworkError spike in the mobile project.
Investigate
Copy the prompt
Copied
Pull the latest stack trace for error 5f2a9c.
Copy the prompt
Copied
Show me events for the OutOfMemoryError over the last 24 hours.
Copy the prompt
Copied
Which devices are most affected by the checkout crash?
Report & recall
Copy the prompt
Copied
List all projects I have access to.
Copy the prompt
Copied
What is the stability score for the latest release?
Copy the prompt
Copied
How many events did the submit TypeError get this week?
SEE HOW AUTH WORKS
The engineer authorises Bugsnag once. Every later agent call uses their token with project scope enforced.
1
Authorize
Your user connects
Bugsnag MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Bugsnag MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Bugsnag MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Bugsnag MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other monitoring connectors.
Engineering Teams
DevOps assistant agent
Polls GitHub for failing checks and stale PRs, opens Linear issues for the ones that need work, and posts a daily digest to Slack. It acts as the engineer, not a shared service account.
Engineering Teams
Slack triage
Polls Slack for new messages, classifies bugs and support requests with a LangGraph router, files GitHub issues or Zendesk tickets, and confirms in the thread.
Engineering Teams
Engineering standup agent
Pulls commits from GitHub and GitLab, tracks issue movement in Jira, and posts a per-engineer standup brief to Slack. Each engineer's activity is read on their own delegated OAuth.
Engineering Teams
Auto release notes agent
Reads merged GitHub PRs, groups them into structured release notes, publishes the page to Notion, and announces the release in Slack. Every call runs on the engineer's own delegated OAuth.
Test other agents
See the same per-user auth pattern across other monitoring connectors.
ENGINEERING
DevOps assistant agent
Poll GitHub for failing checks and stale pull requests, open Linear issues for the ones that need work, and digest to Slack.
ENGINEERING
Engineering standup agent
Pull commits from GitHub and GitLab, track Jira issue movement, and post a per-engineer standup brief to Slack.
ENGINEERING
Slack triage agent
Classify new Slack messages as bugs or support requests, file the GitHub issue or Zendesk ticket, and reply in the thread.
ENGINEERING
Auto-release notes agent
Group merged GitHub PRs into structured release notes, publish the page to Notion, and announce the release in Slack.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared Bugsnag token looks fine in a demo. In production every fix and reassign logs as one service account, so you lose track of who acted. Scalekit resolves the real engineer's credential per call.
// shared token
fix → monitoring_bot

// scalekit
fix → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Bugsnag today. Others tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Bugsnag as the user or as a shared key?
As the user. Scalekit resolves the authenticated engineer's own Bugsnag credential at request time, so every error read, fix, and reassignment is attributed to them in Bugsnag's activity log rather than a shared monitoring bot.
Where is the Bugsnag token stored?
In an AES-256 encrypted vault, namespaced per tenant. Tokens are fetched only at the moment of a tool call, refreshed automatically before expiry, and revocable from a single dashboard, never exposed to the model or the prompt.
Can I limit what the agent is allowed to do in Bugsnag?
Yes. Pass a toolNames filter to listScopedTools to expose only the actions you want, for example read-only error listing without fix or reassign. Scalekit also runs a scope check before each API call.
What happens when a user revokes Bugsnag access?
The credential is invalidated at the next tool call, which fails closed rather than falling back to a shared token. Other users are unaffected, and the revocation is recorded in the audit trail.
Can the agent read release stability, or only work individual errors?
It can do both. Expose bugsnag_release_get to let the agent read stability scores, adoption, and new-error counts per release, so it can advise whether to ship or fix, while error write actions stay scoped per user to the projects the engineer already owns.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""bugsnagmcp"": {
""url"": ""https://mcp.scalekit.com/bugsnagmcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.bugsnagmcp]
url = ""https://mcp.scalekit.com/bugsnagmcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""bugsnagmcp"": {
""url"": ""https://mcp.scalekit.com/bugsnagmcp"",
""type"": ""http""
}
}
}