Skip to main content
Glama

List checks

list_checks
Read-onlyIdempotent

List the account's checks, oldest first, 20 per page by default. Each item has the check's id, current status (up, down, late, degraded, paused or pending), status_reason (why it isn't up, from its open incident), last activity, expiry date for domain and SSL checks, configuration, notification group ids and dashboard ids. Filter by name text, kind, or one or several statuses; filters combine, and no match returns an empty list. This shows current state only, not history or incidents. A website check's url leaves out any query string and credentials; url_has_query says whether it has one. Heartbeat ping URLs are never included. next_cursor is null on the last page.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_checks"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoCase-insensitive text to match anywhere in check names.
kindNoOnly checks of this kind.
limitNoItems per page, 1 to 100. Defaults to 20.
cursorNonext_cursor from the previous page. Omit for the first page; next_cursor is null on the last.
statusNoOnly checks with this current status: one status, or a list such as ["down", "late", "degraded"] for everything needing attention.

Output Schema

NameRequiredDescriptionDefault
itemsYes
next_cursorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed30 schema fields changed
    • addedInput schema / properties / status / anyOf
      Added value: +[
      +  {
      +    "enum": [
      +      "pending",
      +      "up",
      +      "late",
      +      "down",
      +      "paused",
      +      "degraded"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "enum": [
      +        "pending",
      +        "up",
      +        "late",
      +        "down",
      +        "paused",
      +        "degraded"
      +      ],
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array",
      +    "uniqueItems": true
      +  }
      +]
    • changedInput schema / properties / status / description
      Previous value: -"Only checks with this current status."New value: +"Only checks with this current status: one status, or a list such as [\"down\", \"late\", \"degraded\"] for everything needing attention."
    • removedInput schema / properties / status / enum
      Removed value: -[
      -  "pending",
      -  "up",
      -  "late",
      -  "down",
      -  "paused",
      -  "degraded"
      -]
    • removedInput schema / properties / status / type
      Removed value: -"string"
    • changedOutput schema / properties / items / items / properties / configuration / properties / cron_expression / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "maxLength": 255,
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "description": "Five-field cron schedule, such as 0 3 * * *, read in timezone. Used when schedule_type is cron."
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / degraded_threshold / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "maximum": 2147483647,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "description": "How many of the check's locations must be up for it to be healthy; null means all of them. Can't be more than the check's location count."
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / dns_expected_values / anyOf
      Previous value: -[
      -  {
      -    "description": "Record values to compare with, such as IP addresses. Unused when dns_match_mode is resolves.",
      -    "items": {
      -      "maxLength": 4096,
      -      "type": "string"
      -    },
      -    "maxItems": 100,
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / dns_match_mode / anyOf
      Previous value: -[
      -  {
      -    "description": "resolves passes on any answer; exact needs the answers to equal dns_expected_values; includes needs every expected value among the answers.",
      -    "enum": [
      -      "resolves",
      -      "exact",
      -      "includes"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "resolves",
      +      "exact",
      +      "includes"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / dns_record_type / anyOf
      Previous value: -[
      -  {
      -    "description": "Record type to look up.",
      -    "enum": [
      -      "A",
      -      "AAAA",
      -      "CNAME",
      -      "MX",
      -      "TXT",
      -      "NS",
      -      "CAA"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "A",
      +      "AAAA",
      +      "CNAME",
      +      "MX",
      +      "TXT",
      +      "NS",
      +      "CAA"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / expected_status_code / anyOf
      Previous value: -[
      -  {
      -    "description": "HTTP status that counts as up, such as 200.",
      -    "maximum": 599,
      -    "minimum": 100,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / failing_threshold / anyOf
      Previous value: -[
      -  {
      -    "description": "How many of the check's locations must be up for it to avoid being down. A location count, not a number of failed runs. Can't be more than the check's location count.",
      -    "maximum": 2147483647,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / follow_redirects / anyOf
      Previous value: -[
      -  {
      -    "description": "Follow redirects and check the final response's status.",
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "boolean"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / grace_period_seconds / anyOf
      Previous value: -[
      -  {
      -    "description": "Seconds a heartbeat may run late before the check is marked late.",
      -    "maximum": 2147483647,
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / hostname / anyOf
      Previous value: -[
      -  {
      -    "description": "Hostname to check, without a scheme or path, such as example.com.",
      -    "maxLength": 255,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / interval_seconds / anyOf
      Previous value: -[
      -  {
      -    "description": "Seconds between runs: how often a heartbeat is expected, or how often Pingstack runs the check. Can't be below the plan's min_interval_seconds.",
      -    "maximum": 2147483647,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / items / items / properties / configuration / properties / kind / description
      Removed value: -"What the check monitors: ping (a heartbeat from a cron job or scheduled task), website (HTTP), dns, domain (registration expiry), ssl_certificate (certificate expiry) or tcp (an open port)."
    • changedOutput schema / properties / items / items / properties / configuration / properties / kind / enum
      Previous value: -[
      -  "ping",
      -  "website",
      -  "dns",
      -  "domain",
      -  "ssl_certificate",
      -  "tcp"
      -]New value: +[
      +  "ping",
      +  "website",
      +  "domain",
      +  "ssl_certificate",
      +  "dns",
      +  "tcp"
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / port / anyOf
      Previous value: -[
      -  {
      -    "description": "TCP port that must accept a connection.",
      -    "maximum": 65535,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / probe_locations / anyOf
      Previous value: -[
      -  {
      -    "description": "Region ids the check runs from, such as us-east-1, from the account's probe_locations. Replaces the whole set, up to the plan's included_probe_locations.",
      -    "items": {
      -      "maxLength": 100,
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "maxItems": 100,
      -    "minItems": 1,
      -    "type": "array",
      -    "uniqueItems": true
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / renewal_critical_days / anyOf
      Previous value: -[
      -  {
      -    "description": "Days before expiry when the check goes down. Lower than renewal_warning_days.",
      -    "maximum": 2147483647,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / renewal_warning_days / anyOf
      Previous value: -[
      -  {
      -    "description": "Days before expiry when the check becomes degraded.",
      -    "maximum": 2147483647,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / schedule_type / anyOf
      Previous value: -[
      -  {
      -    "description": "interval expects a heartbeat every interval_seconds; cron expects one on cron_expression's schedule.",
      -    "enum": [
      -      "interval",
      -      "cron"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "interval",
      +      "cron"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / timezone / anyOf
      Previous value: -[
      -  {
      -    "description": "IANA time zone for cron_expression, such as America/New_York.",
      -    "maxLength": 255,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / items / items / properties / configuration / properties / url
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / configuration / properties / url_has_query
      Added value: +{
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / items / items / properties / configuration / properties / value_critical_threshold / anyOf
      Previous value: -[
      -  {
      -    "description": "Reported value that makes the check go down. Past value_warning_threshold in value_direction.",
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / value_direction / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "enum": [
      -          "above",
      -          "below"
      -        ],
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "description": "For heartbeats that report a number: whether values at or above, or at or below, the thresholds are bad."
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "enum": [
      +          "above",
      +          "below"
      +        ],
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / configuration / properties / value_warning_threshold / anyOf
      Previous value: -[
      -  {
      -    "description": "Reported value that makes the check degraded. Set together with value_critical_threshold; both null turns value alerts off.",
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / items / items / properties / status_reason
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / items / items / required
      Previous value: -[
      -  "id",
      -  "status",
      -  "last_activity_at",
      -  "expires_on",
      -  "configuration",
      -  "notification_group_ids",
      -  "dashboard_ids"
      -]New value: +[
      +  "id",
      +  "status",
      +  "status_reason",
      +  "last_activity_at",
      +  "expires_on",
      +  "configuration",
      +  "notification_group_ids",
      +  "dashboard_ids"
      +]
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, non-destructive, non-openWorld, so the safety profile is covered; the description then adds genuinely new behavior: pagination semantics with next_cursor null on the last page, filter conjunction behavior, empty-list-on-no-match, and data-redaction rules (query strings and credentials stripped from website URLs, heartbeat ping URLs never included). The redaction detail is exactly the kind of thing an agent cannot infer from annotations or schema.

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 scope and pagination, then filtering, then exclusions and redaction caveats. Every sentence carries information, though the long enumeration of returned fields is dense and, since an output schema exists, somewhat over-detailed relative to the rest.

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?

For a paginated, filterable read with five optional parameters, the description covers ordering, page size, cursor lifecycle, filter composition, zero-result behavior, and current-state-only scope. It also adds redaction notes that neither the schema nor the annotations supply.

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 still contributes meaning beyond the schema: that multiple filters combine rather than override, that status accepts one or several values, and that cursor pairs with next_cursor from the prior page. These are useful additions rather than restatements.

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 ('List the account's checks') plus ordering ('oldest first') and default page size, then draws an explicit boundary: 'This shows current state only, not history or incidents.' That boundary separates it from history/run-oriented siblings such as list_check_runs or get_check_history without needing their schemas.

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

Usage Guidelines4/5

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

Tells the agent how to narrow results ('filter by name text, kind, or one or several statuses; filters combine') and what happens when nothing matches ('no match returns an empty list'). Exclusions for history and incidents are stated. What's missing is a named alternative for the historical case, so it stops short of a full when-to-use/when-not map.

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.

Resources