Skip to main content
Glama

Get Monitoring Alerts

get_alerts
Read-onlyIdempotent

Retrieve monitoring alerts for monitored domains, newest first, covering website uptime incidents and record changes. Report what changed, whether a site went down, or what monitoring flagged.

Instructions

Use this when a signed-in operator asks what changed on a monitored domain, whether its website went down, or what the monitoring has flagged. Read the monitoring alert log for the domains the caller's account monitors, newest first, including website uptime incidents (site_down, site_partial, site_recovered, and site_blocked when the site's protection refuses our checks). Requires an API token. Each row carries id, domain, type, check, summary, a deterministic detail map, created_at, email_sent_at, acknowledged_at and delivery_class — a 'dashboard_only' row was deliberately kept out of the digest mail, so an agent watching only the inbox would never see it; this log is the complete picture. PAGE DOWN BEFORE ADVANCING since: next_before is non-null exactly when older rows remain, and a caller that ignores it, takes a full page and moves its watermark to the newest row it saw drops every row it did not receive. since is an INCLUSIVE floor, so rows repeat rather than go missing — de-duplicate on id. READ-ONLY by decision: there is no ack and no delete here, because acknowledging an alert is the human's own triage on their dashboard and an agent that acks on their behalf silences a row they have never seen. Report what the log says and let them clear it.

Input Schema

NameRequiredDescriptionDefault
typeNoOptional alert-type filter, e.g. 'record_changed'. An unknown value is rejected rather than silently returning an empty page — omit it unless you know the exact type.
limitNoPage size, 1..100 (default 50). Page down with `before` before you advance `since`, or you will skip every row you did not receive.
sinceNoOptional ISO-8601 timestamp: return alerts created at or after it (INCLUSIVE). Poll by storing the newest created_at you have seen and passing it back — rows repeat rather than go missing, so de-duplicate on id.
beforeNoThe opaque cursor from a previous page's next_before, relayed verbatim to fetch the next older page. Never construct or edit one.
domainNoOptional filter to ONE of the account's verified monitored domains. Omit it for every domain the account monitors; an unowned or unknown name is refused as not found.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.3.1

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, but the description adds substantial context beyond them: API token requirement, newest-first ordering, the dashboard_only delivery class meaning rows are deliberately absent from digest mail, and the exact cursor contract (next_before non-null exactly when older rows remain). It stops short of stating rate limits or response envelope details, but the behavioral disclosure is well above the annotation bar.

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 use case, then return shape, then pagination hazards, then the read-only rationale — a sensible ordering with no true filler. It is dense and long for a single tool, and the read-only justification is somewhat editorial, but every clause carries actionable information.

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 return-shape burden and does so fully: it enumerates every row field (id, domain, type, check, summary, detail map, created_at, email_sent_at, acknowledged_at, delivery_class) and names next_before as the pagination signal. Nothing an agent needs to call and iterate this tool correctly is 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 is 3, but the description adds the operational meaning behind the params: 'PAGE DOWN BEFORE ADVANCING `since`', `since` as an INCLUSIVE floor implying duplicate rows to de-duplicate on id, and next_before as the sentinel for remaining older rows. That explains the failure mode of the watermark pattern rather than merely restating field types.

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?

States a specific verb and resource ('Read the monitoring alert log for the domains the caller's account monitors, newest first') plus the scope of what it covers, including the concrete alert types (site_down, site_partial, site_recovered, site_blocked). An agent can distinguish this from the DNS/email-testing siblings (check_record, scan_domain, list_email_tests) without opening any schema.

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?

Opens with explicit trigger conditions ('when a signed-in operator asks what changed on a monitored domain, whether its website went down, or what the monitoring has flagged'). It also gives an explicit when-NOT: no ack and no delete exist here by design, so the agent knows not to look for a mutation path and not to act on the operator's behalf.

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