list_domains
List all monitored domains in your organization
pageper_page
io.github.dmarc-examinerPublished by GitHub account dmarc-examinerv1.1.0Updated Nov 2, 2026
Read your own DMARC aggregate and forensic reports: sources, alignment, alerts, CSV export.
Official DMARC Examiner MCP server that lets an assistant query your DMARC aggregate and forensic reports, domains, alerts and webhooks.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.dmarc-examiner%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"dmarc-examiner": {
"type": "http",
"url": "https://mcp.dmarc-examiner.com/mcp"
}
}
}Official MCP (Model Context Protocol) server for DMARC Examiner. Query your DMARC monitoring data from AI assistants like Claude Desktop, Claude Code, and Cursor.
DMARC aggregate reports arrive as compressed XML, one file per receiver per day. Reading them means either opening a dashboard or parsing XML by hand.
This server puts that data behind an MCP connection, so you can ask questions instead:
Which sending sources failed DMARC alignment last week?
Show me the domains where SPF passes but DKIM does not.
Export the report for example.com as CSV.
DMARC Examiner is a DMARC monitoring service with a free tier — you need an account to use this server, but not a paid one.
Most MCP clients support remote HTTP servers directly. Add this to your MCP configuration:
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Add to your Cursor MCP settings:
Adding the server does not require authorizing. It starts immediately and answers initialize, tools/list and ping without credentials, so your client can list all 21 tools straight away.
A browser opens the first time you call a tool that touches your data. You'll need to:
The call you made is then replayed automatically, so it completes rather than failing.
With Option 1 the MCP client runs this flow itself. With Option 2 the package does it: it registers as an OAuth client, opens your browser, and stores the resulting tokens in ~/.dmarc-examiner/mcp-credentials.json with 0600 permissions. The refresh token is reused on later runs, so the browser step happens once.
Why it works this way. Authorizing on startup is the obvious design and it breaks every automated client: directory checks, scanners and CI have no browser to open, so the server appears to hang and the check times out. We wrote up the failure and the fix, with logs, in Your Remote MCP Server Will Fail Every Directory Check.
You can also drive it directly:
Set DMARC_EXAMINER_MCP_URL to point the package at a different endpoint.
Requires the Pro plan or above; these return 403 otherwise.
Requires the Pro plan or above; these return 403 otherwise.
For detailed documentation, visit: https://dmarc-examiner.com/docs/settings/mcp-integration?utm_source=github&utm_medium=content&utm_campaign=mcp-repo
MIT — see LICENSE.
Source: README.md at commit 6da6a70
List all monitored domains in your organization
pageper_pageGet details of a specific domain
domain_idrequiredInspect the public DMARC record at _dmarc.<domain>. The domain does not need to belong to your organization. Returns parsed policy and rua/ruf addresses.
domainrequiredAdd a new domain to the organization. Response includes the reporting_email and dmarc_record values to publish in DNS. May return 402 if the plan domain limit has been reached.
namerequiredRe-check a domain's DNS to confirm the DMARC record contains the organization's reporting email. Updates status to verified on success.
domain_idrequiredRemove a domain from monitoring. Soft-deletes; historical reports remain accessible.
domain_idrequiredList DMARC reports for your organization
pagedomaindate_toper_pagedate_fromGet details of a specific DMARC report
report_idrequiredGet statistics for a specific DMARC report
report_idrequiredExport a DMARC report as CSV
report_idrequiredList alerts for your organization
pagestatusper_pageDismiss a specific alert
alert_idrequiredList DMARC RUF (forensic) reports with optional filtering and pagination. Returns 403 if the plan does not include forensic reports (Pro plan and above).
pagedate_toper_pagedate_fromdomain_idGet the full detail of a forensic (RUF) report by UUID, including the raw failed message envelope.
report_idrequiredAggregated forensic-report counters grouped by auth failure type, delivery result, source IP (with geolocation) and reported domain.
Takes no parameters.
Summary of forensic activity in the last 7 days — useful for daily digest views.
Takes no parameters.
List webhook endpoints configured for the organization. Returns 403 if the plan does not include advanced alerting (Pro and above).
Takes no parameters.
Create a new webhook endpoint. URL must start with https://. Returns 422 if the organization has reached its webhook limit.
urlrequirednamerequiredUpdate a webhook. Any combination of url, name and is_active may be provided; URL must remain HTTPS.
urlnameis_activewebhook_idrequiredDelete a webhook endpoint permanently.
webhook_idrequiredSend a synchronous webhook.test event to verify connectivity. Returns the delivery status. Test events do NOT update last_triggered_at, last_status or failure_count.
webhook_idrequired100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
{ "mcpServers": { "dmarc-examiner": { "url": "https://mcp.dmarc-examiner.com/mcp" } }}{ "mcpServers": { "dmarc-examiner": { "command": "npx", "args": ["-y", "@dmarc-examiner/mcp"] } }}{ "mcpServers": { "dmarc-examiner": { "url": "https://mcp.dmarc-examiner.com/mcp" } }}claude mcp add dmarc-examiner --transport http https://mcp.dmarc-examiner.com/mcp{ "mcpServers": { "dmarc-examiner": { "url": "https://mcp.dmarc-examiner.com/mcp" } }}npx -y @dmarc-examiner/mcp login # authorize now, outside your MCP clientnpx -y @dmarc-examiner/mcp logout # forget the stored credentials