Airbrake MCP by usefulapi
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Read Airbrake projects, error groups, notices, deploys and stats; mute or unmute error groups.
| Author | io.usefulapi |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 199 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Airbrake MCP by usefulapi": {
"url": "https://airbrake.usefulapi.io/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (13)
airbrake_list_projectsread-onlyList the Airbrake projects your user can see, with id, name, last deploy, notice total, rejected count, deploy count and resolved/unresolved error-group counts. Start here to get a project_id. Airbrake API: GET /api/v4/projects.
Parameters:
page— integer — Page number (default 1).limit— integer — Items per page (default 20, max 100 here).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_get_projectread-onlyGet one Airbrake project: name, last deploy id/time, notice total, rejection count, deploy count and resolved/unresolved error-group counts. Airbrake API: GET /api/v4/projects/{project_id}.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_list_groupsread-onlyList a project's error groups ("errors" in the Airbrake app): each with id, resolved flag, error type/message/backtrace, context (environment, severity, component/action), last notice time, notice counts and last deploy. Sorted by last notice by default; order by notice_count, weight or created instead. Filter by deploy, archived or muted groups, or creation time. Backtraces are cut to the first 5 frames (set full_backtraces for all; airbrake_get_group shows one group in full). Airbrake API: GET /api/v4/projects/{project_id}/groups.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).page— integer — Page number (default 1).limit— integer — Items per page (default 20, max 100 here).muted— boolean — true = return muted groups.order— string — Sort order (default last_notice).archived— boolean — true = return archived groups.end_time— string — Only groups created before this RFC 3339 date-time (with timezone).deploy_id— string — Only groups of this deploy.start_time— string — Only groups created after this RFC 3339 date-time (with timezone).full_backtraces— boolean — Return every backtrace frame (default: first 5 per error).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_get_groupread-onlyGet one error group in full: resolved flag, every error with its complete backtrace (file, function, line, column), context, last deploy, last notice id/time, notice counts and creation time. Airbrake API: GET /api/v4/projects/{project_id}/groups/{group_id}.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).group_id(required) — string — Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_get_group_statsread-onlyOccurrence counts over time for one error group: parallel arrays `time`, `accepted` (notices counted) and `limited` (dropped by rate limits), aggregated per period, from `since` until `until` (default now). Use it to see whether an error is spiking or fading. Airbrake API: GET /api/v5/projects/{project_id}/groups/{group_id}/stats.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).group_id(required) — string — Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.period(required) — string — Aggregation period. The reference lists 1m, 5m, 15m, 30m, 2h, 3h, 6h, 12h, 24h (project stats) and minute, hour (group stats).since(required) — string — Start (inclusive), RFC 3339 date-time with timezone; sent as time__gte in Unix seconds.limit— integer — Max data points (default 100).until— string — End (exclusive, default now), RFC 3339 date-time with timezone; sent as time__lt.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_list_noticesread-onlyList the individual occurrences (notices) of one error group, newest first: each with id, deploy, errors and backtrace, context (environment, hostname, app version, user, URL, severity, notifier), environment, session and request params, and created time. Optionally only notices of one app version. Backtraces are cut to the first 10 frames unless full_backtraces is set. Airbrake API: GET /api/v4/projects/{project_id}/groups/{group_id}/notices.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).group_id(required) — string — Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.page— integer — Page number (default 1).limit— integer — Items per page (default 20, max 100 here).version— string — Only notices reported by this app version (e.g. 1.0).full_backtraces— boolean — Return every backtrace frame (default: first 10 per error).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_get_notice_statusread-onlyCheck what happened to a reported error, by the notice id that Airbrake's create-notice API returned: code = processed (groupId = its error group), rejected (message = why, e.g. an app-version filter), archived (past retention) or not_found (unknown or still processing). Airbrake API: GET /api/v4/projects/{project_id}/notice-status/{notice_id}.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).notice_id(required) — string — The notice id returned by Airbrake's create-notice API (v3) when the error was reported.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_list_deploysread-onlyList a project's tracked deploys: environment, username/email of the deployer, repository, revision (commit) and version. Use it to correlate new errors with a release. Airbrake API: GET /api/v4/projects/{project_id}/deploys.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).page— integer — Page number (default 1).limit— integer — Items per page (default 20, max 100 here).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_get_deployread-onlyGet one deploy: environment, deployer, repository, revision and version. Airbrake API: GET /api/v4/projects/{project_id}/deploys/{deploy_id}.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).deploy_id(required) — string — Deploy id (digits, as a string). From airbrake_list_deploys or a group's lastDeployId.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_list_activitiesread-onlyList a project's activity feed: who did what and when (for example group.resolved), with user name, activity, the affected object (trackableType/trackableId) and timestamps. Airbrake API: GET /api/v4/projects/{project_id}/activities.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).page— integer — Page number (default 1).limit— integer — Items per page (default 20, max 100 here).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_get_project_statsread-onlyError volume over time for a whole project: parallel arrays `time`, `accepted` (notices counted), `limited` (dropped by rate limits) and `overQuota` (dropped over the plan quota), aggregated per period (1m, 5m, 15m, 30m, 2h, 3h, 6h, 12h, 24h). Airbrake API: GET /api/v5/projects/{project_id}/stats.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).limit— integer — Max data points (default 100).since— string — Start (inclusive), RFC 3339 date-time with timezone; sent as time__gte in Unix seconds.period— string — Aggregation period. The reference lists 1m, 5m, 15m, 30m, 2h, 3h, 6h, 12h, 24h (project stats) and minute, hour (group stats).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
airbrake_mute_groupdestructiveWRITE: mute one error group. Airbrake removes it from the default error list and stops ALL notifications for it (email, Slack and other integrations) until it is unmuted. Notices are still recorded. Reversible with airbrake_unmute_group. Airbrake API: PUT /api/v4/projects/{project_id}/groups/{group_id}/muted.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).group_id(required) — string — Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.
Hints: read-only no · destructive yes · idempotent yes · open-world not declared
airbrake_unmute_groupWRITE: unmute one error group, so it is back in the default error list and its notifications resume. Airbrake API: PUT /api/v4/projects/{project_id}/groups/{group_id}/unmuted.
Parameters:
project_id(required) — integer — Airbrake project id (from airbrake_list_projects).group_id(required) — string — Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.
Hints: read-only no · destructive no · idempotent yes · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.