Status.io MCP by usefulapi
Read Status.io components, incidents, maintenance; post incidents, schedule maintenance, set status.
使うべきか
品質と安全性
検出事項(3)
- LOWstatusio_list_resolved_incidents 内
- LOWstatusio_get_maintenance_message 内
- LOWstatusio_update_component_status 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"status-io": {
"url": "https://status-io.usefulapi.io/mcp"
}
}
}リモートエンドポイント
https://status-io.usefulapi.io/mcpstreamable-httpできること
ツール一覧
ツール(20)
🟢statusio_get_status_summary(statuspage_id)
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}.
入力スキーマ
{
"type": "object",
"properties": {
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_list_components(statuspage_id)
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}.
入力スキーマ
{
"type": "object",
"properties": {
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_list_incidents(statuspage_id)
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}.
入力スキーマ
{
"type": "object",
"properties": {
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_list_active_incidents(statuspage_id, page)
Active (unresolved) incidents with their messages and affected components. GET /incident/list/active/{statuspage_id}.
入力スキーマ
{
"type": "object",
"properties": {
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"page": {
"description": "Page number, from 1 (default 1). Status.io reports no totals: ask for the next page until a page comes back empty.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_list_resolved_incidents(statuspage_id, page)
Resolved incidents (history) with their messages and affected components. GET /incident/list/resolved/{statuspage_id}.
入力スキーマ
{
"type": "object",
"properties": {
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"page": {
"description": "Page number, from 1 (default 1). Status.io reports no totals: ask for the next page until a page comes back empty.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_get_incident(incident_id, statuspage_id)
One incident in full: components, containers, infrastructure affected and all its messages. GET /incident/{statuspage_id}/{incident_id}.
入力スキーマ
{
"type": "object",
"properties": {
"incident_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Incident id (from statusio_list_incidents or the active/resolved lists)."
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"incident_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_get_incident_message(message_id, statuspage_id)
One message (update) of an incident: text, state, status, time and the user who posted it. GET /incident/message/{statuspage_id}/{message_id}.
入力スキーマ
{
"type": "object",
"properties": {
"message_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Incident message id (from statusio_get_incident)."
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_list_maintenance_ids(statuspage_id)
The ids of all active, closed and upcoming maintenance events (ids only). Fetch one with statusio_get_maintenance. GET /maintenances/{statuspage_id}.
入力スキーマ
{
"type": "object",
"properties": {
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_list_maintenance(state, statuspage_id, page)
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}.
入力スキーマ
{
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"pending",
"active",
"closed"
],
"description": "pending = scheduled and not started, active = in progress, closed = finished."
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"page": {
"description": "Page number, from 1 (default 1). Status.io reports no totals: ask for the next page until a page comes back empty.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_get_maintenance(maintenance_id, statuspage_id)
One maintenance event in full, with all messages and the infrastructure affected. GET /maintenance/{statuspage_id}/{maintenance_id}.
入力スキーマ
{
"type": "object",
"properties": {
"maintenance_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Maintenance id (from statusio_list_maintenance_ids or statusio_list_maintenance)."
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"maintenance_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_get_maintenance_message(message_id, statuspage_id)
One message of a maintenance event. GET /maintenance/message/{statuspage_id}/{message_id}.
入力スキーマ
{
"type": "object",
"properties": {
"message_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Maintenance message id (from statusio_get_maintenance)."
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢statusio_list_subscribers(statuspage_id)
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}.
入力スキーマ
{
"type": "object",
"properties": {
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴statusio_update_component_status(component_id, container_id, status, details, statuspage_id)
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.
入力スキーマ
{
"type": "object",
"properties": {
"component_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Component id."
},
"container_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Container id; it must be attached to that component."
},
"status": {
"type": "string",
"enum": [
"operational",
"planned_maintenance",
"degraded_performance",
"partial_service_disruption",
"service_disruption",
"security_issue"
],
"description": "New status level."
},
"details": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Short message shown with the status change."
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"component_id",
"container_id",
"status",
"details"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴statusio_create_incident(name, details, status, state, all_infrastructure_affected, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Short incident title."
},
"details": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Message describing the incident."
},
"status": {
"type": "string",
"enum": [
"operational",
"degraded_performance",
"partial_service_disruption",
"service_disruption",
"security_issue"
],
"description": "Status the affected components get."
},
"state": {
"description": "Incident state (default investigating).",
"type": "string",
"enum": [
"investigating",
"identified",
"monitoring"
]
},
"all_infrastructure_affected": {
"description": "true = every component and container is affected. Otherwise give infrastructure_affected.",
"type": "boolean"
},
"infrastructure_affected": {
"description": "Affected pairs, each '<component_id>-<container_id>' (ids from statusio_list_components).",
"maxItems": 200,
"type": "array",
"items": {
"type": "string",
"maxLength": 140,
"pattern": "^[A-Za-z0-9_]+-[A-Za-z0-9_]+$"
}
},
"notify_email": {
"description": "Also email your email subscribers (default false).",
"type": "boolean"
},
"notify_sms": {
"description": "Also text your SMS subscribers (default false).",
"type": "boolean"
},
"notify_webhook": {
"description": "Also call your webhook subscribers (default false).",
"type": "boolean"
},
"notify_slack": {
"description": "Also post to your connected Slack channels (default false).",
"type": "boolean"
},
"notify_msteams": {
"description": "Also post to your connected Microsoft Teams channels (default false).",
"type": "boolean"
},
"notify_irc": {
"description": "Also post to your connected IRC channel (default false).",
"type": "boolean"
},
"post_to_twitter": {
"description": "Also post to your connected Twitter/X account (default false).",
"type": "boolean"
},
"message_subject": {
"description": "Subject line for the email notification.",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"name",
"details",
"status"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴statusio_update_incident(incident_id, details, status, state, notify_email, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"incident_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Incident id."
},
"details": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Message describing this update."
},
"status": {
"type": "string",
"enum": [
"operational",
"degraded_performance",
"partial_service_disruption",
"service_disruption",
"security_issue"
],
"description": "Status the affected components get now."
},
"state": {
"type": "string",
"enum": [
"investigating",
"identified",
"monitoring"
],
"description": "Incident state now."
},
"notify_email": {
"description": "Also email your email subscribers (default false).",
"type": "boolean"
},
"notify_sms": {
"description": "Also text your SMS subscribers (default false).",
"type": "boolean"
},
"notify_webhook": {
"description": "Also call your webhook subscribers (default false).",
"type": "boolean"
},
"notify_slack": {
"description": "Also post to your connected Slack channels (default false).",
"type": "boolean"
},
"notify_msteams": {
"description": "Also post to your connected Microsoft Teams channels (default false).",
"type": "boolean"
},
"notify_irc": {
"description": "Also post to your connected IRC channel (default false).",
"type": "boolean"
},
"post_to_twitter": {
"description": "Also post to your connected Twitter/X account (default false).",
"type": "boolean"
},
"message_subject": {
"description": "Subject line for the email notification.",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"incident_id",
"details",
"status",
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴statusio_resolve_incident(incident_id, details, notify_email, notify_sms, notify_webhook, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"incident_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Incident id."
},
"details": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Message describing the resolution."
},
"notify_email": {
"description": "Also email your email subscribers (default false).",
"type": "boolean"
},
"notify_sms": {
"description": "Also text your SMS subscribers (default false).",
"type": "boolean"
},
"notify_webhook": {
"description": "Also call your webhook subscribers (default false).",
"type": "boolean"
},
"notify_slack": {
"description": "Also post to your connected Slack channels (default false).",
"type": "boolean"
},
"notify_msteams": {
"description": "Also post to your connected Microsoft Teams channels (default false).",
"type": "boolean"
},
"notify_irc": {
"description": "Also post to your connected IRC channel (default false).",
"type": "boolean"
},
"post_to_twitter": {
"description": "Also post to your connected Twitter/X account (default false).",
"type": "boolean"
},
"message_subject": {
"description": "Subject line for the email notification.",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"incident_id",
"details"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴statusio_schedule_maintenance(name, details, start, end, all_infrastructure_affected, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Short maintenance title."
},
"details": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Message describing the maintenance."
},
"start": {
"type": "string",
"description": "Planned start, 'YYYY-MM-DD HH:mm' (24-hour). Status.io's reference does not state the time zone of this input: check the scheduled time in your dashboard."
},
"end": {
"type": "string",
"description": "Planned end, 'YYYY-MM-DD HH:mm' (24-hour); after the start."
},
"all_infrastructure_affected": {
"description": "true = every component and container is affected. Otherwise give infrastructure_affected.",
"type": "boolean"
},
"infrastructure_affected": {
"description": "Affected pairs, each '<component_id>-<container_id>' (ids from statusio_list_components).",
"maxItems": 200,
"type": "array",
"items": {
"type": "string",
"maxLength": 140,
"pattern": "^[A-Za-z0-9_]+-[A-Za-z0-9_]+$"
}
},
"notify_now": {
"description": "Tell subscribers right away (default false).",
"type": "boolean"
},
"notify_72_hr": {
"description": "Remind subscribers 72 hours before the start (default false).",
"type": "boolean"
},
"notify_24_hr": {
"description": "Remind subscribers 24 hours before the start (default false).",
"type": "boolean"
},
"notify_1_hr": {
"description": "Remind subscribers 1 hour before the start (default false).",
"type": "boolean"
},
"automation": {
"description": "Start and end the maintenance automatically at the planned times (default false).",
"type": "boolean"
},
"automation_start_text": {
"description": "Message posted when the maintenance starts (with automation).",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"automation_stop_text": {
"description": "Message posted when the maintenance ends (with automation).",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"message_subject": {
"description": "Subject line for the email notifications.",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"name",
"details",
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴statusio_start_maintenance(maintenance_id, details, notify_email, notify_sms, notify_webhook, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"maintenance_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Maintenance id."
},
"details": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Message describing this maintenance update."
},
"notify_email": {
"description": "Also email your email subscribers (default false).",
"type": "boolean"
},
"notify_sms": {
"description": "Also text your SMS subscribers (default false).",
"type": "boolean"
},
"notify_webhook": {
"description": "Also call your webhook subscribers (default false).",
"type": "boolean"
},
"notify_slack": {
"description": "Also post to your connected Slack channels (default false).",
"type": "boolean"
},
"notify_msteams": {
"description": "Also post to your connected Microsoft Teams channels (default false).",
"type": "boolean"
},
"notify_irc": {
"description": "Also post to your connected IRC channel (default false).",
"type": "boolean"
},
"post_to_twitter": {
"description": "Also post to your connected Twitter/X account (default false).",
"type": "boolean"
},
"message_subject": {
"description": "Subject line for the email notification.",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"maintenance_id",
"details"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴statusio_update_maintenance(maintenance_id, details, notify_email, notify_sms, notify_webhook, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"maintenance_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Maintenance id."
},
"details": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Message describing this maintenance update."
},
"notify_email": {
"description": "Also email your email subscribers (default false).",
"type": "boolean"
},
"notify_sms": {
"description": "Also text your SMS subscribers (default false).",
"type": "boolean"
},
"notify_webhook": {
"description": "Also call your webhook subscribers (default false).",
"type": "boolean"
},
"notify_slack": {
"description": "Also post to your connected Slack channels (default false).",
"type": "boolean"
},
"notify_msteams": {
"description": "Also post to your connected Microsoft Teams channels (default false).",
"type": "boolean"
},
"notify_irc": {
"description": "Also post to your connected IRC channel (default false).",
"type": "boolean"
},
"post_to_twitter": {
"description": "Also post to your connected Twitter/X account (default false).",
"type": "boolean"
},
"message_subject": {
"description": "Subject line for the email notification.",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"maintenance_id",
"details"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴statusio_finish_maintenance(maintenance_id, details, notify_email, notify_sms, notify_webhook, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"maintenance_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Maintenance id."
},
"details": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Message describing this maintenance update."
},
"notify_email": {
"description": "Also email your email subscribers (default false).",
"type": "boolean"
},
"notify_sms": {
"description": "Also text your SMS subscribers (default false).",
"type": "boolean"
},
"notify_webhook": {
"description": "Also call your webhook subscribers (default false).",
"type": "boolean"
},
"notify_slack": {
"description": "Also post to your connected Slack channels (default false).",
"type": "boolean"
},
"notify_msteams": {
"description": "Also post to your connected Microsoft Teams channels (default false).",
"type": "boolean"
},
"notify_irc": {
"description": "Also post to your connected IRC channel (default false).",
"type": "boolean"
},
"post_to_twitter": {
"description": "Also post to your connected Twitter/X account (default false).",
"type": "boolean"
},
"message_subject": {
"description": "Subject line for the email notification.",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"statuspage_id": {
"description": "Status page id. Defaults to the status page chosen when you connected.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"required": [
"maintenance_id",
"details"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}コミュニティ
エビデンス