Skip to main content
Glama

List results

list_results
Read-onlyIdempotent

Query uptime monitoring results by time window, check, status, region, and period to analyze trends and performance; supports pagination and aggregated rollups.

Instructions

Query monitoring results for trend analysis or a specific time window. periodType picks the rows: raw returns single executions, hour, day and month return rollups, and the bucket-only with fields (availabilityPct, durationMinMs, durationMaxMs) apply to rollups only. All filters combine with AND. Pages hold 20 rows by default, 100 at most; pass pagination.cursor back as cursor for the next one, and read window and effectiveFilter to see what the server actually queried after defaulting. For one check's current state, use diagnose_check instead. Read-only: works with mcp:read tokens.

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_results"
  }
}

Input Schema

NameRequiredDescriptionDefault
sizeNoMax results (1-100, default 20).
withNoComma-separated extra fields: durationMs — response time in ms durationMinMs — min response time in the bucket (aggregated rows only) durationMaxMs — max response time in the bucket (aggregated rows only) region — region the check ran in metrics — per-execution metrics output — full check output incl. error messages availabilityPct — uptime % (aggregated rows only) checkSlug — slug of the check checkName — human name of the check Example: "durationMs,output".
cursorNoOpaque pagination cursor returned by a previous response. Omit on the first page.
regionNoComma-separated region slugs, e.g. "eu-west-1,us-east-1".
statusNoComma-separated result statuses. Allowed: up, down, created, running, abandoned. "down" covers every genuine failure (down, timeout, error); "abandoned" is separate on purpose — it marks an attempt nothing was ever reported for, which is excluded from availability and is NOT downtime. Example: "down" or "down,abandoned".
checkUidNoComma-separated check UIDs or slugs to filter by, e.g. "api-prod,db-prod". At most 100 entries.
checkTypeNoComma-separated check types. Allowed: http, tcp, icmp, dns, heartbeat, email, domain, ssl, smtp, udp, ssh, pop3, imap, websocket, postgresql, ftp, sftp, js, mysql, redis, mongodb, mssql, oracle, clickhouse, grpc, kafka, mqtt, a2s, minecraft, rabbitmq, snmp, docker, browser, freebox_line, dnsbl, sip, kubernetes, ntp, rdp, vnc, prometheus, private-location, crawl, health, vendor-status. Example: "http,dns".
periodTypeNoComma-separated period types. Allowed: raw (single executions), hour, day, month (rollups). Defaults to "hour" when omitted. Example: "raw".
periodEndBeforeNoRFC3339 timestamp (exclusive upper bound), e.g. "2026-05-03T11:00:00Z".
periodStartAfterNoRFC3339 timestamp (inclusive lower bound), e.g. "2026-05-03T10:14:22Z". Defaults to a window matched to periodType when omitted (raw=1h, hour=24h, day=30d, month=365d).

Output Schema

