DnsGuard

Check a domain's email authentication: SPF, DKIM, DMARC, BIMI, MX, MTA-STS, TLS-RPT. Score + fixes.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,692Tokens (tool definitions)
~18.3 KBTypical response size
Moderate attention impact (1.32% of 128k context)

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": {
    "dnsguard": {
      "url": "https://dnsguard.mike-tusa.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://dnsguard.mike-tusa.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (1)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_domain(domain, dkim_selector, include_raw)

Audit the email-authentication DNS records of a domain. Returns a 0–100 score and A–F grade (MX 10, SPF 25, DMARC 30, DKIM 25, BIMI 10, plus up to 5 bonus points for MTA-STS and TLS-RPT, capped at 100), each check's status, published record, findings and recommended fixes, and a link to the full report. Read-only: it only queries public DNS and the domain's public MTA-STS policy file. Same engine and scoring as the DnsGuard JSON API (GET /api/check).

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Domain to check, e.g. example.com. A URL or email address is accepted and reduced to its domain."
    },
    "dkim_selector": {
      "type": "string",
      "maxLength": 255,
      "description": "Optional DKIM selector (the s= value from a DKIM-Signature header), e.g. s1 or google. Common selectors are always tried."
    },
    "include_raw": {
      "type": "boolean",
      "default": false,
      "description": "Also return the full /api/check JSON (all records, SPF include tree, DKIM keys) in structuredContent.raw. Larger output."
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "organizationalDomain": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "maxScore": {
      "type": "number"
    },
    "grade": {
      "type": "string",
      "enum": [
        "A",
        "B",
        "C",
        "D",
        "F"
      ]
    },
    "scoreBreakdown": {
      "type": "object",
      "properties": {
        "base": {
          "type": "number"
        },
        "bonus": {
          "type": "number"
        },
        "bonusMax": {
          "type": "number"
        },
        "cap": {
          "type": "number"
        }
      }
    },
    "checks": {
      "type": "object",
      "properties": {
        "mx": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "pass",
                "warn",
                "fail",
                "info"
              ]
            },
            "score": {
              "type": "number"
            },
            "maxScore": {
              "type": "number"
            },
            "bonus": {
              "type": "boolean",
              "description": "true for MTA-STS / TLS-RPT (bonus points on top of the 100-point core)"
            },
            "record": {
              "type": "string",
              "description": "Published record (omitted when none was found)"
            },
            "findings": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "level": {
                    "type": "string",
                    "enum": [
                      "pass",
                      "info",
                      "warn",
                      "fail"
                    ]
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "level",
                  "message"
                ]
              }
            },
            "recommendations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "status",
            "score",
            "maxScore",
            "findings",
            "recommendations"
          ]
        },
        "spf": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "pass",
                "warn",
                "fail",
                "info"
              ]
            },
            "score": {
              "type": "number"
            },
            "maxScore": {
              "type": "number"
            },
            "bonus": {
              "type": "boolean",
              "description": "true for MTA-STS / TLS-RPT (bonus points on top of the 100-point core)"
            },
            "record": {
              "type": "string",
              "description": "Published record (omitted when none was found)"
            },
            "findings": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "level": {
                    "type": "string",
                    "enum": [
                      "pass",
                      "info",
                      "warn",
                      "fail"
                    ]
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "level",
                  "message"
                ]
              }
            },
            "recommendations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "status",
            "score",
            "maxScore",
            "findings",
            "recommendations"
          ]
        },
        "dmarc": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "pass",
                "warn",
                "fail",
                "info"
              ]
            },
            "score": {
              "type": "number"
            },
            "maxScore": {
              "type": "number"
            },
            "bonus": {
              "type": "boolean",
              "description": "true for MTA-STS / TLS-RPT (bonus points on top of the 100-point core)"
            },
            "record": {
              "type": "string",
              "description": "Published record (omitted when none was found)"
            },
            "findings": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "level": {
                    "type": "string",
                    "enum": [
                      "pass",
                      "info",
                      "warn",
                      "fail"
                    ]
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "level",
                  "message"
                ]
              }
            },
            "recommendations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "status",
            "score",
            "maxScore",
            "findings",
            "recommendations"
          ]
        },
        "dkim": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "pass",
                "warn",
                "fail",
                "info"
              ]
            },
            "score": {
              "type": "number"
            },
            "maxScore": {
              "type": "number"
            },
            "bonus": {
              "type": "boolean",
              "description": "true for MTA-STS / TLS-RPT (bonus points on top of the 100-point core)"
            },
            "record": {
              "type": "string",
              "description": "Published record (omitted when none was found)"
            },
            "findings": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "level": {
                    "type": "string",
                    "enum": [
                      "pass",
                      "info",
                      "warn",
                      "fail"
                    ]
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "level",
                  "message"
                ]
              }
            },
            "recommendations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "status",
            "score",
            "maxScore",
            "findings",
            "recommendations"
          ]
        },
        "bimi": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "pass",
                "warn",
                "fail",
                "info"
              ]
            },
            "score": {
              "type": "number"
            },
            "maxScore": {
              "type": "number"
            },
            "bonus": {
              "type": "boolean",
              "description": "true for MTA-STS / TLS-RPT (bonus points on top of the 100-point core)"
            },
            "record": {
              "type": "string",
              "description": "Published record (omitted when none was found)"
            },
            "findings": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "level": {
                    "type": "string",
                    "enum": [
                      "pass",
                      "info",
                      "warn",
                      "fail"
                    ]
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "level",
                  "message"
                ]
              }
            },
            "recommendations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "status",
            "score",
            "maxScore",
            "findings",
            "recommendations"
          ]
        },
        "mtaSts": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "pass",
                "warn",
                "fail",
                "info"
              ]
            },
            "score": {
              "type": "number"
            },
            "maxScore": {
              "type": "number"
            },
            "bonus": {
              "type": "boolean",
              "description": "true for MTA-STS / TLS-RPT (bonus points on top of the 100-point core)"
            },
            "record": {
              "type": "string",
              "description": "Published record (omitted when none was found)"
            },
            "findings": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "level": {
                    "type": "string",
                    "enum": [
                      "pass",
                      "info",
                      "warn",
                      "fail"
                    ]
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "level",
                  "message"
                ]
              }
            },
            "recommendations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "status",
            "score",
            "maxScore",
            "findings",
            "recommendations"
          ]
        },
        "tlsRpt": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "pass",
                "warn",
                "fail",
                "info"
              ]
            },
            "score": {
              "type": "number"
            },
            "maxScore": {
              "type": "number"
            },
            "bonus": {
              "type": "boolean",
              "description": "true for MTA-STS / TLS-RPT (bonus points on top of the 100-point core)"
            },
            "record": {
              "type": "string",
              "description": "Published record (omitted when none was found)"
            },
            "findings": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "level": {
                    "type": "string",
                    "enum": [
                      "pass",
                      "info",
                      "warn",
                      "fail"
                    ]
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "level",
                  "message"
                ]
              }
            },
            "recommendations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "status",
            "score",
            "maxScore",
            "findings",
            "recommendations"
          ]
        }
      }
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "checkedAt": {
      "type": "string"
    },
    "cached": {
      "type": "boolean"
    },
    "tier": {
      "type": "string",
      "enum": [
        "anonymous",
        "free",
        "pro"
      ]
    },
    "reportUrl": {
      "type": "string"
    },
    "apiUrl": {
      "type": "string"
    },
    "version": {
      "type": "string"
    },
    "raw": {
      "type": "object",
      "description": "Full /api/check response (only when include_raw is true)"
    }
  },
  "required": [
    "domain",
    "score",
    "maxScore",
    "grade",
    "checks",
    "reportUrl"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded1 tools