DMARC Examiner MCP
This server lets AI assistants query and manage DMARC monitoring data from DMARC Examiner.
Domain management: list, inspect, add, verify, and remove monitored domains; check any domain's public DMARC record
Aggregate report queries: list, view, and get statistics for DMARC reports; export reports as CSV
Forensic report queries: list, view, summarize, and get statistics for RUF forensic reports (Pro plan+)
Alert management: list and dismiss security alerts
Webhook management: list, create, update, delete, and test webhook endpoints (Pro plan+)
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DMARC Examiner MCP summarize the latest DMARC report statistics for example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@dmarc-examiner/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.
Why
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.
Related MCP server: dSIPRouter MCP Server
Quick Setup
Option 1: Remote URL (Recommended)
Most MCP clients support remote HTTP servers directly. Add this to your MCP configuration:
{
"mcpServers": {
"dmarc-examiner": {
"url": "https://mcp.dmarc-examiner.com/mcp"
}
}
}Option 2: npx (for clients without remote HTTP support)
{
"mcpServers": {
"dmarc-examiner": {
"command": "npx",
"args": ["-y", "@dmarc-examiner/mcp"]
}
}
}Configuration by Client
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"dmarc-examiner": {
"url": "https://mcp.dmarc-examiner.com/mcp"
}
}
}Claude Code
claude mcp add dmarc-examiner --transport http https://mcp.dmarc-examiner.com/mcpCursor
Add to your Cursor MCP settings:
{
"mcpServers": {
"dmarc-examiner": {
"url": "https://mcp.dmarc-examiner.com/mcp"
}
}
}Authorization
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:
Log in to your DMARC Examiner account
Select which organization to connect
Approve the requested permissions (scopes)
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:
npx -y @dmarc-examiner/mcp login # authorize now, outside your MCP client
npx -y @dmarc-examiner/mcp logout # forget the stored credentialsSet DMARC_EXAMINER_MCP_URL to point the package at a different endpoint.
Available Tools
Domains
Tool | Description | Scope |
| List all monitored domains in your organization |
|
| Get details of a specific domain |
|
| Inspect the public DMARC record at |
|
| Add a domain. Returns the reporting email and DMARC record to publish in DNS |
|
| Re-check DNS to confirm the DMARC record carries your reporting address |
|
| Remove a domain from monitoring. Soft delete — historical reports remain |
|
Aggregate reports (RUA)
Tool | Description | Scope |
| List DMARC reports with filtering |
|
| Get a detailed report with records |
|
| Report statistics by country and ASN |
|
| Export a report as CSV |
|
Forensic reports (RUF)
Requires the Pro plan or above; these return 403 otherwise.
Tool | Description | Scope |
| List RUF reports with filtering and pagination |
|
| Full detail of a forensic report, including the failed message envelope |
|
| Counters by failure type, delivery result, source IP with geolocation, and domain |
|
| Forensic activity over the last 7 days |
|
Alerts
Tool | Description | Scope |
| List security alerts |
|
| Dismiss an alert |
|
Webhooks
Requires the Pro plan or above; these return 403 otherwise.
Tool | Description | Scope |
| List configured webhook endpoints |
|
| Create an endpoint. The URL must be HTTPS |
|
| Update the URL, name or active state of an endpoint |
|
| Delete an endpoint permanently |
|
| Send a |
|
Scopes
Scope | Description |
| View monitored domains |
| Add, verify and remove domains |
| View reports and statistics |
| Export reports to CSV |
| View forensic (RUF) reports |
| View alerts |
| Manage alerts (dismiss) |
| View webhook endpoints |
| Create, update, delete and test webhooks |
Documentation
For detailed documentation, visit: https://dmarc-examiner.com/docs/settings/mcp-integration?utm_source=github&utm_medium=content&utm_campaign=mcp-repo
Support
Documentation: https://dmarc-examiner.com/docs?utm_source=github&utm_medium=content&utm_campaign=mcp-repo
Email: support@dmarc-examiner.com
License
MIT — see LICENSE.
Available Tools
21 toolscheck_dmarcAInspect
Inspect the public DMARC record at _dmarc.. The domain does not need to belong to your organization. Returns parsed policy and rua/ruf addresses.
Inputs: domain (required).
create_domainAInspect
Add 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.
Inputs: name (required).
create_webhookAInspect
Create a new webhook endpoint. URL must start with https://. Returns 422 if the organization has reached its webhook limit.
Inputs: url (required), name (required).
delete_domainAInspect
Remove a domain from monitoring. Soft-deletes; historical reports remain accessible.
Inputs: domain_id (required).
delete_webhookBInspect
Delete a webhook endpoint permanently.
Inputs: webhook_id (required).
dismiss_alertDInspect
Dismiss a specific alert
Inputs: alert_id (required).
export_report_csvCInspect
Export a DMARC report as CSV
Inputs: report_id (required).
get_domainCInspect
Get details of a specific domain
Inputs: domain_id (required).
get_forensic_reportAInspect
Get the full detail of a forensic (RUF) report by UUID, including the raw failed message envelope.
Inputs: report_id (required).
get_forensic_reports_statisticsAInspect
Aggregated forensic-report counters grouped by auth failure type, delivery result, source IP (with geolocation) and reported domain.
Inputs: no named parameters.
get_forensic_reports_summaryAInspect
Summary of forensic activity in the last 7 days — useful for daily digest views.
Inputs: no named parameters.
get_reportCInspect
Get details of a specific DMARC report
Inputs: report_id (required).
get_report_statisticsCInspect
Get statistics for a specific DMARC report
Inputs: report_id (required).
list_alertsCInspect
List alerts for your organization
Inputs: page, status, per_page.
list_domainsCInspect
List all monitored domains in your organization
Inputs: page, per_page.
list_forensic_reportsBInspect
List DMARC RUF (forensic) reports with optional filtering and pagination. Returns 403 if the plan does not include forensic reports (Pro plan and above).
Inputs: page, date_to, per_page, date_from, +1 more.
list_reportsCInspect
List DMARC reports for your organization
Inputs: page, domain, date_to, per_page, +1 more.
list_webhooksAInspect
List webhook endpoints configured for the organization. Returns 403 if the plan does not include advanced alerting (Pro and above).
Inputs: no named parameters.
test_webhookAInspect
Send 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.
Inputs: webhook_id (required).
update_webhookAInspect
Update a webhook. Any combination of url, name and is_active may be provided; URL must remain HTTPS.
Inputs: webhook_id (required), url, name, is_active.
verify_domainAInspect
Re-check a domain's DNS to confirm the DMARC record contains the organization's reporting email. Updates status to verified on success.
Inputs: domain_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Tools are mostly distinct, targeting different resources (domains, reports, alerts, forensic reports, webhooks). However, 'list_forensic_reports' and 'get_forensic_reports_summary' could be confused as both deal with forensic report lists, though one is a full list and the other a summary.
All tools follow a consistent verb_noun pattern (e.g., delete_domain, list_reports, create_webhook). Naming is predictable and clear, with no mixing of conventions.
21 tools is slightly on the high side but appropriate for a DMARC monitoring server covering domains, reports, alerts, forensic reports, and webhooks. Each tool addresses a specific operation, and the scope justifies the count.
The toolset provides solid coverage for domain management, report viewing/export, alert handling, forensic reports, and webhook management. A minor gap is the lack of a tool to update domain details or remove a domain permanently (only soft-delete).
Related MCP Connectors
DMARC analytics for AI assistants: SPF/DKIM, compliance, anomalies, p=reject readiness, onboarding.
Monitor and manage email authentication (SPF, DKIM, DMARC, MTA-STS, BIMI) for your domains.
Connect AI assistants to Xitoring monitoring: servers, uptime, incidents, metrics, SSL, and alerts.
Run your Replyhand inbox, contacts, AI agent and reports from your own AI assistant.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceReal-time DNS security analysis for AI assistants via MCP. Enables DNSSEC chain validation, email authentication posture, and registration intelligence directly from chat sessions.1-

dSIPRouter MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage dSIPRouter operations such as endpoint groups, carrier groups, inbound mappings, and call data retrieval through natural language.Apache 2.0- AlicenseAqualityBmaintenanceEnables AI agents to audit email and domain security (SPF, DKIM, DMARC, etc.) for any domain without requiring API keys.1986 npm2MIT
- FlicenseNot gradedqualityBmaintenanceConnects DMARC monitoring data to AI assistants, enabling natural language queries about domain compliance, sender analysis, and email authentication issues.8-