Instatus MCP by usefulapi
Manage status pages: components, incidents and maintenances; set live component status.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"instatus": {
"url": "https://instatus.usefulapi.io/mcp"
}
}
}Remote endpoints
https://instatus.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (14)
🟢instatus_list_pages(page, per_page)
List all status pages on the account — each page's id, subdomain, name, status, url, custom domain, and timestamps. The page id is what every other tool takes as `page_id`. Instatus: GET /v2/pages.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number to fetch (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Items per page (default 50, max 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢instatus_list_components(page_id, page, per_page)
List a status page's components — id, name, description, status, order, showUptime, grouped, archived. The component ids are what you set impact on. Instatus: GET /v2/{page_id}/components.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id (from list_pages)."
},
"page": {
"description": "Page number to fetch (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Items per page (default 50, max 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"page_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢instatus_get_component(page_id, component_id)
Get a single component by id — its full state (name, description, status, order, showUptime, grouped, archived). Instatus: GET /v2/{page_id}/components/{component_id}.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"component_id": {
"type": "string",
"description": "The component's id."
}
},
"required": [
"page_id",
"component_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢instatus_list_incidents(page_id, status, page, per_page)
List a status page's incidents, most recent first — optionally filtered by status. Each incident: id, name, status, impact, affected components, updates, timestamps. Instatus: GET /v1/{page_id}/incidents.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"status": {
"description": "Filter to incidents with this status (INVESTIGATING, IDENTIFIED, MONITORING, RESOLVED).",
"type": "string",
"enum": [
"INVESTIGATING",
"IDENTIFIED",
"MONITORING",
"RESOLVED"
]
},
"page": {
"description": "Page number to fetch (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Items per page (default 50, max 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"page_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢instatus_get_incident(page_id, incident_id)
Get a single incident by id — its full state including its update timeline and affected components. Instatus: GET /v1/{page_id}/incidents/{incident_id}.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"incident_id": {
"type": "string",
"description": "The incident's id."
}
},
"required": [
"page_id",
"incident_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢instatus_list_maintenances(page_id, page, per_page)
List a status page's scheduled maintenances, most recent first — id, name, status, affected components, start/end, updates. Instatus: GET /v2/{page_id}/maintenances.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"page": {
"description": "Page number to fetch (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Items per page (default 50, max 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"page_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢instatus_get_maintenance(page_id, maintenance_id)
Get a single scheduled maintenance by id — its full state including its update timeline and affected components. Instatus: GET /v1/{page_id}/maintenances/{maintenance_id}.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"maintenance_id": {
"type": "string",
"description": "The maintenance's id."
}
},
"required": [
"page_id",
"maintenance_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴instatus_update_component(page_id, component_id, name, description, status, ...)
UPDATES a component by id — this MODIFIES live status-page data. The key way to set a component's operational status (OPERATIONAL, UNDERMAINTENANCE, DEGRADEDPERFORMANCE, PARTIALOUTAGE, MAJOROUTAGE). Send only the fields you want to change. Instatus: PUT /v2/{page_id}/components/{component_id}. Returns the updated component.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"component_id": {
"type": "string",
"description": "The component's id to update."
},
"name": {
"description": "Component name.",
"type": "string"
},
"description": {
"description": "Free-form component description.",
"type": "string"
},
"status": {
"description": "Operational status of the component.",
"type": "string",
"enum": [
"OPERATIONAL",
"UNDERMAINTENANCE",
"DEGRADEDPERFORMANCE",
"PARTIALOUTAGE",
"MAJOROUTAGE"
]
},
"order": {
"description": "Display order of the component on the page.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"showUptime": {
"description": "Whether to show the uptime graph for this component.",
"type": "boolean"
},
"grouped": {
"description": "Whether the component is displayed within a group.",
"type": "boolean"
},
"archived": {
"description": "Whether the component is archived (hidden).",
"type": "boolean"
}
},
"required": [
"page_id",
"component_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴instatus_create_incident(page_id, name, message, components, started, ...)
CREATES a new incident — this MODIFIES live status-page data and can notify subscribers. Provide `name` (required); optionally set the initial `message`, affected `components`, per-component impact via `statuses`, `status`, `started`, `notify`, and `shouldPublish`. Instatus: POST /v1/{page_id}/incidents. Returns the created incident.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"name": {
"type": "string",
"description": "Incident title (required)."
},
"message": {
"description": "Incident update message (Markdown supported).",
"type": "string"
},
"components": {
"description": "Component ids affected by this incident.",
"type": "array",
"items": {
"type": "string"
}
},
"started": {
"description": "ISO 8601 timestamp for when the incident started.",
"type": "string"
},
"status": {
"description": "Incident status.",
"type": "string",
"enum": [
"INVESTIGATING",
"IDENTIFIED",
"MONITORING",
"RESOLVED"
]
},
"notify": {
"description": "Whether to notify subscribers about this update.",
"type": "boolean"
},
"statuses": {
"description": "Per-component impact — set each listed component's status for this event.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The affected component's id."
},
"status": {
"type": "string",
"enum": [
"OPERATIONAL",
"UNDERMAINTENANCE",
"DEGRADEDPERFORMANCE",
"PARTIALOUTAGE",
"MAJOROUTAGE"
],
"description": "The impact status to set on that component."
}
},
"required": [
"id",
"status"
]
}
},
"shouldPublish": {
"description": "Whether the incident should be published to the status page.",
"type": "boolean"
}
},
"required": [
"page_id",
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴instatus_update_incident(page_id, incident_id, name, message, components, ...)
UPDATES an existing incident by id — this MODIFIES live status-page data and can notify subscribers (e.g. move it to MONITORING or RESOLVED). Send only the fields you want to change. Instatus: PUT /v1/{page_id}/incidents/{incident_id}. Returns the updated incident.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"incident_id": {
"type": "string",
"description": "The incident's id to update."
},
"name": {
"description": "Incident title.",
"type": "string"
},
"message": {
"description": "Incident update message (Markdown supported).",
"type": "string"
},
"components": {
"description": "Component ids affected by this incident.",
"type": "array",
"items": {
"type": "string"
}
},
"started": {
"description": "ISO 8601 timestamp for when the incident started.",
"type": "string"
},
"status": {
"description": "Incident status.",
"type": "string",
"enum": [
"INVESTIGATING",
"IDENTIFIED",
"MONITORING",
"RESOLVED"
]
},
"notify": {
"description": "Whether to notify subscribers about this update.",
"type": "boolean"
},
"statuses": {
"description": "Per-component impact — set each listed component's status for this event.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The affected component's id."
},
"status": {
"type": "string",
"enum": [
"OPERATIONAL",
"UNDERMAINTENANCE",
"DEGRADEDPERFORMANCE",
"PARTIALOUTAGE",
"MAJOROUTAGE"
],
"description": "The impact status to set on that component."
}
},
"required": [
"id",
"status"
]
}
},
"shouldPublish": {
"description": "Whether the incident should be published to the status page.",
"type": "boolean"
}
},
"required": [
"page_id",
"incident_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴instatus_delete_incident(page_id, incident_id)
PERMANENTLY DELETES an incident by id — this MODIFIES live status-page data and cannot be undone. Instatus: DELETE /v1/{page_id}/incidents/{incident_id}.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"incident_id": {
"type": "string",
"description": "The incident's id to delete."
}
},
"required": [
"page_id",
"incident_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴instatus_create_maintenance(page_id, name, message, components, start, ...)
CREATES a new scheduled maintenance — this MODIFIES live status-page data and can notify subscribers. Provide `name` (required); optionally set `message`, affected `components`, per-component impact via `statuses`, `status`, `start`/`end`, `duration`, and `notify`. Instatus: POST /v1/{page_id}/maintenances. Returns the created maintenance.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"name": {
"type": "string",
"description": "Maintenance title (required)."
},
"message": {
"description": "Maintenance update message (Markdown supported).",
"type": "string"
},
"components": {
"description": "Component ids affected by this maintenance.",
"type": "array",
"items": {
"type": "string"
}
},
"start": {
"description": "ISO 8601 timestamp for when the maintenance starts.",
"type": "string"
},
"end": {
"description": "ISO 8601 timestamp for when the maintenance ends.",
"type": "string"
},
"status": {
"description": "Maintenance status.",
"type": "string",
"enum": [
"INVESTIGATING",
"IDENTIFIED",
"MONITORING",
"RESOLVED"
]
},
"notify": {
"description": "Whether to notify subscribers about this update.",
"type": "boolean"
},
"duration": {
"description": "Maintenance duration in minutes.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"statuses": {
"description": "Per-component impact — set each listed component's status for this event.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The affected component's id."
},
"status": {
"type": "string",
"enum": [
"OPERATIONAL",
"UNDERMAINTENANCE",
"DEGRADEDPERFORMANCE",
"PARTIALOUTAGE",
"MAJOROUTAGE"
],
"description": "The impact status to set on that component."
}
},
"required": [
"id",
"status"
]
}
}
},
"required": [
"page_id",
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴instatus_update_maintenance(page_id, maintenance_id, name, message, components, ...)
UPDATES an existing scheduled maintenance by id — this MODIFIES live status-page data and can notify subscribers. Send only the fields you want to change. Instatus: PUT /v1/{page_id}/maintenances/{maintenance_id}. Returns the updated maintenance.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"maintenance_id": {
"type": "string",
"description": "The maintenance's id to update."
},
"name": {
"description": "Maintenance title.",
"type": "string"
},
"message": {
"description": "Maintenance update message (Markdown supported).",
"type": "string"
},
"components": {
"description": "Component ids affected by this maintenance.",
"type": "array",
"items": {
"type": "string"
}
},
"start": {
"description": "ISO 8601 timestamp for when the maintenance starts.",
"type": "string"
},
"end": {
"description": "ISO 8601 timestamp for when the maintenance ends.",
"type": "string"
},
"status": {
"description": "Maintenance status.",
"type": "string",
"enum": [
"INVESTIGATING",
"IDENTIFIED",
"MONITORING",
"RESOLVED"
]
},
"notify": {
"description": "Whether to notify subscribers about this update.",
"type": "boolean"
},
"duration": {
"description": "Maintenance duration in minutes.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"statuses": {
"description": "Per-component impact — set each listed component's status for this event.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The affected component's id."
},
"status": {
"type": "string",
"enum": [
"OPERATIONAL",
"UNDERMAINTENANCE",
"DEGRADEDPERFORMANCE",
"PARTIALOUTAGE",
"MAJOROUTAGE"
],
"description": "The impact status to set on that component."
}
},
"required": [
"id",
"status"
]
}
}
},
"required": [
"page_id",
"maintenance_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴instatus_delete_maintenance(page_id, maintenance_id)
PERMANENTLY DELETES a scheduled maintenance by id — this MODIFIES live status-page data and cannot be undone. Instatus: DELETE /v1/{page_id}/maintenances/{maintenance_id}.
Input Schema
{
"type": "object",
"properties": {
"page_id": {
"type": "string",
"description": "The status page's id."
},
"maintenance_id": {
"type": "string",
"description": "The maintenance's id to delete."
}
},
"required": [
"page_id",
"maintenance_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence