Awesome MCP Servers by AI Anytime

Directory / Cloud, ops & data

Expiry Watch

Read-only TLS certificate and domain-registration expiry checks for public hostnames, without an account or API key. Endpoint: https://boringutils.com/api/mcp

Live  Answered an MCP handshake without credentials and listed 2 tools.

Category
Cloud, ops & data
Transport
http
Source
https://boringutils.com/expiry-watch#mcp
Endpoint
https://boringutils.com/api/mcp
MCP Registry
io.github.hal-boring-utils/expiry-watch
Reports itself as
boringutils 1.0.0
Protocol
2025-06-18
Tools
2
Context cost
about 324 tokens for the tool definitions (estimated at four characters per token)
Tool definitions last changed
2026-10-25
Handshake time
120 ms
Last checked
2026-11-03 10:54:39 UTC
Listed since
2026-10-23

Health and compatibility

Endpoint reachableVerifiedResponded in 120 ms
MCP handshake (initialize)VerifiedCompleted without credentials
Tool discovery (tools/list)Verified2 tools listed
AuthenticationVerifiedNone needed to connect
Protocol versionVerified2025-06-18
TransportVerifiedStreamable HTTP
Capabilities declaredVerifiedtools

Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.

Recent history

100% of the last 7 daily checks reachable; median response 135 ms. Green answered, violet asked for auth, red did not answer.

Set up in your client

Claude Code

Run this in a terminal:

claude mcp add --transport http expiry-watch https://boringutils.com/api/mcp

Claude Desktop

Open Settings → Connectors → Add custom connector and paste this URL:

https://boringutils.com/api/mcp

Or bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):

{
  "mcpServers": {
    "expiry-watch": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://boringutils.com/api/mcp"
      ]
    }
  }
}

Cursor

Add to Cursor

Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "expiry-watch": {
      "url": "https://boringutils.com/api/mcp"
    }
  }
}

VS Code

Add to VS Code

Or add it to .vscode/mcp.json:

{
  "servers": {
    "expiry-watch": {
      "type": "http",
      "url": "https://boringutils.com/api/mcp"
    }
  }
}

Or from a terminal:

code --add-mcp '{"name": "expiry-watch", "type": "http", "url": "https://boringutils.com/api/mcp"}'

Windsurf

Add it to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "expiry-watch": {
      "serverUrl": "https://boringutils.com/api/mcp"
    }
  }
}

Other clients

Most clients accept this shape. The endpoint is:

https://boringutils.com/api/mcp
{
  "mcpServers": {
    "expiry-watch": {
      "type": "http",
      "url": "https://boringutils.com/api/mcp"
    }
  }
}

If it does not connect

Tools 2

Names, descriptions and input schemas exactly as the server returned them on 2026-11-03. This is the server author's own text. Nothing is run from this page. Labels such as read-only are declared by the server and are not verified. Raw JSON

check_certificateread-onlyexternal accessConnects to a domain on port 443 and reports its TLS certificate: whether it is trusted and matches the name, …

Connects to a domain on port 443 and reports its TLS certificate: whether it is trusted and matches the name, the issuer, the expiry date and days left, the lifetime, the chain and the TLS version, what each of its server addresses serves (up to 4 IPv4 and 4 IPv6), and, for certificates from Let’s Encrypt, Google Trust Services, ZeroSSL or Sectigo, the renewal window the CA suggests (ACME Renewal Information).

ParameterTypeDescription
domainstringrequiredA public domain name, like example.com. A URL also works: only its host name is used.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "check_certificate",
    "arguments": {
      "domain": "..."
    }
  }
}
check_domain_expiryread-onlyexternal accessLooks up a domain registration over RDAP at the registry for its TLD: when it expires, the registrar, the …

Looks up a domain registration over RDAP at the registry for its TLD: when it expires, the registrar, the statuses (flagging a hold, redemption, pending delete or pending transfer) and the nameservers. Subdomains are looked up by their registered domain (www.example.co.uk becomes example.co.uk).

ParameterTypeDescription
domainstringrequiredA public domain name, like example.com. A URL also works: only its host name is used.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "check_domain_expiry",
    "arguments": {
      "domain": "..."
    }
  }
}

Badge

Maintain this server? Put its live status in your README:

MCP status badge

[![MCP status](https://mcp.aianytime.net/badge/expiry-watch.svg)](https://mcp.aianytime.net/s/expiry-watch/)

Edit this entry · Report a problem

More in Cloud, ops & data

Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt

Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers