Skip to main content
Glama

Pause a monitor

pause_monitor
Idempotent

Stop checking one monitor without deleting it, set it to PAUSED, and close any open incident without a recovery alert. Use for open-ended downtime, not planned maintenance.

Instructions

Stop checking one monitor without deleting it: its status becomes PAUSED and an open incident on it closes without a recovery alert. Use it when the user wants a monitor off for an open-ended time. For a planned deploy or reboot prefer create_maintenance_window, which keeps checking but silences alerts; for many monitors use bulk_pause_monitors; to restart checks use resume_monitor. Requires a key with the write scope. Pausing a paused monitor changes nothing. Returns the monitor in the get_monitor shape.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
monitor_idYesThe monitor's uuid from list_monitors. An id that is not a monitor of this organization, or a deleted one, is a 404.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
nameYes
tagsNo
typeYesKnown values: HTTP, PING, SSL, TCP, DNS.
configYes
statusYesKnown values: PENDING, UP, DEGRADED, DOWN, PAUSED.
targetYes
regionsYes
user_idYes
is_activeYes
created_atYes
updated_atYes
channel_idsNo
next_run_atYes
badge_enabledNo
ssl_cert_infoNo
ssl_expires_atYes
last_checked_atYes
region_statusesYesPer-region latest status, sorted by region name. Built from ``region_snapshots``; ``job_id`` is dropped (internal dedup key) and malformed/partial snapshot rows are skipped rather than failing the read.
timeout_secondsYes
interval_secondsYes
confirmation_thresholdYes
notification_cooldown_secondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.6.1
    • addedInput schema / properties / monitor_id / description
      Added value: +"The monitor's uuid from list_monitors. An id that is not a monitor of this organization, or a deleted one, is a 404."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "badge_enabled": {
      +      "type": "boolean"
      +    },
      +    "channel_ids": {
      +      "items": {
      +        "format": "uuid",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "config": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "confirmation_threshold": {
      +      "type": "integer"
      +    },
      +    "created_at": {
      +      "type": "string"
      +    },
      +    "id": {
      +      "format": "uuid",
      +      "type": "string"
      +    },
      +    "interval_seconds": {
      +      "type": "integer"
      +    },
      +    "is_active": {
      +      "type": "boolean"
      +    },
      +    "last_checked_at": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "next_run_at": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "notification_cooldown_seconds": {
      +      "type": "integer"
      +    },
      +    "region_statuses": {
      +      "description": "Per-region latest status, sorted by region name.\n\nBuilt from ``region_snapshots``; ``job_id`` is dropped (internal\ndedup key) and malformed/partial snapshot rows are skipped rather\nthan failing the read.",
      +      "items": {
      +        "properties": {
      +          "checked_at": {
      +            "type": "string"
      +          },
      +          "display_name": {
      +            "type": "string"
      +          },
      +          "region": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "description": "Known values: UP, DEGRADED, DOWN, ERROR.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "region",
      +          "status",
      +          "checked_at",
      +          "display_name"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "regions": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "ssl_cert_info": {
      +      "anyOf": [
      +        {
      +          "properties": {
      +            "issuer": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "not_after": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "not_before": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "subject": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "valid": {
      +              "anyOf": [
      +                {
      +                  "type": "boolean"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "ssl_expires_at": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "status": {
      +      "description": "Known values: PENDING, UP, DEGRADED, DOWN, PAUSED.",
      +      "type": "string"
      +    },
      +    "tags": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "target": {
      +      "type": "string"
      +    },
      +    "timeout_seconds": {
      +      "type": "integer"
      +    },
      +    "type": {
      +      "description": "Known values: HTTP, PING, SSL, TCP, DNS.",
      +      "type": "string"
      +    },
      +    "updated_at": {
      +      "type": "string"
      +    },
      +    "user_id": {
      +      "format": "uuid",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "user_id",
      +    "name",
      +    "type",
      +    "target",
      +    "interval_seconds",
      +    "timeout_seconds",
      +    "regions",
      +    "config",
      +    "status",
      +    "last_checked_at",
      +    "next_run_at",
      +    "confirmation_threshold",
      +    "notification_cooldown_seconds",
      +    "ssl_expires_at",
      +    "is_active",
      +    "created_at",
      +    "updated_at",
      +    "region_statuses"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.5.4

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that an open incident closes without a recovery alert, that write scope is required, that pausing a paused monitor is a no-op (consistent with idempotentHint), and what shape the result takes. These are exactly the mutation side effects an agent cannot infer from readOnlyHint/destructiveHint alone.

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?

The core action and its state change are front-loaded, followed tightly by routing rules and constraints. Every sentence carries distinct, actionable information with no filler.

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?

Annotations cover the safety/idempotency profile, the output schema covers the return value, and the description covers semantics, prerequisites, and alternatives. An agent has everything needed to call this correctly.

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 coverage is 100% and the single monitor_id parameter is fully documented in the schema (uuid source plus 404 behavior), so the baseline is 3. The description adds nothing further about the parameter itself, leaving the schema to do the work.

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 ('stop checking one monitor without deleting it') plus the resulting state (PAUSED) and the side effect on incidents. It explicitly distinguishes itself from create_maintenance_window, bulk_pause_monitors, and resume_monitor by name.

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 when-to-use ('monitor off for an open-ended time') and multiple when-not-to-use conditions with named alternatives: planned deploy/reboot -> create_maintenance_window, many monitors -> bulk_pause_monitors, restart checks -> resume_monitor. Routing is fully determined.

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