{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "category": "observability",
    "endpoint": "https://mcp.uptimepage.dev/mcp",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/uptimepage.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/uptimepage.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/uptimepage.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 29460,
        "counts": {
          "error": 0,
          "note": 0,
          "warn": 13
        },
        "findings": [
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "create_monitor",
            "message": "1 parameter without a description: check",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "set_monitor_state",
            "message": "1 parameter without a description: state",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "update_status_page_component",
            "message": "4 parameters without a description: public_description, public_group, public_name, sort_order",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC15",
            "severity": "warn",
            "tool": "add_status_page_components",
            "message": "inputSchema uses $ref/$defs",
            "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
          },
          {
            "rule": "TC15",
            "severity": "warn",
            "tool": "create_monitor",
            "message": "inputSchema uses $ref/$defs",
            "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
          },
          {
            "rule": "TC15",
            "severity": "warn",
            "tool": "create_monitors",
            "message": "inputSchema uses $ref/$defs",
            "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
          },
          {
            "rule": "TC15",
            "severity": "warn",
            "tool": "list_maintenance",
            "message": "inputSchema uses $ref/$defs",
            "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
          },
          {
            "rule": "TC15",
            "severity": "warn",
            "tool": "set_monitor_state",
            "message": "inputSchema uses $ref/$defs",
            "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
          },
          {
            "rule": "TC15",
            "severity": "warn",
            "tool": "update_monitor",
            "message": "inputSchema uses $ref/$defs",
            "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
          },
          {
            "rule": "TC22",
            "severity": "warn",
            "tool": "create_monitor",
            "message": "the definition is about 3,273 tokens",
            "fix": "Trim the description and parameter docs, or split the tool."
          },
          {
            "rule": "TC22",
            "severity": "warn",
            "tool": "create_monitors",
            "message": "the definition is about 3,123 tokens",
            "fix": "Trim the description and parameter docs, or split the tool."
          },
          {
            "rule": "TC22",
            "severity": "warn",
            "tool": "get_monitor",
            "message": "the definition is about 3,879 tokens",
            "fix": "Trim the description and parameter docs, or split the tool."
          },
          {
            "rule": "TC23",
            "severity": "warn",
            "message": "37 tools, about 29,472 tokens of definitions",
            "fix": "Split the server by job, or offer a smaller default toolset (a read-only set, or a search-then-call pattern)."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:25:00Z",
      "count": 37,
      "schemaTokens": 29460,
      "status": "ok",
      "tools": [
        {
          "name": "acknowledge_incident",
          "title": "Acknowledge incident",
          "description": "Acknowledge an incident: take ownership and halt escalation. Internal/operational only — does NOT post anything to the public status page. Use post_incident_update for customer-facing updates. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`acknowledge_incident` / `resolve_incident` argument.",
            "properties": {
              "id": {
                "description": "The incident id.",
                "type": "string"
              },
              "note": {
                "description": "Optional internal note recorded on the incident's activity timeline.\nThis is operator-facing, not published to the public status page.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "title": "IncidentActionArgs",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "Result of an incident lifecycle action.",
            "properties": {
              "acknowledged_at": {
                "description": "RFC 3339 acknowledged time, when set.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "incident_id": {
                "type": "string"
              },
              "resolved_at": {
                "description": "RFC 3339 resolved (ended) time, when set.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "state": {
                "description": "Operational state after the action: `triggered`, `acknowledged`, `resolved`.",
                "type": "string"
              }
            },
            "required": [
              "incident_id",
              "state"
            ],
            "title": "IncidentActionResult",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "add_status_page_components",
          "title": "Add status page components",
          "description": "Add monitors to a status page as public components, in one confirmation where the client can show a prompt. Give each a public_name the page's readers will understand, since the monitor's own name is operator-facing, and a public_group to file related components together. Monitors already on the page are reported as such rather than duplicated. detail_link_enabled publishes a per-monitor detail view that shows the monitor's real name and address, not public_name. Not read-only.",
          "inputSchema": {
            "$defs": {
              "NewComponentArg": {
                "description": "One monitor to curate onto a page.",
                "properties": {
                  "detail_link_enabled": {
                    "description": "Publish a per-monitor detail view. That view renders the monitor's\noperator-side name and address, not `public_name`.",
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "monitor_id": {
                    "description": "The monitor id (from `list_monitors`).",
                    "type": "string"
                  },
                  "public_description": {
                    "description": "Public description, at most 200 characters.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "public_group": {
                    "description": "Grouping label, at most 50 characters. Components sharing a label are\nrendered together.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "public_name": {
                    "description": "Public-facing name, at most 80 characters. Defaults to the monitor's\nown name, which is operator-facing and may not read well in public.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "sort_order": {
                    "description": "Position on the page, ascending. Defaults to the order given.",
                    "format": "int32",
                    "type": [
                      "integer",
                      "null"
                    ]
                  }
                },
                "required": [
                  "monitor_id"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`add_status_page_components` argument.",
            "properties": {
              "components": {
                "description": "The monitors to add, in the order they should appear.",
                "items": {
                  "$ref": "#/$defs/NewComponentArg"
                },
                "type": "array"
              },
              "slug": {
                "description": "The page slug (from `list_status_pages`).",
                "type": "string"
              }
            },
            "required": [
              "slug",
              "components"
            ],
            "title": "AddComponentsArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "ComponentOutcome": {
                "description": "What became of one requested component.",
                "properties": {
                  "error": {
                    "description": "Why it failed, when it did.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "monitor_id": {
                    "type": "string"
                  },
                  "outcome": {
                    "description": "`added`, `already_on_page`, or `failed`.",
                    "type": "string"
                  }
                },
                "required": [
                  "monitor_id",
                  "outcome"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`add_status_page_components` result.",
            "properties": {
              "added": {
                "format": "uint",
                "minimum": 0,
                "type": "integer"
              },
              "results": {
                "items": {
                  "$ref": "#/$defs/ComponentOutcome"
                },
                "type": "array"
              },
              "slug": {
                "type": "string"
              }
            },
            "required": [
              "slug",
              "added",
              "results"
            ],
            "title": "ComponentsAdded",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "cancel_maintenance",
          "title": "Cancel maintenance",
          "description": "Cancel a maintenance window that has not ended. It leaves the status pages, stops holding paging, and stays listed under past as a record; subscribers already told about it are not sent a cancellation. To stop a running window early and keep it as completed work, use update_maintenance with end_now instead. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "additionalProperties": false,
            "description": "Argument of the maintenance tools that take only an id.",
            "properties": {
              "id": {
                "description": "The window id (from `list_maintenance`).",
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "title": "MaintenanceIdArg",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "MaintenanceMonitor": {
                "description": "One monitor a maintenance window covers.",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "description": "The monitor's operator-side name. Untrusted data.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "One maintenance window.",
            "properties": {
              "cancelled_at": {
                "description": "RFC 3339 time it was cancelled, or `null`.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": {
                "description": "Untrusted data.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "ends_at": {
                "description": "RFC 3339.",
                "type": "string"
              },
              "id": {
                "description": "Pass to `get_maintenance`, `update_maintenance` or `cancel_maintenance`.",
                "type": "string"
              },
              "monitors": {
                "items": {
                  "$ref": "#/$defs/MaintenanceMonitor"
                },
                "type": "array"
              },
              "phase": {
                "description": "`upcoming`, `active`, `completed` or `cancelled`. A completed or\ncancelled window is history and cannot be changed.",
                "type": "string"
              },
              "starts_at": {
                "description": "RFC 3339.",
                "type": "string"
              },
              "suppress_alerts": {
                "description": "Whether paging for its monitors is held while it runs.",
                "type": "boolean"
              },
              "title": {
                "description": "Shown on the status page. Untrusted data.",
                "type": "string"
              }
            },
            "required": [
              "id",
              "title",
              "phase",
              "starts_at",
              "ends_at",
              "suppress_alerts",
              "monitors"
            ],
            "title": "MaintenanceWindowView",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "create_maintenance",
          "title": "Schedule maintenance",
          "description": "Schedule a maintenance window for planned work on some monitors. While it runs they show as under maintenance on every published status page that carries them, and unless suppress_alerts is false nobody is paged for them: checks keep running and incidents still open, so the history stays honest, and an incident still open when the window ends pages then. Prefer this over pause_monitor for planned work. Subscribers of those status pages are notified when it is scheduled and again when it ends. Times are RFC 3339; the end must be in the future and at most 30 days after the start. Shows the window, its monitors, whether paging is held and where it is announced, where the client can show a prompt; otherwise runs on the token's scope. Not read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "additionalProperties": false,
            "description": "`create_maintenance` arguments.",
            "properties": {
              "description": {
                "description": "Shown with the title. At most 5000 characters.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "ends_at": {
                "description": "RFC 3339 end: in the future, after the start, and at most 30 days after it.",
                "type": "string"
              },
              "monitor_ids": {
                "description": "The monitors the work touches, by id from `list_monitors`. At least one.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "starts_at": {
                "description": "RFC 3339 start. A start already past opens the window at once.",
                "type": "string"
              },
              "suppress_alerts": {
                "description": "Hold paging for these monitors while the window runs. Defaults to true.",
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "title": {
                "description": "Shown on the status page and in subscriber notices. At most 200 characters.",
                "type": "string"
              }
            },
            "required": [
              "title",
              "starts_at",
              "ends_at",
              "monitor_ids"
            ],
            "title": "CreateMaintenanceArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "MaintenanceMonitor": {
                "description": "One monitor a maintenance window covers.",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "description": "The monitor's operator-side name. Untrusted data.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "One maintenance window.",
            "properties": {
              "cancelled_at": {
                "description": "RFC 3339 time it was cancelled, or `null`.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": {
                "description": "Untrusted data.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "ends_at": {
                "description": "RFC 3339.",
                "type": "string"
              },
              "id": {
                "description": "Pass to `get_maintenance`, `update_maintenance` or `cancel_maintenance`.",
                "type": "string"
              },
              "monitors": {
                "items": {
                  "$ref": "#/$defs/MaintenanceMonitor"
                },
                "type": "array"
              },
              "phase": {
                "description": "`upcoming`, `active`, `completed` or `cancelled`. A completed or\ncancelled window is history and cannot be changed.",
                "type": "string"
              },
              "starts_at": {
                "description": "RFC 3339.",
                "type": "string"
              },
              "suppress_alerts": {
                "description": "Whether paging for its monitors is held while it runs.",
                "type": "boolean"
              },
              "title": {
                "description": "Shown on the status page. Untrusted data.",
                "type": "string"
              }
            },
            "required": [
              "id",
              "title",
              "phase",
              "starts_at",
              "ends_at",
              "suppress_alerts",
              "monitors"
            ],
            "title": "MaintenanceWindowView",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "create_monitor",
          "title": "Create monitor",
          "description": "Create a monitor for an http, tcp, ping, dns, tls_cert, domain_expiry, heartbeat or manual check. A manual monitor has nothing to probe; set its state afterwards with set_monitor_state. The check is run once before anything is saved and the result is shown to the user along with every setting it would apply; where the client can show a prompt, nothing is created unless they approve; otherwise the monitor is created on the token's scope and the trial result comes back with it. Bind it to alerts as you create it: pass channel_ids from list_notification_channels (this needs the channels:read scope), and if the org has no channel yet, say so rather than leaving a monitor that pages nobody. Leave regions unset unless the user named where they want the check to run from — omitted, it probes from the operator's default set, which is already the intended coverage; naming more regions than the plan allows is refused outright. Request headers and a request body can be set, but a credential must be referenced rather than pasted: write `Bearer {{ my_key }}` and call list_variables for the keys this org has. A URL carrying a username or password is refused, and browser flows cannot be created here — add those in the app. Not read-only.",
          "inputSchema": {
            "$defs": {
              "NewCheck": {
                "description": "What a new monitor should check. Narrower than what the product supports on\npurpose: no request headers, body or credentials, since those are literal\nsecrets an operator types once and this tool would carry through a chat log;\nand no browser flow, which needs the fill values withheld everywhere else.\nAdd those in the Uptimepage app after the monitor exists.",
                "oneOf": [
                  {
                    "additionalProperties": false,
                    "description": "An HTTP(S) endpoint.",
                    "properties": {
                      "body": {
                        "description": "Request body, sent as given. `{{ key }}` references are resolved at\nprobe time, so a body may carry a secret by reference.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "expected_body_contains": {
                        "description": "Text the response body must contain for the check to pass.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "expected_status": {
                        "description": "A single code like `200`, a range like `200-299`, or a list like\n`200,201,204`. Defaults to `200-299`.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "follow_redirects": {
                        "description": "Defaults to true, following at most 5 hops.",
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "headers": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Request headers. A header that carries a credential\n(`authorization`, `x-api-key`, `api-key`, `cookie`,\n`proxy-authorization`) must reference an org variable rather than\nspell the secret out: `Bearer {{ my_key }}`. Use `list_variables`\nto find the key, and never paste the credential itself — this tool\nrefuses it, and a pasted one would live on in the chat log.",
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "method": {
                        "description": "`get` (default), `head`, `post`, `put`, `patch`, `delete`, `options`.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "timeout_ms": {
                        "description": "Defaults to 10000. A redirect counts as a pass only with\n`follow_redirects`.",
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "http",
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      },
                      "verify_tls": {
                        "description": "Defaults to true. False accepts an invalid certificate, which a\n`tls_cert` monitor is the better way to watch.",
                        "type": [
                          "boolean",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "type",
                      "url"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A TCP port accepting connections.",
                    "properties": {
                      "host": {
                        "type": "string"
                      },
                      "port": {
                        "format": "uint16",
                        "maximum": 65535,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "tcp",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "host",
                      "port"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "ICMP reachability.",
                    "properties": {
                      "host": {
                        "type": "string"
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "ping",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "host"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A DNS record resolving, optionally to an expected value.",
                    "properties": {
                      "domain": {
                        "type": "string"
                      },
                      "expected_contains": {
                        "description": "Text the answer must contain.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "record_type": {
                        "description": "`a` (default), `aaaa`, `cname`, `mx`, `ns`, `txt`, `soa`, `ptr`,\n`caa`, `srv`.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "resolver": {
                        "description": "Resolver to ask. Defaults to the agent's own.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "dns",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "domain"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A TLS certificate's remaining validity.",
                    "properties": {
                      "critical_days": {
                        "description": "Days of remaining validity that fail it. Default 7.",
                        "format": "uint32",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "host": {
                        "type": "string"
                      },
                      "port": {
                        "description": "Defaults to 443.",
                        "format": "uint16",
                        "maximum": 65535,
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "tls_cert",
                        "type": "string"
                      },
                      "warn_days": {
                        "description": "Days of remaining validity that degrade the check. Default 30.",
                        "format": "uint32",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "type",
                      "host"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A domain registration's remaining validity.",
                    "properties": {
                      "critical_days": {
                        "description": "Default 7.",
                        "format": "uint32",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "domain": {
                        "type": "string"
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "domain_expiry",
                        "type": "string"
                      },
                      "warn_days": {
                        "description": "Default 30.",
                        "format": "uint32",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "type",
                      "domain"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "An inbound ping from a job that is expected to report in. Nothing is\nprobed; the monitor fails when the ping does not arrive. The ping URL\nand its token are shown in the app, never here.",
                    "properties": {
                      "grace_secs": {
                        "description": "Lateness tolerated before the monitor fails.",
                        "format": "uint64",
                        "minimum": 0,
                        "type": "integer"
                      },
                      "max_runtime_secs": {
                        "description": "Fail a run that starts and does not finish within this.",
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "period_secs": {
                        "description": "How often the job is expected to report.",
                        "format": "uint64",
                        "minimum": 0,
                        "type": "integer"
                      },
                      "type": {
                        "const": "heartbeat",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "period_secs",
                      "grace_secs"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A service no probe can judge, such as a SIP trunk or a partner's back\noffice. Nothing is checked: it starts up, and `set_monitor_state` moves\nit, opening and closing incidents like any other monitor.",
                    "properties": {
                      "type": {
                        "const": "manual",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  }
                ]
              },
              "RegionPolicyArg": {
                "additionalProperties": false,
                "description": "How many regions must agree a monitor is down before an incident opens.\n`get_monitor` reads this back in the same shape, so the enum of legal modes\nis one definition rather than a written-out list that can drift.",
                "properties": {
                  "count": {
                    "description": "Required with `mode: \"count\"`, ignored otherwise. Must be between 1 and\nthe number of regions the fleet has; `list_regions` reports them.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "mode": {
                    "$ref": "#/$defs/RegionPolicyMode"
                  }
                },
                "required": [
                  "mode"
                ],
                "type": "object"
              },
              "RegionPolicyMode": {
                "description": "How the quorum is expressed. `count` carries its number in `count`.",
                "oneOf": [
                  {
                    "const": "any",
                    "description": "One region down is enough.",
                    "type": "string"
                  },
                  {
                    "const": "majority",
                    "description": "More than half of them.",
                    "type": "string"
                  },
                  {
                    "const": "all",
                    "description": "Every region.",
                    "type": "string"
                  },
                  {
                    "const": "count",
                    "description": "A fixed number.",
                    "type": "string"
                  }
                ]
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "additionalProperties": false,
            "description": "`create_monitor` arguments.",
            "properties": {
              "alert_confirmations": {
                "description": "Consecutive failing checks before the monitor alerts. Minimum 1,\ndefaults to 2.",
                "format": "uint32",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "channel_ids": {
                "description": "Channel ids from `list_notification_channels` to alert. Omitting them\ncreates a monitor that pages nobody, which is worth saying out loud\nrather than leaving for an outage to reveal. The channels themselves are\nset up in the app, since they hold the tokens and addresses.",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ]
              },
              "check": {
                "$ref": "#/$defs/NewCheck"
              },
              "group_name": {
                "description": "Operator-side grouping label.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "interval_secs": {
                "description": "Seconds between checks, held to the plan's floor and the check kind's\nown floor. Omit it to get the cadence the app's own picker opens this\nkind at, which is well above the hard minimum for the slow-moving kinds:\na certificate is checked twice a day, a domain registration daily.",
                "format": "uint64",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "name": {
                "description": "What the operator will see in lists and alerts.",
                "type": "string"
              },
              "notify_recovery": {
                "description": "Whether recovery is announced. Defaults to true.",
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "region_policy": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/RegionPolicyArg"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Detection quorum across probe regions."
              },
              "regions": {
                "description": "Probe regions to run the check from, as ids from `list_regions`. Omit\nunless the user named the places they want covered: omitting takes the\nregions `list_regions` flags `default_selected`, which is the coverage\nthe operator chose, capped at the plan's region cap and falling back to\nthe control plane's own region when nothing is flagged. A vantage point\ncan be offered without being on by default, so the full catalog is not\nthe thorough answer. Rejected for a heartbeat, which is pinged rather\nthan probed, and a set larger than a `max_regions` `list_regions`\nreports is refused outright, not trimmed to fit.",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ]
              },
              "renotify_interval_secs": {
                "description": "Seconds before the first reminder while an outage stays unacknowledged;\neach further reminder waits twice as long, up to a day. 0 turns\nreminders off; otherwise at least 60. Defaults to 3600.",
                "format": "uint32",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "tags": {
                "description": "At most 50, each at most 50 characters.",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ]
              }
            },
            "required": [
              "name",
              "check"
            ],
            "title": "CreateMonitorArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "CheckDiagnosticView": {
                "description": "Bounded, machine-readable explanation for a failed HTTP observation.",
                "properties": {
                  "confidence": {
                    "type": "string"
                  },
                  "evidence": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "guidance": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "provider": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "remediations": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "summary": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "confidence",
                  "evidence",
                  "remediations",
                  "summary",
                  "guidance"
                ],
                "type": "object"
              },
              "ProbeOutcome": {
                "description": "The trial run a monitor was created from. Carries no id: it happened before\nthe monitor existed and is not stored as one of its results.",
                "properties": {
                  "diagnostic": {
                    "anyOf": [
                      {
                        "$ref": "#/$defs/CheckDiagnosticView"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Structured edge-access diagnosis, when a supported signature matched."
                  },
                  "duration_ms": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "error": {
                    "description": "Error text when the probe failed. Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "http_status": {
                    "description": "HTTP status code, for an `http` check.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "state": {
                    "description": "Observed state: `up`, `down`, `degraded`, `error`.",
                    "type": "string"
                  }
                },
                "required": [
                  "state",
                  "duration_ms"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`create_monitor` result.",
            "properties": {
              "address": {
                "description": "What the check watches, as stored.",
                "type": "string"
              },
              "alerts": {
                "description": "The channels this monitor will alert, by name, or `nobody` when nothing\nreaches it. One covered by a channel's tag rule rather than a binding is\nmarked `by tag`. A channel that cannot deliver says so here.",
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "interval_secs": {
                "format": "uint64",
                "minimum": 0,
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "probe": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ProbeOutcome"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The trial run's outcome, which the operator saw before approving. Absent\nfor a heartbeat, which has nothing to probe."
              },
              "regions": {
                "description": "Probe regions the monitor was assigned, which is the operator's default\nset when `regions` was omitted. Empty for a heartbeat.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "id",
              "name",
              "address",
              "interval_secs",
              "regions",
              "alerts"
            ],
            "title": "MonitorCreated",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "create_monitors",
          "title": "Create monitors",
          "description": "Create several monitors at once, with one confirmation covering the batch where the client can show a prompt. Every check is run once first and all the results are shown together, so a misconfigured endpoint is visible before anything is saved. An item that fails validation or its trial run is reported in the results and the rest are still created. Prefer this over repeated create_monitor calls whenever the user names more than one thing to watch: it costs them one prompt instead of many. Same per-monitor fields and same limits as create_monitor. Not read-only.",
          "inputSchema": {
            "$defs": {
              "CreateMonitorArgs": {
                "additionalProperties": false,
                "description": "`create_monitor` arguments.",
                "properties": {
                  "alert_confirmations": {
                    "description": "Consecutive failing checks before the monitor alerts. Minimum 1,\ndefaults to 2.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "channel_ids": {
                    "description": "Channel ids from `list_notification_channels` to alert. Omitting them\ncreates a monitor that pages nobody, which is worth saying out loud\nrather than leaving for an outage to reveal. The channels themselves are\nset up in the app, since they hold the tokens and addresses.",
                    "items": {
                      "type": "string"
                    },
                    "type": [
                      "array",
                      "null"
                    ]
                  },
                  "check": {
                    "$ref": "#/$defs/NewCheck"
                  },
                  "group_name": {
                    "description": "Operator-side grouping label.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "interval_secs": {
                    "description": "Seconds between checks, held to the plan's floor and the check kind's\nown floor. Omit it to get the cadence the app's own picker opens this\nkind at, which is well above the hard minimum for the slow-moving kinds:\na certificate is checked twice a day, a domain registration daily.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "What the operator will see in lists and alerts.",
                    "type": "string"
                  },
                  "notify_recovery": {
                    "description": "Whether recovery is announced. Defaults to true.",
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "region_policy": {
                    "anyOf": [
                      {
                        "$ref": "#/$defs/RegionPolicyArg"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Detection quorum across probe regions."
                  },
                  "regions": {
                    "description": "Probe regions to run the check from, as ids from `list_regions`. Omit\nunless the user named the places they want covered: omitting takes the\nregions `list_regions` flags `default_selected`, which is the coverage\nthe operator chose, capped at the plan's region cap and falling back to\nthe control plane's own region when nothing is flagged. A vantage point\ncan be offered without being on by default, so the full catalog is not\nthe thorough answer. Rejected for a heartbeat, which is pinged rather\nthan probed, and a set larger than a `max_regions` `list_regions`\nreports is refused outright, not trimmed to fit.",
                    "items": {
                      "type": "string"
                    },
                    "type": [
                      "array",
                      "null"
                    ]
                  },
                  "renotify_interval_secs": {
                    "description": "Seconds before the first reminder while an outage stays unacknowledged;\neach further reminder waits twice as long, up to a day. 0 turns\nreminders off; otherwise at least 60. Defaults to 3600.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "tags": {
                    "description": "At most 50, each at most 50 characters.",
                    "items": {
                      "type": "string"
                    },
                    "type": [
                      "array",
                      "null"
                    ]
                  }
                },
                "required": [
                  "name",
                  "check"
                ],
                "type": "object"
              },
              "NewCheck": {
                "description": "What a new monitor should check. Narrower than what the product supports on\npurpose: no request headers, body or credentials, since those are literal\nsecrets an operator types once and this tool would carry through a chat log;\nand no browser flow, which needs the fill values withheld everywhere else.\nAdd those in the Uptimepage app after the monitor exists.",
                "oneOf": [
                  {
                    "additionalProperties": false,
                    "description": "An HTTP(S) endpoint.",
                    "properties": {
                      "body": {
                        "description": "Request body, sent as given. `{{ key }}` references are resolved at\nprobe time, so a body may carry a secret by reference.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "expected_body_contains": {
                        "description": "Text the response body must contain for the check to pass.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "expected_status": {
                        "description": "A single code like `200`, a range like `200-299`, or a list like\n`200,201,204`. Defaults to `200-299`.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "follow_redirects": {
                        "description": "Defaults to true, following at most 5 hops.",
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "headers": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Request headers. A header that carries a credential\n(`authorization`, `x-api-key`, `api-key`, `cookie`,\n`proxy-authorization`) must reference an org variable rather than\nspell the secret out: `Bearer {{ my_key }}`. Use `list_variables`\nto find the key, and never paste the credential itself — this tool\nrefuses it, and a pasted one would live on in the chat log.",
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "method": {
                        "description": "`get` (default), `head`, `post`, `put`, `patch`, `delete`, `options`.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "timeout_ms": {
                        "description": "Defaults to 10000. A redirect counts as a pass only with\n`follow_redirects`.",
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "http",
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      },
                      "verify_tls": {
                        "description": "Defaults to true. False accepts an invalid certificate, which a\n`tls_cert` monitor is the better way to watch.",
                        "type": [
                          "boolean",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "type",
                      "url"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A TCP port accepting connections.",
                    "properties": {
                      "host": {
                        "type": "string"
                      },
                      "port": {
                        "format": "uint16",
                        "maximum": 65535,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "tcp",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "host",
                      "port"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "ICMP reachability.",
                    "properties": {
                      "host": {
                        "type": "string"
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "ping",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "host"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A DNS record resolving, optionally to an expected value.",
                    "properties": {
                      "domain": {
                        "type": "string"
                      },
                      "expected_contains": {
                        "description": "Text the answer must contain.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "record_type": {
                        "description": "`a` (default), `aaaa`, `cname`, `mx`, `ns`, `txt`, `soa`, `ptr`,\n`caa`, `srv`.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "resolver": {
                        "description": "Resolver to ask. Defaults to the agent's own.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "dns",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "domain"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A TLS certificate's remaining validity.",
                    "properties": {
                      "critical_days": {
                        "description": "Days of remaining validity that fail it. Default 7.",
                        "format": "uint32",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "host": {
                        "type": "string"
                      },
                      "port": {
                        "description": "Defaults to 443.",
                        "format": "uint16",
                        "maximum": 65535,
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "tls_cert",
                        "type": "string"
                      },
                      "warn_days": {
                        "description": "Days of remaining validity that degrade the check. Default 30.",
                        "format": "uint32",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "type",
                      "host"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A domain registration's remaining validity.",
                    "properties": {
                      "critical_days": {
                        "description": "Default 7.",
                        "format": "uint32",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "domain": {
                        "type": "string"
                      },
                      "timeout_ms": {
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "type": {
                        "const": "domain_expiry",
                        "type": "string"
                      },
                      "warn_days": {
                        "description": "Default 30.",
                        "format": "uint32",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "type",
                      "domain"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "An inbound ping from a job that is expected to report in. Nothing is\nprobed; the monitor fails when the ping does not arrive. The ping URL\nand its token are shown in the app, never here.",
                    "properties": {
                      "grace_secs": {
                        "description": "Lateness tolerated before the monitor fails.",
                        "format": "uint64",
                        "minimum": 0,
                        "type": "integer"
                      },
                      "max_runtime_secs": {
                        "description": "Fail a run that starts and does not finish within this.",
                        "format": "uint64",
                        "minimum": 0,
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "period_secs": {
                        "description": "How often the job is expected to report.",
                        "format": "uint64",
                        "minimum": 0,
                        "type": "integer"
                      },
                      "type": {
                        "const": "heartbeat",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "period_secs",
                      "grace_secs"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "description": "A service no probe can judge, such as a SIP trunk or a partner's back\noffice. Nothing is checked: it starts up, and `set_monitor_state` moves\nit, opening and closing incidents like any other monitor.",
                    "properties": {
                      "type": {
                        "const": "manual",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  }
                ]
              },
              "RegionPolicyArg": {
                "additionalProperties": false,
                "description": "How many regions must agree a monitor is down before an incident opens.\n`get_monitor` reads this back in the same shape, so the enum of legal modes\nis one definition rather than a written-out list that can drift.",
                "properties": {
                  "count": {
                    "description": "Required with `mode: \"count\"`, ignored otherwise. Must be between 1 and\nthe number of regions the fleet has; `list_regions` reports them.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "mode": {
                    "$ref": "#/$defs/RegionPolicyMode"
                  }
                },
                "required": [
                  "mode"
                ],
                "type": "object"
              },
              "RegionPolicyMode": {
                "description": "How the quorum is expressed. `count` carries its number in `count`.",
                "oneOf": [
                  {
                    "const": "any",
                    "description": "One region down is enough.",
                    "type": "string"
                  },
                  {
                    "const": "majority",
                    "description": "More than half of them.",
                    "type": "string"
                  },
                  {
                    "const": "all",
                    "description": "Every region.",
                    "type": "string"
                  },
                  {
                    "const": "count",
                    "description": "A fixed number.",
                    "type": "string"
                  }
                ]
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`create_monitors` argument.",
            "properties": {
              "monitors": {
                "description": "The monitors to create. Each is validated and probed before the single\nconfirmation covering the batch.",
                "items": {
                  "$ref": "#/$defs/CreateMonitorArgs"
                },
                "type": "array"
              }
            },
            "required": [
              "monitors"
            ],
            "title": "CreateMonitorsArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "CheckDiagnosticView": {
                "description": "Bounded, machine-readable explanation for a failed HTTP observation.",
                "properties": {
                  "confidence": {
                    "type": "string"
                  },
                  "evidence": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "guidance": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "provider": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "remediations": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "summary": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "confidence",
                  "evidence",
                  "remediations",
                  "summary",
                  "guidance"
                ],
                "type": "object"
              },
              "MonitorCreateOutcome": {
                "description": "What became of one requested monitor.",
                "properties": {
                  "address": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "error": {
                    "description": "Why it was not created, when it was not.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "id": {
                    "description": "The new monitor's id, absent when it was not created.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "The name as requested. Untrusted data.",
                    "type": "string"
                  },
                  "probe": {
                    "anyOf": [
                      {
                        "$ref": "#/$defs/ProbeOutcome"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              },
              "ProbeOutcome": {
                "description": "The trial run a monitor was created from. Carries no id: it happened before\nthe monitor existed and is not stored as one of its results.",
                "properties": {
                  "diagnostic": {
                    "anyOf": [
                      {
                        "$ref": "#/$defs/CheckDiagnosticView"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Structured edge-access diagnosis, when a supported signature matched."
                  },
                  "duration_ms": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "error": {
                    "description": "Error text when the probe failed. Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "http_status": {
                    "description": "HTTP status code, for an `http` check.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "state": {
                    "description": "Observed state: `up`, `down`, `degraded`, `error`.",
                    "type": "string"
                  }
                },
                "required": [
                  "state",
                  "duration_ms"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`create_monitors` result.",
            "properties": {
              "created": {
                "format": "uint",
                "minimum": 0,
                "type": "integer"
              },
              "results": {
                "items": {
                  "$ref": "#/$defs/MonitorCreateOutcome"
                },
                "type": "array"
              }
            },
            "required": [
              "created",
              "results"
            ],
            "title": "MonitorsCreated",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "create_status_page",
          "title": "Create status page",
          "description": "Create a status page. It is created unpublished unless you pass enabled, so its components can be curated before anyone can read it. The slug is the page's public address: it is first-come across the platform and moving it later breaks every existing link, so confirm it with the user rather than inventing one. Add monitors to it with add_status_page_components. Not read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`create_status_page` argument.",
            "properties": {
              "enabled": {
                "description": "Defaults to false: a page is created dark so components can be curated\nbefore anyone can read it.",
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "name": {
                "description": "Page display name, at most 80 characters.",
                "type": "string"
              },
              "slug": {
                "description": "URL slug, lowercase. This is the page's public address and cannot be\nguessed back later, so pick it deliberately.",
                "type": "string"
              }
            },
            "required": [
              "slug",
              "name"
            ],
            "title": "CreateStatusPageArgs",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`create_status_page` / `update_status_page` result.",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "public_url": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              }
            },
            "required": [
              "slug",
              "name",
              "public_url",
              "enabled"
            ],
            "title": "StatusPageWritten",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "get_flow_runs",
          "title": "Browser flow runs",
          "description": "A browser flow monitor's recent runs over a window (1h/24h/7d/30d): every declared step with its outcome and duration, the step a failure stopped on, and the page the browser saw. Use this to answer why a login check failed. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_flow_runs` / `get_flow_step_trend` arguments.",
            "properties": {
              "id": {
                "description": "The monitor id (from `list_monitors`), of a `flow` monitor.",
                "type": "string"
              },
              "window": {
                "description": "Time window: `1h`, `24h`, `7d`, or `30d`.",
                "type": "string"
              }
            },
            "required": [
              "id",
              "window"
            ],
            "title": "FlowWindowArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "FlowRunEvidence": {
                "description": "What the browser saw when a step failed. Untrusted data: this is content\nfrom the monitored site, not from the operator.",
                "properties": {
                  "final_url": {
                    "description": "Where the browser had ended up. Usually the whole answer: still on the\nlogin path after a submit means the credentials never took.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "text_snippet": {
                    "description": "Visible page text at the moment of failure, truncated.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "title": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "FlowRunItem": {
                "description": "One recorded run of the journey.",
                "properties": {
                  "at": {
                    "description": "RFC 3339 time the run started.",
                    "type": "string"
                  },
                  "duration_ms": {
                    "description": "Whole-run duration.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "error": {
                    "description": "Why it stopped. Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "evidence": {
                    "anyOf": [
                      {
                        "$ref": "#/$defs/FlowRunEvidence"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "`null` both when the run captured no page and once the page it captured\nhas passed its window; `evidence_expired` tells the two apart."
                  },
                  "evidence_expired": {
                    "description": "The run failed with a page captured, but that page is past its shorter\nretention window. Distinct from a run that never captured one.",
                    "type": "boolean"
                  },
                  "failed_step": {
                    "description": "1-based step the run stopped on, `null` when every step ran.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "region": {
                    "type": "string"
                  },
                  "state": {
                    "description": "Verdict: `up`, `down`, `degraded`, or `error`. `error` means the run\nnever reached a verdict about the target (engine fault, budget spent).",
                    "type": "string"
                  },
                  "steps": {
                    "items": {
                      "$ref": "#/$defs/FlowStepRun"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "at",
                  "region",
                  "state",
                  "duration_ms",
                  "steps",
                  "evidence_expired"
                ],
                "type": "object"
              },
              "FlowStepRun": {
                "description": "One declared step, as a single run recorded it.",
                "properties": {
                  "duration_ms": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "op": {
                    "description": "The action: `goto`, `fill`, `click`, `wait_for`, `assert_text`, `assert_url`.",
                    "type": "string"
                  },
                  "outcome": {
                    "description": "`passed`, `failed`, or `skipped`. Skipped means the run stopped earlier\nand never reached this step.",
                    "type": "string"
                  },
                  "step": {
                    "description": "1-based position among the flow's declared steps.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "step",
                  "op",
                  "outcome",
                  "duration_ms"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_flow_runs` result: newest first, and bounded to the most recent runs\nmerged with the most recent failures, so a failure stays reachable in a\nwindow whose newest runs all passed.",
            "properties": {
              "runs": {
                "items": {
                  "$ref": "#/$defs/FlowRunItem"
                },
                "type": "array"
              }
            },
            "required": [
              "runs"
            ],
            "title": "FlowRunList",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "get_flow_step_trend",
          "title": "Browser flow step trend",
          "description": "How long each step of a browser flow monitor takes over a window (1h/24h/7d/30d), and how far it has moved: per step the earliest and latest mean duration, their ratio, and how many runs passed or failed it. Use this to spot a step drifting toward failure while the monitor still reports up. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_flow_runs` / `get_flow_step_trend` arguments.",
            "properties": {
              "id": {
                "description": "The monitor id (from `list_monitors`), of a `flow` monitor.",
                "type": "string"
              },
              "window": {
                "description": "Time window: `1h`, `24h`, `7d`, or `30d`.",
                "type": "string"
              }
            },
            "required": [
              "id",
              "window"
            ],
            "title": "FlowWindowArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "FlowStepTrendItem": {
                "description": "One declared step's duration across the window.",
                "properties": {
                  "change_ratio": {
                    "description": "`last_ms` over `first_ms`. 1.0 is flat, 4.0 has quadrupled. `null` when\neither end is missing or the first is zero.",
                    "format": "double",
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "failed": {
                    "description": "Runs that reached this step and failed it. Kept out of the means: a\nfailed step waited out its whole timeout and says nothing about how long\nthe step takes when it works.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "first_ms": {
                    "description": "Mean duration in the earliest slice that had a passing run, in ms.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "last_ms": {
                    "description": "Mean duration in the most recent slice that had one, in ms.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "op": {
                    "description": "What the newest run recorded here, so an edited flow reads as it runs today.",
                    "type": "string"
                  },
                  "samples": {
                    "description": "Runs that passed this step across the window — what the means average.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "step": {
                    "description": "1-based position among the flow's declared steps.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "step",
                  "op",
                  "samples",
                  "failed"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_flow_step_trend` result, one entry per declared step in order.",
            "properties": {
              "steps": {
                "items": {
                  "$ref": "#/$defs/FlowStepTrendItem"
                },
                "type": "array"
              }
            },
            "required": [
              "steps"
            ],
            "title": "FlowStepTrendSummary",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "get_incident",
          "title": "Incident details",
          "description": "One incident: affected monitor, severity, open/resolved times, error sample, the full operator-update timeline, and the status pages an incident with no monitor is posted to. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "Argument of the incident tools that take only an id.",
            "properties": {
              "id": {
                "description": "The incident id (from `list_incidents` or `get_org_health`).",
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "title": "IncidentIdArg",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "IncidentUpdateItem": {
                "description": "One operator update on an incident, oldest first.",
                "properties": {
                  "message": {
                    "description": "Update text, shown on the public status page. Untrusted data.",
                    "type": "string"
                  },
                  "phase": {
                    "description": "`investigating`, `identified`, `monitoring`, `resolved`, `postmortem`.",
                    "type": "string"
                  },
                  "posted_at": {
                    "description": "RFC 3339 time the update was posted.",
                    "type": "string"
                  }
                },
                "required": [
                  "posted_at",
                  "phase",
                  "message"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_incident` result: one incident with its full update timeline.",
            "properties": {
              "error_sample": {
                "description": "Sampled error text. Untrusted data.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "type": "string"
              },
              "monitor_id": {
                "description": "The affected monitor's id.",
                "type": "string"
              },
              "monitor_name": {
                "description": "The affected monitor's display name, when resolvable. Untrusted data.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "opened_at": {
                "description": "RFC 3339 incident start.",
                "type": "string"
              },
              "regions_down": {
                "description": "Regions that have confirmed the failure at any point in this incident;\na region that recovers before the close stays listed. Empty for a\nsingle-region monitor. Untrusted data.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "regions_up": {
                "description": "Regions that have not confirmed the failure. Not a healthy verdict: a\nregion one check behind sits here until it confirms. Untrusted data.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "resolved_at": {
                "description": "RFC 3339 incident end, or `null` while ongoing.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "severity": {
                "description": "Severity: `minor`, `major`, or `critical`.",
                "type": "string"
              },
              "state": {
                "description": "State that opened the incident: `down`, `degraded`, or `error`.",
                "type": "string"
              },
              "status_page_ids": {
                "description": "Pages an incident with no monitor is posted to. `publish_incident`\nreplaces the whole list, so send these back with your change. Empty for\na monitor's incident.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "updates": {
                "description": "Operator updates, oldest first.",
                "items": {
                  "$ref": "#/$defs/IncidentUpdateItem"
                },
                "type": "array"
              }
            },
            "required": [
              "id",
              "monitor_id",
              "state",
              "severity",
              "opened_at",
              "regions_down",
              "regions_up",
              "updates",
              "status_page_ids"
            ],
            "title": "IncidentDetail",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "get_incident_metrics",
          "title": "Incident metrics",
          "description": "Incident metrics over a trailing window (default 30 days): MTTA/MTTR in seconds, total incidents, counts by severity and state, auto- vs human-resolved, and the noisiest monitors. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_incident_metrics` argument.",
            "properties": {
              "window_days": {
                "description": "Trailing window in days (1..=365). Defaults to 30 when omitted.",
                "format": "uint32",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              }
            },
            "title": "GetIncidentMetricsArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "MetricCount": {
                "description": "One `{key, count}` bucket in the metrics rollup.",
                "properties": {
                  "count": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "key": {
                    "type": "string"
                  }
                },
                "required": [
                  "key",
                  "count"
                ],
                "type": "object"
              },
              "NoisyMonitor": {
                "description": "A monitor and how many incidents it raised in the window.",
                "properties": {
                  "count": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "monitor_id": {
                    "type": "string"
                  }
                },
                "required": [
                  "monitor_id",
                  "count"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_incident_metrics` result: MTTA/MTTR and incident counts over a window.",
            "properties": {
              "auto_resolved": {
                "description": "Resolved automatically on recovery, with no human resolver.",
                "format": "uint64",
                "minimum": 0,
                "type": "integer"
              },
              "by_severity": {
                "items": {
                  "$ref": "#/$defs/MetricCount"
                },
                "type": "array"
              },
              "by_state": {
                "items": {
                  "$ref": "#/$defs/MetricCount"
                },
                "type": "array"
              },
              "human_resolved": {
                "description": "Resolved by a person.",
                "format": "uint64",
                "minimum": 0,
                "type": "integer"
              },
              "mtta_secs": {
                "description": "Mean time to acknowledge, seconds. `null` if none were acknowledged.",
                "format": "double",
                "type": [
                  "number",
                  "null"
                ]
              },
              "mttr_secs": {
                "description": "Mean time to resolve, seconds. `null` if none were resolved.",
                "format": "double",
                "type": [
                  "number",
                  "null"
                ]
              },
              "top_monitors": {
                "description": "Noisiest monitors, most incidents first.",
                "items": {
                  "$ref": "#/$defs/NoisyMonitor"
                },
                "type": "array"
              },
              "total": {
                "description": "Incidents opened in the window.",
                "format": "uint64",
                "minimum": 0,
                "type": "integer"
              },
              "window_days": {
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "window_days",
              "total",
              "by_severity",
              "by_state",
              "auto_resolved",
              "human_resolved",
              "top_monitors"
            ],
            "title": "IncidentMetricsResult",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "get_maintenance",
          "title": "Maintenance window details",
          "description": "One maintenance window: title, description, start and end, phase, the monitors it covers, and whether it holds their paging. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "additionalProperties": false,
            "description": "Argument of the maintenance tools that take only an id.",
            "properties": {
              "id": {
                "description": "The window id (from `list_maintenance`).",
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "title": "MaintenanceIdArg",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "MaintenanceMonitor": {
                "description": "One monitor a maintenance window covers.",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "description": "The monitor's operator-side name. Untrusted data.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "One maintenance window.",
            "properties": {
              "cancelled_at": {
                "description": "RFC 3339 time it was cancelled, or `null`.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": {
                "description": "Untrusted data.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "ends_at": {
                "description": "RFC 3339.",
                "type": "string"
              },
              "id": {
                "description": "Pass to `get_maintenance`, `update_maintenance` or `cancel_maintenance`.",
                "type": "string"
              },
              "monitors": {
                "items": {
                  "$ref": "#/$defs/MaintenanceMonitor"
                },
                "type": "array"
              },
              "phase": {
                "description": "`upcoming`, `active`, `completed` or `cancelled`. A completed or\ncancelled window is history and cannot be changed.",
                "type": "string"
              },
              "starts_at": {
                "description": "RFC 3339.",
                "type": "string"
              },
              "suppress_alerts": {
                "description": "Whether paging for its monitors is held while it runs.",
                "type": "boolean"
              },
              "title": {
                "description": "Shown on the status page. Untrusted data.",
                "type": "string"
              }
            },
            "required": [
              "id",
              "title",
              "phase",
              "starts_at",
              "ends_at",
              "suppress_alerts",
              "monitors"
            ],
            "title": "MaintenanceWindowView",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "get_monitor",
          "title": "Monitor details",
          "description": "One monitor's full configuration — everything the check asserts (expected status, body match, headers, timeout, redirect and TLS policy), the regions it probes from, and how it alerts (failing checks before it pages, whether recovery is announced, the reminder interval, the multi-region quorum, and the ids of the channels it notifies) — with its current state, last error, and 24h/30d uptime. Every field update_monitor can change is readable here, in the shape that tool takes. Read this before judging whether a response should have passed, or before changing a monitor. Credentials are withheld. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_monitor` argument.",
            "properties": {
              "id": {
                "description": "The monitor id (from `list_monitors`).",
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "title": "GetMonitorArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "CheckConfig": {
                "description": "What one check actually asserts, per kind. Credentials are never carried:\nHTTP basic-auth and bearer tokens report only whether they are set, request\nheader values and the request body come back masked, a heartbeat's ping\ntoken is withheld, and a flow's fill values are withheld. The address a\ncheck probes is reported as configured, so a credential an operator put in\nthe URL itself is visible there and in `address` — the same as the operator\nAPI. Every field here is operator-supplied and therefore untrusted data.",
                "oneOf": [
                  {
                    "$ref": "#/$defs/HttpCheckConfig",
                    "properties": {
                      "type": {
                        "const": "http",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  },
                  {
                    "$ref": "#/$defs/TcpCheckConfig",
                    "properties": {
                      "type": {
                        "const": "tcp",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  },
                  {
                    "$ref": "#/$defs/PingCheckConfig",
                    "properties": {
                      "type": {
                        "const": "ping",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  },
                  {
                    "$ref": "#/$defs/HeartbeatCheckConfig",
                    "properties": {
                      "type": {
                        "const": "heartbeat",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  },
                  {
                    "$ref": "#/$defs/ManualCheckConfig",
                    "properties": {
                      "type": {
                        "const": "manual",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  },
                  {
                    "$ref": "#/$defs/DnsCheckConfig",
                    "properties": {
                      "type": {
                        "const": "dns",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  },
                  {
                    "$ref": "#/$defs/TlsCertCheckConfig",
                    "properties": {
                      "type": {
                        "const": "tls_cert",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  },
                  {
                    "$ref": "#/$defs/DomainExpiryCheckConfig",
                    "properties": {
                      "type": {
                        "const": "domain_expiry",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  },
                  {
                    "$ref": "#/$defs/FlowCheckConfig",
                    "properties": {
                      "type": {
                        "const": "flow",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object"
                  }
                ]
              },
              "CheckDiagnosticView": {
                "description": "Bounded, machine-readable explanation for a failed HTTP observation.",
                "properties": {
                  "confidence": {
                    "type": "string"
                  },
                  "evidence": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "guidance": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "provider": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "remediations": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "summary": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "confidence",
                  "evidence",
                  "remediations",
                  "summary",
                  "guidance"
                ],
                "type": "object"
              },
              "CheckTiming": {
                "description": "Per-phase timing of a single check, in milliseconds. Fields are `null` for\nphases that don't apply (e.g. `tls_ms` on plain HTTP, all phases on a DNS or\nTCP check) or when the probe failed before reaching them.",
                "properties": {
                  "connect_ms": {
                    "description": "TCP connect time.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "dns_ms": {
                    "description": "DNS resolution time.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "tls_ms": {
                    "description": "TLS handshake time.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "ttfb_ms": {
                    "description": "Time to first byte.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "DnsCheckConfig": {
                "properties": {
                  "domain": {
                    "type": "string"
                  },
                  "expected_contains": {
                    "description": "Substring at least one answer must contain, when set. An empty answer,\nNXDOMAIN, or a missing substring all fail the check.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "record_type": {
                    "description": "Record type: `A`, `AAAA`, `CNAME`, `MX`, `NS`, `TXT`, `SOA`, `PTR`,\n`CAA`, `SRV`.",
                    "type": "string"
                  },
                  "resolver": {
                    "description": "Custom resolver, or `null` for the probe's default.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "timeout_ms": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "domain",
                  "record_type",
                  "timeout_ms"
                ],
                "type": "object"
              },
              "DomainExpiryCheckConfig": {
                "properties": {
                  "critical_days": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "timeout_ms": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "warn_days": {
                    "description": "Days before registration expiry the check turns degraded / down.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "domain",
                  "warn_days",
                  "critical_days",
                  "timeout_ms"
                ],
                "type": "object"
              },
              "FlowCheckConfig": {
                "properties": {
                  "start_url": {
                    "type": "string"
                  },
                  "step_timeout_ms": {
                    "description": "Per-step wait for a selector to appear.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "steps": {
                    "items": {
                      "$ref": "#/$defs/FlowStepConfig"
                    },
                    "type": "array"
                  },
                  "timeout_ms": {
                    "description": "Whole-run budget.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "verify_tls": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "start_url",
                  "steps",
                  "timeout_ms",
                  "step_timeout_ms",
                  "verify_tls"
                ],
                "type": "object"
              },
              "FlowStepConfig": {
                "description": "One declared step of a flow, as configured. Pair with `get_flow_runs`, whose\nstep numbers match.",
                "properties": {
                  "contains": {
                    "description": "What an `assert_text` / `assert_url` requires. Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "op": {
                    "description": "The action: `goto`, `fill`, `click`, `wait_for`, `assert_text`, `assert_url`.",
                    "type": "string"
                  },
                  "selector": {
                    "description": "CSS selector the step acts on, where the action takes one. Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "step": {
                    "description": "1-based position among the declared steps.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "url": {
                    "description": "Where a `goto` navigates, as origin and path only: userinfo, query and\nfragment are stripped. Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "value_withheld": {
                    "description": "A `fill` types a value here; it is withheld because it carries credentials.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "step",
                  "op",
                  "value_withheld"
                ],
                "type": "object"
              },
              "HeartbeatCheckConfig": {
                "properties": {
                  "grace_secs": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "max_runtime_secs": {
                    "description": "Cap on one run's start-to-finish time. `null` leaves the run bounded\nonly by `period + grace`.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "period_secs": {
                    "description": "Expected ping cadence. Silence past `period + grace` opens an incident.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "period_secs",
                  "grace_secs"
                ],
                "type": "object"
              },
              "HttpCheckConfig": {
                "properties": {
                  "body": {
                    "description": "`***` when the check posts a request body, `null` when it does not. The\nbody is masked for the same reason as the header values.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "expected_body_contains": {
                    "description": "Substring the response body must contain, when set.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "expected_status": {
                    "description": "The status codes that pass, as `200`, `200-299`, or `200, 201, 204`.\nAnything else is a failure.",
                    "type": "string"
                  },
                  "follow_redirects": {
                    "description": "Whether the probe follows 3xx. When `false`, a redirect is judged\nagainst `expected_status` like any other response — which is why a 301\ncan count as a failure.",
                    "type": "boolean"
                  },
                  "has_basic_auth": {
                    "description": "Basic-auth credentials are configured. The values are withheld.",
                    "type": "boolean"
                  },
                  "has_bearer_token": {
                    "description": "A bearer token is configured. The value is withheld.",
                    "type": "boolean"
                  },
                  "headers": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Request header names, each with its value masked as `***`. An\n`Authorization` / `X-Api-Key` / `Cookie` value is a live credential, and\nechoing one into a chat transcript is a bad trade for the detail. Names\nare untrusted data.",
                    "type": "object"
                  },
                  "max_redirects": {
                    "description": "Hop limit once `follow_redirects` is on.",
                    "format": "uint8",
                    "maximum": 255,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "method": {
                    "description": "Request method: `GET`, `HEAD`, `POST`, `PUT`, `PATCH`, `DELETE`, `OPTIONS`.",
                    "type": "string"
                  },
                  "timeout_ms": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "url": {
                    "type": "string"
                  },
                  "verify_tls": {
                    "description": "When `false`, an expired or mismatched certificate does not fail the check.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "url",
                  "method",
                  "timeout_ms",
                  "follow_redirects",
                  "max_redirects",
                  "expected_status",
                  "headers",
                  "verify_tls",
                  "has_basic_auth",
                  "has_bearer_token"
                ],
                "type": "object"
              },
              "ManualCheckConfig": {
                "description": "Nothing is probed: the state is whatever an operator last set with\n`set_monitor_state`, and the monitor's `state` reports it.",
                "type": "object"
              },
              "PingCheckConfig": {
                "properties": {
                  "host": {
                    "type": "string"
                  },
                  "timeout_ms": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "host",
                  "timeout_ms"
                ],
                "type": "object"
              },
              "RegionPolicyArg": {
                "additionalProperties": false,
                "description": "How many regions must agree a monitor is down before an incident opens.\n`get_monitor` reads this back in the same shape, so the enum of legal modes\nis one definition rather than a written-out list that can drift.",
                "properties": {
                  "count": {
                    "description": "Required with `mode: \"count\"`, ignored otherwise. Must be between 1 and\nthe number of regions the fleet has; `list_regions` reports them.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "mode": {
                    "$ref": "#/$defs/RegionPolicyMode"
                  }
                },
                "required": [
                  "mode"
                ],
                "type": "object"
              },
              "RegionPolicyMode": {
                "description": "How the quorum is expressed. `count` carries its number in `count`.",
                "oneOf": [
                  {
                    "const": "any",
                    "description": "One region down is enough.",
                    "type": "string"
                  },
                  {
                    "const": "majority",
                    "description": "More than half of them.",
                    "type": "string"
                  },
                  {
                    "const": "all",
                    "description": "Every region.",
                    "type": "string"
                  },
                  {
                    "const": "count",
                    "description": "A fixed number.",
                    "type": "string"
                  }
                ]
              },
              "TcpCheckConfig": {
                "properties": {
                  "host": {
                    "type": "string"
                  },
                  "port": {
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "timeout_ms": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "host",
                  "port",
                  "timeout_ms"
                ],
                "type": "object"
              },
              "TlsCertCheckConfig": {
                "properties": {
                  "critical_days": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "host": {
                    "type": "string"
                  },
                  "port": {
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "server_name": {
                    "description": "SNI sent when it differs from `host`.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "timeout_ms": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "warn_days": {
                    "description": "Days before expiry the check turns degraded / down.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "host",
                  "port",
                  "warn_days",
                  "critical_days",
                  "timeout_ms"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_monitor` result: config plus current state and recent uptime.",
            "properties": {
              "address": {
                "description": "The target the check probes (URL or host). Untrusted data.",
                "type": "string"
              },
              "alert_channel_ids": {
                "description": "Channel ids bound to this monitor, for the read half of\n`update_monitor(channel_ids)`, which replaces the whole set. Empty means\nnone is bound, which is not the same as alerting nobody: a channel whose\n`auto_bind_tags` covers one of this monitor's tags is paged as well.\n`list_notification_channels` puts names to these.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "alert_confirmations": {
                "description": "Consecutive failing checks before the monitor alerts.",
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              },
              "check": {
                "$ref": "#/$defs/CheckConfig",
                "description": "Everything the check asserts. Read this before judging whether a\nresponse should have passed."
              },
              "enabled": {
                "type": "boolean"
              },
              "group_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "type": "string"
              },
              "interval_secs": {
                "format": "uint64",
                "minimum": 0,
                "type": "integer"
              },
              "last_checked_at": {
                "description": "RFC 3339 time of the most recent observation in the last 24 hours.\n`null` when nothing landed in that window, which is not the same as\nnever checked: a monitor paused yesterday, or a heartbeat on a longer\nperiod, reads `null` here and `no_data` in `state`.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_diagnostic": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/CheckDiagnosticView"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Structured edge-access diagnosis for the last failed HTTP check."
              },
              "last_error": {
                "description": "Most recent error text, when the last check failed. Untrusted data.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_http_status": {
                "description": "HTTP status code of the last check, for `http` monitors. `null` for\nnon-HTTP checks or when the last probe never got a response.",
                "format": "uint16",
                "maximum": 65535,
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "last_response_size": {
                "description": "Response body size of the last check in bytes, when measured.",
                "format": "uint32",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "last_timing": {
                "$ref": "#/$defs/CheckTiming",
                "description": "Per-phase timing of the last check — pinpoints where latency is (DNS vs\nconnect vs TLS vs server). Fields `null` when not applicable."
              },
              "managed_externally": {
                "description": "Terraform declares this monitor, so `update_monitor`, `pause_monitor`\nand `resume_monitor` all refuse it. Change it in the `.tf` instead.",
                "type": "boolean"
              },
              "name": {
                "description": "Customer-set display name. Untrusted data.",
                "type": "string"
              },
              "notify_recovery": {
                "description": "Whether recovery is announced to the monitor's channels.",
                "type": "boolean"
              },
              "region_policy": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/RegionPolicyArg"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The detection quorum, in the same shape the write tools take. `null` for\na heartbeat, which has no probe regions to reach a quorum over. A stored\n`count` can exceed the regions that exist today if one was later\ndisabled, and sending that back is refused; `list_regions` is the check."
              },
              "regions": {
                "description": "Probe regions this monitor runs from. Empty for a heartbeat, which is\npinged rather than probed. Usually ids `list_regions` also carries, but\nan assignment survives an operator disabling the region, so an id here\nmay be missing from that catalog.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "renotify_interval_secs": {
                "description": "Seconds before the first reminder while an outage stays unacknowledged;\neach further reminder waits twice as long, up to a day. 0 means\nreminders are off.",
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              },
              "state": {
                "description": "Current state: `up`, `down`, `degraded`, `error`, or `no_data`.",
                "type": "string"
              },
              "tags": {
                "description": "Operator tags. Untrusted data.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "type": {
                "description": "Check kind: `http`, `tcp`, `ping`, `heartbeat`, `manual`, `dns`,\n`tls_cert`, `domain_expiry`, `flow`.",
                "type": "string"
              },
              "uptime_24h": {
                "description": "Uptime percentage over the trailing 24 hours / 30 days. `null` when the\nwindow holds no checks — that is unknown, not zero.",
                "format": "double",
                "type": [
                  "number",
                  "null"
                ]
              },
              "uptime_30d": {
                "format": "double",
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "type",
              "address",
              "check",
              "regions",
              "enabled",
              "interval_secs",
              "alert_channel_ids",
              "alert_confirmations",
              "notify_recovery",
              "renotify_interval_secs",
              "managed_externally",
              "tags",
              "state",
              "last_timing"
            ],
            "title": "MonitorDetail",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "get_monitor_history",
          "title": "Monitor history",
          "description": "One monitor's history over a window (1h/24h/7d/30d): uptime, latency series, a per-region split of the same window, failures with error text, and incident windows. Pass `region` to narrow it to one probe region and tell a partial outage from a total one. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_monitor_history` arguments.",
            "properties": {
              "id": {
                "description": "The monitor id (from `list_monitors`).",
                "type": "string"
              },
              "region": {
                "description": "Narrow uptime, the latency series, and the region breakdown to one probe\nregion (an id the monitor is assigned to, from `get_monitor.regions`).\nOmit for every region together.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "window": {
                "description": "Time window: `1h`, `24h`, `7d`, or `30d`.",
                "type": "string"
              }
            },
            "required": [
              "id",
              "window"
            ],
            "title": "GetMonitorHistoryArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "Failure": {
                "description": "One failing observation window.",
                "properties": {
                  "at": {
                    "description": "RFC 3339 start of the failure.",
                    "type": "string"
                  },
                  "error": {
                    "description": "Sampled error text. Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "state": {
                    "description": "`down` or `error`.",
                    "type": "string"
                  }
                },
                "required": [
                  "at",
                  "state"
                ],
                "type": "object"
              },
              "IncidentWindow": {
                "description": "One incident window (a contiguous failing run).",
                "properties": {
                  "counts_as_downtime": {
                    "description": "`false` when this window is listed but explains none of the `uptime` gap.",
                    "type": "boolean"
                  },
                  "opened_at": {
                    "description": "RFC 3339 incident start.",
                    "type": "string"
                  },
                  "resolved_at": {
                    "description": "RFC 3339 incident end, or `null` while ongoing.",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "opened_at",
                  "counts_as_downtime"
                ],
                "type": "object"
              },
              "LatencyPoint": {
                "description": "One latency sample bucket.",
                "properties": {
                  "at": {
                    "description": "RFC 3339 bucket start.",
                    "type": "string"
                  },
                  "p50_ms": {
                    "description": "Median / 95th / 99th-percentile duration over the bucket, in ms.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "p95_ms": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "p99_ms": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "at",
                  "p50_ms",
                  "p95_ms",
                  "p99_ms"
                ],
                "type": "object"
              },
              "RegionHealth": {
                "description": "One region's share of a monitor's window, straight from its own checks.",
                "properties": {
                  "last_status": {
                    "description": "This region's last observation: `up`, `down`, `degraded`, `error`, or\n`no_data`.",
                    "type": "string"
                  },
                  "p50_ms": {
                    "description": "Median / 95th / 99th-percentile duration over the window, in ms.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "p95_ms": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "p99_ms": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "region": {
                    "description": "Region id (see `list_regions`).",
                    "type": "string"
                  },
                  "samples": {
                    "description": "Checks this region ran in the window.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "up": {
                    "description": "How many of them passed.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "uptime_pct": {
                    "description": "`up` over `samples`. Raw per-check rate, so it can read lower than the\nmonitor's headline `uptime`, which counts only confirmed incidents.",
                    "format": "double",
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                },
                "required": [
                  "region",
                  "samples",
                  "up",
                  "p50_ms",
                  "p95_ms",
                  "p99_ms",
                  "last_status"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_monitor_history` result, bounded to the requested window.",
            "properties": {
              "failures": {
                "description": "Confirmed failures on the monitor as a whole. A `region` filter does not\nnarrow these: an incident is raised for the monitor, not per region.",
                "items": {
                  "$ref": "#/$defs/Failure"
                },
                "type": "array"
              },
              "incidents": {
                "description": "Incident windows on the monitor as a whole, unnarrowed by `region` for\nthe same reason as `failures`.",
                "items": {
                  "$ref": "#/$defs/IncidentWindow"
                },
                "type": "array"
              },
              "latency_series": {
                "items": {
                  "$ref": "#/$defs/LatencyPoint"
                },
                "type": "array"
              },
              "region": {
                "description": "The region this answer was narrowed to, or `null` for all of them.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "regions": {
                "description": "Per-region split of the same window, so a partial outage is visible.\nAlways every region the monitor runs in, including under a `region`\nfilter, and empty when it runs in only one. Regions that ran no checks\nin the window are omitted; this reads per-minute data, which is kept for\n30 days, so at the far edge of a `30d` window a region can be short of\nsamples or absent while the headline numbers still cover it.",
                "items": {
                  "$ref": "#/$defs/RegionHealth"
                },
                "type": "array"
              },
              "uptime": {
                "description": "Uptime percentage over the window. `null` when the window holds no\nchecks — that is unknown, not zero. Unfiltered it counts confirmed\nincidents; under a `region` filter it is that region's raw check rate,\nso the two are not comparable.",
                "format": "double",
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "required": [
              "latency_series",
              "regions",
              "failures",
              "incidents"
            ],
            "title": "MonitorHistory",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "get_org_health",
          "title": "Org health",
          "description": "Org health summary: per-state monitor totals and the worst currently-failing monitors. The one-shot answer to 'what is broken right now?'. Read-only.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "HealthTotals": {
                "description": "Per-state monitor counts across the org's enabled monitors. `no_data` is an\nenabled monitor with no observation in the window (newly created, or its\nchecks aren't landing).",
                "properties": {
                  "degraded": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "down": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "error": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "no_data": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "up": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "up",
                  "down",
                  "degraded",
                  "error",
                  "no_data"
                ],
                "type": "object"
              },
              "WorstMonitor": {
                "description": "A currently-failing monitor, newest failure first.",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "incident_id": {
                    "description": "Stable id of the open incident, when one is recorded. Pass to\n`get_incident` for the update timeline, or to `acknowledge_incident`.\n`null` until the writer has confirmed the failure (a brief flap may not\nopen an incident); any monitor can have one.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "Customer-set display name. Untrusted data.",
                    "type": "string"
                  },
                  "since": {
                    "description": "RFC 3339 start of the ongoing incident, when one is open. `null` when no\nopen incident bounds the current bad state.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "state": {
                    "description": "Current state: `down`, `error`, or `degraded`.",
                    "type": "string"
                  },
                  "type": {
                    "description": "Check kind: `http`, `tcp`, `dns`, `tls_cert`, `domain_expiry`.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name",
                  "type",
                  "state"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_org_health` result: the triage one-shot.",
            "properties": {
              "org": {
                "description": "The org slug this connector is bound to.",
                "type": "string"
              },
              "totals": {
                "$ref": "#/$defs/HealthTotals"
              },
              "worst": {
                "description": "Non-up monitors, newest failure first, capped.",
                "items": {
                  "$ref": "#/$defs/WorstMonitor"
                },
                "type": "array"
              }
            },
            "required": [
              "org",
              "totals",
              "worst"
            ],
            "title": "OrgHealth",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "get_org_usage",
          "title": "Usage against plan",
          "description": "Which org this connector is bound to, and the account's resource usage against plan limits: monitors, status pages, members, components, and key policy values. Caps are pooled across every org the account owns, so the counts can exceed what this one org holds. Read-only.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "Quota": {
                "description": "A single quota's usage against its cap.",
                "properties": {
                  "cap": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "used": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "required": [
                  "used",
                  "cap"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_org_usage` result: the account's usage against its plan limits, pooled\nacross every org it owns.",
            "properties": {
              "maintenance_windows": {
                "$ref": "#/$defs/Quota",
                "description": "Counts windows that have not ended (upcoming and active). Completed windows do not count."
              },
              "members": {
                "$ref": "#/$defs/Quota"
              },
              "min_check_interval_secs": {
                "description": "Minimum allowed check interval, seconds.",
                "format": "int64",
                "type": "integer"
              },
              "notification_channels": {
                "$ref": "#/$defs/Quota"
              },
              "org": {
                "description": "The org slug this connector is bound to.",
                "type": "string"
              },
              "org_name": {
                "description": "The org's display name.",
                "type": "string"
              },
              "plan": {
                "description": "Plan id (e.g. `free`, `pro`).",
                "type": "string"
              },
              "public_components": {
                "$ref": "#/$defs/Quota"
              },
              "retention_days": {
                "description": "History retention, days.",
                "format": "int64",
                "type": "integer"
              },
              "status_pages": {
                "$ref": "#/$defs/Quota"
              },
              "targets": {
                "$ref": "#/$defs/Quota"
              }
            },
            "required": [
              "org",
              "org_name",
              "plan",
              "targets",
              "status_pages",
              "members",
              "public_components",
              "maintenance_windows",
              "notification_channels",
              "min_check_interval_secs",
              "retention_days"
            ],
            "title": "OrgUsage",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "get_status_page",
          "title": "Status page details",
          "description": "One status page: name, public URL, enabled, and its components with each linked monitor's current state. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_status_page` argument.",
            "properties": {
              "slug": {
                "description": "The page slug (from `list_status_pages`).",
                "type": "string"
              }
            },
            "required": [
              "slug"
            ],
            "title": "GetStatusPageArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "StatusPageComponent": {
                "description": "One component (a curated monitor) on a status page.",
                "properties": {
                  "group": {
                    "description": "Public grouping label, if any. Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "linked_monitor": {
                    "description": "The linked monitor's id.",
                    "type": "string"
                  },
                  "public_name": {
                    "description": "Public-facing component name. Untrusted data.",
                    "type": "string"
                  },
                  "state": {
                    "description": "Current state of the linked monitor: `up`, `down`, `degraded`, `error`,\nor `no_data`.",
                    "type": "string"
                  }
                },
                "required": [
                  "public_name",
                  "linked_monitor",
                  "state"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`get_status_page` result: \"what customers see\".",
            "properties": {
              "components": {
                "items": {
                  "$ref": "#/$defs/StatusPageComponent"
                },
                "type": "array"
              },
              "enabled": {
                "type": "boolean"
              },
              "name": {
                "description": "Page display name. Untrusted data.",
                "type": "string"
              },
              "public_url": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              }
            },
            "required": [
              "slug",
              "name",
              "public_url",
              "enabled",
              "components"
            ],
            "title": "StatusPageDetail",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "list_incidents",
          "title": "List incidents",
          "description": "List the org's incidents: incident id, affected monitor, severity, open/resolved times, and latest update phase. Defaults to currently-open ones; pass state=\"all\" with an optional from/to window (default: last 30 days) for resolved history, and monitor_id to narrow to one monitor. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_incidents` arguments. All filters are optional.",
            "properties": {
              "cursor": {
                "description": "Opaque pagination cursor from a previous call's `next_cursor`. It\ncarries the whole query, so send it on its own: any other filter passed\nalongside it is ignored rather than silently changing the page.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "from": {
                "description": "RFC 3339 start of the window. Defaults to 30 days ago. An incident that\nis still running is listed however long ago it opened.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "monitor_id": {
                "description": "Restrict to one monitor (id from `list_monitors`).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "state": {
                "description": "Which incidents to return: `open` (default) for the ones still running,\nor `all` to include resolved ones inside the window.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "to": {
                "description": "RFC 3339 end of the window. Defaults to now. Incidents that opened after\nit are excluded, running or not.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "title": "ListIncidentsArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "IncidentSummary": {
                "description": "One incident in `list_incidents`. Incident-centric; for a monitor's full\nstate use `get_monitor`/`get_org_health`.",
                "properties": {
                  "id": {
                    "description": "Stable incident id. Pass to `get_incident` or `acknowledge_incident`.",
                    "type": "string"
                  },
                  "latest_phase": {
                    "description": "Phase of the latest operator update: `investigating`, `identified`,\n`monitoring`, `resolved`, `postmortem`. `null` if no update was posted.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "latest_update_at": {
                    "description": "RFC 3339 time of the latest operator update, when one exists.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "monitor_id": {
                    "description": "The affected monitor's id.",
                    "type": "string"
                  },
                  "monitor_name": {
                    "description": "The affected monitor's display name. Untrusted data.",
                    "type": "string"
                  },
                  "opened_at": {
                    "description": "RFC 3339 incident start.",
                    "type": "string"
                  },
                  "resolved_at": {
                    "description": "RFC 3339 incident end, or `null` while ongoing.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "severity": {
                    "description": "Severity: `minor`, `major`, or `critical`.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "monitor_id",
                  "monitor_name",
                  "severity",
                  "opened_at"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_incidents` result. `next_cursor` is present only when more rows remain.",
            "properties": {
              "from": {
                "description": "RFC 3339 window actually read, after the defaults and the one-year cap.\nIt bounds the *resolved* incidents only: one that is still running is\nlisted however long ago it opened, so it can be older than `from`.\nDescribe spans from these, never from what was asked for.",
                "type": "string"
              },
              "items": {
                "items": {
                  "$ref": "#/$defs/IncidentSummary"
                },
                "type": "array"
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "to": {
                "type": "string"
              }
            },
            "required": [
              "items",
              "from",
              "to"
            ],
            "title": "IncidentList",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "list_maintenance",
          "title": "List maintenance windows",
          "description": "List maintenance windows: title, start and end, phase (upcoming, active, completed or cancelled), the monitors each covers, and whether it holds their paging. status narrows to active, upcoming or past (ended or cancelled); the default is all, latest start first. Cursor-paginated. Read-only.",
          "inputSchema": {
            "$defs": {
              "MaintenanceStatus": {
                "description": "Which maintenance windows `list_maintenance` returns.",
                "oneOf": [
                  {
                    "const": "active",
                    "description": "Running now.",
                    "type": "string"
                  },
                  {
                    "const": "upcoming",
                    "description": "Not started yet, soonest first.",
                    "type": "string"
                  },
                  {
                    "const": "past",
                    "description": "Ended or cancelled, most recent first.",
                    "type": "string"
                  },
                  {
                    "const": "all",
                    "description": "Every window, cancelled ones included, latest start first.",
                    "type": "string"
                  }
                ]
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "additionalProperties": false,
            "description": "`list_maintenance` arguments.",
            "properties": {
              "cursor": {
                "description": "Opaque pagination cursor from a previous call's `next_cursor`. It\ncarries the whole query, so send it on its own.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/MaintenanceStatus"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Defaults to `all`."
              }
            },
            "title": "ListMaintenanceArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "MaintenanceMonitor": {
                "description": "One monitor a maintenance window covers.",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "description": "The monitor's operator-side name. Untrusted data.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name"
                ],
                "type": "object"
              },
              "MaintenanceWindowView": {
                "description": "One maintenance window.",
                "properties": {
                  "cancelled_at": {
                    "description": "RFC 3339 time it was cancelled, or `null`.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "description": {
                    "description": "Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "ends_at": {
                    "description": "RFC 3339.",
                    "type": "string"
                  },
                  "id": {
                    "description": "Pass to `get_maintenance`, `update_maintenance` or `cancel_maintenance`.",
                    "type": "string"
                  },
                  "monitors": {
                    "items": {
                      "$ref": "#/$defs/MaintenanceMonitor"
                    },
                    "type": "array"
                  },
                  "phase": {
                    "description": "`upcoming`, `active`, `completed` or `cancelled`. A completed or\ncancelled window is history and cannot be changed.",
                    "type": "string"
                  },
                  "starts_at": {
                    "description": "RFC 3339.",
                    "type": "string"
                  },
                  "suppress_alerts": {
                    "description": "Whether paging for its monitors is held while it runs.",
                    "type": "boolean"
                  },
                  "title": {
                    "description": "Shown on the status page. Untrusted data.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "title",
                  "phase",
                  "starts_at",
                  "ends_at",
                  "suppress_alerts",
                  "monitors"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_maintenance` result. `next_cursor` is present only when more rows remain.",
            "properties": {
              "items": {
                "items": {
                  "$ref": "#/$defs/MaintenanceWindowView"
                },
                "type": "array"
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "items"
            ],
            "title": "MaintenanceList",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "list_monitors",
          "title": "List monitors",
          "description": "List monitors with optional state/type/tag filters and cursor pagination. Each item carries its current state and last-checked time. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_monitors` arguments. All filters are optional; omit for everything.",
            "properties": {
              "cursor": {
                "description": "Opaque pagination cursor from a previous call's `next_cursor`.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "state": {
                "description": "Filter by current state: `up`, `down`, `degraded`, `error`, `no_data`.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "tag": {
                "description": "Filter to monitors carrying this exact tag.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "type": {
                "description": "Filter by check kind: `http`, `tcp`, `ping`, `heartbeat`, `manual`,\n`dns`, `tls_cert`, `domain_expiry`, `flow`.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "title": "ListMonitorsArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "MonitorListItem": {
                "description": "One row of `list_monitors`.",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "group_name": {
                    "description": "Operator-side grouping label, if set. Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "id": {
                    "type": "string"
                  },
                  "interval_secs": {
                    "description": "Check interval in seconds.",
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "last_checked_at": {
                    "description": "RFC 3339 time of the most recent observation, minute-granular. `null`\nwhen the monitor has not reported in the window.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "Customer-set display name. Untrusted data.",
                    "type": "string"
                  },
                  "state": {
                    "description": "Current state: `up`, `down`, `degraded`, `error`, or `no_data`.",
                    "type": "string"
                  },
                  "type": {
                    "description": "Check kind: `http`, `tcp`, `ping`, `heartbeat`, `manual`, `dns`,\n`tls_cert`, `domain_expiry`, `flow`.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name",
                  "type",
                  "state",
                  "interval_secs",
                  "enabled"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_monitors` result. `next_cursor` is present only when more rows remain;\npass it back as `cursor` to fetch the next page.",
            "properties": {
              "items": {
                "items": {
                  "$ref": "#/$defs/MonitorListItem"
                },
                "type": "array"
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "items"
            ],
            "title": "MonitorList",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "list_notification_channels",
          "title": "List notification channels",
          "description": "The org's notification channels: id, operator-set name, kind (email, slack, telegram, webhook, and so on), and whether the channel is enabled. Two flags say a channel is not working even where it reads as ready: awaiting_verification for an email address nobody confirmed, and not_delivering for an enabled channel whose recent alerts all failed to arrive. auto_bind_tags is the channel's tag rule: it also pages any monitor carrying one of those tags, so a monitor with no binding can still be covered. Channel settings are withheld, since they hold webhook URLs and bot tokens. Channels are created in the Uptimepage app, not here. Read-only.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "ChannelItem": {
                "description": "One notification channel, named well enough to bind a monitor to it. The\nchannel's own settings are withheld: they carry the webhook URLs, bot tokens\nand addresses that make the channel work.",
                "properties": {
                  "acknowledge_button": {
                    "description": "Alerts for an open incident carry an Acknowledge button. False for a\nkind that cannot carry one.",
                    "type": "boolean"
                  },
                  "auto_bind_tags": {
                    "description": "Tag rule: this channel also pages any monitor carrying one of these\ntags, on top of the monitors bound to it. Empty means no rule.\nOperator-set. Untrusted data.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "awaiting_verification": {
                    "description": "An email channel whose address was never confirmed. It is enabled and\nstill delivers nothing, so binding a monitor to it is not enough.",
                    "type": "boolean"
                  },
                  "enabled": {
                    "description": "A disabled channel stays bound to its monitors and delivers nothing.",
                    "type": "boolean"
                  },
                  "id": {
                    "type": "string"
                  },
                  "kind": {
                    "description": "`email`, `slack`, `telegram`, `webhook`, and so on.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Operator-set name. Untrusted data.",
                    "type": "string"
                  },
                  "not_delivering": {
                    "description": "Enabled, but nothing has landed for a run of deliveries. Alerts sent\nhere are not arriving.",
                    "type": "boolean"
                  },
                  "resolve_button": {
                    "description": "Alerts for an open incident carry a Resolve button. Off by default,\nand false for a kind that cannot carry one.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "name",
                  "kind",
                  "enabled",
                  "awaiting_verification",
                  "not_delivering",
                  "auto_bind_tags",
                  "acknowledge_button",
                  "resolve_button"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_notification_channels` result.",
            "properties": {
              "items": {
                "items": {
                  "$ref": "#/$defs/ChannelItem"
                },
                "type": "array"
              }
            },
            "required": [
              "items"
            ],
            "title": "ChannelList",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "list_regions",
          "title": "List probe regions",
          "description": "The fleet's probe regions: id, display name, city, country, continent, and whether each is on by default for a new monitor. Reports `max_regions` only when the plan reaches fewer regions than the catalog lists, so a set too large to be accepted is visible before it is sent. Use it to pass a valid `region` to get_monitor_history, and to read where a check would run from. This is a catalog, not a menu to fill: leave `create_monitor.regions` unset unless the user named the places they want covered. Read-only.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "RegionItem": {
                "description": "One probe region in the fleet catalog.",
                "properties": {
                  "city": {
                    "type": "string"
                  },
                  "continent": {
                    "description": "Continent slug, when set.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "country_code": {
                    "description": "ISO 3166-1 alpha-2 country code, when set.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "default_selected": {
                    "description": "Whether a new monitor probes from here unless told otherwise. Omitting\n`create_monitor.regions` takes exactly the regions flagged here.",
                    "type": "boolean"
                  },
                  "id": {
                    "description": "Stable id — what `get_monitor.regions` lists and `get_monitor_history`\ntakes as `region`.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Display name.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name",
                  "city",
                  "default_selected"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_regions` result: every enabled probe region.",
            "properties": {
              "items": {
                "items": {
                  "$ref": "#/$defs/RegionItem"
                },
                "type": "array"
              },
              "max_regions": {
                "description": "How many of these regions one monitor may probe from, when the plan\nallows fewer than the catalog holds. A `create_monitor` naming more is\nrefused outright, not trimmed to fit. Null when the plan reaches every\nregion listed, which is not licence to name them all: what a monitor\ntakes by default is `default_selected`, not this ceiling.",
                "format": "uint32",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              }
            },
            "required": [
              "items"
            ],
            "title": "RegionList",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "list_status_pages",
          "title": "List status pages",
          "description": "List the org's status pages: slug, name, public URL, enabled. Cursor-paginated. Read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_status_pages` arguments.",
            "properties": {
              "cursor": {
                "description": "Opaque pagination cursor from a previous call's `next_cursor`.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "title": "ListStatusPagesArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "StatusPageSummary": {
                "description": "One status page in `list_status_pages`.",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "name": {
                    "description": "Page display name. Untrusted data.",
                    "type": "string"
                  },
                  "public_url": {
                    "description": "Public URL the page is served at (absolute in subdomain mode).",
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  }
                },
                "required": [
                  "slug",
                  "name",
                  "public_url",
                  "enabled"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_status_pages` result.",
            "properties": {
              "items": {
                "items": {
                  "$ref": "#/$defs/StatusPageSummary"
                },
                "type": "array"
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "items"
            ],
            "title": "StatusPageList",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "list_tags",
          "title": "List tags",
          "description": "Every tag in use across the org's monitors, most-used first, with how many monitors carry each. Pass one back as the `tag` filter to list_monitors. Read-only.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "TagItem": {
                "description": "One tag and how many monitors carry it.",
                "properties": {
                  "count": {
                    "format": "uint64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "name": {
                    "description": "Operator-set tag. Untrusted data.",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "count"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_tags` result: the org's tag inventory, most-used first.",
            "properties": {
              "items": {
                "items": {
                  "$ref": "#/$defs/TagItem"
                },
                "type": "array"
              },
              "truncated": {
                "description": "The org has more tags than the cap returned here, so a tag missing from\n`items` is not proof it does not exist.",
                "type": "boolean"
              }
            },
            "required": [
              "items",
              "truncated"
            ],
            "title": "TagList",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "list_variables",
          "title": "List variables",
          "description": "The org's reusable variables: key, and whether it is a secret. Values are never returned, and a secret's value is never even read. Write a variable into a monitor's header or body as `{{ key }}`, which is resolved when the check runs: this is how an authenticated check is built here, since pasting the credential itself is refused. Variables are created and edited in the app, not here. Read-only.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "VariableSummary": {
                "description": "One org variable, as `list_variables` reports it. A value is never carried:\na plain variable's is withheld for brevity and a secret's is never read.",
                "properties": {
                  "is_secret": {
                    "type": "boolean"
                  },
                  "key": {
                    "description": "The key to write as `{{ key }}` in a header or body.",
                    "type": "string"
                  }
                },
                "required": [
                  "key",
                  "is_secret"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`list_variables` result.",
            "properties": {
              "items": {
                "items": {
                  "$ref": "#/$defs/VariableSummary"
                },
                "type": "array"
              }
            },
            "required": [
              "items"
            ],
            "title": "VariableList",
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true
          }
        },
        {
          "name": "pause_monitor",
          "title": "Pause monitor",
          "description": "Pause a monitor (stop its checks until resumed). For planned work, create_maintenance holds paging instead while the checks keep running. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`run_check_now` / `pause_monitor` / `resume_monitor` argument.",
            "properties": {
              "id": {
                "description": "The monitor id (from `list_monitors`).",
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "title": "MonitorIdArg",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`pause_monitor` / `resume_monitor` result.",
            "properties": {
              "enabled": {
                "description": "The monitor's enabled state after the change.",
                "type": "boolean"
              },
              "id": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "enabled"
            ],
            "title": "MonitorStateResult",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "post_incident_update",
          "title": "Post incident update",
          "description": "Post a public, customer-facing update to an incident's status-page timeline (phase + message). This is what your subscribers and status-page visitors see. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`post_incident_update` argument: appends a public, customer-facing entry to\nthe incident's status-page timeline.",
            "properties": {
              "id": {
                "description": "The incident id.",
                "type": "string"
              },
              "message": {
                "description": "Public message shown on the status page.",
                "type": "string"
              },
              "phase": {
                "description": "Optional phase: `investigating`, `identified`, `monitoring`,\n`resolved`, `postmortem`. Defaults to `investigating`.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id",
              "message"
            ],
            "title": "PostIncidentUpdateArgs",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`post_incident_update` result.",
            "properties": {
              "incident_id": {
                "type": "string"
              },
              "posted_at": {
                "description": "RFC 3339 time the update was posted.",
                "type": "string"
              }
            },
            "required": [
              "incident_id",
              "posted_at"
            ],
            "title": "IncidentUpdatePosted",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "publish_incident",
          "title": "Publish incident",
          "description": "Publish an incident so it appears on every status page carrying the affected monitor, optionally seeding the public title and description. An incident with no monitor needs `status_page_ids` naming the pages to show it on; the list replaces its pages, so start from `get_incident`'s `status_page_ids`. Status-page subscribers may be notified. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`publish_incident` argument. The optional narration seeds what customers\nread on the status page; omitted fields keep whatever is stored.",
            "properties": {
              "id": {
                "description": "The incident id.",
                "type": "string"
              },
              "public_description": {
                "description": "Public summary shown under the headline.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "public_title": {
                "description": "Public headline shown on the status page.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "status_page_ids": {
                "description": "Status page ids (from `list_status_pages`) for an incident with no\nmonitor; replaces its pages, so start from `get_incident`'s\n`status_page_ids` to add or drop one. Leave unset for a monitor's incident,\nwhich shows on the pages carrying that monitor.",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "title": "PublishIncidentArgs",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`publish_incident` / `unpublish_incident` result.",
            "properties": {
              "incident_id": {
                "type": "string"
              },
              "visibility": {
                "description": "Visibility after the change: `public` or `internal`.",
                "type": "string"
              }
            },
            "required": [
              "incident_id",
              "visibility"
            ],
            "title": "IncidentVisibilityResult",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "resolve_incident",
          "title": "Resolve incident",
          "description": "Resolve an incident (mark the operational state resolved). Internal only — does not post to the public status page. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`acknowledge_incident` / `resolve_incident` argument.",
            "properties": {
              "id": {
                "description": "The incident id.",
                "type": "string"
              },
              "note": {
                "description": "Optional internal note recorded on the incident's activity timeline.\nThis is operator-facing, not published to the public status page.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "title": "IncidentActionArgs",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "Result of an incident lifecycle action.",
            "properties": {
              "acknowledged_at": {
                "description": "RFC 3339 acknowledged time, when set.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "incident_id": {
                "type": "string"
              },
              "resolved_at": {
                "description": "RFC 3339 resolved (ended) time, when set.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "state": {
                "description": "Operational state after the action: `triggered`, `acknowledged`, `resolved`.",
                "type": "string"
              }
            },
            "required": [
              "incident_id",
              "state"
            ],
            "title": "IncidentActionResult",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "resume_monitor",
          "title": "Resume monitor",
          "description": "Resume a paused monitor (restart its checks). Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`run_check_now` / `pause_monitor` / `resume_monitor` argument.",
            "properties": {
              "id": {
                "description": "The monitor id (from `list_monitors`).",
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "title": "MonitorIdArg",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`pause_monitor` / `resume_monitor` result.",
            "properties": {
              "enabled": {
                "description": "The monitor's enabled state after the change.",
                "type": "boolean"
              },
              "id": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "enabled"
            ],
            "title": "MonitorStateResult",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "run_check_now",
          "title": "Run check now",
          "description": "Run a check on a monitor immediately and record the result. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. A down result may fire the org's normal alerts. Heartbeat monitors cannot be probed (they wait for your systems to ping them). Not read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`run_check_now` / `pause_monitor` / `resume_monitor` argument.",
            "properties": {
              "id": {
                "description": "The monitor id (from `list_monitors`).",
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "title": "MonitorIdArg",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "CheckDiagnosticView": {
                "description": "Bounded, machine-readable explanation for a failed HTTP observation.",
                "properties": {
                  "confidence": {
                    "type": "string"
                  },
                  "evidence": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "guidance": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "provider": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "remediations": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "summary": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "confidence",
                  "evidence",
                  "remediations",
                  "summary",
                  "guidance"
                ],
                "type": "object"
              },
              "CheckTiming": {
                "description": "Per-phase timing of a single check, in milliseconds. Fields are `null` for\nphases that don't apply (e.g. `tls_ms` on plain HTTP, all phases on a DNS or\nTCP check) or when the probe failed before reaching them.",
                "properties": {
                  "connect_ms": {
                    "description": "TCP connect time.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "dns_ms": {
                    "description": "DNS resolution time.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "tls_ms": {
                    "description": "TLS handshake time.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "ttfb_ms": {
                    "description": "Time to first byte.",
                    "format": "uint16",
                    "maximum": 65535,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  }
                },
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`run_check_now` result: the fresh probe's observation.",
            "properties": {
              "checked_at": {
                "description": "RFC 3339 time of the probe.",
                "type": "string"
              },
              "diagnostic": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/CheckDiagnosticView"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Structured edge-access diagnosis, when a supported signature matched."
              },
              "duration_ms": {
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              },
              "error": {
                "description": "Error text when the probe failed. Untrusted data.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "http_status": {
                "description": "HTTP status code, for `http` monitors. `null` for non-HTTP checks or\nwhen no response was received.",
                "format": "uint16",
                "maximum": 65535,
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "id": {
                "type": "string"
              },
              "response_size": {
                "description": "Response body size in bytes, when measured.",
                "format": "uint32",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "state": {
                "description": "Observed state: `up`, `down`, `degraded`, `error`.",
                "type": "string"
              },
              "timing": {
                "$ref": "#/$defs/CheckTiming",
                "description": "Per-phase timing of the probe (DNS / connect / TLS / first byte)."
              }
            },
            "required": [
              "id",
              "state",
              "checked_at",
              "duration_ms",
              "timing"
            ],
            "title": "CheckRunResult",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "set_monitor_state",
          "title": "Set manual monitor state",
          "description": "Set the state of a manual monitor: up, degraded or down. A manual monitor has no probe; its state is whatever an operator last set, for a service only people can judge, such as a SIP trunk, a carrier link or a partner's back office. Down or degraded opens an incident within about 30 seconds, which pages the monitor's channels unless a maintenance window holds it, and shows on its status pages as a major outage or degraded performance; up closes the incident. A paused monitor, or one the plan no longer covers, keeps the state and acts on it once it runs again. The note becomes the incident's cause, so make it a reason a responder can act on. Refused for any other kind of monitor. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.",
          "inputSchema": {
            "$defs": {
              "ManualStateArg": {
                "description": "What an operator says about a manual monitor.",
                "oneOf": [
                  {
                    "const": "up",
                    "description": "Working. Closes the open incident.",
                    "type": "string"
                  },
                  {
                    "const": "degraded",
                    "description": "Working, but impaired. Shows as degraded performance on status pages.",
                    "type": "string"
                  },
                  {
                    "const": "down",
                    "description": "Not working. Shows as a major outage on status pages.",
                    "type": "string"
                  }
                ]
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "additionalProperties": false,
            "description": "`set_monitor_state` arguments.",
            "properties": {
              "id": {
                "description": "The id of a `manual` monitor (from `list_monitors`).",
                "type": "string"
              },
              "note": {
                "description": "Why, in one line of at most 200 characters. It becomes the incident's\ncause and reaches whoever is paged. Omit for none; it replaces the\nprevious note.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "state": {
                "$ref": "#/$defs/ManualStateArg"
              }
            },
            "required": [
              "id",
              "state"
            ],
            "title": "SetMonitorStateArgs",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`set_monitor_state` result.",
            "properties": {
              "changed": {
                "description": "`false` when the monitor already had this state and note.",
                "type": "boolean"
              },
              "id": {
                "type": "string"
              },
              "note": {
                "description": "Untrusted data.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "set_at": {
                "description": "RFC 3339 time the state was set.",
                "type": "string"
              },
              "state": {
                "description": "`up`, `degraded` or `down`.",
                "type": "string"
              }
            },
            "required": [
              "id",
              "state",
              "set_at",
              "changed"
            ],
            "title": "ManualStateSet",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "unpublish_incident",
          "title": "Unpublish incident",
          "description": "Hide a published incident from the public status pages again. Its operator timeline is untouched. Asks for confirmation where the client can show a prompt; otherwise runs on the token's scope. Not read-only; idempotent.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "Argument of the incident tools that take only an id.",
            "properties": {
              "id": {
                "description": "The incident id (from `list_incidents` or `get_org_health`).",
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "title": "IncidentIdArg",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`publish_incident` / `unpublish_incident` result.",
            "properties": {
              "incident_id": {
                "type": "string"
              },
              "visibility": {
                "description": "Visibility after the change: `public` or `internal`.",
                "type": "string"
              }
            },
            "required": [
              "incident_id",
              "visibility"
            ],
            "title": "IncidentVisibilityResult",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "update_maintenance",
          "title": "Edit maintenance",
          "description": "Edit an upcoming or running maintenance window: its title, description, start, end, the monitors it covers (monitor_ids replaces the whole set) or whether it holds their paging. end_now ends a running window at once and keeps it as completed work. A completed or cancelled window is history and is refused. Shows the old and new value of every field before it runs, where the client can show a prompt; otherwise runs on the token's scope. Not read-only.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "additionalProperties": false,
            "description": "`update_maintenance` arguments. Every field except `id` is optional; omit\nwhat should stay as it is.",
            "properties": {
              "description": {
                "description": "At most 5000 characters. An empty string clears it.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "end_now": {
                "description": "End a running window now. Cannot be combined with `starts_at` or `ends_at`.",
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "ends_at": {
                "description": "RFC 3339, in the future. To stop a running window now, send `end_now` instead.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "description": "The window id (from `list_maintenance`).",
                "type": "string"
              },
              "monitor_ids": {
                "description": "Replaces the whole set, by id from `list_monitors`. Read the window\nfirst: a monitor left out stops being covered.",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ]
              },
              "starts_at": {
                "description": "RFC 3339.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "suppress_alerts": {
                "description": "Hold paging for its monitors while it runs.",
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "title": {
                "description": "At most 200 characters.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "title": "UpdateMaintenanceArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "FieldChange": {
                "description": "One field an update actually moved.",
                "properties": {
                  "field": {
                    "type": "string"
                  },
                  "from": {
                    "description": "The value before and after, rendered for reporting back to a human.",
                    "type": "string"
                  },
                  "to": {
                    "type": "string"
                  }
                },
                "required": [
                  "field",
                  "from",
                  "to"
                ],
                "type": "object"
              },
              "MaintenanceMonitor": {
                "description": "One monitor a maintenance window covers.",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "description": "The monitor's operator-side name. Untrusted data.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name"
                ],
                "type": "object"
              },
              "MaintenanceWindowView": {
                "description": "One maintenance window.",
                "properties": {
                  "cancelled_at": {
                    "description": "RFC 3339 time it was cancelled, or `null`.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "description": {
                    "description": "Untrusted data.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "ends_at": {
                    "description": "RFC 3339.",
                    "type": "string"
                  },
                  "id": {
                    "description": "Pass to `get_maintenance`, `update_maintenance` or `cancel_maintenance`.",
                    "type": "string"
                  },
                  "monitors": {
                    "items": {
                      "$ref": "#/$defs/MaintenanceMonitor"
                    },
                    "type": "array"
                  },
                  "phase": {
                    "description": "`upcoming`, `active`, `completed` or `cancelled`. A completed or\ncancelled window is history and cannot be changed.",
                    "type": "string"
                  },
                  "starts_at": {
                    "description": "RFC 3339.",
                    "type": "string"
                  },
                  "suppress_alerts": {
                    "description": "Whether paging for its monitors is held while it runs.",
                    "type": "boolean"
                  },
                  "title": {
                    "description": "Shown on the status page. Untrusted data.",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "title",
                  "phase",
                  "starts_at",
                  "ends_at",
                  "suppress_alerts",
                  "monitors"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`update_maintenance` result.",
            "properties": {
              "changes": {
                "description": "What moved. Empty when every value sent already matched, in which case\nnothing was written and no confirmation was asked for.",
                "items": {
                  "$ref": "#/$defs/FieldChange"
                },
                "type": "array"
              },
              "window": {
                "$ref": "#/$defs/MaintenanceWindowView"
              }
            },
            "required": [
              "window",
              "changes"
            ],
            "title": "MaintenanceUpdateResult",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "update_monitor",
          "title": "Retune monitor",
          "description": "Change how loudly a monitor is watched: check interval, alert confirmations, recovery notices, reminder interval, tags, group, the multi-region detection quorum, and which notification channels it alerts (channel_ids replaces the whole set, and needs the channels:read scope). It cannot change what the check watches — name, address, assertions, expected status, headers, body, probe regions and owner are refused. A monitor managed by Terraform is refused outright. Shows the old and new value of every field before it runs, where the client can show a prompt; otherwise runs on the token's scope. Not read-only.",
          "inputSchema": {
            "$defs": {
              "RegionPolicyArg": {
                "additionalProperties": false,
                "description": "How many regions must agree a monitor is down before an incident opens.\n`get_monitor` reads this back in the same shape, so the enum of legal modes\nis one definition rather than a written-out list that can drift.",
                "properties": {
                  "count": {
                    "description": "Required with `mode: \"count\"`, ignored otherwise. Must be between 1 and\nthe number of regions the fleet has; `list_regions` reports them.",
                    "format": "uint32",
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "mode": {
                    "$ref": "#/$defs/RegionPolicyMode"
                  }
                },
                "required": [
                  "mode"
                ],
                "type": "object"
              },
              "RegionPolicyMode": {
                "description": "How the quorum is expressed. `count` carries its number in `count`.",
                "oneOf": [
                  {
                    "const": "any",
                    "description": "One region down is enough.",
                    "type": "string"
                  },
                  {
                    "const": "majority",
                    "description": "More than half of them.",
                    "type": "string"
                  },
                  {
                    "const": "all",
                    "description": "Every region.",
                    "type": "string"
                  },
                  {
                    "const": "count",
                    "description": "A fixed number.",
                    "type": "string"
                  }
                ]
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "additionalProperties": false,
            "description": "`update_monitor` arguments. Every field except `id` is optional; omit what\nshould stay as it is. Name, address or URL, assertions, expected status,\nheaders, body, probe regions and owner are not editable here, and passing\none is an error rather than a silent no-op.",
            "properties": {
              "alert_confirmations": {
                "description": "Consecutive failing checks before the monitor alerts. Minimum 1. Raising\nit quietens a flapping monitor at the cost of alerting later.",
                "format": "uint32",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "channel_ids": {
                "description": "Replaces the whole set of alerted channels, by id from\n`list_notification_channels`. Read the monitor first: a channel left out\nof this list stops being alerted. An empty list silences the monitor.",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ]
              },
              "group_name": {
                "default": null,
                "description": "Operator-side grouping label. Send `null` to clear it; omit to keep it.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "description": "The monitor id (from `list_monitors`).",
                "type": "string"
              },
              "interval_secs": {
                "description": "Seconds between checks. Held to the plan's floor and the check kind's\nown floor, whichever is higher.",
                "format": "uint64",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "notify_recovery": {
                "description": "Whether recovery is announced to the monitor's channels.",
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "region_policy": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/RegionPolicyArg"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Detection quorum across probe regions."
              },
              "renotify_interval_secs": {
                "description": "Seconds before the first reminder while an outage stays unacknowledged;\neach further reminder waits twice as long, up to a day. 0 turns\nreminders off; otherwise at least 60.",
                "format": "uint32",
                "minimum": 0,
                "type": [
                  "integer",
                  "null"
                ]
              },
              "tags": {
                "description": "Replaces the whole tag list. Read the monitor first: a tag left out of\nthis list is removed. At most 50 tags, each at most 50 characters.",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "title": "UpdateMonitorArgs",
            "type": "object"
          },
          "outputSchema": {
            "$defs": {
              "FieldChange": {
                "description": "One field an update actually moved.",
                "properties": {
                  "field": {
                    "type": "string"
                  },
                  "from": {
                    "description": "The value before and after, rendered for reporting back to a human.",
                    "type": "string"
                  },
                  "to": {
                    "type": "string"
                  }
                },
                "required": [
                  "field",
                  "from",
                  "to"
                ],
                "type": "object"
              }
            },
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`update_monitor` result.",
            "properties": {
              "changes": {
                "description": "What moved. Empty when every value sent already matched the stored one,\nin which case nothing was written and no confirmation was asked for.",
                "items": {
                  "$ref": "#/$defs/FieldChange"
                },
                "type": "array"
              },
              "id": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "changes"
            ],
            "title": "MonitorUpdateResult",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "update_status_page",
          "title": "Update status page",
          "description": "Rename a status page, move it to a new slug, or publish and unpublish it. An omitted field is left alone. Changing the slug moves the public URL and breaks existing links. Not read-only; idempotent.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`update_status_page` argument. Every field but `slug` is optional; an\nomitted field is left as it is.",
            "properties": {
              "enabled": {
                "description": "Publish or unpublish the page.",
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "name": {
                "description": "New display name.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "new_slug": {
                "description": "New slug. Changing it moves the public URL and breaks existing links.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "slug": {
                "description": "The page to change, by its current slug.",
                "type": "string"
              }
            },
            "required": [
              "slug"
            ],
            "title": "UpdateStatusPageArgs",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`create_status_page` / `update_status_page` result.",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "public_url": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              }
            },
            "required": [
              "slug",
              "name",
              "public_url",
              "enabled"
            ],
            "title": "StatusPageWritten",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        },
        {
          "name": "update_status_page_component",
          "title": "Update status page component",
          "description": "Change how one monitor is presented on a status page: its public name, description, group or position. An omitted field is left alone. Not read-only; idempotent.",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`update_status_page_component` argument. An omitted field is left as it is.",
            "properties": {
              "monitor_id": {
                "description": "The monitor id whose curation is being changed.",
                "type": "string"
              },
              "public_description": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "public_group": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "public_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "slug": {
                "description": "The page slug (from `list_status_pages`).",
                "type": "string"
              },
              "sort_order": {
                "format": "int32",
                "type": [
                  "integer",
                  "null"
                ]
              }
            },
            "required": [
              "slug",
              "monitor_id"
            ],
            "title": "UpdateComponentArgs",
            "type": "object"
          },
          "outputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "description": "`update_status_page_component` result.",
            "properties": {
              "monitor_id": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              }
            },
            "required": [
              "slug",
              "monitor_id"
            ],
            "title": "ComponentUpdated",
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "readOnlyHint": false
          }
        }
      ]
    },
    "name": "Uptimepage",
    "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
    "packages": null,
    "pageJsonUrl": "https://www.anchorterminal.com/tools/uptimepage.json",
    "popularity": {
      "githubStars": 37
    },
    "registryName": "dev.uptimepage/uptimepage",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://mcp.uptimepage.dev/mcp"
      }
    ],
    "repository": "https://github.com/uptimepage/uptimepage",
    "reviewed": false,
    "slug": "uptimepage",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=dev.uptimepage/uptimepage",
    "summary": "Monitor uptime and incidents, run checks, and publish status updates from your Uptimepage org.",
    "updatedAt": "2026-08-11T04:11:38Z",
    "url": "https://www.anchorterminal.com/tools/uptimepage",
    "vendor": "uptimepage.dev",
    "vendorUrl": "https://uptimepage.dev/mcp-server",
    "version": "1.0.0",
    "websiteUrl": "https://uptimepage.dev/mcp-server",
    "where": "hosted",
    "why": [
      "vendor"
    ]
  }
}
