Skip to main content
Glama

Create an incident

create_incident

Create a manual incident affecting monitors of the project, for an outage the monitors did not catch. It triggers the uptime.incident.created alert rules, unless it is created already recovered with recovery_at. Status pages show its title once an incident update is published.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "project_id": "<project_id>",
      "impact": "<impact>",
      "title": "<title>",
      "exclude_from_downtime": "<exclude_from_downtime>",
      "monitors": "<monitors>"
    },
    "name": "create_incident"
  }
}

Input Schema

NameRequiredDescriptionDefault
tagsNoResource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.
titleYesIncident title
impactYesIncident impact
monitorsYesList of monitors linked to the incident
project_idYesID of the project to act on, see whoami
descriptionNoDescription of the error that caused the incident
incident_atNoDate of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.
recovery_atNoDate of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.
exclude_from_downtimeYesFlag to exclude the incident from downtime calculations

Output Schema

NameRequiredDescriptionDefault
idNo
slugNoIncident unique slug name
tagsNoResource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.
typeNoIncident type
stateNoIncident state
titleNoIncident title
impactNoIncident impact
statusNoIncident status
monitorsNoList of monitors linked to the incident
created_atNoDate of creation for the entity
project_idNoParent project ID
updated_atNoDate of last update for the entity
descriptionNoDescription of the error that caused the incident
incident_atNoDate of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.
recovery_atNoDate of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.
exclude_from_downtimeNoFlag to exclude the incident from downtime calculations

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "created_at": {
      +      "description": "Date of creation for the entity",
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "description": {
      +      "description": "Description of the error that caused the incident",
      +      "examples": [
      +        "The server answered with an unexpected status code: 503."
      +      ],
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "exclude_from_downtime": {
      +      "description": "Flag to exclude the incident from downtime calculations",
      +      "examples": [
      +        false
      +      ],
      +      "type": "boolean"
      +    },
      +    "id": {
      +      "examples": [
      +        1
      +      ],
      +      "type": "integer"
      +    },
      +    "impact": {
      +      "description": "Incident impact",
      +      "enum": [
      +        "unknown",
      +        "operational",
      +        "maintenance",
      +        "degraded_performance",
      +        "partial_outage",
      +        "major_outage"
      +      ],
      +      "type": "string"
      +    },
      +    "incident_at": {
      +      "description": "Date of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
      +      "format": "date-time",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "monitors": {
      +      "description": "List of monitors linked to the incident",
      +      "examples": [
      +        [
      +          1,
      +          2,
      +          3
      +        ]
      +      ],
      +      "items": {
      +        "type": "integer"
      +      },
      +      "type": "array"
      +    },
      +    "project_id": {
      +      "description": "Parent project ID",
      +      "examples": [
      +        1
      +      ],
      +      "type": "integer"
      +    },
      +    "recovery_at": {
      +      "description": "Date of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.",
      +      "format": "date-time",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "slug": {
      +      "description": "Incident unique slug name",
      +      "examples": [
      +        "APP-123"
      +      ],
      +      "type": "string"
      +    },
      +    "state": {
      +      "description": "Incident state",
      +      "enum": [
      +        "unknown",
      +        "investigating",
      +        "identified",
      +        "monitoring",
      +        "resolved"
      +      ],
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "Incident status",
      +      "enum": [
      +        "ongoing",
      +        "recovering",
      +        "recovered"
      +      ],
      +      "type": "string"
      +    },
      +    "tags": {
      +      "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
      +      "items": {
      +        "examples": [
      +          "environment:production"
      +        ],
      +        "type": "string"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "title": {
      +      "description": "Incident title",
      +      "examples": [
      +        "Service is not working as expected"
      +      ],
      +      "type": "string"
      +    },
      +    "type": {
      +      "description": "Incident type",
      +      "enum": [
      +        "monitor",
      +        "manual"
      +      ],
      +      "type": "string"
      +    },
      +    "updated_at": {
      +      "description": "Date of last update for the entity",
      +      "format": "date-time",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses non-obvious side effects the annotations cannot express: it fires the `uptime.incident.created` alert rules, and that firing is suppressed when the incident is created already recovered via `recovery_at`. It also explains the status page visibility dependency on publishing an incident update. Missing only permission/model details, which the annotations already cover for safety profile (non-destructive, non-idempotent).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences with no filler; the core purpose and the most surprising side effect (alert rule triggering) come first. The status-page sentence is slightly tangential but still decision-relevant for agents managing public communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with full schema descriptions, an output schema, and annotations present, the description supplies the missing behavioral layer: alerting side effects and status page propagation. An agent can call it correctly; only cross-tool routing (maintenance window vs. manual incident) and permission requirements remain uncovered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description earns above that by explaining behavioral consequences of specific parameters: `recovery_at` changes whether alert rules trigger, and incident title propagation to status pages depends on an update being published. It still doesn't clarify semantics of required parameters like `impact` or `exclude_from_downtime` beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a manual incident') and scopes it to monitors of a project, with the qualifier 'for an outage the monitors did not catch' that separates it from automatically detected incidents. It does not explicitly name a contrasting sibling such as create_maintenance_window, so it stops just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for an outage the monitors did not catch' gives a clear use condition, which is real guidance. However, no exclusions or alternatives are named — an agent is left to infer that planned downtime belongs in create_maintenance_window rather than here, and there is no mention of required prerequisites or permissions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources