Instatus MCP by usefulapi

Manage status pages: components, incidents and maintenances; set live component status.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
99%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,418Tokens (tool definitions)
~2.0 KBTypical response size
Significant attention impact (2.67% of 128k context)

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-http

What it can do

Tool inventory

Tools (14)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded14 tools
verifiedversion not recorded14 tools
verifiedversion not recorded14 tools
failed observationversion not recorded—
failed observationversion not recorded—