scan.mx Email Diagnostics

Check email deliverability for a domain: MX, SPF, DKIM, DMARC, blacklists. Graded, no key.

Should I use this

Quality & Safety

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

~2,449Tokens (tool definitions)
~4.1 KBTypical response size
Moderate attention impact (1.91% 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 (6)

🟢 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_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 recorded6 tools
verifiedversion not recorded6 tools