Skip to main content
Glama

Draft a status page post

draft_status_page_post
Read-onlyIdempotent

Draft incident or update text for a status page from its monitor outages, without posting or emailing. Review and edit the draft before publishing it yourself.

Instructions

Write the text of the page's next incident post from the monitor outages affecting it. It only drafts: nothing is posted and no subscriber is emailed. Show the draft to the user and post it with create_status_page_incident (a new-incident draft) or post_status_page_update (an update draft) only after the user confirms; both email the page's subscribers. Without incident_id it drafts a new incident; with incident_id, the next update of that open incident (it says resolved once every outage behind it has recovered). Returns kind (OPENING for a new incident, UPDATE for an update), title (null for an update), status, body, component_ids, basis, source_incident_ids, existing_incident_ids and generated_at. basis says what the text rests on: NONE (no incident data, so the text is generic), CAUSE (incident cause and times) or DIAGNOSIS (also the stored diagnosis). Say so when basis is NONE and let the user edit the text. existing_incident_ids lists incidents already posted on this page for an ongoing outage: update one of them rather than opening a duplicate (one already resolved takes only a RESOLVED entry). Errors: Not found: (unknown page, component or incident); a resolved incident is a 409; incident_id together with component_ids is "Invalid request:". For incidents already posted see list_status_page_incidents. Example: {"page_id": ""}

Input Schema

NameRequiredDescriptionDefault
page_idYesThe status page's uuid from list_status_pages. An id that is not a status page of this organization is a 404.
incident_idNoDraft the next update of this open status page incident: an id from list_status_page_incidents. Omit it to draft a new incident. Not with component_ids.
component_idsNoNew incident only: the components it is about, uuids from get_status_page. Omit to draft from every component of the page. Not with incident_id.

Output Schema

NameRequiredDescriptionDefault
bodyYesSuggested post text, ready for the form.
kindYesOPENING fills the new-incident form, UPDATE the update form. Known values: OPENING, UPDATE.
basisYesWhat the text rests on: NONE (no incident data), CAUSE (incident cause and times) or DIAGNOSIS (also the stored diagnosis). Known values: NONE, CAUSE, DIAGNOSIS.
titleYesSuggested incident title; null for an update draft.
statusYesSuggested status. Known values: INVESTIGATING, IDENTIFIED, MONITORING, RESOLVED.
generated_atYesWhen the draft was written (UTC). Times in the text are absolute UTC; the text adds a date to any time not on this UTC day.
component_idsYesComponents the post is about: for an opening draft, the requested ones or those with an ongoing incident; for an update, the incident's own.
source_incident_idsYesMonitor incidents the draft was written from.
existing_incident_idsYesOpening draft only: incidents already published on this page (not deleted) that cover an ongoing outage; post an update to them instead. An automatic incident resolved by hand while its outage goes on is listed too: it still takes a RESOLVED timeline entry, but a drafted update for it answers 409.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.3.0

TDQS

A4.8/5.0
Behavior5/5

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

Consistent with readOnlyHint/idempotentHint and adds meaningful context beyond them: nothing is posted, no subscriber is emailed, and the posting siblings do email subscribers. It further discloses error semantics (Not found, resolved incident 409, incident_id + component_ids "Invalid request:") and the meaning of the basis field (NONE/CAUSE/DIAGNOSIS) with guidance to surface it and let the user edit.

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?

Front-loaded with the side-effect disclaimer and the drafting-vs-posting distinction, which are the highest-value facts. It is dense but slightly overlong, and the long enumeration of return fields (kind, title, status, body, component_ids, basis, source_incident_ids, existing_incident_ids, generated_at) duplicates the output schema.

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?

Covers everything an agent needs: confirmation workflow, draft-vs-post routing, duplicate-avoidance via existing_incident_ids, error strings, a pointer to list_status_page_incidents, and a call example. With an output schema present, the extra return-field prose is redundant rather than missing.

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 would be 3, but the description adds real meaning: the incident_id/component_ids mutual exclusion, the auto-resolve rule ('says resolved once every outage behind it has recovered'), and the resolved-incident 409 interaction. It does not add format details beyond what the schema already states.

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

Purpose5/5

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

The opening sentence names a specific verb and resource ("Write the text of the page's next incident post from the monitor outages affecting it") and immediately disclaims side effects. It cleanly separates this drafting tool from its siblings create_status_page_incident and post_status_page_update, which it names explicitly.

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

Usage Guidelines5/5

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

Gives explicit when-to-use routing: omit incident_id to draft a new incident, supply it to draft the next update of an open incident. It also names the two downstream posting tools, requires user confirmation before calling them, and tells the agent to prefer updating an existing incident over opening a duplicate when existing_incident_ids is populated.

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