{
  "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
  "version": "1.0",
  "serverInfo": {
    "name": "uptimeify",
    "title": "Uptimeify",
    "version": "1.0.0"
  },
  "description": "Free anonymous website/DNS/email/TLS check tools plus authenticated read-only access to your own Uptimeify monitors.",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://uptimeify.io/mcp"
  },
  "capabilities": {
    "tools": {
      "listChanged": true
    }
  },
  "authentication": {
    "required": false,
    "note": "Anonymous check tools need no auth. Tools marked authenticated require an Authorization: Bearer <api-token> header."
  },
  "authorization": {
    "type": "oauth2",
    "authorizationServerMetadata": "https://uptimeify.io/api/auth/.well-known/oauth-authorization-server",
    "protectedResourceMetadata": "https://uptimeify.io/api/auth/.well-known/oauth-protected-resource",
    "scopes": [
      "mcp:read"
    ],
    "note": "Optional OAuth2 (PKCE) login for this /mcp server. Static wsm_ API tokens remain supported alongside OAuth."
  },
  "tools": [
    {
      "name": "check_ssl",
      "description": "Check a host's TLS/SSL certificate: issuer, validity dates, expiry, chain and trust verdict.",
      "readOnlyHint": true
    },
    {
      "name": "check_dns",
      "description": "Check a domain's DNS records (A/AAAA/CNAME/TXT/NS and more).",
      "readOnlyHint": true
    },
    {
      "name": "dns_propagation",
      "description": "Check DNS propagation of a domain across multiple public resolvers.",
      "readOnlyHint": true
    },
    {
      "name": "mx_lookup",
      "description": "MX lookup for a domain: its mail exchanger records and their addresses.",
      "readOnlyHint": true
    },
    {
      "name": "spf_check",
      "description": "Check a domain's SPF record: fetch it and evaluate the policy.",
      "readOnlyHint": true
    },
    {
      "name": "dkim_check",
      "description": "Check a domain's DKIM public key for a given selector: fetch it and validate it.",
      "readOnlyHint": true
    },
    {
      "name": "dmarc_check",
      "description": "Check a domain's DMARC policy record: fetch it and evaluate the policy.",
      "readOnlyHint": true
    },
    {
      "name": "dnsbl_check",
      "description": "DNSBL check: whether a public IP address is listed on common DNS blacklists.",
      "readOnlyHint": true
    },
    {
      "name": "whois",
      "description": "Retrieve WHOIS registration data for a domain.",
      "readOnlyHint": true
    },
    {
      "name": "domain_expiry",
      "description": "Check a domain's registration expiry date and the days remaining.",
      "readOnlyHint": true
    },
    {
      "name": "http_headers",
      "description": "Fetch the HTTP response headers for a URL.",
      "readOnlyHint": true
    },
    {
      "name": "hsts_check",
      "description": "HSTS check: a domain's HTTP Strict Transport Security configuration.",
      "readOnlyHint": true
    },
    {
      "name": "redirect_check",
      "description": "Check the HTTP redirect chain for a URL, tracing it to the final destination.",
      "readOnlyHint": true
    },
    {
      "name": "port_check",
      "description": "Check whether a TCP port is open on a host.",
      "readOnlyHint": true
    },
    {
      "name": "ping_test",
      "description": "Ping test: measure TCP reachability and round-trip time to a host.",
      "readOnlyHint": true
    },
    {
      "name": "website_status",
      "description": "Check whether a website is up, its HTTP status and response timing.",
      "readOnlyHint": true
    },
    {
      "name": "response_time",
      "description": "Measure a website's response time (DNS, connect, TTFB, total).",
      "readOnlyHint": true
    },
    {
      "name": "ip_geolocation",
      "description": "IP geolocation for a public IP address or a domain (country, region, ASN, org).",
      "readOnlyHint": true
    },
    {
      "name": "asn_lookup",
      "description": "ASN lookup for a public IP or domain: the autonomous system and its network owner.",
      "readOnlyHint": true
    },
    {
      "name": "reverse_dns",
      "description": "Reverse DNS: resolve a public IP address to its PTR hostname.",
      "readOnlyHint": true
    },
    {
      "name": "list_monitors",
      "description": "List the website monitors the caller's API token can see (customer token: its own customer; organization token: all customers in the org). Read-only.",
      "authenticated": true,
      "readOnlyHint": true
    },
    {
      "name": "monitor_status",
      "description": "Get a single website monitor by id, including its current up/down status and configuration.",
      "authenticated": true,
      "readOnlyHint": true
    },
    {
      "name": "list_incidents",
      "description": "List recent incidents across all of the caller's monitors (most recent first).",
      "authenticated": true,
      "readOnlyHint": true
    },
    {
      "name": "check_history",
      "description": "Get the recent check history for a website monitor. Optionally bound by an ISO date range.",
      "authenticated": true,
      "readOnlyHint": true
    },
    {
      "name": "uptime_summary",
      "description": "Get uptime and average response-time summary (day / month / year) for a website monitor.",
      "authenticated": true,
      "readOnlyHint": true
    }
  ]
}