certdesk
Registry code: 6f896751dabf9090
certdesk: TLS/SSL certificate diagnostics. check_certificate = one domain in depth; check_expiry = up to 5 domains; check_security = server hardening grade; check_dns = nameservers, DNS provider, IP owner, CAA, SPF/DMARC, DNSSEC, registrar; check_dns_propagation = compare a record across Korean ISPs, public resolvers and authoritative servers (for TXT/CNAME domain validation); explain_tls_error = what an error message means and how to fix it; watch_expiry = free email alerts (double opt-in, only with the user's own address). Guides are Korean: https://certdesk.dev/ko/guide/
- endpoint
- https://certdesk.dev/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is certdesk live?
- Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
- Is certdesk free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does certdesk have?
- 7 tools: check_security, check_certificate, check_dns, watch_expiry, check_dns_propagation, check_expiry, explain_tls_error.
- Is certdesk safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 7 tools
- degraded → live
- used for
- check a tls certificate
- check certificate expiry for domains
- check dns propagation
- explain a tls error
- watch certificate expiry by email
- takes → gives
- text → data, text
- tools
- 6 reads1 changes data
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
check_security reads unknown 22h ago
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.
{ "type": "object", "required": [ "domain" ], "properties": { "domain": { "type": "string", "description": "Domain name, e.g. example.com" } } }arguments 12 linescheck_certificate reads unknown 18h ago
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.
{ "type": "object", "required": [ "domain" ], "properties": { "port": { "type": "integer", "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" }, "detail": { "type": "boolean", "description": "Include the full certificate chain in the text output (default false)" }, "domain": { "type": "string", "description": "Domain name, e.g. example.com" }, "critDays": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Days before expiry that count as CRITICAL \"expiring soon\" (default 15; must be < warnDays)" }, "warnDays": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates)" } } }arguments 32 linescheck_dns reads unknown 18h ago
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).
{ "type": "object", "required": [ "domain" ], "properties": { "domain": { "type": "string", "description": "Domain name, e.g. example.com" } } }arguments 12 lineswatch_expiry changes data unknown never probed
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.
{ "type": "object", "required": [ "email", "domains" ], "properties": { "email": { "type": "string", "description": "Email address that will receive the alerts" }, "domains": { "type": "array", "items": { "type": "string" }, "maxItems": 5, "minItems": 1, "description": "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": { "type": "string", "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." }, "critDays": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Days before expiry that count as CRITICAL \"expiring soon\" (default 15; must be < warnDays)" }, "warnDays": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates)" }, "slackWebhook": { "type": "string", "description": "Deprecated alias of webhook that accepts only Slack Incoming Webhook URLs (https://hooks.slack.com/services/...)." } } }arguments 42 linescheck_dns_propagation reads unknown 18h ago
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.
{ "type": "object", "required": [ "name", "type" ], "properties": { "name": { "type": "string", "description": "Record name, e.g. _acme-challenge.example.com" }, "type": { "enum": [ "A", "AAAA", "CNAME", "TXT", "MX", "NS", "CAA", "SOA" ], "type": "string" } } }arguments 26 linescheck_expiry reads unknown 22h ago
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.
{ "type": "object", "required": [ "domains" ], "properties": { "domains": { "type": "array", "items": { "type": "string" }, "maxItems": 5, "minItems": 1, "description": "Domain names" }, "critDays": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Days before expiry that count as CRITICAL \"expiring soon\" (default 15; must be < warnDays)" }, "warnDays": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Days before expiry that count as WARN (default 30; the default shrinks for short-lived certificates)" } } }arguments 29 linesexplain_tls_error reads unknown 22h ago
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.
{ "type": "object", "required": [ "error" ], "properties": { "error": { "type": "string", "description": "Full error text, e.g. \"PKIX path building failed\" or \"NET::ERR_CERT_DATE_INVALID\"" } } }arguments 12 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id6f896751dabf9090.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/6f896751dabf9090/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/6f896751dabf9090?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.