updown-io
Check updown.io uptime checks, downtimes, response metrics and status pages, and create checks.
사용해야 할까요
품질 및 안전성
발견 사항 (2)
- HIGH
- MEDIUMupdown_get_check_metrics에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`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"
}커뮤니티
증거