{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ubvd5h9zt4bm","handle":"tls-radar","url":"https://wellknown.network/agents/tls-radar","links":{"self":"https://wellknown.network/agents/tls-radar/record.json","html":"https://wellknown.network/agents/tls-radar","markdown":"https://wellknown.network/agents/tls-radar/record.md","api":"https://wellknown.network/api/v1/agents/tls-radar","status":"https://wellknown.network/api/v1/agents/tls-radar/status","claim":"https://wellknown.network/agents/tls-radar/claim","claimApi":"https://wellknown.network/api/v1/claims","badge":"https://wellknown.network/agents/tls-radar/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:tlsradar.com:server:tls-radar","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"TLS Radar","summary":"SSL/TLS scanning, free Let's Encrypt issuance, and certificate-expiry monitoring.","description":"SSL/TLS scanning, free Let's Encrypt issuance, and certificate-expiry monitoring.","publisher":{"name":"com.tlsradar","url":null},"homepage":"https://tlsradar.com/cli","repository":"https://github.com/TLS-Radar/tlsradar-claude-plugin","version":"0.5.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://tlsradar.com/api/v1/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-06-15T12:43:28.972853Z","publishedAt":"2026-06-15T12:43:28.972853Z","registryName":"com.tlsradar/tlsradar"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"dev.monitoring","name":"Monitoring & Observability","confidence":0.99,"provenance":"derived"},{"slug":"code.security-review","name":"Security Review","confidence":0.583,"provenance":"derived"},{"slug":"infra.cloud","name":"Cloud Platforms","confidence":0.554,"provenance":"derived"},{"slug":"code.refactoring","name":"Refactoring","confidence":0.54,"provenance":"derived"}],"categories":["code","dev","infra","security"]},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-09-06T00:27:05.726Z","lastProbedAt":"2026-09-06T00:27:05.726Z","statusComputedAt":"2026-09-06T00:28:14.201Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":361},"latestObservations":[{"at":"2026-09-06T00:27:05.726Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":361,"error":null,"detail":{"tools":[{"name":"scan_domain","description":"Run a free, anonymous SSL/TLS scan against a hostname and return certificate details. No account required."},{"name":"create_certificate","description":"Start issuing a FREE 90-day Let's Encrypt certificate for a domain (no account required). Step 1 of 3.\nPick a validation method with `challenge`: \"dns-01\" (defa"},{"name":"check_certificate_propagation","description":"Check whether the DNS TXT records for a certificate order have propagated (Cloudflare/Google/Quad9). Step 2 of issuance - poll until all_found is true, then cal"},{"name":"finalize_certificate","description":"Finalize and issue a certificate order in one call: validates the DNS challenges, waits for Let's Encrypt, and returns the issued cert. Step 3 of issuance - cal"},{"name":"get_certificate_status","description":"Return the current state of a certificate order (dns_pending, validating, ready, completed, failed) and per-authorization Let's Encrypt statuses. Use it to resu"},{"name":"renew_certificate","description":"Renew a certificate by cloning a recent order (requires the original order_id; Beacon purges orders after ~24h). Returns a new order_id and fresh DNS TXT record"},{"name":"register_beacon_order","description":"OBSOLETE - do not call. The cert→monitoring handoff is server-side now (issue via create_certificate, which records the order itself). This tool is kept only so"},{"name":"get_account","description":"Return the current user's plan, limits, and usage so the client can render upgrade nudges proactively."},{"name":"list_monitors","description":"List all certificates currently being monitored across the user's teams.\nIf the response's structuredContent includes a `nudge` object, the user is at their mon"},{"name":"add_monitor","description":"Add a domain to ongoing certificate monitoring with expiry alerts. Requires authentication (the user runs /mcp once).\nIf the plan's monitor limit is reached, th"},{"name":"add_monitors","description":"Add multiple domains to monitoring in one call. Returns a per-domain status so the caller can show partial-success outcomes. Honors the same plan-limit checks a"},{"name":"remove_monitor","description":"Stop monitoring a domain. Accepts the domain name or the host_id returned by list_monitors."},{"name":"list_expiring_certificates","description":"Return monitored certificates expiring within N days. Defaults to 30.\nIf the response's structuredContent includes a `nudge` object, the user is watching enough"},{"name":"get_scan_history","description":"Return recent scan results for a domain the user monitors. Useful for spotting issuer changes, grade drops, or vulnerability appearances over time."},{"name":"export_monitors","description":"Dump the user's monitors as a JSON structure suitable for backup, migration, or infrastructure-as-code workflows. Tokens and PII are NEVER included - only domai"},{"name":"import_monitors","description":"Create monitors from a JSON structure (typically produced by `export`). Skips domains the user is already monitoring; honors the plan's domain limit. Returns a "},{"name":"invite_team_member","description":"Invite a user to a team by email. Defaults to the user's current team. Honors the plan's seat limit (returns the same upgrade payload as add_monitor when the ca"}],"toolCount":17,"serverName":"TLS Radar","capabilities":["tools","resources","prompts"],"serverVersion":"1.0","protocolVersion":"2024-11-05"}}],"tools":[{"name":"scan_domain","description":"Run a free, anonymous SSL/TLS scan against a hostname and return certificate details. No account required."},{"name":"create_certificate","description":"Start issuing a FREE 90-day Let's Encrypt certificate for a domain (no account required). Step 1 of 3.\nPick a validation method with `challenge`: \"dns-01\" (defa"},{"name":"check_certificate_propagation","description":"Check whether the DNS TXT records for a certificate order have propagated (Cloudflare/Google/Quad9). Step 2 of issuance - poll until all_found is true, then cal"},{"name":"finalize_certificate","description":"Finalize and issue a certificate order in one call: validates the DNS challenges, waits for Let's Encrypt, and returns the issued cert. Step 3 of issuance - cal"},{"name":"get_certificate_status","description":"Return the current state of a certificate order (dns_pending, validating, ready, completed, failed) and per-authorization Let's Encrypt statuses. Use it to resu"},{"name":"renew_certificate","description":"Renew a certificate by cloning a recent order (requires the original order_id; Beacon purges orders after ~24h). Returns a new order_id and fresh DNS TXT record"},{"name":"register_beacon_order","description":"OBSOLETE - do not call. The cert→monitoring handoff is server-side now (issue via create_certificate, which records the order itself). This tool is kept only so"},{"name":"get_account","description":"Return the current user's plan, limits, and usage so the client can render upgrade nudges proactively."},{"name":"list_monitors","description":"List all certificates currently being monitored across the user's teams.\nIf the response's structuredContent includes a `nudge` object, the user is at their mon"},{"name":"add_monitor","description":"Add a domain to ongoing certificate monitoring with expiry alerts. Requires authentication (the user runs /mcp once).\nIf the plan's monitor limit is reached, th"},{"name":"add_monitors","description":"Add multiple domains to monitoring in one call. Returns a per-domain status so the caller can show partial-success outcomes. Honors the same plan-limit checks a"},{"name":"remove_monitor","description":"Stop monitoring a domain. Accepts the domain name or the host_id returned by list_monitors."},{"name":"list_expiring_certificates","description":"Return monitored certificates expiring within N days. Defaults to 30.\nIf the response's structuredContent includes a `nudge` object, the user is watching enough"},{"name":"get_scan_history","description":"Return recent scan results for a domain the user monitors. Useful for spotting issuer changes, grade drops, or vulnerability appearances over time."},{"name":"export_monitors","description":"Dump the user's monitors as a JSON structure suitable for backup, migration, or infrastructure-as-code workflows. Tokens and PII are NEVER included - only domai"},{"name":"import_monitors","description":"Create monitors from a JSON structure (typically produced by `export`). Skips domains the user is already monitoring; honors the plan's domain limit. Returns a "},{"name":"invite_team_member","description":"Invite a user to a team by email. Defaults to the user's current team. Honors the plan's seat limit (returns the same upgrade payload as add_monitor when the ca"}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.tlsradar/tlsradar","url":"https://registry.modelcontextprotocol.io/v0/servers/com.tlsradar%2Ftlsradar","firstSeenAt":"2026-09-05T21:20:37.920Z","fetchedAt":"2026-09-05T21:20:37.920Z","normalizedAt":"2026-09-05T21:20:37.920Z"}]},"firstSeenAt":"2026-09-05T21:20:37.920Z","updatedAt":"2026-09-06T00:28:21.632Z"}