certdesk
TLS certificate diagnostics: served-cert expiry, chain, security grade, error explainer, alerts
Should I use this
Quality & Safety
Findings (1)
- LOWin check_dns
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"certdesk": {
"url": "https://certdesk.dev/mcp"
}
}
}Remote endpoints
https://certdesk.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢check_certificate(domain)
Check one domain's TLS certificate in depth: expiry and days left for the certificate the server actually serves (measured from a Korean network, CT logs as fallback), whether a newer certificate exists in CT logs but is not deployed, live TLS verification from a global PoP and from Korea, certificate chain (leaf → intermediates → root), revocation, SAN list, and recent incident history of the issuing CA.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "Domain name, e.g. example.com"
}
},
"required": [
"domain"
]
}🟢check_expiry(domains)
Expiry summary for up to 5 domains at once: served certificate expiry and issuer, undeployed newer certificate in CT logs, domain registration expiry (RDAP), and alert lines (Korean). Use this for inventories and periodic checks.
Input Schema
{
"type": "object",
"properties": {
"domains": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 5,
"description": "Domain names"
}
},
"required": [
"domains"
]
}🟢check_security(domain)
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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "Domain name, e.g. example.com"
}
},
"required": [
"domain"
]
}🟢check_dns(domain)
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).
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "Domain name, e.g. example.com"
}
},
"required": [
"domain"
]
}🟢check_dns_propagation(name, type)
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.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Record name, e.g. _acme-challenge.example.com"
},
"type": {
"type": "string",
"enum": [
"A",
"AAAA",
"CNAME",
"TXT",
"MX",
"NS",
"CAA",
"SOA"
]
}
},
"required": [
"name",
"type"
]
}🟢explain_tls_error(error)
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.
Input Schema
{
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Full error text, e.g. \"PKIX path building failed\" or \"NET::ERR_CERT_DATE_INVALID\""
}
},
"required": [
"error"
]
}⚪watch_expiry(email, domains)
Subscribe an email address to free daily expiry monitoring of up to 5 domains (certificate, domain registration and security grade) with email alerts. Double opt-in: a confirmation email is sent and monitoring starts only after the recipient clicks the link. Use only an address the user owns and explicitly asked to use.
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Email address that will receive the alerts"
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 5,
"description": "Domain names to monitor"
}
},
"required": [
"email",
"domains"
]
}Community
Evidence