NameRequiredDescriptionDefault
dataNoResult rows on this page: raw executions or aggregated rollups.
windowNoTime window the server actually queried.
paginationNoCursor pagination for this filter.
effectiveFilterNoPeriod filter that actually ran, after the tool's defaulting.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.46.0
    • changedInput schema / properties / checkUid / description
      Previous value: -"Comma-separated check UIDs or slugs to filter by, e.g. \"api-prod,db-prod\"."New value: +"Comma-separated check UIDs or slugs to filter by, e.g. \"api-prod,db-prod\". At most 100 entries."
  2. Changed10 schema fields changedv0.42.0
    • addedInput schema / properties / checkType / maxLength
      Added value: +2048
    • addedInput schema / properties / checkUid / maxLength
      Added value: +2048
    • addedInput schema / properties / cursor / maxLength
      Added value: +2048
    • addedInput schema / properties / cursor / minLength
      Added value: +1
    • addedInput schema / properties / periodEndBefore / maxLength
      Added value: +2048
    • addedInput schema / properties / periodStartAfter / maxLength
      Added value: +2048
    • addedInput schema / properties / periodType / maxLength
      Added value: +2048
    • addedInput schema / properties / region / maxLength
      Added value: +2048
    • addedInput schema / properties / status / maxLength
      Added value: +2048
    • addedInput schema / properties / with / maxLength
      Added value: +2048
  3. Changed2 schema fields changedv0.41.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedOutput schema / additionalProperties
      Added value: +false
  4. Changed1 schema field changedv0.40.1
    • changedInput schema / properties / checkType / description
      Previous value: -"Comma-separated check types. Allowed: http, tcp, icmp, dns, heartbeat, email, domain, ssl, smtp, udp, ssh, pop3, imap, websocket, postgresql, ftp, sftp, js, mysql, redis, mongodb, mssql, oracle, clickhouse, grpc, kafka, mqtt, a2s, minecraft, rabbitmq, snmp, docker, browser, freebox_line, dnsbl, sip, kubernetes, ntp, rdp, vnc, prometheus, private-location, crawl, health. Example: \"http,dns\"."New value: +"Comma-separated check types. Allowed: http, tcp, icmp, dns, heartbeat, email, domain, ssl, smtp, udp, ssh, pop3, imap, websocket, postgresql, ftp, sftp, js, mysql, redis, mongodb, mssql, oracle, clickhouse, grpc, kafka, mqtt, a2s, minecraft, rabbitmq, snmp, docker, browser, freebox_line, dnsbl, sip, kubernetes, ntp, rdp, vnc, prometheus, private-location, crawl, health, vendor-status. Example: \"http,dns\"."
  5. Changed2 schema fields changedv0.38.5
    • changedInput schema / properties / checkType / description
      Previous value: -"Comma-separated check types. Allowed: http, tcp, icmp, dns, ssl, heartbeat, domain. Example: \"http,dns\"."New value: +"Comma-separated check types. Allowed: http, tcp, icmp, dns, heartbeat, email, domain, ssl, smtp, udp, ssh, pop3, imap, websocket, postgresql, ftp, sftp, js, mysql, redis, mongodb, mssql, oracle, clickhouse, grpc, kafka, mqtt, a2s, minecraft, rabbitmq, snmp, docker, browser, freebox_line, dnsbl, sip, kubernetes, ntp, rdp, vnc, prometheus, private-location, crawl, health. Example: \"http,dns\"."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "data": {
      +      "description": "Result rows on this page: raw executions or aggregated rollups.",
      +      "items": {
      +        "properties": {
      +          "availabilityPct": {
      +            "description": "Uptime % for the bucket (with=availabilityPct, aggregated rows only).",
      +            "type": "number"
      +          },
      +          "checkName": {
      +            "description": "Check name (with=checkName).",
      +            "type": "string"
      +          },
      +          "checkSlug": {
      +            "description": "Check slug (with=checkSlug).",
      +            "type": "string"
      +          },
      +          "checkUid": {
      +            "description": "UID of the check this result belongs to.",
      +            "type": "string"
      +          },
      +          "durationMs": {
      +            "description": "Response time in ms (with=durationMs).",
      +            "type": "number"
      +          },
      +          "periodStart": {
      +            "description": "RFC3339 start of the period (raw: execution time).",
      +            "type": "string"
      +          },
      +          "periodType": {
      +            "description": "Aggregation level: raw, hour, day or month.",
      +            "type": "string"
      +          },
      +          "region": {
      +            "description": "Region the check ran in (with=region).",
      +            "type": "string"
      +          },
      +          "status": {
      +            "description": "Result status: up, down, created, running, abandoned…",
      +            "type": "string"
      +          },
      +          "uid": {
      +            "description": "Result UID (time-ordered).",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "effectiveFilter": {
      +      "description": "Period filter that actually ran, after the tool's defaulting.",
      +      "properties": {
      +        "periodEndBefore": {
      +          "description": "Applied upper bound (RFC3339); absent when not requested.",
      +          "type": "string"
      +        },
      +        "periodStartAfter": {
      +          "description": "Applied lower bound (RFC3339); set by the default when not requested.",
      +          "type": "string"
      +        },
      +        "periodType": {
      +          "description": "Period types queried, e.g. [\"hour\"].",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "pagination": {
      +      "description": "Cursor pagination for this filter.",
      +      "properties": {
      +        "cursor": {
      +          "description": "Opaque cursor for the next page; absent on the last page.",
      +          "type": "string"
      +        },
      +        "size": {
      +          "description": "Page size used for this response.",
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "window": {
      +      "description": "Time window the server actually queried.",
      +      "properties": {
      +        "clamped": {
      +          "description": "True when the server moved periodStartAfter forward (raw requests are clamped to the raw-retention band).",
      +          "type": "boolean"
      +        },
      +        "periodEndBefore": {
      +          "description": "Effective exclusive upper bound (RFC3339); absent when the query has none.",
      +          "type": "string"
      +        },
      +        "periodStartAfter": {
      +          "description": "Effective inclusive lower bound (RFC3339); absent when the query has none.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  6. First observedv0.32.1

TDQS

A4.6/5.0
Behavior4/5

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

Beyond the readOnly/idempotent annotations it discloses auth scope ('works with mcp:read tokens'), AND-combined filters, page size default and cap (20/100), and the cursor round-trip. It also explains that window/effectiveFilter reveal post-defaulting query scope, which is real behavioral context. It stops short of describing result shape or error behavior, but the output schema covers much of that.

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?

Dense but front-loaded: purpose, then periodType semantics, then filter/pagination mechanics, then the sibling pointer last. Nearly every sentence carries load, though the periodType sentence packs several clauses that could be split for readability.

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 the decisions an agent needs for a 10-parameter, zero-required read tool: granularity choice, filter combination, pagination, and post-default query scope. With an output schema present, it does not need to describe return values, and it correctly delegates per-field detail to the schema.

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 earns a bump by explaining periodType interactions the schema lists only per-field (rollup-only fields such as availabilityPct and durationMinMs/MaxMs) and by tying cursor to pagination.cursor in the response. It does not add detail for less obvious filters like status or region, which the schema already handles well.

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?

Opens with a specific verb+resource ('Query monitoring results') and states the two intents (trend analysis, specific time window). It also names the sibling it is not (diagnose_check), so an agent can distinguish it without opening the 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?

Gives an explicit alternative and the condition selecting it: 'For one check's current state, use diagnose_check instead.' It also tells the agent which periodType to pick for raw vs rollup queries, covering the main selection decision.

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