Skip to main content
Glama

Timeline of an incident

incident_timeline
Read-onlyIdempotent

The incident’s public status updates and internal team notes (each note with who wrote it and via, the channel: app, api, mcp for an AI assistant, email, slack or telegram), each time it was acknowledged or the acknowledgement taken back (acknowledgements, with who, when and via), plus the alert channels that were notified, deploys shortly before it began, who PagerDuty is paging, notes from PagerDuty and tickets opened for it. An update with posted_automatically was posted by InfraNest from the incident’s draft, because your workspace lets drafts post without asking. status_draft is the status page update this incident would post, ready for you to send with POST …/updates: kind is opened (the outage is real by your rule in GET …/incident-status-rule and nothing has been posted about it yet) or resolved (it recovered after an update was posted, and nobody has said it is over). It carries the status and message to send, the status pages and components it names, how long it has been down (down_minutes), from how many locations it was seen down (locations_down of locations_checked, null when the monitor has no per-location results) and whether your workspace posts it without asking (auto_post). targets lists where it is posted: once per status page it names, on an incident that page shows (incident_id, the page_ids showing it, and notify_page_ids when only some of those pages’ subscribers are told, because another update already reached the rest). For an outage across several monitors on different status pages, that is more than this incident. It is null for a blip, for an incident on no status page, for planned work and for a monitor behind a provider that reports its own outage. report is the incident’s postmortem in a docs tool such as Notion (provider, its title as label, url and created_at), or null; while it is null, report_writer names the connection that would write one (connection_id, provider), or is null when nothing that writes postmortems is connected. Each of tickets carries the link’s id (what unlinking it names), its own title when InfraNest saw it filed or linked, who it is assigned to (assignee, as the tracker’s webhook last said), how it came (origin: filed, linked or automation) and when InfraNest last heard of it (synced_at). review summarises the team’s review, or is null: how many of its four parts are written (parts_filled of parts_total), its follow-ups and how many are done, state (draft or done), owner, the keys of follow-up tickets still open, and copies, every place it is published to or linked from. Every update, team note and acknowledgement of one incident, plus the deploys near its start. To find out why it happened, follow a deploy with deploy_changes and check dns_zone_changes and search_audit_log for that time.

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": {
      "incident_id": "<incident_id>"
    },
    "name": "incident_timeline"
  }
}

Input Schema

NameRequiredDescriptionDefault
incident_idYesThe incident id, from list_incidents or status_overview.
organization_idNoThe organization to read. Leave it out when the token reaches only one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. Beyond that the description discloses meaningful behavioral context: posted_automatically means InfraNest posted from a draft, status_draft is unsent and ready for POST, targets is null in specific cases (blip, no status page, planned work, provider-reported outage), and report_writer predicts what would write a postmortem. It omits pagination/limits, so not a 5.

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

Conciseness3/5

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

The content is dense and mostly necessary given there is no output schema, and it opens with the core enumeration. However, it is an unstructured wall of prose packing many field-level rules into run-on sentences, which makes it hard for an agent to locate the operation itself versus the return-value reference.

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

Completeness5/5

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

With no output schema, the description carries the full burden of explaining return values and does so thoroughly: field meanings, nullability edge cases, the status_draft/targets distinction, ticket provenance, review structure and next-step routing. An agent can interpret the response without guessing.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are documented there, including provenance for incident_id (from list_incidents or status_overview) and behavior for organization_id when omitted. The description adds nothing about either parameter, so the baseline 3 applies.

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?

The description enumerates precisely what the tool returns for one incident: public status updates, internal team notes, acknowledgements, notified alert channels, nearby deploys, PagerDuty paging, tickets, postmortem report and review. That is far more specific than the name alone and lets an agent distinguish it from list_incidents (listing) or add_incident_note/acknowledge_incident (writes). It never states a verb up front, but the resource and scope are unambiguous.

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?

Usage is implied by the content description rather than stated: read this to see everything that happened on one incident. The final sentence does route the agent onward for root-cause work (deploy_changes, dns_zone_changes, search_audit_log), which is useful. But there is no explicit when-not guidance or named alternative for retrieving a single incident's summary versus its timeline.

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.