scan.mx Email Diagnostics

Email deliverability check: MX, SPF, DKIM, DMARC, blacklists, MTA-STS, DNSSEC, BIMI. Graded, no key.

Should I use this

Quality & Safety

A
Description quality
96%
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

~3,586Tokens (tool definitions)
~4.1 KBTypical response size
Significant attention impact (2.80% 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": {
    "diagnostics": {
      "url": "https://api.scan.mx/mcp"
    }
  }
}

Remote endpoints

https://api.scan.mx/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

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

Run the full email and DNS deliverability check for a domain: MX, SPF, DKIM, DMARC, DNS health, provider detection, and blacklists. Returns a letter grade (A+ to F, where specific weaknesses cap the grade), a 0 to 100 score, and every individual check with its RFC reference. Set include_smtp to also run a live SMTP probe of the mail servers: the probe is non-blocking, so when smtp_status is "pending" or "running" call this tool again (poll_after_seconds hints how long to wait) until smtp_status is "complete" and the SMTP checks appear in checks.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 253,
      "description": "The domain to check, e.g. example.com. No scheme or path."
    },
    "include_smtp": {
      "default": false,
      "description": "Also run a live SMTP connectivity probe of the MX hosts. Non-blocking: poll by re-calling until smtp_status is complete.",
      "type": "boolean"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "grade": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "smtp_status": {
      "type": "string"
    },
    "sections": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "grade"
        ],
        "additionalProperties": false
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "rfc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "details": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "permalink": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "smtp_note": {
      "type": "string"
    },
    "poll_after_seconds": {
      "type": "number"
    },
    "created_at": {
      "type": "number"
    },
    "updated_at": {
      "type": "number"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢check_mx(domain)

Check the MX records of a domain: presence, hostnames, resolution, null-MX, and common misconfigurations.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 253,
      "description": "The domain to check, e.g. example.com. No scheme or path."
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "grade": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "smtp_status": {
      "type": "string"
    },
    "sections": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "grade"
        ],
        "additionalProperties": false
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "rfc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "details": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "permalink": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "smtp_note": {
      "type": "string"
    },
    "poll_after_seconds": {
      "type": "number"
    },
    "created_at": {
      "type": "number"
    },
    "updated_at": {
      "type": "number"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢check_spf(domain)

Check the domain SPF policy: presence, syntax, the all qualifier, and the 10-lookup limit.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 253,
      "description": "The domain to check, e.g. example.com. No scheme or path."
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "grade": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "smtp_status": {
      "type": "string"
    },
    "sections": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "grade"
        ],
        "additionalProperties": false
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "rfc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "details": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "permalink": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "smtp_note": {
      "type": "string"
    },
    "poll_after_seconds": {
      "type": "number"
    },
    "created_at": {
      "type": "number"
    },
    "updated_at": {
      "type": "number"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢check_dmarc(domain)

Check the domain DMARC policy at _dmarc: presence, policy strength (none/quarantine/reject), and reporting.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 253,
      "description": "The domain to check, e.g. example.com. No scheme or path."
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "grade": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "smtp_status": {
      "type": "string"
    },
    "sections": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "grade"
        ],
        "additionalProperties": false
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "rfc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "details": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "permalink": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "smtp_note": {
      "type": "string"
    },
    "poll_after_seconds": {
      "type": "number"
    },
    "created_at": {
      "type": "number"
    },
    "updated_at": {
      "type": "number"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢check_blacklist(domain)

Check whether the domain and its mail server IPs are listed on the Spamhaus (ZEN, DBL, ZRD, AuthBL), SpamCop, GBUdb and PSBL blocklists.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 253,
      "description": "The domain to check, e.g. example.com. No scheme or path."
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "grade": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "smtp_status": {
      "type": "string"
    },
    "sections": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "grade"
        ],
        "additionalProperties": false
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "rfc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "details": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "permalink": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "smtp_note": {
      "type": "string"
    },
    "poll_after_seconds": {
      "type": "number"
    },
    "created_at": {
      "type": "number"
    },
    "updated_at": {
      "type": "number"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢check_mta_sts(domain)

Check the domain MTA-STS policy (_mta-sts TXT and the HTTPS policy file, mode and MX coverage) and its TLS-RPT reporting record.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 253,
      "description": "The domain to check, e.g. example.com. No scheme or path."
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "grade": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "smtp_status": {
      "type": "string"
    },
    "sections": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "grade"
        ],
        "additionalProperties": false
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "rfc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "details": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "permalink": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "smtp_note": {
      "type": "string"
    },
    "poll_after_seconds": {
      "type": "number"
    },
    "created_at": {
      "type": "number"
    },
    "updated_at": {
      "type": "number"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢check_dnssec(domain)

Check DNSSEC validation and DNS health: delegation, nameserver count, SOA, and reverse DNS of the mail servers.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 253,
      "description": "The domain to check, e.g. example.com. No scheme or path."
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "grade": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "smtp_status": {
      "type": "string"
    },
    "sections": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "grade"
        ],
        "additionalProperties": false
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "rfc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "details": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "permalink": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "smtp_note": {
      "type": "string"
    },
    "poll_after_seconds": {
      "type": "number"
    },
    "created_at": {
      "type": "number"
    },
    "updated_at": {
      "type": "number"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢check_bimi(domain)

Check the domain BIMI record at default._bimi: the SVG logo URL, the VMC/CMC certificate, and the DMARC enforcement BIMI needs.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 253,
      "description": "The domain to check, e.g. example.com. No scheme or path."
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "grade": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "smtp_status": {
      "type": "string"
    },
    "sections": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "grade"
        ],
        "additionalProperties": false
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "rfc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "details": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "permalink": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "smtp_note": {
      "type": "string"
    },
    "poll_after_seconds": {
      "type": "number"
    },
    "created_at": {
      "type": "number"
    },
    "updated_at": {
      "type": "number"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢check_dkim(domain, selector)

Check DKIM signing keys for a domain. Without a selector, common provider selectors are probed. Pass an explicit selector to look up that exact key at selector._domainkey.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 253,
      "description": "The domain to check, e.g. example.com. No scheme or path."
    },
    "selector": {
      "description": "An explicit DKIM selector to look up (e.g. \"google\", \"s1\").",
      "type": "string",
      "maxLength": 63,
      "pattern": "^[a-z0-9_.-]+$"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "grade": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "smtp_status": {
      "type": "string"
    },
    "sections": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          }
        },
        "required": [
          "score",
          "grade"
        ],
        "additionalProperties": false
      }
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "rfc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "details": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "permalink": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "smtp_note": {
      "type": "string"
    },
    "poll_after_seconds": {
      "type": "number"
    },
    "created_at": {
      "type": "number"
    },
    "updated_at": {
      "type": "number"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools