hyperping
Uptime, API and server monitoring with outages, reporting, on-call and status pages.
我該用這個嗎
品質與安全性
發現項目(9)
- LOW在 get_on_call_schedule 中
- LOW在 get_escalation_policy 中
- LOW在 list_team_members 中
- LOW在 list_integrations 中
- LOW在 get_integration 中
- LOW在 list_status_pages 中
- LOW在 add_status_page_incident_update 中
- LOW在 edit_status_page_incident_update 中
- LOW在 get_monitor_http_logs 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"hyperping": {
"url": "https://api.hyperping.io/v1/mcp"
}
}
}遠端端點
https://api.hyperping.io/v1/mcpstreamable-http它能做什麼
工具清單
工具(49)
🟢list_monitors(status, page, limit)
Paginated monitors in the project. Optional status filter (up/down/paused/ssl_expiring).
輸入結構描述
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"up",
"down",
"paused",
"ssl_expiring"
],
"description": "Filter by state. \"ssl_expiring\" = SSL expires within 30 days."
},
"page": {
"type": "integer",
"minimum": 0,
"description": "Zero-indexed page. Default 0."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"description": "Rows per page. Default 50, max 200."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_monitor(uuid)
Fetch a single monitor by its UUID.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Monitor UUID (format \"mon_...\")"
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_monitor(name, url, protocol, port, http_method, ...)
Create a new monitor. Requires name+url; add "port" for port checks, "dns_*" for DNS checks.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 1024,
"description": "Human-readable monitor name."
},
"url": {
"type": "string",
"minLength": 2,
"maxLength": 1024,
"description": "Target URL (http) or hostname (icmp/port/dns)."
},
"protocol": {
"type": "string",
"enum": [
"http",
"icmp",
"port",
"dns"
],
"description": "Check protocol. Defaults to \"http\"."
},
"port": {
"type": "integer",
"minimum": 0,
"maximum": 65535,
"description": "TCP port — required when protocol is \"port\"."
},
"http_method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"HEAD",
"DELETE",
"PATCH",
"OPTIONS"
],
"description": "HTTP verb. Defaults to GET."
},
"regions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Probe region codes, e.g. [\"us-east\",\"eu-west\"]. Use [\"*\"] for all."
},
"check_frequency": {
"type": "number",
"description": "Check interval in seconds. Sub-30s requires a business plan."
},
"follow_redirects": {
"type": "boolean",
"description": "Follow 3xx redirects on http monitors."
},
"timeout": {
"type": "integer",
"minimum": 1,
"maximum": 60,
"description": "Request timeout in seconds (default 30)."
},
"expected_status_code": {
"type": [
"string",
"number"
],
"description": "Expected response status: number (200), \"2xx\", or \"1xx-3xx\"."
},
"request_body": {
"type": "string",
"maxLength": 512,
"description": "Body for http requests."
},
"request_headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Header name, e.g. \"Authorization\""
},
"value": {
"type": "string",
"description": "Header value"
}
},
"required": [
"name",
"value"
],
"additionalProperties": false
},
"description": "Custom request headers."
},
"required_keyword": {
"type": "string",
"maxLength": 1024,
"description": "Body must contain this keyword, else flagged down."
},
"paused": {
"type": "boolean",
"description": "Start the monitor in a paused state."
},
"alerts_wait": {
"type": "number",
"description": "Minutes to wait before alerting. -1 disables, 0 is immediate."
},
"dns_record_type": {
"type": "string",
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"NS",
"TXT",
"SOA",
"SRV",
"CAA",
"PTR"
],
"description": "DNS record type (protocol=\"dns\")."
},
"dns_nameserver": {
"type": "string",
"maxLength": 256,
"description": "Custom nameserver for DNS checks."
},
"dns_expected_answer": {
"type": "string",
"maxLength": 1024,
"description": "Expected DNS answer to assert against."
},
"escalation_policy": {
"type": "string",
"maxLength": 128,
"description": "UUID of an escalation policy to link."
},
"group_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"description": "Group to place the monitor in."
}
},
"required": [
"name",
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴update_monitor(uuid, name, url, protocol, port, ...)
Patch a monitor. Pass only fields you want to change; others are preserved.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "UUID of the monitor to update."
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 1024,
"description": "Human-readable monitor name."
},
"url": {
"type": "string",
"minLength": 2,
"maxLength": 1024,
"description": "Target URL (http) or hostname (icmp/port/dns)."
},
"protocol": {
"type": "string",
"enum": [
"http",
"icmp",
"port",
"dns"
],
"description": "Check protocol. Defaults to \"http\"."
},
"port": {
"type": "integer",
"minimum": 0,
"maximum": 65535,
"description": "TCP port — required when protocol is \"port\"."
},
"http_method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"HEAD",
"DELETE",
"PATCH",
"OPTIONS"
],
"description": "HTTP verb. Defaults to GET."
},
"regions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Probe region codes, e.g. [\"us-east\",\"eu-west\"]. Use [\"*\"] for all."
},
"check_frequency": {
"type": "number",
"description": "Check interval in seconds. Sub-30s requires a business plan."
},
"follow_redirects": {
"type": "boolean",
"description": "Follow 3xx redirects on http monitors."
},
"timeout": {
"type": "integer",
"minimum": 1,
"maximum": 60,
"description": "Request timeout in seconds (default 30)."
},
"expected_status_code": {
"type": [
"string",
"number"
],
"description": "Expected response status: number (200), \"2xx\", or \"1xx-3xx\"."
},
"request_body": {
"type": "string",
"maxLength": 512,
"description": "Body for http requests."
},
"request_headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Header name, e.g. \"Authorization\""
},
"value": {
"type": "string",
"description": "Header value"
}
},
"required": [
"name",
"value"
],
"additionalProperties": false
},
"description": "Custom request headers."
},
"required_keyword": {
"type": "string",
"maxLength": 1024,
"description": "Body must contain this keyword, else flagged down."
},
"paused": {
"type": "boolean",
"description": "Start the monitor in a paused state."
},
"alerts_wait": {
"type": "number",
"description": "Minutes to wait before alerting. -1 disables, 0 is immediate."
},
"dns_record_type": {
"type": "string",
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"NS",
"TXT",
"SOA",
"SRV",
"CAA",
"PTR"
],
"description": "DNS record type (protocol=\"dns\")."
},
"dns_nameserver": {
"type": "string",
"maxLength": 256,
"description": "Custom nameserver for DNS checks."
},
"dns_expected_answer": {
"type": "string",
"maxLength": 1024,
"description": "Expected DNS answer to assert against."
},
"escalation_policy": {
"type": "string",
"maxLength": 128,
"description": "UUID of an escalation policy to link."
},
"group_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"description": "Group to place the monitor in."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡pause_monitor(uuid)
Pause a monitor — no checks run and no alerts fire. Same as update_monitor with paused=true.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "UUID of the monitor to pause."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡resume_monitor(uuid)
Resume a paused monitor. Same as update_monitor with paused=false.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "UUID of the monitor to resume."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_monitors_by_name(query)
Case-insensitive substring search across monitor names and URLs.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Case-insensitive substring matched against monitor names or URLs."
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_status_summary
Up/down/paused counts plus a list of currently down monitors with the timestamp they went down.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_outages(page, search, status, type)
Paginated list of outages in the project. Filter by status, type, or search term.
輸入結構描述
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 0,
"description": "Zero-indexed page number, 20 outages per page."
},
"search": {
"type": "string",
"description": "Substring matched against monitor name/URL/domain or \"INC-123\"."
},
"status": {
"type": "string",
"enum": [
"all",
"ongoing",
"resolved"
],
"description": "Filter by status. Defaults to \"all\"."
},
"type": {
"type": "string",
"enum": [
"all",
"manual",
"monitor"
],
"description": "Filter by type. Defaults to \"all\"."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_outage(uuid)
Fetch a single outage by UUID, including acknowledgements, description, and root cause.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Outage UUID."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_outage_timeline(uuid)
Full activity timeline for an outage: detection, cross-region verification, alert dispatches, acknowledgement, resolution.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Outage UUID (format \"outage_...\" or \"INC-123\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_monitor_outages(monitor_uuid, page, status)
Paginated list of outages scoped to one monitor. Convenience wrapper around list_outages.
輸入結構描述
{
"type": "object",
"properties": {
"monitor_uuid": {
"type": "string",
"description": "Monitor UUID (format \"mon_...\") to filter by."
},
"page": {
"type": "integer",
"minimum": 0,
"description": "Zero-indexed page number, 20 per page."
},
"status": {
"type": "string",
"enum": [
"all",
"ongoing",
"resolved"
],
"description": "Filter by status. Defaults to \"all\"."
}
},
"required": [
"monitor_uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_outage(description, summary, severity, escalation_policy_uuid)
Declare an incident by hand, for a problem no monitor detects. It appears under Incident Management in the dashboard and, with an escalation policy, pages its on-call responders. Internal: nothing is published on a status page (create_status_page_incident does that).
輸入結構描述
{
"type": "object",
"properties": {
"description": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "What is wrong, e.g. \"Payments failing at checkout\". Shown as the incident title."
},
"summary": {
"type": "string",
"maxLength": 5000,
"description": "Details for the responders."
},
"severity": {
"type": "string",
"description": "Severity key: \"critical\", \"major\" or \"minor\" by default. Defaults to the least severe."
},
"escalation_policy_uuid": {
"type": "string",
"description": "Escalation policy whose on-call responders are paged (list_escalation_policies). Without one, nobody is paged."
}
},
"required": [
"description"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪acknowledge_outage(uuid)
Mark an ongoing outage as being handled: repeat alerts stop. Escalation steps still fire on schedule; resolve it or fix the cause to stop them.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Outage UUID from list_outages."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪escalate_outage(uuid)
Page the next step of the outage's escalation policy now instead of waiting for it. Each call moves one step further.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Outage UUID from list_outages."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡resolve_outage(uuid)
Resolve an incident declared by hand or a server incident, and send the recovery to the channels it paged. An outage detected on a monitor resolves itself when its checks pass again.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Outage UUID from list_outages."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_recent_alerts(from, to, resolution, monitor_uuids)
Alert notifications (up/down transitions) over a date range. Defaults to last 30 days.
輸入結構描述
{
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "ISO start date. Default: 30 days ago."
},
"to": {
"type": "string",
"description": "ISO end date. Default: now."
},
"resolution": {
"type": "string",
"enum": [
"hour",
"day",
"week",
"month"
],
"description": "Time grouping. Default \"day\"."
},
"monitor_uuids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Restrict to these monitor UUIDs."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_monitor_uptime(from, to, monitor_uuids, resolution)
Uptime percentage over a date window, aggregated and optionally per day/hour/week/month.
輸入結構描述
{
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "ISO start date. Default: 30 days ago."
},
"to": {
"type": "string",
"description": "ISO end date. Default: now."
},
"monitor_uuids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Monitor UUIDs to report on. Pass EVERY monitor you care about in a SINGLE call: the endpoint resolves them in one aggregate query and returns a per-monitor breakdown, so N monitors in one call costs about the same as one. Looping over monitors and calling this once each is roughly N times more expensive and will hit the rate limit. Omit to cover the whole project."
},
"resolution": {
"type": "string",
"enum": [
"hour",
"day",
"week",
"month"
],
"description": "Time grouping. Default \"day\"."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_monitor_response_time(from, to, monitor_uuids, resolution)
Response time latency trend over a date window. Returns a per-monitor breakdown — pass all monitors at once in monitor_uuids rather than calling this once per monitor.
輸入結構描述
{
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "ISO start date. Default: 30 days ago."
},
"to": {
"type": "string",
"description": "ISO end date. Default: now."
},
"monitor_uuids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Monitor UUIDs to report on. Pass EVERY monitor you care about in a SINGLE call: the endpoint resolves them in one aggregate query and returns a per-monitor breakdown, so N monitors in one call costs about the same as one. Looping over monitors and calling this once each is roughly N times more expensive and will hit the rate limit. Omit to cover the whole project."
},
"resolution": {
"type": "string",
"enum": [
"hour",
"day",
"week",
"month"
],
"description": "Time grouping. Default \"day\"."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_monitor_mttr(from, to, monitor_uuids)
Mean time to resolve (MTTR) per monitor over a date window, in seconds. Already per-monitor — pass all monitors at once in monitor_uuids rather than calling this once per monitor.
輸入結構描述
{
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "ISO start date. Default: 30 days ago."
},
"to": {
"type": "string",
"description": "ISO end date. Default: now."
},
"monitor_uuids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Monitor UUIDs to report on. Pass EVERY monitor you care about in a SINGLE call: the endpoint resolves them in one aggregate query and returns a per-monitor breakdown, so N monitors in one call costs about the same as one. Looping over monitors and calling this once each is roughly N times more expensive and will hit the rate limit. Omit to cover the whole project."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_monitor_mtta(from, to, monitor_uuids)
Mean time to acknowledge (MTTA) per monitor over a date window, in seconds. Already per-monitor — pass all monitors at once in monitor_uuids rather than calling this once per monitor.
輸入結構描述
{
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "ISO start date. Default: 30 days ago."
},
"to": {
"type": "string",
"description": "ISO end date. Default: now."
},
"monitor_uuids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Monitor UUIDs to report on. Pass EVERY monitor you care about in a SINGLE call: the endpoint resolves them in one aggregate query and returns a per-monitor breakdown, so N monitors in one call costs about the same as one. Looping over monitors and calling this once each is roughly N times more expensive and will hit the rate limit. Omit to cover the whole project."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_monitor_anomalies(uuid)
Anomaly-detection output for a single monitor (flapping, latency spikes, etc.).
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Monitor UUID (format \"mon_...\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_monitor_http_logs(uuid, page, limit, level)
Recent HTTP probe logs for a monitor, paginated. Useful to diagnose recent check failures.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Monitor UUID (format \"mon_...\")."
},
"page": {
"type": "integer",
"minimum": 0,
"description": "Zero-indexed page. Default 0."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"description": "Rows per page. Default 50, max 200."
},
"level": {
"type": "array",
"items": {
"type": "string",
"enum": [
"info",
"warn",
"error"
]
},
"description": "Filter by log level."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_on_call_schedules
All on-call schedules in the project. Each entry typically includes rotation config and current on-call.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_on_call_schedule(uuid)
One schedule by UUID with full rotation detail and the linked escalation policies.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Schedule UUID (format \"sch_...\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_escalation_policies
All escalation policies in the project. Use to find which monitors route alerts where.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_escalation_policy(uuid)
One policy by UUID. Reveals step sequence, linked schedules, and contact channels.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Escalation policy UUID (format \"esc_...\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_team_members
Users on the project, with names and emails. Use to resolve user IDs from schedules/policies.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_integrations
All notification integrations in the project (Slack, Telegram, Discord, PagerDuty, OpsGenie, Teams, webhook, etc.).
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_integration(uuid)
One integration by UUID, with its channel-specific config (channel name, webhook URL, routing, etc.).
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Integration UUID (format \"int_...\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_status_pages(page, search)
Status pages in the project, 20 per page: UUID, name, public URL, password protection.
輸入結構描述
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 0,
"description": "Zero-indexed page, 20 per page."
},
"search": {
"type": "string",
"description": "Substring matched against name and hostname."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_status_page(uuid)
One status page with its settings (languages, subscriptions, access) and the services it shows, section by section, with their UUIDs.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Status page UUID (format \"sp_...\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_status_page(name, subdomain, description, website, language, ...)
Create a status page on a hyperping.app subdomain, with sections of monitors and components. It is public as soon as it exists: confirm the name, address and services with the user first. Password protection, SSO, a custom domain and a logo are set in the dashboard.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Name shown on the page, e.g. \"Acme Status\"."
},
"subdomain": {
"type": "string",
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.hyperping\\.app)?$",
"description": "Address on hyperping.app: \"acme\" publishes the page at acme.hyperping.app."
},
"description": {
"type": "string",
"maxLength": 2000,
"description": "Short text under the page status."
},
"website": {
"type": "string",
"maxLength": 1024,
"description": "Company website, linked from the page header."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Two-letter code of the page's language, e.g. \"fr\". Default \"en\"."
},
"theme": {
"type": "string",
"enum": [
"system",
"light",
"dark"
],
"description": "Default \"system\"."
},
"accent_color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$",
"description": "Hex color, e.g. \"#36b27e\"."
},
"sections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Section title, e.g. \"API\"."
},
"services": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 100,
"description": "Monitors (mon_...) and components (comp_...): UUIDs from list_monitors or get_status_page. Paused monitors are refused, as in the dashboard."
}
},
"required": [
"name",
"services"
],
"additionalProperties": false
},
"maxItems": 20,
"description": "Sections of services, in order."
},
"show_uptime": {
"type": "boolean",
"description": "Show the 90-day uptime bar of each service. Default true."
},
"show_response_times": {
"type": "boolean",
"description": "Show the response time chart of each monitor. Default false."
}
},
"required": [
"name",
"subdomain"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴update_status_page(uuid, name, description, language, website, ...)
Change a status page's name, description, website, look or subscription button. Only the fields passed change. The page is public: confirm the change with the user first.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Status page UUID (format \"sp_...\")."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Name shown on the page."
},
"description": {
"type": "string",
"maxLength": 2000,
"description": "Short text under the page status. Empty string to remove it."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Two-letter code of the language the description is written in. Defaults to the page's default language; the other translations are kept."
},
"website": {
"type": "string",
"maxLength": 1024,
"description": "Company website, linked from the page header. Empty string to remove it."
},
"theme": {
"type": "string",
"enum": [
"system",
"light",
"dark"
]
},
"accent_color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$",
"description": "Hex color, e.g. \"#36b27e\"."
},
"font": {
"type": "string",
"enum": [
"system-ui",
"Lato",
"Manrope",
"Inter",
"Open Sans",
"Montserrat",
"Poppins",
"Roboto",
"Raleway",
"Nunito",
"Merriweather",
"DM Sans",
"Work Sans"
]
},
"calendar": {
"type": "boolean",
"description": "Show the incident calendar."
},
"auto_refresh": {
"type": "boolean",
"description": "Reload the page every minute, for a wall screen."
},
"hide_from_search_engines": {
"type": "boolean"
},
"subscriptions": {
"type": "boolean",
"description": "Let visitors subscribe to updates."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡add_status_page_services(uuid, services, section, show_uptime, show_response_times)
Show monitors or components on a status page, in the section you name (created at the end if the page has none by that name) or the first one. Services already on the page stay where they are.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Status page UUID (format \"sp_...\")."
},
"services": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 100,
"description": "Monitors (mon_...) and components (comp_...): UUIDs from list_monitors or get_status_page. Paused monitors are refused, as in the dashboard."
},
"section": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Section to add them to, by title. Default: the first section."
},
"show_uptime": {
"type": "boolean",
"description": "Show the 90-day uptime bar of each service. Default true."
},
"show_response_times": {
"type": "boolean",
"description": "Show the response time chart of each monitor. Default false."
}
},
"required": [
"uuid",
"services"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴remove_status_page_services(uuid, services)
Take monitors or components off a status page, wherever they appear, groups included. Their settings on the page (display name, description) are lost.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Status page UUID (format \"sp_...\")."
},
"services": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 100,
"description": "Monitors (mon_...) and components (comp_...): UUIDs from list_monitors or get_status_page. Paused monitors are refused, as in the dashboard."
}
},
"required": [
"uuid",
"services"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_status_page_incidents(status_page_uuid, status, page)
Incidents published on status pages, newest first, each with its current stage and latest update. For downtime detected on monitors, use list_outages.
輸入結構描述
{
"type": "object",
"properties": {
"status_page_uuid": {
"type": "string",
"description": "Only incidents published on this status page."
},
"status": {
"type": "string",
"enum": [
"all",
"ongoing",
"resolved"
],
"description": "Default \"all\"."
},
"page": {
"type": "integer",
"minimum": 0,
"description": "Zero-indexed page, 20 per page, newest first."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_status_page_incident(uuid)
One status page incident with every update (newest first, with their UUIDs), its status pages and affected components.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Incident UUID (format \"inci_...\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_status_page_incident(title, message, status_pages, type, status, ...)
Publish an incident on status pages, with its first update. Public, and emailed to subscribers unless notify_subscribers is false: confirm the wording with the user first. To record an incident internally and page on-call instead, use create_outage.
輸入結構描述
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"description": "Public headline, e.g. \"Elevated API error rates\"."
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Public text of the update, shown on the status page and sent to subscribers. Basic HTML allowed."
},
"status_pages": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "UUIDs of the status pages to publish on (list_status_pages)."
},
"type": {
"type": "string",
"enum": [
"incident",
"outage"
],
"description": "\"incident\" for degraded service, \"outage\" for services down. Default \"incident\"."
},
"status": {
"type": "string",
"enum": [
"investigating",
"identified",
"monitoring"
],
"description": "Stage of the first update. Default \"investigating\"."
},
"affected_components": {
"type": "array",
"items": {
"type": "string"
},
"description": "Services shown as affected: their UUIDs from get_status_page (mon_... or comp_...)."
},
"notify_subscribers": {
"type": "boolean",
"description": "Email/SMS/Slack/Teams the status page subscribers. Default true."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Two-letter code of the language the text is written in, e.g. \"fr\". Defaults to the status page's default language."
}
},
"required": [
"title",
"message",
"status_pages"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡add_status_page_incident_update(uuid, message, status, notify_subscribers, language)
Post an update on a status page incident (investigating, identified, update, monitoring, resolved). Public, and sent to subscribers unless notify_subscribers is false.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Incident UUID (format \"inci_...\")."
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Public text of the update, shown on the status page and sent to subscribers. Basic HTML allowed."
},
"status": {
"type": "string",
"enum": [
"investigating",
"identified",
"update",
"monitoring",
"resolved"
],
"description": "Stage this update moves the incident to. \"update\" keeps the current stage. Any stage but \"resolved\" reopens a resolved incident."
},
"notify_subscribers": {
"type": "boolean",
"description": "Email/SMS/Slack/Teams the status page subscribers. Default true."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Two-letter code of the language the text is written in. Defaults to the language of the incident title."
}
},
"required": [
"uuid",
"message",
"status"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡resolve_status_page_incident(uuid, message, notify_subscribers, language)
Close a status page incident with a final "resolved" update. Same as add_status_page_incident_update with status "resolved"; refuses an incident that is already resolved.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Incident UUID (format \"inci_...\")."
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Public closing note, e.g. \"A fix has been deployed and error rates are back to normal.\""
},
"notify_subscribers": {
"type": "boolean",
"description": "Email/SMS/Slack/Teams the status page subscribers. Default true."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Two-letter code of the language the text is written in. Defaults to the language of the incident title."
}
},
"required": [
"uuid",
"message"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴update_status_page_incident(uuid, title, language, type, add_status_pages, ...)
Change a status page incident's title, type, status pages or affected services. The pages show the change right away; subscribers are not notified. To tell them something, post an update.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Incident UUID (format \"inci_...\")."
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"description": "New public headline. All its translations together must fit in 255 characters."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Two-letter code of the language the new title is written in. Defaults to the language of the current title; its other translations are kept."
},
"type": {
"type": "string",
"enum": [
"incident",
"outage"
],
"description": "\"incident\" for degraded service, \"outage\" for services down."
},
"add_status_pages": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Status pages to also publish the incident on (list_status_pages)."
},
"remove_status_pages": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Status pages to take the incident off."
},
"add_components": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Services to mark as affected: their UUIDs from get_status_page (mon_... or comp_...)."
},
"remove_components": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Services no longer affected."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴edit_status_page_incident_update(uuid, update_uuid, message, status, language)
Correct the text or stage of an update already posted, e.g. a typo. The page shows the correction; subscribers are not notified again and its date is kept.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Incident UUID (format \"inci_...\")."
},
"update_uuid": {
"type": "string",
"description": "UUID of the update to edit, from get_status_page_incident."
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Corrected public text. Replaces the text in its language and keeps the translations."
},
"status": {
"type": "string",
"enum": [
"investigating",
"identified",
"update",
"monitoring",
"resolved"
],
"description": "Corrected stage. The latest update's stage is the incident's status."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Two-letter code of the language the corrected text is written in. Defaults to the language of the update."
}
},
"required": [
"uuid",
"update_uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_maintenance_windows(timeline, page)
Maintenance windows, 20 per page, with their monitors, status pages, updates and status (upcoming, inprogress, completed).
輸入結構描述
{
"type": "object",
"properties": {
"timeline": {
"type": "string",
"enum": [
"upcoming",
"ongoing",
"past"
],
"description": "Omit for all windows, newest first."
},
"page": {
"type": "integer",
"minimum": 0,
"description": "Zero-indexed page, 20 per page."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_maintenance_window(uuid)
One maintenance window with its updates and the state of its subscriber notification.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Maintenance window UUID (format \"mw_...\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_maintenance_window(name, title, message, start_date, end_date, ...)
Schedule a maintenance window: checks and alerts stop for its monitors during the window, and the status pages you pass announce it. Public once it has status pages: confirm with the user first.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 254,
"description": "Internal name, shown in the dashboard only."
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Public title on the status pages. Defaults to name."
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Public description of the work, shown on the status pages and sent to subscribers."
},
"start_date": {
"type": "string",
"description": "Start, ISO 8601 with a timezone, e.g. \"2026-10-04T02:00:00Z\" or \"2026-10-04T04:00:00+02:00\"."
},
"end_date": {
"type": "string",
"description": "End, after start_date, ISO 8601 with a timezone, e.g. \"2026-10-04T02:00:00Z\" or \"2026-10-04T04:00:00+02:00\"."
},
"monitors": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Monitors (mon_...), components (comp_...) or servers (agt_...) under maintenance: their checks and alerts stop during the window."
},
"status_pages": {
"type": "array",
"items": {
"type": "string"
},
"description": "UUIDs of the status pages that announce the window."
},
"notify": {
"type": "string",
"enum": [
"none",
"immediate",
"scheduled"
],
"description": "Subscriber notification: now, \"scheduled\" before the start, or \"none\" (default)."
},
"notify_minutes_before": {
"type": "integer",
"minimum": 1,
"maximum": 10080,
"description": "With notify \"scheduled\": minutes before the start. Default 60."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Two-letter code of the language the text is written in, e.g. \"fr\". Defaults to the status page's default language."
}
},
"required": [
"name",
"start_date",
"end_date",
"monitors"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴update_maintenance_window(uuid, name, title, message, start_date, ...)
Reschedule a maintenance window, rename it, change its monitors or status pages, or post a public update on it. The pages show the change; subscribers are not notified.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Maintenance window UUID (format \"mw_...\")."
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 254,
"description": "New internal name."
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "New public title. Its translations in other languages are kept."
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Public update posted on the window now, e.g. \"The work is extended by 30 minutes.\" Earlier updates stay."
},
"start_date": {
"type": "string",
"description": "New start, ISO 8601 with a timezone, e.g. \"2026-10-04T02:00:00Z\" or \"2026-10-04T04:00:00+02:00\"."
},
"end_date": {
"type": "string",
"description": "New end, ISO 8601 with a timezone, e.g. \"2026-10-04T02:00:00Z\" or \"2026-10-04T04:00:00+02:00\"."
},
"add_monitors": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Monitors (mon_...), components (comp_...) or servers (agt_...) to add to the window."
},
"remove_monitors": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Monitors, components or servers to take out of the window. At least one must remain."
},
"add_status_pages": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Status pages that should also announce the window."
},
"remove_status_pages": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Status pages that should stop announcing it."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Two-letter code of the language the title or message is written in. Defaults to the language of the current title."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢complete_maintenance_window(uuid)
End a maintenance window in progress now: checks and alerts resume on its monitors and the status pages show it as completed.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Maintenance window UUID (format \"mw_...\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴cancel_maintenance_window(uuid)
Cancel a maintenance window that has not started: it is deleted and leaves the status pages. Subscribers already told about it are not told it is cancelled. To end one in progress, use complete_maintenance_window.
輸入結構描述
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Maintenance window UUID (format \"mw_...\")."
}
},
"required": [
"uuid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}社群
證據