
DMARKOFF — DMARC, SPF & DKIM Analytics
com.dmarkoffPublished by dmarkoff.comOfficial publisherv1.5.0Updated Oct 31, 2026
DMARC analytics for AI assistants: SPF/DKIM, compliance, anomalies, p=reject readiness, onboarding.
Overview
Remote MCP server that connects DMARC monitoring data to an AI assistant for SPF/DKIM diagnostics, anomaly checks and p=reject readiness.
- What you can do
- Query project and domain analytics: overviews, compliance rates, timelines, severity and activity health
- Inspect sending sources: top senders, per-IP/ISP/reporter detail, geo sources, SMTP rejections and policy overrides
- Diagnose records: DMARC, SPF and DKIM records, SPF lookup usage, record history and enforcement readiness
- Run live DNS checks on any domain: SPF, DMARC, DKIM and TXT records, plus generated DMARC records
- Onboard domains and record source decisions (ours, not ours, ignore) for the readiness plan
- When to use it
- Useful when you run DMARC monitoring and want to ask plain-language questions about compliance drops, failing SPF/DKIM, problem senders, missing reports or whether a domain can move to quarantine or reject, without building dashboard filters.
- Requirements
- A remote Streamable HTTP endpoint; an active DMARKOFF account and an API key from the account page, sent as an Authorization header in the form Bearer plus the key, or supplied through the OAuth flow. The key must have access to at least one project. Clients must support Streamable HTTP.
Installation
In SourceWeft
- Open DMARKOFF — DMARC, SPF & DKIM Analytics in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
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/com.dmarkoff%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.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"dmarkoff-dmarc-spf-dkim-analytics": {
"type": "http",
"url": "https://mcp.dmarkoff.com/mcp"
}
}
}README
DMARKOFF MCP
DMARC analytics inside your AI assistant.
DMARKOFF MCP connects your DMARC monitoring data to AI assistants — Claude, ChatGPT, Cursor, Windsurf — through the Model Context Protocol. Instead of opening a dashboard and building filters, you ask a question and get an answer with real numbers behind it.
Endpoint: https://mcp.dmarkoff.com/mcp
Requires: an active DMARKOFF account and an API key from app.dmarkoff.com/account/mcp
What it looks like in practice
"Which domains dropped in compliance over the last 14 days?"
The AI checks health across all your projects and surfaces the ones that changed — ranked by how much.
"Why is SPF failing on example.com? Who's the problem sender?"
The AI checks return paths, finds the sending source (say, SendGrid using its own bounce domain instead of yours), and tells you what to fix.
"Anything unusual in email traffic compared to last week?"
The AI compares the last fully reported day against the 14 days before it — compliance rate, unknown sender volume, message counts. The kind of check most teams skip because setting it up manually takes too long.
"Can example.com go to p=reject yet?"
The AI reads DMARKOFF's readiness plan for the domain and gives you its verdict. It names the senders that still need DKIM and where to set it up, the unknown sources you have to confirm are not yours, and the exact record to publish once nothing holds the step. Tell it which senders are yours, and it records that for the plan. Before it takes out a sender the plan counts as your own, it asks you.
Quick connect
Claude.ai
- Settings → Connectors → Add custom connector
- URL:
https://mcp.dmarkoff.com/mcp - Advanced settings:
- OAuth Client ID:
claude(any value) - OAuth Client Secret: your DMARKOFF API key
- OAuth Client ID:
- Click Add, then Connect
Works on Free (1 custom connector limit), Pro, Max, Team, and Enterprise.
Claude Desktop
Click + in the chat window → Connectors → Manage Connectors → Add custom connector, paste the URL, complete the OAuth flow.
Or edit the config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
Claude Code
Cursor
Settings → Tools & MCP → Add new MCP server, select Streamable HTTP, enter the URL.
Or edit ~/.cursor/mcp.json:
ChatGPT (Business / Enterprise / Edu)
Enable Developer Mode, then go to Settings → Apps → Create App:
- MCP Server URL:
https://mcp.dmarkoff.com/mcp - Authentication: OAuth, without a client ID or secret
ChatGPT registers its own OAuth client with the server, then opens a DMARKOFF page where you paste your API key.
Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
Note: Windsurf uses
serverUrl, noturl.
→ Full connection guide for all clients
Things to ask
Live DNS checks — these work for any domain, monitored or not:
Onboarding a new domain — the assistant registers it and hands you the exact TXT record to publish:
Tools
Analytics (require API key)
Live DNS (API key, but no monitored project)
Onboarding (requires API key and owner access to the project)
Source decisions (requires API key and owner access to the project, or a shared project whose owner lets you manage sources)
Every tool is read-only (readOnlyHint: true per MCP spec) except two. add_domain creates domains. It never updates or deletes anything, and each non-parked domain it adds consumes a paid domain slot on your plan. set_source_decision saves, changes or clears your decision on one sending source of a domain, or confirms that a source you took out stays out. It cannot add or remove domains, change your DNS or touch report data. Taking out one of the plan's own senders is not saved until you confirm, and each change is logged with the API key as its author. The tool reference lists which sources that check covers.
→ Full tool reference with parameters
Security
- API key auth — access is scoped to your DMARKOFF account
- OAuth 2.1 (RFC 8414, RFC 9728) — compatible with standard MCP flows used by Claude.ai and ChatGPT
- Project-level isolation — the AI only sees what your API key has access to
- Per-API-key rate limiting — protection against accidental overuse
- Two tools write —
add_domaincreates domains in a project you own.set_source_decisionrecords your decision on a sending source in a project you own, or one shared with you to manage sources. Its description tells the assistant to use it only at your request, and the server does not take out a source the plan counts among your own senders until you confirm. Every other tool is read-only. No tool deletes domains or report data, and none changes your DNS
How this differs from other DMARC MCP tools
DNS checks tell you SPF is failing. DMARKOFF MCP tells you which specific sender is causing the failure, how many messages it affected over the last two weeks, and what the fix is. That data comes from your aggregate reports — the actual traffic — not just what's published in DNS.
It also answers the questions that come after: whether the problem is new (every domain report carries the previous period beside the current one), what a record looked like before someone edited it, why a receiver ignored the policy you published, and which parts of an oversized SPF record are still earning their DNS lookups.
When you want to tighten the policy, it reads DMARKOFF's own verdict on whether a domain can go to quarantine or reject. That verdict comes from the plan behind the policy recommendation in the DMARKOFF app and the policy-upgrade email, so the assistant and DMARKOFF give you the same answer.
Troubleshooting
Tools don't appear in the client
→ Confirm your client supports Streamable HTTP (not just SSE).
→ Some clients need a full restart after config changes.
401 Unauthorized
→ Check your API key at app.dmarkoff.com/account/mcp.
"No projects found"
→ The API key needs access to at least one project. Log into app.dmarkoff.com to verify.
OAuth errors
→ The Client Secret field takes your DMARKOFF API key, not your account password.
→ ChatGPT says redirect_uri not allowed: ChatGPT keeps the OAuth client it registered when the app was created, and that client lacks the callback address ChatGPT uses now. Delete the app and create it again.
Can't record a decision on a sender
→ Recording decisions needs owner access to the project, or a shared project whose owner lets you manage sources. Reading the readiness plan works in shared projects too.
Need help? Email [email protected] or open an issue.
Source: README.md at commit d73b48a
Tools
0Version history
4- v1.5.0LatestOct 31, 2026
- v1.4.0Oct 20, 2026
- v1.3.0Oct 15, 2026
- v1.2.0Sep 16, 2026
Score
75% 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.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.