Skip to main content
Glama

add_incident_note

Write a diagnosis note on an incident—even if unresolved—so the person paged sees what failed and what you did, not just a timestamp.

Instructions

Requires an API key with the write scope or higher. Write back, in your own words, what you found out about an incident — so the person who gets paged reads a diagnosis instead of a timestamp: 'failed because the upstream API returned 503; same failure as the last three nights; I retried twice and stopped' instead of 'check failed at 03:04'. The note appears on the incident's page in the dashboard, attributed to its author, in the order it was written. Take incident_id from list_open_incidents. SEND A NOTE WHETHER OR NOT YOU COULD FIX THE PROBLEM. The person reading the alert cannot see what you saw. With no note, an incident is indistinguishable from one nobody has looked at yet, so an agent that writes back only its successes leaves a record worse than none: every unexplained incident then reads as 'not looked at yet' when it may equally mean 'looked at and gave up'. 'Could not reproduce; gave up after two attempts' IS a finding and is worth writing. NOTES ARE APPEND-ONLY. There is no way to edit a note and no way to delete one — not merely unexposed: no route and no query exists for either, and an edit is refused by the database itself. A correction is a new note, never an edit, because a diagnosis whose history a reader cannot trust is not evidence. This is NOT a write-once resource: a second, third or tenth note on the same incident is normal and expected, and there is no conflict for writing one. The only conflict this tool has is the cap of 50 notes per incident, and reaching it means something is looping rather than diagnosing. A CLOSED incident still accepts notes, on purpose: the run that finally succeeded is usually the one that understood why the previous one did not, so refusing the note would lose the explanation exactly when it became available. Authorship is not yours to choose — every note written through this tool is stored as author 'agent', because this is the API-key surface; there is no author argument and supplying one is not possible.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesThe diagnosis, in plain words and one or two sentences: what actually failed, whether it is the same failure as before (compare failure_signature.occurrences from list_open_incidents), and what you did about it. Must not be empty or whitespace-only, and must be at most 8192 bytes. An oversized body is REJECTED, never truncated — a truncated diagnosis reads as a complete one that trails off, and the reader cannot tell that the sentence naming the cause was the one cut — so shorten it and call again. A pasted stack trace is a note nobody reads: the full failure output already lives on the run that produced it.
incident_idYesThe incident's numeric id, taken straight from an entry's incident_id in list_open_incidents. An integer, not a UUID.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, the description discloses append-only behavior, no edit/delete routes, the database refusing edits, author forced to 'agent', and the 50-note cap. It also explains that closed incidents still accept notes, which is surprising and essential.

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

Conciseness2/5

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

The description is a long wall of text with redundant explanations and emphatic repetition. Append-only and the 'send a note even if you didn't fix it' point are repeated across several sections, and the rationale is given extensively. A more structured layout with headings would make it easier to scan while preserving the essential warnings.

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?

Given there is no output schema and minimal annotations, the description covers every operational aspect: authentication, append-only, maximum note count, behavior on closed incidents, and the forced author attribution. It leaves very little for an agent to wonder about when calling this tool correctly.

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. The description adds value by instructing what a proper body looks like (plain words, not a stack trace), and by clarifying that an oversized body is rejected, not truncated. The guidance to source incident_id from list_open_incidents is already in the schema, but the extra textual context on content quality elevates it.

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 description explicitly states what the tool does: write a diagnosis note to an incident, with a concrete example and a clear instruction to use the note. It differentiates this from read-only tools like list_open_incidents by its action and references the actual use case. The purpose is unmistakable.

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?

It gives explicit usage rules: send a note whether or not you fixed the problem, never edit or delete, and use incident_id from list_open_incidents. It also covers the edge case of closed incidents, which is not obvious and is critical for an agent to know when to call this.

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