Skip to main content
Glama

List monitors

list_monitors
Read-only

List monitors with optional state/type/tag filters and cursor pagination. Each item carries its current state and last-checked time. Read-only.

Input Schema

NameRequiredDescriptionDefault
tagNoFilter to monitors carrying this exact tag.
typeNoFilter by check kind: `http`, `tcp`, `ping`, `heartbeat`, `manual`, `dns`, `tls_cert`, `domain_expiry`, `flow`.
stateNoFilter by current state: `up`, `down`, `degraded`, `error`, `no_data`.
cursorNoOpaque pagination cursor from a previous call's `next_cursor`.

Output Schema

NameRequiredDescriptionDefault
itemsYes
next_cursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / $defs / MonitorListItem / properties / group_alerts_as_one
      Added value: +{
      +  "description": "Its group alerts as one: a failure joins the group's one incident and\npages the group's channels, not this monitor's own.",
      +  "type": "boolean"
      +}
    • addedOutput schema / $defs / MonitorListItem / properties / group_id
      Added value: +{
      +  "description": "Pass to `update_monitor_group`.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / $defs / MonitorListItem / properties / group_name / description
      Previous value: -"Operator-side grouping label, if set. Untrusted data."New value: +"The monitor's group, if any. Untrusted data."
    • changedOutput schema / $defs / MonitorListItem / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "type",
      -  "state",
      -  "interval_secs",
      -  "checked_every_secs",
      -  "enabled"
      -]New value: +[
      +  "id",
      +  "name",
      +  "type",
      +  "state",
      +  "group_alerts_as_one",
      +  "interval_secs",
      +  "checked_every_secs",
      +  "enabled"
      +]
  2. Changed3 schema fields changed
    • addedOutput schema / $defs / MonitorListItem / properties / checked_every_secs
      Added value: +{
      +  "description": "How often it is checked: `interval_secs`, or the long-down interval\nwhile `slowed_at` is set. Report this, not `interval_secs`.",
      +  "format": "uint64",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / $defs / MonitorListItem / properties / slowed_at
      Added value: +{
      +  "description": "RFC 3339 time it moved to the slower long-down interval because every\nregion has failed for days. `null` while it runs at `interval_secs`.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / $defs / MonitorListItem / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "type",
      -  "state",
      -  "interval_secs",
      -  "enabled"
      -]New value: +[
      +  "id",
      +  "name",
      +  "type",
      +  "state",
      +  "interval_secs",
      +  "checked_every_secs",
      +  "enabled"
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / type / description
      Previous value: -"Filter by check kind: `http`, `tcp`, `ping`, `heartbeat`, `dns`,\n`tls_cert`, `domain_expiry`, `flow`."New value: +"Filter by check kind: `http`, `tcp`, `ping`, `heartbeat`, `manual`,\n`dns`, `tls_cert`, `domain_expiry`, `flow`."
    • changedOutput schema / $defs / MonitorListItem / properties / type / description
      Previous value: -"Check kind: `http`, `tcp`, `ping`, `heartbeat`, `dns`, `tls_cert`,\n`domain_expiry`, `flow`."New value: +"Check kind: `http`, `tcp`, `ping`, `heartbeat`, `manual`, `dns`,\n`tls_cert`, `domain_expiry`, `flow`."
  4. First observed

TDQS

A3.6/5.0
Behavior3/5

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

readOnlyHint=true already declares the safety profile, and "Read-only" merely restates it. The note that each item carries current state and last-checked time is useful, but with an output schema present that information is already available structurally, and nothing is said about page size limits or ordering of results.

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

Conciseness5/5

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

Three short sentences, zero filler, and the filter/pagination scope is front-loaded before the return-shape note. Nothing could be cut without losing information.

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?

With annotations covering read-only status, a full schema, and an output schema, the description covers the essentials for a filtered list call. It stops short of telling the agent how pagination terminates or whether results are ordered, the only real remaining gap.

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 the schema already enumerates the valid type and state values plus the cursor's origin. The description only names the same three filter categories, adding no semantics (e.g., whether tag matching is exact or whether filters combine with AND) 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 ("List monitors") plus the scope of its filters and pagination, so the agent knows exactly what the call returns conceptually. It never explicitly contrasts itself with get_monitor or list_monitor_groups, so the sibling distinction is only implied by the verb.

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?

"Optional" filters imply you call it bare to enumerate everything, which is usable guidance, but there is no explicit when-to-use/when-not, no pointer to get_monitor for a single record, and no note on when to prefer filtered listing over client-side filtering.

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.