# Airbrake MCP by usefulapi (remote · airbrake.usefulapi.io)

Read Airbrake projects, error groups, notices, deploys and stats; mute or unmute error groups.

- Trust score: 64/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-17

## Components

- remote · `airbrake.usefulapi.io`: 64/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-airbrake/airbrake.md), [page](https://verifymcp.io/servers/io-usefulapi-airbrake/airbrake)

## Channel facts

- Endpoint: `https://airbrake.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.2.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-17.

- **Endpoint Security**: 78/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 79/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2336 tokens (~179/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "airbrake_get_deploy" implies "deploy" and declares readOnlyHint instead, contradicting what its own name says it does.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the Airbrake MCP by usefulapi server?

Airbrake MCP by usefulapi is a hosted endpoint at https://airbrake.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-airbrake 'https://airbrake.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-airbrake": {
      "url": "https://airbrake.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-airbrake": {
      "type": "http",
      "url": "https://airbrake.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-airbrake]
url = "https://airbrake.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-airbrake": {
      "type": "remote",
      "url": "https://airbrake.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-airbrake --url 'https://airbrake.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-airbrake:
    url: "https://airbrake.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-airbrake": {
      "Transport": "http",
      "Url": "https://airbrake.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-airbrake -t streamable-http -u 'https://airbrake.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-airbrake": {
      "type": "http",
      "url": "https://airbrake.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-17 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-15 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-14 (score 62, +2)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] The server now declares the “prompts” capability
- [functional] First check of Schema quality: 100
- [functional] New prompt “getting_started”
- [functional] Server version: 1.4.0 → 1.5.0

### 2026-10-13 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-11 (score 59, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-10 (score 58)

First indexed and scored.

## MCP tools (13)

### `airbrake_list_projects` (~98 tokens)

List projects

List 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.

Input parameters:

- `limit` (integer): Items per page (default 20, max 100 here).
- `page` (integer): Page number (default 1).

### `airbrake_get_project` (~76 tokens)

Get a project

Get 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}.

Input parameters:

- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).

### `airbrake_list_groups` (~305 tokens)

List error groups

List 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.

Input parameters:

- `archived` (boolean): true = return archived groups.
- `deploy_id` (string): Only groups of this deploy.
- `end_time` (string): Only groups created before this RFC 3339 date-time (with timezone).
- `full_backtraces` (boolean): Return every backtrace frame (default: first 5 per error).
- `limit` (integer): Items per page (default 20, max 100 here).
- `muted` (boolean): true = return muted groups.
- `order` (string): Sort order (default last_notice).
- `page` (integer): Page number (default 1).
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).
- `start_time` (string): Only groups created after this RFC 3339 date-time (with timezone).

### `airbrake_get_group` (~129 tokens)

Get an error group

Get 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}.

Input parameters:

- `group_id` (string, required): Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).

### `airbrake_get_group_stats` (~283 tokens)

Get error group statistics

Occurrence 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.

Input parameters:

- `group_id` (string, required): Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.
- `limit` (integer): Max data points (default 100).
- `period` (string, required): Aggregation period. The reference lists 1m, 5m, 15m, 30m, 2h, 3h, 6h, 12h, 24h (project stats) and minute, hour (group stats).
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).
- `since` (string, required): Start (inclusive), RFC 3339 date-time with timezone; sent as time__gte in Unix seconds.
- `until` (string): End (exclusive, default now), RFC 3339 date-time with timezone; sent as time__lt.

### `airbrake_list_notices` (~251 tokens)

List notices of an error group

List 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.

Input parameters:

- `full_backtraces` (boolean): Return every backtrace frame (default: first 10 per error).
- `group_id` (string, required): Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.
- `limit` (integer): Items per page (default 20, max 100 here).
- `page` (integer): Page number (default 1).
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).
- `version` (string): Only notices reported by this app version (e.g. 1.0).

### `airbrake_get_notice_status` (~145 tokens)

Get a notice's processing status

Check 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}.

Input parameters:

- `notice_id` (string, required): The notice id returned by Airbrake's create-notice API (v3) when the error was reported.
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).

### `airbrake_list_deploys` (~118 tokens)

List deploys

List 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.

Input parameters:

- `limit` (integer): Items per page (default 20, max 100 here).
- `page` (integer): Page number (default 1).
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).

### `airbrake_get_deploy` (~99 tokens)

Get a deploy

Get one deploy: environment, deployer, repository, revision and version. Airbrake API: GET /api/v4/projects/{project_id}/deploys/{deploy_id}.

Input parameters:

- `deploy_id` (string, required): Deploy id (digits, as a string). From airbrake_list_deploys or a group's lastDeployId.
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).

### `airbrake_list_activities` (~120 tokens)

List project activity

List 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.

Input parameters:

- `limit` (integer): Items per page (default 20, max 100 here).
- `page` (integer): Page number (default 1).
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).

### `airbrake_get_project_stats` (~235 tokens)

Get project statistics

Error 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.

Input parameters:

- `limit` (integer): Max data points (default 100).
- `period` (string): Aggregation period. The reference lists 1m, 5m, 15m, 30m, 2h, 3h, 6h, 12h, 24h (project stats) and minute, hour (group stats).
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).
- `since` (string): Start (inclusive), RFC 3339 date-time with timezone; sent as time__gte in Unix seconds.

### `airbrake_mute_group` (~144 tokens)

Mute an error group

WRITE: 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.

Input parameters:

- `group_id` (string, required): Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).

### `airbrake_unmute_group` (~114 tokens)

Unmute an error group

WRITE: 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.

Input parameters:

- `group_id` (string, required): Error group id (digits, as a string: Airbrake group ids exceed JavaScript's safe integers). From airbrake_list_groups.
- `project_id` (integer, required): Airbrake project id (from airbrake_list_projects).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-airbrake/airbrake#diagnostics

## Score history

- 2026-10-17: 64
- 2026-10-16: 63
- 2026-10-15: 63
- 2026-10-14: 62
- 2026-10-13: 60
- 2026-10-12: 59
- 2026-10-11: 59
- 2026-10-10: 58

## Common questions

### What is the Airbrake MCP by usefulapi server?

Airbrake MCP by usefulapi is listed in the public MCP registry as io.usefulapi/airbrake. Read Airbrake projects, error groups, notices, deploys and stats; mute or unmute error groups. This page covers its hosted endpoint (https://airbrake.usefulapi.io/mcp).

### Is the Airbrake MCP by usefulapi server safe to use?

Airbrake MCP by usefulapi scores 64 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Airbrake MCP by usefulapi server expose?

Airbrake MCP by usefulapi exposes 13 tools: airbrake_list_projects, airbrake_get_project, airbrake_list_groups, airbrake_get_group, airbrake_get_group_stats, and 8 more. Their descriptions and schemas cost roughly 2,117 tokens of context every time the server is loaded.

### Does the Airbrake MCP by usefulapi server require authentication?

Yes. Airbrake MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Airbrake MCP by usefulapi server still maintained?

Airbrake MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://airbrake.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/airbrake/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-airbrake/airbrake.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-airbrake/airbrake.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-airbrake/airbrake
