updown-io
Check updown.io uptime checks, downtimes, response metrics and status pages, and create checks.
我該用這個嗎
品質與安全性
發現項目(2)
- HIGH
- MEDIUM在 updown_get_check_metrics 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"updown-io": {
"url": "https://updown-io.usefulapi.io/mcp"
}
}
}遠端端點
https://updown-io.usefulapi.io/mcpstreamable-http它能做什麼
工具清單
工具(14)
🟢updown_list_checks(status, search)
List all monitoring checks on the account with their status (down, uptime, last_status, error), period, SSL certificate and domain-expiry info. Optionally filter client-side by status or a text match on URL/alias. updown: GET /api/checks.
輸入結構描述
{
"type": "object",
"properties": {
"status": {
"description": "Only checks in this state (default all).",
"type": "string",
"enum": [
"all",
"down",
"up",
"disabled"
]
},
"search": {
"description": "Case-insensitive substring to match against the check URL or alias.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢updown_get_check(token, metrics, results)
Fetch a single check by token, optionally with the last hour of performance metrics and/or the detailed results of the last 5 requests. updown: GET /api/checks/:token.
輸入結構描述
{
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "The check's unique token, e.g. ngg8 (from updown_list_checks)."
},
"metrics": {
"description": "Include performance metrics for the last hour.",
"type": "boolean"
},
"results": {
"description": "Include detailed results of the last 5 requests (can be large).",
"type": "boolean"
}
},
"required": [
"token"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢updown_list_downtimes(token, page, results)
List the downtimes of one check, newest first, 100 per page: error, started_at, ended_at, duration (seconds) and a details URL. updown: GET /api/checks/:token/downtimes.
輸入結構描述
{
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "The check's unique token, e.g. ngg8 (from updown_list_checks)."
},
"page": {
"description": "Page to fetch (100 per page, default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"results": {
"description": "Include detailed results (last 5 requests before the downtime and recovery). Can be large.",
"type": "boolean"
}
},
"required": [
"token"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢updown_get_check_metrics(token, from, to, group)
Get aggregated metrics for one check over a time range: uptime, apdex, timings (redirect/namelookup/connection/handshake/response/total, ms) and request counts by response time. Optionally group by 'time' or by 'host' (monitoring location). Data is hourly (daily after 2 days, monthly after 40 days); the range must span at least one hour. Uptime is not returned when grouping. updown: GET /api/checks/:token/metrics.
輸入結構描述
{
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "The check's unique token, e.g. ngg8 (from updown_list_checks)."
},
"from": {
"description": "Start time (ISO8601, RFC2822 or YYYY-MM-DD; UTC if no zone). Default: 1 month ago.",
"type": "string"
},
"to": {
"description": "End time, same formats. Default: now.",
"type": "string"
},
"group": {
"description": "Group results by 'time' or by 'host' (location).",
"type": "string",
"enum": [
"time",
"host"
]
}
},
"required": [
"token"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢updown_find_problems(ssl_days, domain_days)
One-call health overview across every check: which are DOWN (since when, error), which have an invalid SSL certificate, which certificates or domains expire within N days, and which checks are paused or muted. Built from GET /api/checks.
輸入結構描述
{
"type": "object",
"properties": {
"ssl_days": {
"description": "Flag SSL certificates expiring within this many days (default 14).",
"type": "integer",
"minimum": 0,
"maximum": 365
},
"domain_days": {
"description": "Flag domains expiring within this many days (default 30).",
"type": "integer",
"minimum": 0,
"maximum": 3650
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢updown_list_recipients
List the alert recipients/channels on the account (email, sms, slack, telegram, webhook, zapier, ...). The `id` (e.g. email:3719031852) is what check `recipients` take. updown: GET /api/recipients.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢updown_list_status_pages
List the account's status pages: token, public URL, name, description, visibility (public/protected/private) and the ordered check tokens shown. updown: GET /api/status_pages.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢updown_list_nodes
List updown.io's monitoring/webhook servers keyed by location code (lan, mia, tor, rbx, fra, cap, hel, sin, tok, syd) with IPv4, IPv6, city, country and coordinates. Public — no API key needed. updown: GET /api/nodes.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢updown_list_node_ips(family)
List updown.io's server IP addresses — e.g. to allowlist the monitors in a firewall. Choose all, ipv4 or ipv6. Public — no API key needed. updown: GET /api/nodes/ips, /api/nodes/ipv4, /api/nodes/ipv6.
輸入結構描述
{
"type": "object",
"properties": {
"family": {
"description": "Address family (default all).",
"type": "string",
"enum": [
"all",
"ipv4",
"ipv6"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴updown_create_check(url, type, period, apdex_t, enabled, ...)
Add a new monitoring check. The type (http, https, tcp, tcps, icmp) is inferred from the URL scheme; pass type 'pulse' (and no URL) for a cron/heartbeat check. Each check consumes updown credits while enabled. Requires the read/write API key. updown: POST /api/checks.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"description": "The URL to monitor, e.g. https://example.com, tcp://host:port, icmp://host. Omit for pulse checks.",
"type": "string"
},
"type": {
"description": "Check type; inferred from the URL by default — mainly useful for 'pulse'.",
"type": "string",
"enum": [
"https",
"http",
"icmp",
"pulse",
"tcp",
"tcps"
]
},
"period": {
"description": "Interval in seconds. Regular checks: 15, 30, 60, 120, 300, 600, 1800 or 3600 (default 60). Pulse checks: anywhere from 15 s to 1 month.",
"type": "integer",
"minimum": 15,
"maximum": 2678400
},
"apdex_t": {
"description": "APDEX threshold in seconds: 0.125, 0.25, 0.5, 1.0, 2.0, 4.0 or 8.0 (default 0.5).",
"type": "number"
},
"enabled": {
"description": "Whether the check runs. false pauses it (reversible).",
"type": "boolean"
},
"published": {
"description": "Whether the check's public status page is visible (default false).",
"type": "boolean"
},
"alias": {
"description": "Human-readable name for the check.",
"type": "string"
},
"string_match": {
"description": "Text that must appear in the response. For TCP/TCPS checks, '<closed>' inverts the check (alert if the port is open).",
"type": "string"
},
"mute_until": {
"description": "Mute notifications until a time (ISO8601, e.g. 2026-10-01T08:00:00Z), or 'recovery', or 'forever'.",
"type": "string"
},
"http_verb": {
"description": "HTTP verb for the request (default GET/HEAD).",
"type": "string",
"enum": [
"GET/HEAD",
"POST",
"PUT",
"PATCH",
"DELETE",
"OPTIONS"
]
},
"http_body": {
"description": "HTTP body sent with the request.",
"type": "string"
},
"disabled_locations": {
"description": "Monitoring locations to disable: lan, mia, tor, rbx, fra, cap, hel, sin, tok, syd.",
"type": "array",
"items": {
"type": "string",
"enum": [
"lan",
"mia",
"tor",
"rbx",
"fra",
"cap",
"hel",
"sin",
"tok",
"syd"
]
}
},
"recipients": {
"description": "Alert recipient ids to select, e.g. ['email:12345', 'sms:67890'] (from updown_list_recipients).",
"type": "array",
"items": {
"type": "string"
}
},
"custom_headers": {
"description": "HTTP headers updown sends with each request, e.g. { \"X-Api-Key\": \"...\" }.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴updown_update_check(token, url, period, apdex_t, enabled, ...)
Change a check's settings — URL, period, alias, string match, recipients, headers, locations — or pause/resume it (enabled) or mute its alerts (mute_until). Only the fields you pass are changed. Caution: URLs returned by a read-only key hide basic-auth credentials; re-sending such a URL erases them. Requires the read/write API key. updown: PUT /api/checks/:token.
輸入結構描述
{
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "The check's unique token, e.g. ngg8 (from updown_list_checks)."
},
"url": {
"description": "New URL to monitor (not for pulse checks).",
"type": "string"
},
"period": {
"description": "Interval in seconds. Regular checks: 15, 30, 60, 120, 300, 600, 1800 or 3600 (default 60). Pulse checks: anywhere from 15 s to 1 month.",
"type": "integer",
"minimum": 15,
"maximum": 2678400
},
"apdex_t": {
"description": "APDEX threshold in seconds: 0.125, 0.25, 0.5, 1.0, 2.0, 4.0 or 8.0 (default 0.5).",
"type": "number"
},
"enabled": {
"description": "Whether the check runs. false pauses it (reversible).",
"type": "boolean"
},
"published": {
"description": "Whether the check's public status page is visible (default false).",
"type": "boolean"
},
"alias": {
"description": "Human-readable name for the check.",
"type": "string"
},
"string_match": {
"description": "Text that must appear in the response. For TCP/TCPS checks, '<closed>' inverts the check (alert if the port is open).",
"type": "string"
},
"mute_until": {
"description": "Mute notifications until a time (ISO8601, e.g. 2026-10-01T08:00:00Z), or 'recovery', or 'forever'.",
"type": "string"
},
"http_verb": {
"description": "HTTP verb for the request (default GET/HEAD).",
"type": "string",
"enum": [
"GET/HEAD",
"POST",
"PUT",
"PATCH",
"DELETE",
"OPTIONS"
]
},
"http_body": {
"description": "HTTP body sent with the request.",
"type": "string"
},
"disabled_locations": {
"description": "Monitoring locations to disable: lan, mia, tor, rbx, fra, cap, hel, sin, tok, syd.",
"type": "array",
"items": {
"type": "string",
"enum": [
"lan",
"mia",
"tor",
"rbx",
"fra",
"cap",
"hel",
"sin",
"tok",
"syd"
]
}
},
"recipients": {
"description": "Alert recipient ids to select, e.g. ['email:12345', 'sms:67890'] (from updown_list_recipients).",
"type": "array",
"items": {
"type": "string"
}
},
"custom_headers": {
"description": "HTTP headers updown sends with each request, e.g. { \"X-Api-Key\": \"...\" }.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"token"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴updown_add_recipient(type, value, name, selected)
Add an alert recipient: an email address, phone number (sms), webhook URL, Slack-compatible incoming-webhook URL, or Microsoft Teams webhook URL. Returns the new (or already-existing) recipient with its id. By default it is selected on ALL existing checks; pass selected=false to add it unattached. Slack/Telegram/Zapier/Statuspage integrations must be set up in the web UI. Requires the read/write API key. updown: POST /api/recipients.
輸入結構描述
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"email",
"sms",
"webhook",
"slack_compatible",
"msteams"
],
"description": "Recipient type."
},
"value": {
"type": "string",
"minLength": 1,
"description": "The email address, phone number or URL."
},
"name": {
"description": "Optional friendly label (webhooks only at the moment).",
"type": "string"
},
"selected": {
"description": "true (default) = selected on all existing checks; false = not selected on any check.",
"type": "boolean"
}
},
"required": [
"type",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴updown_create_status_page(checks, name, description, visibility, access_key)
Create a status page showing the given checks, in order. Returns its token and URL. Requires the read/write API key. updown: POST /api/status_pages.
輸入結構描述
{
"type": "object",
"properties": {
"checks": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "The check's unique token, e.g. ngg8 (from updown_list_checks)."
},
"description": "Check tokens to show, in display order, e.g. ['dmbe', 'ngg8']."
},
"name": {
"description": "Name of the status page.",
"type": "string"
},
"description": {
"description": "Text displayed below the name (supports newlines and links).",
"type": "string"
},
"visibility": {
"description": "Page visibility (default public).",
"type": "string",
"enum": [
"public",
"protected",
"private"
]
},
"access_key": {
"description": "Access key for protected pages (defaults to a random 30-byte string).",
"type": "string"
}
},
"required": [
"checks"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴updown_update_status_page(token, checks, name, description, visibility, ...)
Change a status page's checks (replaces the list, order respected), name, description, visibility or access key. Only the fields you pass are changed. Requires the read/write API key. updown: PUT /api/status_pages/:token.
輸入結構描述
{
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "The status page's unique token, e.g. 3ji4k (from updown_list_status_pages)."
},
"checks": {
"description": "New ordered list of check tokens to show (replaces the current list).",
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "The check's unique token, e.g. ngg8 (from updown_list_checks)."
}
},
"name": {
"description": "Name of the status page.",
"type": "string"
},
"description": {
"description": "Text displayed below the name (supports newlines and links).",
"type": "string"
},
"visibility": {
"description": "Page visibility (default public).",
"type": "string",
"enum": [
"public",
"protected",
"private"
]
},
"access_key": {
"description": "Access key for protected pages (defaults to a random 30-byte string).",
"type": "string"
}
},
"required": [
"token"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社群
證據