Skip to main content
Glama

watch_expiry

Subscribe an email address to free daily expiry monitoring of up to 5 domains (certificate, domain registration and security grade) with email alerts, plus an optional Slack/Discord/Telegram/webhook channel. Also alerts when Certificate Transparency logs show a new certificate for a domain from a CA not seen before (possible unauthorized issuance). Double opt-in: a confirmation email is sent and monitoring starts only after the recipient clicks the link; one confirmation email per address per 24 hours. Use only an address the user owns and explicitly asked to use.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "email": "<email>",
      "domains": "<domains>"
    },
    "name": "watch_expiry"
  }
}

Input Schema

NameRequiredDescriptionDefault
emailYesEmail address that will receive the alerts
domainsYesDomain names to monitor (host or host:port). For paid certificates you may append the contract (subscription) end date and the DCV method, e.g. "shop.example.com 2027-05-01 email". Contract expiry is alerted with the same thresholds and email DCV gets a reminder (email DCV ends 2028-03-15, CA/B Forum SC-090). A trailing "45/20" sets per-domain WARN/CRITICAL days.
webhookNoOptional alert channel URL. Alerts are also posted there after confirmation. Accepts a Slack or Discord incoming-webhook URL, a Telegram URL https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>, or any public https endpoint (receives JSON POST, version 1). It is a secret; only pass a URL the user gave you.
critDaysNoDays before expiry that count as CRITICAL "expiring soon" (default 15; must be < warnDays)
warnDaysNoDays before expiry that count as WARN (default 30; the default shrinks for short-lived certificates)
slackWebhookNoDeprecated alias of webhook that accepts only Slack Incoming Webhook URLs (https://hooks.slack.com/services/...).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / domains / description
      Previous value: -"Domain names to monitor (host or host:port). For paid certificates you may append the contract (subscription) end date and the DCV method, e.g. \"shop.example.com 2027-05-01 email\" — contract expiry is alerted with the same thresholds and email DCV gets a reminder (email DCV ends 2028-03-15, CA/B Forum SC-090). A trailing \"45/20\" sets per-domain WARN/CRITICAL days."New value: +"Domain names to monitor (host or host:port). For paid certificates you may append the contract (subscription) end date and the DCV method, e.g. \"shop.example.com 2027-05-01 email\". Contract expiry is alerted with the same thresholds and email DCV gets a reminder (email DCV ends 2028-03-15, CA/B Forum SC-090). A trailing \"45/20\" sets per-domain WARN/CRITICAL days."
    • changedInput schema / properties / webhook / description
      Previous value: -"Optional alert channel URL — alerts are also posted there after confirmation. Accepts a Slack or Discord incoming-webhook URL, a Telegram URL https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>, or any public https endpoint (receives JSON POST, version 1). It is a secret; only pass a URL the user gave you."New value: +"Optional alert channel URL. Alerts are also posted there after confirmation. Accepts a Slack or Discord incoming-webhook URL, a Telegram URL https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>, or any public https endpoint (receives JSON POST, version 1). It is a secret; only pass a URL the user gave you."
  2. Changed3 schema fields changed
    • changedInput schema / properties / domains / description
      Previous value: -"Domain names to monitor (host or host:port). For paid certificates you may append the contract (subscription) end date and the DCV method, e.g. \"shop.example.com 2027-05-01 email\" — contract expiry is alerted with the same thresholds and email DCV gets a reminder (email DCV ends 2028-03-15, CA/B Forum SC-090)."New value: +"Domain names to monitor (host or host:port). For paid certificates you may append the contract (subscription) end date and the DCV method, e.g. \"shop.example.com 2027-05-01 email\" — contract expiry is alerted with the same thresholds and email DCV gets a reminder (email DCV ends 2028-03-15, CA/B Forum SC-090). A trailing \"45/20\" sets per-domain WARN/CRITICAL days."
    • changedInput schema / properties / slackWebhook / description
      Previous value: -"Optional Slack Incoming Webhook URL (https://hooks.slack.com/services/...) — alerts are also posted there after confirmation. It is a secret; only pass a URL the user gave you."New value: +"Deprecated alias of webhook that accepts only Slack Incoming Webhook URLs (https://hooks.slack.com/services/...)."
    • addedInput schema / properties / webhook
      Added value: +{
      +  "description": "Optional alert channel URL — alerts are also posted there after confirmation. Accepts a Slack or Discord incoming-webhook URL, a Telegram URL https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>, or any public https endpoint (receives JSON POST, version 1). It is a secret; only pass a URL the user gave you.",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / domains / description
      Previous value: -"Domain names to monitor (host or host:port)"New value: +"Domain names to monitor (host or host:port). For paid certificates you may append the contract (subscription) end date and the DCV method, e.g. \"shop.example.com 2027-05-01 email\" — contract expiry is alerted with the same thresholds and email DCV gets a reminder (email DCV ends 2028-03-15, CA/B Forum SC-090)."
  4. Changed2 schema fields changed
    • changedInput schema / properties / domains / description
      Previous value: -"Domain names to monitor"New value: +"Domain names to monitor (host or host:port)"
    • addedInput schema / properties / slackWebhook
      Added value: +{
      +  "description": "Optional Slack Incoming Webhook URL (https://hooks.slack.com/services/...) — alerts are also posted there after confirmation. It is a secret; only pass a URL the user gave you.",
      +  "type": "string"
      +}
  5. Changed2 schema fields changed
    • addedInput schema / properties / critDays
      Added value: +{
      +  "description": "Days before expiry that count as CRITICAL \"expiring soon\" (default 15; must be < warnDays)",
      +  "maximum": 365,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / warnDays
      Added value: +{
      +  "description": "Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates)",
      +  "maximum": 365,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  6. First observed

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only give the generic readOnly=false/openWorld=true/idempotent=false/destructive=false profile; the description adds substantial operational behavior beyond that: double opt-in (monitoring starts only after link click), one confirmation email per address per 24 hours, post-confirmation alert delivery, and CT-log new-certificate alerting. It also clarifies the tool's non-destructive subscription semantics, consistent with destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, front-loaded with the core action and scope before the caveats. Almost every clause carries information (alert scope, channels, CT alerting, opt-in flow, rate limit, consent rule), though it runs long for a single description and could lose a clause without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return/value burden and does so: it explains what triggers alerts, what channels receive them, and the confirmation flow. Together with the fully documented 6-parameter schema, an agent has everything needed to call it correctly and set user expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the per-parameter descriptions are themselves very rich (contract end date, DCV method, '45/20' thresholds, webhook URL formats). The prose re-mentions the optional Slack/Discord/Telegram/webhook channel but adds no syntax or defaults the schema does not already carry, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a precise verb+resource: 'Subscribe an email address to free daily expiry monitoring of up to 5 domains', and enumerates what is monitored (certificate, domain registration, security grade) plus alert channels. An agent immediately understands this is an ongoing subscription action, distinct from the one-shot check_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The subscription/ongoing nature implies when to use it over check_expiry, but no sibling is ever named and there is no explicit 'when-not-to-use' guidance. The ownership/consent constraint and the double opt-in caveat are stated, which is useful context, but routing to check_expiry for a one-time lookup is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources