{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_bxrbsa7kn3cr","handle":"domaincanary","url":"https://wellknown.network/agents/domaincanary","links":{"self":"https://wellknown.network/agents/domaincanary/record.json","html":"https://wellknown.network/agents/domaincanary","markdown":"https://wellknown.network/agents/domaincanary/record.md","api":"https://wellknown.network/api/v1/agents/domaincanary","status":"https://wellknown.network/api/v1/agents/domaincanary/status","claim":"https://wellknown.network/agents/domaincanary/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/domaincanary/claim.json","badge":"https://wellknown.network/agents/domaincanary/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/domaincanary/history","tools":"https://wellknown.network/api/v1/agents/domaincanary/tools"},"ard":{"identifier":"urn:air:domaincanary.com:server:domaincanary","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"DomainCanary","summary":"Check a domain's DMARC, SPF and DKIM, build SPF records, explain bounces, read DMARC reports.","description":"Check a domain's DMARC, SPF and DKIM, build SPF records, explain bounces, read DMARC reports.","publisher":{"name":"com.domaincanary","url":null},"homepage":"https://domaincanary.com/guides/check-your-domain-from-chatgpt-or-claude","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://domaincanary.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-03T00:42:02.857085Z","publishedAt":"2026-10-03T00:42:02.857085Z","registryName":"com.domaincanary/mcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"productivity.email","name":"Email","confidence":0.948,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":0.885,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.583,"provenance":"derived"}],"categories":["analytics","productivity","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 6h ago.","lastOkAt":"2026-10-09T23:30:42.452Z","lastProbedAt":"2026-10-09T23:30:42.452Z","statusComputedAt":"2026-10-09T23:31:23.675Z","reliability30d":{"probes":25,"successRate":1,"p50Ms":119,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":25,"ok":25,"authBoundaryOk":0,"serviceOk":25,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-09T23:30:42.452Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":105,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T17:27:35.843Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":140,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T11:27:55.895Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":111,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T05:25:37.047Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":107,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T22:25:03.885Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":129,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T16:29:14.072Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":121,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T10:24:50.256Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":111,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T04:25:34.319Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":144,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T21:29:30.012Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":99,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T15:31:13.795Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":119,"error":null,"detail":{"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"toolCount":4,"toolsHash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","serverName":"domaincanary","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"check_domain","description":"Use this when someone asks whether a domain's email authentication is set up correctly, why mail from a domain fails DMARC, SPF or DKIM, or which DNS records to"},{"name":"build_spf","description":"Use this when someone lists the services that send their email and wants the SPF record to publish, or wants a sender added to the SPF record they already have."},{"name":"explain_bounce","description":"Use this when someone pastes a bounce message, an SMTP reply such as 550 5.7.26, or an Authentication-Results header and asks what it means or how to fix it. Re"},{"name":"analyze_report","description":"Use this when someone has a DMARC aggregate report and wants to know which senders passed and which failed. The report is the XML, .gz or .zip file that receive"}],"package":null,"toolSurface":{"id":"ts_n8svny4bv6bj","endpointId":"ep_9e7bmagvp9t9","hash":"da86e305ce68bf07b76297c55407ee874ef40162d61c15e148180722be565d2b","toolCount":4,"serverName":"domaincanary","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-03T10:27:57.775Z","lastSeenAt":"2026-10-09T23:30:42.442Z","observations":25,"toolNames":["check_domain","build_spf","explain_bounce","analyze_report"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_9e7bmagvp9t9","url":"https://domaincanary.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-07T08:30:33.317Z","auth":{"observedAt":"2026-10-07T08:30:33.427Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-07T08:30:33.437Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"domaincanary.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-08-15T15:52:17.000Z","validTo":"2026-11-13T16:48:22.000Z","daysToExpiry":34,"sanCount":2,"fingerprint256":"C1:6E:5A:3E:E1:8F:61:58:3D:3E:95:32:13:E4:99:0F:75:A6:2E:99:01:C3:28:4F:D6:2C:55:72:D4:46:1F:8A"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.domaincanary/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/com.domaincanary%2Fmcp","firstSeenAt":"2026-10-03T10:23:24.575Z","fetchedAt":"2026-10-09T05:21:39.826Z","normalizedAt":"2026-10-09T05:21:39.826Z"}]},"firstSeenAt":"2026-10-03T10:23:24.575Z","updatedAt":"2026-10-09T23:32:30.065Z"}