Check DNS security faults
check_dns_hygieneUse this when the user asks about a domain's CAA record, DNSSEC, whether its mail servers offer STARTTLS, dangling CNAMEs or subdomain takeover risk, such as "does example.com have DNSSEC and CAA?" or "is any subdomain of acme.co.uk dangling?". Pass the domain. Returns 4 checks, each pass, fail, unknown or skipped with a detail and a fix: caa (the records), dnssec (signed, unsigned or broken), starttls (a result per mail server) and dangling_cnames (of 20 common names, CNAMEs to a missing name, each registrable, service or stale), a faults list worst first, and the source and as_of date. It reads public DNS and only the EHLO answer of up to 2 mail servers: it sends no mail, and it never registers or claims a name to test a takeover.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"domain": "<domain>"
},
"name": "check_dns_hygiene"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain, such as "example.com". A web address or an email address is reduced to its domain. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| caa | No | ||
| as_of | Yes | ||
| dnssec | No | ||
| domain | Yes | ||
| faults | Yes | ||
| notice | Yes | ||
| source | Yes | ||
| status | Yes | ||
| message | No | ||
| starttls | No | ||
| dangling_cnames | No |