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.
20 tools: 8 can delete or cancel things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels8Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads12Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "statusio_resolve_incident" destructive (destructiveHint: true), and its name says "resolve", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "statusio_resolve_incident" says "resolve": a word for reading.
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.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "statusio_resolve_incident" says "resolve": a word for reading.
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.