Watchpup

Free uptime monitoring: HTTP/TCP/TLS/DNS + MCP server checks, cron heartbeats, status pages, alerts.

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
86%
이름 품질
98%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,463토큰 (도구 정의)
~582 B일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.14%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "watchpup": {
      "url": "https://watchpup.watchpup.workers.dev/mcp"
    }
  }
}

원격 엔드포인트

https://watchpup.watchpup.workers.dev/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (12)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢check_url(url, kind)

Check any public URL RIGHT NOW: is it up, HTTP status, response time in ms. With kind:"mcp" it instead performs a real JSON-RPC initialize handshake against a streamable-HTTP MCP server endpoint and reports the server’s self-declared name/version/protocol — useful to tell "the MCP server is down" from "my client is misconfigured". Works without an API key (rate limit 30/hour per IP). For continuous monitoring with alerts, use create_monitor.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public http(s) URL to check, e.g. https://example.com — for kind=mcp the MCP endpoint URL, e.g. https://mcp.deepwiki.com/mcp"
    },
    "kind": {
      "type": "string",
      "enum": [
        "http",
        "mcp"
      ],
      "description": "What to speak: plain HTTP (default) or an MCP initialize handshake"
    }
  },
  "required": [
    "url"
  ]
}
🟢list_monitors(tag)

List all monitors on the account: current up/down status, kind, target, interval, last check. Optionally filter by tag.

입력 스키마

{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "description": "Only monitors carrying ALL these tags (comma-separated), e.g. \"prod\" or \"prod,eu\""
    }
  }
}
🟢get_monitor(id)

Full detail for one monitor: status, config, 24h latency percentiles and trend (http/tcp), SLA budget if a target is set. Heartbeat monitors include their ping_url and ping_email.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Monitor id (from list_monitors)"
    }
  },
  "required": [
    "id"
  ]
}
🟡create_monitor(kind, url, target, name, interval)

Create a monitor. kind=http (needs url), tcp (target "host:port"), tls (target host[:port] — cert-expiry watch), domain (target — registration-expiry via RDAP), dns (target + rtype A/AAAA/MX/... , optional expect_value), heartbeat (dead-man’s switch for cron jobs/agent loops: needs name; response includes ping_url to curl from the job, and a ping_email address). Common options: name, interval (seconds, min 60), tags. http options: expect ("2xx,301"), keyword, keyword_absent:"absent", slow_ms (number or "auto"), method, headers, body, json_path/json_expect, header_name/header_expect. heartbeat options: grace (seconds), cron ("0 3 * * *") + tz, max_duration_s. Any other documented field (see /llms.txt) also works — extra properties are passed through.

입력 스키마

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "http",
        "tcp",
        "tls",
        "domain",
        "dns",
        "heartbeat",
        "mcp"
      ],
      "description": "Monitor kind (default http; \"mcp\" monitors an MCP server via JSON-RPC initialize)"
    },
    "url": {
      "type": "string",
      "description": "For kind=http: the URL to check"
    },
    "target": {
      "type": "string",
      "description": "For tcp/tls/domain/dns: host[:port] or domain name"
    },
    "name": {
      "type": "string",
      "description": "Display name (required for heartbeat, defaults to the target host otherwise)"
    },
    "interval": {
      "type": "integer",
      "description": "Check interval in seconds, min 60 (heartbeat: expected ping interval)"
    }
  },
  "additionalProperties": true
}
🟡update_monitor(id, status)

PATCH any monitor field: name, url, target, interval, expect, keyword, slow_ms, grace, cron, tags, sla_target, renotify, channels (alert routing)... Pause with {"status":"paused"}, resume with {"status":"new"}. Empty string clears optional fields.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Monitor id"
    },
    "status": {
      "type": "string",
      "enum": [
        "paused",
        "new"
      ],
      "description": "\"paused\" stops checking; \"new\" resumes"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": true
}
🔴delete_monitor(id)

Permanently delete a monitor and all its check history, events and rollups. Cannot be undone.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Monitor id"
    }
  },
  "required": [
    "id"
  ]
}
🟢list_incidents(days)

Downtime incidents (ongoing and resolved) across all monitors: start, duration, cause, acknowledgement, notes.

입력 스키마

{
  "type": "object",
  "properties": {
    "days": {
      "type": "integer",
      "description": "Lookback window in days, 1-90 (default 30)"
    }
  }
}
🟡ack_incident(id, un)

Mark an ongoing incident as "someone is on it" — pauses still-down reminder alerts for that monitor until recovery. Set un=true to un-acknowledge (re-arms reminders).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Incident id (from list_incidents)"
    },
    "un": {
      "type": "boolean",
      "description": "true = remove an existing acknowledgement"
    }
  },
  "required": [
    "id"
  ]
}
🟡add_incident_note(id, note)

Attach/replace a note (max 500 chars) on an incident. Notes publish with the incident on public status pages, their JSON and the Atom feed. Empty string clears.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Incident id (from list_incidents)"
    },
    "note": {
      "type": "string",
      "description": "The note text (\"\" clears)"
    }
  },
  "required": [
    "id",
    "note"
  ]
}
🟢list_channels

Alert delivery channels on the account (email / webhook / Discord / Slack / ntfy / Telegram), their verification state and delivery health.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟢get_status_page(slug)

Machine-readable state of any public Watchpup status page by slug: per-monitor status, uptime, incidents last 30d. No API key needed.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Status page slug (the part after /s/)"
    }
  },
  "required": [
    "slug"
  ]
}
🟢get_account

Who am I: account email, monitor count/limit, plan limits. Good first call to verify the API key works.

입력 스키마

{
  "type": "object",
  "properties": {}
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 12개
검증됨버전이 기록되지 않음도구 12개