certdesk
Server Details
TLS cert verdict (OK/WARN/CRITICAL/UNKNOWN) from the served chain: expiry, revocation, alerts
- Status
- Healthy
- Uptime
- 100.0% over 39 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 7 tools
Most tools have distinct scopes: check_certificate (deep single-domain cert analysis), check_expiry (batch verdict), check_security (server posture), explain_tls_error (offline knowledge), watch_expiry (monitoring). There is some overlap: certificate/expiry information appears in check_certificate, check_expiry, and check_security, and check_dns vs check_dns_propagation could be confused at a glance, but the descriptions draw clear boundaries.
All tools follow a consistent verb_noun pattern (check_*, explain_*, watch_*), with a predictable prefix (check_) for the inspection tools. The convention is uniform throughout.
Seven tools is well-scoped for a certificate/DNS inspection server, with each tool covering a distinct operation (check, batch check, DNS, propagation, security, error explain, monitoring). No tool feels redundant or padding.
The surface covers deep cert inspection, DNS facts, propagation, batch expiry, security posture, error explanation, and monitoring, which is a broad lifecycle. Minor gaps: no standalone CT-log search or quick single-domain DNS lookup separate from the full check_dns, but core workflows are covered.
Available Tools
7 toolscheck_certificateARead-onlyInspect
Check one domain's TLS certificate and return a verdict: status OK | WARN | CRITICAL | UNKNOWN, judged from the certificate chain the server actually serves. Measured from Korean point A (full chain and CRL revocation) plus Korean point B and an overseas point on the Globalping public measurement network (per-point results in measuredFrom; disagreement between points is a WARN). Checks: verification (expired, not yet valid, hostname mismatch, self-signed, untrusted root, missing intermediate, revoked via CRL), days left, renewal point, a newer certificate issued but not deployed (CT logs), the served chain, which old platform versions trust its root or cross-signs (compat: oldest Android, iOS, macOS, Windows, Java and Firefox versions), and the issuing CA's incident history. If the server cannot be measured the status is UNKNOWN and CT logs are shown only as an estimate, never as OK. Set detail=true to include the full chain in the text output.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | TLS port (default 443). Implicit TLS: 8443 4443 9443 6443 636 465 993 995 853 5061 3269 8883; STARTTLS: 25 587 (SMTP), 143 (IMAP), 110 (POP3), 389 (LDAP). Or pass domain as host:port | |
| detail | No | Include the full certificate chain in the text output (default false) | |
| domain | Yes | Domain name, e.g. example.com | |
| critDays | No | Days before expiry that count as CRITICAL "expiring soon" (default 15; must be < warnDays) | |
| warnDays | No | Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates) |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | |
| status | Yes | UNKNOWN = could not be measured (never treat as OK) |
| reasons | Yes | |
| headline | Yes | One-line verdict (Korean) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly/openWorld/non-destructive; the description goes well beyond by disclosing the multi-vantage measurement method (Korean point A full chain + CRL, Korean point B, overseas point), that cross-point disagreement becomes a WARN, and that an unmeasurable server yields UNKNOWN with CT data as an estimate only, never OK. These are exactly the behavioral traits an agent needs before trusting a verdict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and verdict, and every clause (checks list, measurement points, UNKNOWN rule, detail flag) carries information. It is a single dense block though; the long enumerated check list and compat list would scan faster as structured fragments rather than one paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-vantage network measurement tool this is complete: the verdict vocabulary, the checks performed, the point-disagreement rule, the failure mode, and the CT caveat are all stated, and an output schema exists so return structure need not be explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so port, critDays, warnDays and detail are already documented in the schema. The description only restates the detail=true effect ("full chain in the text output") and adds nothing about threshold interaction or port inference beyond what the schema says, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Check one domain's TLS certificate") and an explicit return contract ("verdict: status OK | WARN | CRITICAL | UNKNOWN"). It is clearly separable from siblings like check_expiry (registration expiry) or check_security (broader posture) because it names the exact scope: the chain the server actually serves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through a detailed enumeration of what the tool covers, which lets an agent infer fit, and the UNKNOWN path is described. However, no sibling is named and there is no explicit when-to-use-this-instead-of guidance (e.g. versus check_expiry or explain_tls_error), so selection still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_dnsARead-onlyInspect
DNS and hosting facts for a domain: nameservers with DNS provider, A/AAAA with IP owner (ASN), CNAME, MX, CAA (which CAs may issue), SPF/DMARC, DNSSEC, registrar and domain expiry (RDAP).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, openWorldHint=true, destructiveHint=false). The description adds value by enumerating the facts returned, helping an agent understand what this read operation produces. It aligns with the annotations and adds coverage context; it doesn't mention network latency or rate limits, but for a simple read tool with annotations present this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence, front-loaded with the core purpose before a colon-delimited fact list. Every item in the enumeration earns its place and there is no filler, though the list runs long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity: a single required parameter, no output schema, and no nested objects. Annotations cover the read-only safety profile, and the fact list gives a strong sense of the return coverage. Given the low complexity, nothing critical is missing for an agent to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the single 'domain' parameter is fully documented with an example in the schema. The description adds no format details beyond what the schema already provides, so the baseline of 3 applies. No additional parameter semantics are needed here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) and resource (DNS and hosting facts) with a detailed enumeration of coverage: nameservers with provider, A/AAAA with ASN owner, CNAME, MX, CAA, SPF/DMARC, DNSSEC, registrar, and RDAP expiry. This differentiates it from siblings like check_certificate and check_dns_propagation. However, it doesn't explicitly separate itself from check_expiry, which also reports expiry, leaving minor ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus its alternatives. check_dns_propagation (propagation status) and check_expiry (expiry only) overlap meaningfully with this tool's fact set, yet no exclusions or alternative routing is provided. An agent must infer usage from the fact list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_dns_propagationARead-onlyInspect
Compare answers for one DNS record across resolvers: the authoritative nameservers, Korean ISPs (KT, SK Broadband, LG U+) and public resolvers (Cloudflare, Google, Quad9, OpenDNS), measured from a Korean network. Use it to confirm a TXT/CNAME for certificate domain validation (e.g. _acme-challenge) has propagated.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Record name, e.g. _acme-challenge.example.com | |
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description nonetheless adds a genuinely useful behavioral trait the annotations cannot: the measurement vantage point is a Korean network, with named Korean ISP and public resolvers, which affects what results mean. It omits timing/polling behavior and expected latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and the resolver set before the use case. The parenthetical resolver list (KT, SK Broadband, LG U+, Cloudflare, Google, Quad9, OpenDNS) is long but earns its place by defining measurement scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining what comes back; it never says whether the result is a match/mismatch verdict or a per-resolver answer list. It is adequate for selection but leaves the agent guessing about the return shape and about how long propagation checks may take.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: name is documented in the schema, while type has only an enum and no description. The description compensates partially by showing a record-name example (_acme-challenge.example.com) and highlighting TXT/CNAME, but adds no guidance on why a given type matters or on record-name formatting rules. Baseline 3 for a half-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (compare) and resource (answers for one DNS record) plus an explicit scope: authoritative nameservers, Korean ISPs, and public resolvers. That scope cleanly separates it from the generic-sounding sibling check_dns, so an agent can pick it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a concrete use case: confirming a TXT/CNAME for certificate domain validation (e.g. _acme-challenge) has propagated. That is clear when-to-use guidance, but it names no alternative (e.g. check_dns, check_certificate) and gives no when-NOT-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_expiryARead-onlyInspect
Verdict for up to 5 domains at once: status OK | WARN | CRITICAL | UNKNOWN per domain combining the served certificate (verification, days left, null when the server cannot be measured) and domain registration expiry (RDAP), plus Korean alert lines. Use this for inventories, CI gates (fail unless status is OK) and periodic checks.
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | Domain names | |
| critDays | No | Days before expiry that count as CRITICAL "expiring soon" (default 15; must be < warnDays) | |
| warnDays | No | Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| checkedAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/open-world/non-destructive, and the description adds genuine context beyond them: certificate fields may be null when the server cannot be measured, registration expiry comes from RDAP, alert lines are Korean, and defaults shrink for short-lived certificates. It omits operational traits such as rate limits, caching, or latency for up to 5 domains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core verdict semantics and status vocabulary before the use-case sentence; the two sentences are dense but earn their space. The first sentence is long and stacks several clauses (verification, days left, null case, RDAP, Korean lines), which slightly hurts scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is covered, and the description still explains what composes each status and how thresholds behave. Missing only environmental details (per-host rate limits, failure/null handling across a batch of 5), which are minor for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the warnDays/critDays defaults and the shrink-for-short-lived-certificates behavior, so the schema already carries parameter meaning. The description adds only the 'up to 5 domains' cap at the whole-tool level and no new syntax or format detail, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb/resource pair ('verdict ... per domain') and enumerates the exact outputs (OK | WARN | CRITICAL | UNKNOWN). The batch scope ('up to 5 domains at once') and the combination of served-certificate and RDAP registration expiry are clear enough to separate it from single-purpose siblings like check_certificate or watch_expiry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names intended uses: inventories, CI gates ('fail unless status is OK'), and periodic checks. That is concrete context, but it never states when not to use it — e.g. no routing to check_certificate for deep single-domain detail or watch_expiry for continuous monitoring, which 'periodic checks' potentially overlaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_securityARead-onlyInspect
Security posture check of a web server (no port scanning): TLS protocol support (legacy 1.0/1.1 detection via a Korean network probe), security headers (HSTS/CSP/X-Content-Type-Options/anti-clickjacking/Referrer-Policy), HTTP→HTTPS redirect, and certificate key/signature strength. Returns per-item pass/warn/fail and an overall grade.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and non-destructive behavior, so the description adds valuable context: the tool uses a 'Korean network probe' for legacy TLS detection, checks specific security headers, and returns 'per-item pass/warn/fail and an overall grade'. This goes beyond the annotation safety profile and clarifies scope and output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with a front-loaded purpose and an early exclusion note ('no port scanning'). It packs a lot of specific detail into a structured list format without redundant wording, though it is slightly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately discloses the return shape ('per-item pass/warn/fail and an overall grade'). It covers the main checks, the network probe behavior, and output format. It does not discuss error cases or timing, but for a single-parameter read-only tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, domain, is fully described in the schema ('Domain name, e.g. example.com'), giving 100% schema coverage. The description does not add parameter-level detail, but none is needed because the schema already covers it; this meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Security posture check of a web server', then enumerates exactly what is covered (TLS, headers, redirect, certificate strength). It also distinguishes itself from siblings by explicitly excluding port scanning and focusing on posture rather than DNS or certificate-only checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: for a security posture assessment of a web server, including an explicit exclusion of port scanning. It does not name sibling alternatives such as check_certificate for deeper cert details, so it stops short of explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_tls_errorARead-onlyInspect
Explain a TLS/SSL certificate error message from a browser, curl/OpenSSL, Java, Python, Node.js, Go or .NET: likely causes, fixes, and links to step-by-step guides (Korean). Works offline from a curated knowledge base.
| Name | Required | Description | Default |
|---|---|---|---|
| error | Yes | Full error text, e.g. "PKIX path building failed" or "NET::ERR_CERT_DATE_INVALID" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context: it works offline from a curated knowledge base, returns likely causes and fixes, and links to Korean step-by-step guides. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence front-loads the action and then efficiently specifies supported sources, output contents, language, and offline behavior. Every part earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup tool, the description fully covers the input format, output contents, language, and operational constraint. The sibling tools are all checkers, so no additional routing guidance is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the single 'error' parameter with examples. The description adds context about supported error sources but no additional parameter-level constraints or format details, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Explain') and a clear resource ('TLS/SSL certificate error message'), and enumerates the supported source ecosystems. This distinguishes it from sibling tools that check certificates, DNS, or expiry rather than explaining an existing error.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the trigger: when an agent has a TLS/SSL error string, this tool returns causes, fixes, and guides. It does not explicitly name alternatives or state when not to use it, so it lacks explicit exclusions, but the input type and offline knowledge-base behavior provide strong contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_expiryAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address that will receive the alerts | ||
| domains | Yes | 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. | |
| webhook | No | 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. | |
| critDays | No | Days before expiry that count as CRITICAL "expiring soon" (default 15; must be < warnDays) | |
| warnDays | No | Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates) | |
| slackWebhook | No | Deprecated alias of webhook that accepts only Slack Incoming Webhook URLs (https://hooks.slack.com/services/...). |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
watch_expiry2 fields changed- changed
Input schema / properties / domains / descriptionPrevious 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." - changed
Input schema / properties / webhook / descriptionPrevious 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."
1 tool update
- Changed
watch_expiry3 fields changed- changed
Input schema / properties / domains / descriptionPrevious 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." - changed
Input schema / properties / slackWebhook / descriptionPrevious 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/...)." - added
Input schema / properties / webhookAdded 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" +}
1 tool update
- Changed
watch_expiry1 field changed- changed
Input schema / properties / domains / descriptionPrevious 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)."
1 tool update
- Changed
watch_expiry2 fields changed- changed
Input schema / properties / domains / descriptionPrevious value: -"Domain names to monitor"New value: +"Domain names to monitor (host or host:port)" - added
Input schema / properties / slackWebhookAdded 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" +}
1 tool update
- Changed
check_certificate1 field changed- added
Input schema / properties / portAdded value: +{ + "description": "TLS port (default 443). Implicit TLS: 8443 4443 9443 6443 636 465 993 995 853 5061 3269 8883; STARTTLS: 25 587 (SMTP), 143 (IMAP), 110 (POP3), 389 (LDAP). Or pass domain as host:port", + "type": "integer" +}
3 tool updates
- Changed
check_certificate2 fields changed- added
Input schema / properties / critDaysAdded value: +{ + "description": "Days before expiry that count as CRITICAL \"expiring soon\" (default 15; must be < warnDays)", + "maximum": 365, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / warnDaysAdded value: +{ + "description": "Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates)", + "maximum": 365, + "minimum": 1, + "type": "integer" +}
- Changed
check_expiry2 fields changed- added
Input schema / properties / critDaysAdded value: +{ + "description": "Days before expiry that count as CRITICAL \"expiring soon\" (default 15; must be < warnDays)", + "maximum": 365, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / warnDaysAdded value: +{ + "description": "Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates)", + "maximum": 365, + "minimum": 1, + "type": "integer" +}
- Changed
watch_expiry2 fields changed- added
Input schema / properties / critDaysAdded value: +{ + "description": "Days before expiry that count as CRITICAL \"expiring soon\" (default 15; must be < warnDays)", + "maximum": 365, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / warnDaysAdded value: +{ + "description": "Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates)", + "maximum": 365, + "minimum": 1, + "type": "integer" +}
2 tool updates
- Changed
check_certificate2 fields changed- added
Input schema / properties / detailAdded value: +{ + "description": "Include the full certificate chain in the text output (default false)", + "type": "boolean" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "domain": { + "type": "string" + }, + "headline": { + "description": "One-line verdict (Korean)", + "type": "string" + }, + "reasons": { + "items": { + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "messageEn": { + "type": "string" + }, + "severity": { + "type": "string" + } + }, + "required": [ + "code", + "severity" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "description": "UNKNOWN = could not be measured (never treat as OK)", + "enum": [ + "OK", + "WARN", + "CRITICAL", + "UNKNOWN" + ], + "type": "string" + } + }, + "required": [ + "domain", + "status", + "headline", + "reasons" + ], + "type": "object" +}
- Changed
check_expiry1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "checkedAt": { + "type": "string" + }, + "results": { + "items": { + "properties": { + "domain": { + "type": "string" + }, + "headline": { + "description": "One-line verdict (Korean)", + "type": "string" + }, + "reasons": { + "items": { + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "messageEn": { + "type": "string" + }, + "severity": { + "type": "string" + } + }, + "required": [ + "code", + "severity" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "description": "UNKNOWN = could not be measured (never treat as OK)", + "enum": [ + "OK", + "WARN", + "CRITICAL", + "UNKNOWN" + ], + "type": "string" + } + }, + "required": [ + "domain", + "status", + "headline", + "reasons" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
7 tool updates
- First observed
check_certificate - First observed
check_dns - First observed
check_dns_propagation - First observed
check_expiry - First observed
check_security - First observed
explain_tls_error - First observed
watch_expiry
Related MCP Connectors
Inspect one endpoint's served certificate, expiry, hostname coverage, and accepted TLS versions.
Free SSL/TLS certificate checker: expiry, chain trust, hostname match, TLS version, A/B/C/F grade.
Inspects live IPv4/IPv6 DNS resolution, TLS certificate issuer/expiry, and HTTP security grade.
Inspects live IPv4/IPv6 DNS resolution, TLS certificate issuer/expiry, and HTTP security grade.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables live TLS/SSL certificate health checks for any hostname, providing expiry, hostname match, trust verdict, and a health score. Supports both free and paid deep tiers with protocol/cipher analysis.MIT
- AlicenseNot gradedqualityDmaintenanceProvides a unified tool for TLS certificate analysis with automatic OpenSSL integration, allowing users to fetch, analyze and assess security of TLS certificates without manual PEM handling.2MIT
- AlicenseNot gradedqualityBmaintenanceLets AI assistants check any host's SSL/TLS certificate, reporting expiry, chain trust, hostname match, TLS version, and an A/B/C/F grade. It runs as a remote Streamable HTTP server exposing a single check_certificate tool.MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to probe a live host's TLS handshake, read the actual SubjectPublicKeyInfo from the served certificate, and corroborate that exact key against Certificate Transparency logs to learn how long it has been harvestable. Exposes typed tools for ranking watches by urgency, recording triage decisions, replaying audit chains, and exporting OpenSSL migration configs, runbooks and sealed JSON dossiers.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.