Skip to main content
Glama

Server Details

TLS cert verdict (OK/WARN/CRITICAL/UNKNOWN) from the served chain: expiry, revocation, alerts

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 39 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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 tools
check_certificateA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
portNoTLS 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
detailNoInclude the full certificate chain in the text output (default false)
domainYesDomain name, e.g. example.com
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)

Output Schema

NameRequiredDescription
domainYes
statusYesUNKNOWN = could not be measured (never treat as OK)
reasonsYes
headlineYesOne-line verdict (Korean)

TDQS

A4.2/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_dnsA
Read-only
Inspect

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).

NameRequiredDescriptionDefault
domainYesDomain name, e.g. example.com

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_propagationA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
nameYesRecord name, e.g. _acme-challenge.example.com
typeYes

TDQS

A4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_expiryA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
domainsYesDomain names
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)

Output Schema

NameRequiredDescription
resultsYes
checkedAtNo

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_securityA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
domainYesDomain name, e.g. example.com

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/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 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_errorA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
errorYesFull error text, e.g. "PKIX path building failed" or "NET::ERR_CERT_DATE_INVALID"

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

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/...).

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedwatch_expiry2 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. 1 tool update
    • Changedwatch_expiry3 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. 1 tool update
    • Changedwatch_expiry1 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. 1 tool update
    • Changedwatch_expiry2 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. 1 tool update
    • Changedcheck_certificate1 field changed
      • addedInput schema / properties / port
        Added 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"
        +}
  6. 3 tool updates
    • Changedcheck_certificate2 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"
        +}
    • Changedcheck_expiry2 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"
        +}
    • Changedwatch_expiry2 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"
        +}
  7. 2 tool updates
    • Changedcheck_certificate2 fields changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "description": "Include the full certificate chain in the text output (default false)",
        +  "type": "boolean"
        +}
      • changedOutput 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"
        +}
    • Changedcheck_expiry1 field changed
      • changedOutput 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"
        +}
  8. 7 tool updates
    • First observedcheck_certificate
    • First observedcheck_dns
    • First observedcheck_dns_propagation
    • First observedcheck_expiry
    • First observedcheck_security
    • First observedexplain_tls_error
    • First observedwatch_expiry

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Lets 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
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources