Skip to content

Status.io MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi

Read Status.io components, incidents, maintenance; post incidents, schedule maintenance, set status.

Deletes · 8

20 tools: 8 can delete or cancel things and 12 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http status-io https://status-io.usefulapi.io/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "statusio_resolve_incident" destructive (destructiveHint: true), and its name says "resolve", a word for reading.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "statusio_resolve_incident" says "resolve": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

20 tools

Deletes or cancels 8Claude Code: deny
  • statusio_create_incidentWRITE: open a new incident on the PUBLIC status page.No findings

    Why it is in this group

    • The name "statusio_create_incident" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: open a new incident on the PUBLIC status page. It is visible to every visitor immediately and sets the status of the affected components. No subscriber, Slack, Teams, IRC or Twitter notification is sent unless you switch it on (notify_*). Returns the new incident id. Say what is affected with all_infrastructure_affected or infrastructure_affected pairs. POST /incident/create.

    Annotations the server declares

    • title: Create incident
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • statusio_finish_maintenanceWRITE: finish an active maintenance event; it moves to history and the affected components return to operational.No findings

    Why it is in this group

    • The description's first verb is "write": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: finish an active maintenance event; it moves to history and the affected components return to operational. The message is public at once. No notification is sent unless you switch it on (notify_*). POST /maintenance/finish.

    Annotations the server declares

    • title: Finish maintenance
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • statusio_resolve_incidentWRITE: resolve an incident with a closing message.1 finding

    Why it is in this group

    • The name "statusio_resolve_incident" says "resolve": a word for reading.
    • The description's first verb is "write": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Warn

      The server marks "statusio_resolve_incident" destructive (destructiveHint: true), and its name says "resolve", a word for reading.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "statusio_resolve_incident" says "resolve": a word for reading.

      What this check looks for
    Description, as the server wrote it
    WRITE: resolve an incident with a closing message. The affected components return to operational and the incident moves to history. No notification is sent unless you switch it on (notify_*). POST /incident/resolve.

    Annotations the server declares

    • title: Resolve incident
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • statusio_schedule_maintenanceWRITE: schedule a planned maintenance on the PUBLIC status page.No findings

    Why it is in this group

    • The name "statusio_schedule_maintenance" says "schedule": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: schedule a planned maintenance on the PUBLIC status page. It is visible to visitors as upcoming maintenance. Subscribers are told only if you switch on notify_now / notify_72_hr / notify_24_hr / notify_1_hr (all default off). With automation true Status.io starts and ends it by itself at the planned times. Returns the maintenance id. POST /maintenance/schedule.

    Annotations the server declares

    • title: Schedule maintenance
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • statusio_start_maintenanceWRITE: start a scheduled maintenance now; it moves from pending to active and the affected components show planned maintenance.No findings

    Why it is in this group

    • The name "statusio_start_maintenance" says "start": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: start a scheduled maintenance now; it moves from pending to active and the affected components show planned maintenance. The message is public at once. No notification is sent unless you switch it on (notify_*). POST /maintenance/start.

    Annotations the server declares

    • title: Start maintenance
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • statusio_update_component_statusWRITE: change the PUBLIC status of one component/container pair (for example to degraded_performance) without creating an incident.No findings

    Why it is in this group

    • The name "statusio_update_component_status" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: change the PUBLIC status of one component/container pair (for example to degraded_performance) without creating an incident. It changes what visitors of your status page see right away. Set it back to operational when done. Ids from statusio_list_components. POST /component/status/update.

    Annotations the server declares

    • title: Update component status
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • statusio_update_incidentWRITE: post a new update message on an existing incident and set its state and component status.No findings

    Why it is in this group

    • The name "statusio_update_incident" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: post a new update message on an existing incident and set its state and component status. The message is public at once. No subscriber or channel notification is sent unless you switch it on (notify_*). To close an incident use statusio_resolve_incident. POST /incident/update.

    Annotations the server declares

    • title: Update incident
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • statusio_update_maintenanceWRITE: post a new status message on an active maintenance event.No findings

    Why it is in this group

    • The name "statusio_update_maintenance" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: post a new status message on an active maintenance event. The message is public at once. No notification is sent unless you switch it on (notify_*). POST /maintenance/update.

    Annotations the server declares

    • title: Update maintenance
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Only reads 12Claude Code: allow
  • statusio_get_incidentOne incident in full: components, containers, infrastructure affected and all its messages.No findings

    Why it is in this group

    • The name "statusio_get_incident" says "get": a word for reading.
    Description, as the server wrote it
    One incident in full: components, containers, infrastructure affected and all its messages. GET /incident/{statuspage_id}/{incident_id}.

    Annotations the server declares

    • title: Get incident
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_get_incident_messageOne message (update) of an incident: text, state, status, time and the user who posted it.No findings

    Why it is in this group

    • The name "statusio_get_incident_message" says "get": a word for reading.
    Description, as the server wrote it
    One message (update) of an incident: text, state, status, time and the user who posted it. GET /incident/message/{statuspage_id}/{message_id}.

    Annotations the server declares

    • title: Get incident message
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_get_maintenanceOne maintenance event in full, with all messages and the infrastructure affected.No findings

    Why it is in this group

    • The name "statusio_get_maintenance" says "get": a word for reading.
    Description, as the server wrote it
    One maintenance event in full, with all messages and the infrastructure affected. GET /maintenance/{statuspage_id}/{maintenance_id}.

    Annotations the server declares

    • title: Get maintenance
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_get_maintenance_messageOne message of a maintenance event.No findings

    Why it is in this group

    • The name "statusio_get_maintenance_message" says "get": a word for reading.
    Description, as the server wrote it
    One message of a maintenance event. GET /maintenance/message/{statuspage_id}/{message_id}.

    Annotations the server declares

    • title: Get maintenance message
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_get_status_summaryThe current state of the status page in one call: overall status, every component and container with its status code and last update, open incidents and active/upcoming maintenance…No findings

    Why it is in this group

    • The name "statusio_get_status_summary" says "get": a word for reading.
    Description, as the server wrote it
    The current state of the status page in one call: overall status, every component and container with its status code and last update, open incidents and active/upcoming maintenance. Start here. GET /status/summary/{statuspage_id}.

    Annotations the server declares

    • title: Get status summary
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_list_active_incidentsActive (unresolved) incidents with their messages and affected components.No findings

    Why it is in this group

    • The name "statusio_list_active_incidents" says "list": a word for reading.
    Description, as the server wrote it
    Active (unresolved) incidents with their messages and affected components. GET /incident/list/active/{statuspage_id}.

    Annotations the server declares

    • title: List active incidents
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_list_componentsList the components of the status page and the containers (data centers / locations) attached to each, with ids.No findings

    Why it is in this group

    • The name "statusio_list_components" says "list": a word for reading.
    Description, as the server wrote it
    List the components of the status page and the containers (data centers / locations) attached to each, with ids. Component and container ids are needed to update a status or to say what an incident affects ('<component_id>-<container_id>'). GET /component/list/{statuspage_id}.

    Annotations the server declares

    • title: List components
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_list_incidentsThe ids of all active and resolved incidents (ids only, no details): a quick way to see which incidents exist.No findings

    Why it is in this group

    • The name "statusio_list_incidents" says "list": a word for reading.
    Description, as the server wrote it
    The ids of all active and resolved incidents (ids only, no details): a quick way to see which incidents exist. Fetch one with statusio_get_incident. GET /incidents/{statuspage_id}.

    Annotations the server declares

    • title: List incident ids
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_list_maintenanceMaintenance events in one state, with messages and affected components: pending (scheduled, not started), active (in progress) or closed (finished).No findings

    Why it is in this group

    • The name "statusio_list_maintenance" says "list": a word for reading.
    Description, as the server wrote it
    Maintenance events in one state, with messages and affected components: pending (scheduled, not started), active (in progress) or closed (finished). GET /maintenance/list/{pending|active|closed}/{statuspage_id}.

    Annotations the server declares

    • title: List maintenance
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_list_maintenance_idsThe ids of all active, closed and upcoming maintenance events (ids only).No findings

    Why it is in this group

    • The name "statusio_list_maintenance_ids" says "list": a word for reading.
    Description, as the server wrote it
    The ids of all active, closed and upcoming maintenance events (ids only). Fetch one with statusio_get_maintenance. GET /maintenances/{statuspage_id}.

    Annotations the server declares

    • title: List maintenance ids
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_list_resolved_incidentsResolved incidents (history) with their messages and affected components.No findings

    Why it is in this group

    • The name "statusio_list_resolved_incidents" says "list": a word for reading.
    Description, as the server wrote it
    Resolved incidents (history) with their messages and affected components. GET /incident/list/resolved/{statuspage_id}.

    Annotations the server declares

    • title: List resolved incidents
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • statusio_list_subscribersList the people and endpoints subscribed to the status page (email addresses, phone numbers, webhook hosts) with ids and their granular preferences.No findings

    Why it is in this group

    • The name "statusio_list_subscribers" says "list": a word for reading.
    Description, as the server wrote it
    List the people and endpoints subscribed to the status page (email addresses, phone numbers, webhook hosts) with ids and their granular preferences. This is personal data of your subscribers. Webhook URLs are shortened to their host, because they can carry secrets. GET /subscriber/list/{statuspage_id}.

    Annotations the server declares

    • title: List subscribers
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.3.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http status-io https://status-io.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__status-io__statusio_get_status_summary",
      "mcp__status-io__statusio_list_components",
      "mcp__status-io__statusio_list_incidents",
      "mcp__status-io__statusio_list_active_incidents",
      "mcp__status-io__statusio_list_resolved_incidents",
      "mcp__status-io__statusio_get_incident",
      "mcp__status-io__statusio_get_incident_message",
      "mcp__status-io__statusio_list_maintenance_ids",
      "mcp__status-io__statusio_list_maintenance",
      "mcp__status-io__statusio_get_maintenance",
      "mcp__status-io__statusio_get_maintenance_message",
      "mcp__status-io__statusio_list_subscribers"
    ],
    "ask": [],
    "deny": [
      "mcp__status-io__statusio_update_component_status",
      "mcp__status-io__statusio_create_incident",
      "mcp__status-io__statusio_update_incident",
      "mcp__status-io__statusio_resolve_incident",
      "mcp__status-io__statusio_schedule_maintenance",
      "mcp__status-io__statusio_start_maintenance",
      "mcp__status-io__statusio_update_maintenance",
      "mcp__status-io__statusio_finish_maintenance"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as status-io. Review it before you use it.