Use when email lands in spam: audits SPF, DKIM, DMARC, MX and returns the DNS records to fix it.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add a domain to the signed-in user's MailVakt account for DMARC report collection. Takes a domain; returns its DMARC reporting (rua) address and account entry. Repeated calls for the same account and domain return the existing entry. Requires domains:write permission. Does not verify domain ownership, modify DNS, or start receiving reports until the user publishes the reporting address in DNS.
The domain to add, e.g. example.com
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Add a domain to the signed-in user's MailVakt account for DMARC report collection. Takes a domain; returns its DMARC reporting (rua) address and account entry. Repeated calls for the same account and domain return the existing entry. Requires domains:write permission. Does not verify domain ownership, modify DNS, or start receiving reports until the user publishes the reporting address in DNS.
| Argument | Type | Description |
|---|---|---|
| domain* | string | The domain to add, e.g. example.com |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 1,
"description": "The domain to add, e.g. example.com"
}
}
}Analyze raw email headers supplied by the user to investigate authentication or delivery issues. Returns the SPF, DKIM and DMARC results reported in those headers, alignment, the sending IP, whether that IP and the From domain are on free public blocklists (not Spamhaus), and detected issues. It does not independently verify DKIM signatures or establish the receiving provider's exact spam-filter decision. Provide headers only, not the message body.
| Argument | Type | Description |
|---|---|---|
| headers* | string | The raw message headers, as copied from "Show original" |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"headers"
],
"properties": {
"headers": {
"type": "string",
"maxLength": 262144,
"minLength": 1,
"description": "The raw message headers, as copied from \"Show original\""
}
}
}Audit a domain's SPF, DKIM, DMARC, MX, alignment, BIMI, MTA-STS and TLS-RPT setup and check it against free public blocklists (not Spamhaus) when troubleshooting email authentication or spam delivery. Takes a domain, optional checks and DKIM selectors, and fresh=true to bypass cached results. Returns a graded scorecard, findings, proposed DNS fixes and a public report permalink. Uses DNS and policy-file lookups; never changes DNS or guarantees inbox placement.
| Argument | Type | Description |
|---|---|---|
| fresh | boolean | Bypass caches and re-query DNS |
| checks | array | Run only these checks (default: all) |
| domain* | string | The domain to check, e.g. example.com |
| dkim_selectors | array | Extra DKIM selectors to probe, e.g. google, s1 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain"
],
"properties": {
"fresh": {
"type": "boolean",
"description": "Bypass caches and re-query DNS"
},
"checks": {
"type": "array",
"items": {
"enum": [
"mx",
"spf",
"dkim",
"dmarc",
"alignment",
"bimi",
"mta-sts",
"tls-rpt",
"blocklists"
],
"type": "string"
},
"description": "Run only these checks (default: all)"
},
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 1,
"description": "The domain to check, e.g. example.com"
},
"dkim_selectors": {
"type": "array",
"items": {
"type": "string",
"maxLength": 63,
"minLength": 1
},
"maxItems": 20,
"description": "Extra DKIM selectors to probe, e.g. google, s1"
}
}
}Propose email-authentication DNS records and policy files for a domain using its DNS configuration and optional provider names or IDs. Supports baseline (monitoring) or enforce goals; baseline is the default. Returns typed SPF, DKIM, DMARC, MTA-STS and TLS-RPT proposals or provider setup instructions where applicable. Provider-specific values and reporting addresses may need user input. Uses public DNS/policy lookups, possibly cached. Does not publish records or change DNS.
| Argument | Type | Description |
|---|---|---|
| goal | string | baseline: monitor (p=none); enforce: quarantine/reject |
| domain* | string | The domain the records are for, e.g. example.com |
| providers | array | Provider ids or names, e.g. google-workspace, sendgrid (default: detected) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain"
],
"properties": {
"goal": {
"enum": [
"baseline",
"enforce"
],
"type": "string",
"description": "baseline: monitor (p=none); enforce: quarantine/reject"
},
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 1,
"description": "The domain the records are for, e.g. example.com"
},
"providers": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"maxItems": 20,
"description": "Provider ids or names, e.g. google-workspace, sendgrid (default: detected)"
}
}
}Summarize received DMARC aggregate reports for a domain already in the signed-in user's MailVakt account. Takes the domain and a 1-to-90-day window (default 7); returns report and message totals, DMARC pass/fail counts, and per-source SPF/DKIM alignment and receiver actions. Requires domains:read and reports:read permissions. Returns zero totals if no reports were received, or an error if the domain is not in the account. Does not add domains or generate report traffic.
| Argument | Type | Description |
|---|---|---|
| days | integer | Window in days (default 7) |
| domain* | string | One of the user's domains, e.g. example.com |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain"
],
"properties": {
"days": {
"type": "integer",
"default": 7,
"maximum": 90,
"minimum": 1,
"description": "Window in days (default 7)"
},
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 1,
"description": "One of the user's domains, e.g. example.com"
}
}
}Read a MailVakt email-receipt test using the ID returned by start_inbox_test. Returns pending, received or expired status and, when processed, the received message's authentication, unsubscribe, content and deliverability findings. Reports processing failures as errors. Anyone with the test ID can retrieve it; use only an ID supplied by the user or created in this conversation. Does not measure placement at other mailbox providers.
| Argument | Type | Description |
|---|---|---|
| id* | string | The id returned by start_inbox_test |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z2-7]{1,32}$",
"description": "The id returned by start_inbox_test"
}
}
}List domains in the signed-in user's MailVakt account, including each domain's DMARC reporting address. Takes no input and requires domains:read permission. Returns an empty list if the account has no domains. Use to find the account's available domains before requesting DMARC summaries; does not enumerate domains belonging to other users.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Create an email-receipt test in MailVakt. Takes an optional expected sender domain; returns a test ID, unique recipient address and expiry time. The user must send a test message to that address before expiry, then use get_inbox_test to read the result. Creates a new test on each call. Does not send email or measure inbox-versus-spam placement at Gmail, Outlook or other mailbox providers.
| Argument | Type | Description |
|---|---|---|
| expected_from_domain | string | The domain the test email will be sent from, e.g. example.com |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"expected_from_domain": {
"type": "string",
"maxLength": 253,
"minLength": 1,
"description": "The domain the test email will be sent from, e.g. example.com"
}
}
}