DMARKOFF — DMARC, SPF & DKIM Analytics

com.dmarkoff由 dmarkoff.com 发布官方发布者v1.5.0更新于 Oct 31, 2026

DMARC analytics for AI assistants: SPF/DKIM, compliance, anomalies, p=reject readiness, onboarding.

已验证Streamable HTTP可网页运行沟通与协作安全与监控数据与分析

概览

AI 生成的概览

远程 MCP 服务器,把 DMARC 监控数据接入 AI 助手,用于 SPF/DKIM 诊断、异常检测和 p=reject 就绪评估。

可以做什么
  • 查询项目与域名分析:总览、合规率、时间线、严重级别与活动健康度
  • 查看发信来源:主要发信方、按 IP/ISP/报告方细分的明细、地理位置来源、SMTP 拒信与策略未执行原因
  • 诊断记录:DMARC、SPF、DKIM 记录,SPF 查询次数占用、记录历史与执行就绪度
  • 对任意域名做实时 DNS 检查:SPF、DMARC、DKIM、TXT 记录,并生成 DMARC 记录
  • 接入新域名,并为就绪计划记录来源判定(自有、非自有、忽略)
适用场景
适合已在使用 DMARC 监控、希望用自然语言询问合规率下降、SPF/DKIM 失败、问题发信方、报告缺失,或某域名能否切换到 quarantine 或 reject 的用户,无需在仪表盘里手工筛选。
运行要求
远程 Streamable HTTP 端点;需要有效的 DMARKOFF 账户,以及账户页面获取的 API key,通过 Authorization 头以 Bearer 加密钥的形式发送,或经 OAuth 流程提供。该密钥需至少能访问一个项目。客户端需支持 Streamable HTTP。
安装前请注意
API key 即凭据:部分客户端把它填在 OAuth 客户端密钥栏,且来源判定变更会以该密钥作为操作者记录。有两个工具会写入:add_domain 会创建域名,每个非停放域名会占用套餐中的付费域名名额;set_source_decision 会保存或清除发信来源判定。没有工具会删除域名或报告数据,也不会修改你的 DNS。你的 DMARC 报告数据会发送到该远程服务。

安装

在 SourceWeft 中

  1. 打开 控制台中的 DMARKOFF — DMARC, SPF & DKIM Analytics,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.dmarkoff%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "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

  1. Settings → Connectors → Add custom connector
  2. URL: https://mcp.dmarkoff.com/mcp
  3. Advanced settings:
    • OAuth Client ID: claude (any value)
    • OAuth Client Secret: your DMARKOFF API key
  4. 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):

json
{  "mcpServers": {    "dmarkoff": {      "command": "npx",      "args": [        "mcp-remote",        "https://mcp.dmarkoff.com/mcp",        "--header",        "Authorization: Bearer YOUR_API_KEY"      ]    }  }}

Claude Code

bash
claude mcp add --transport http dmarkoff https://mcp.dmarkoff.com/mcp \  --header "Authorization: Bearer YOUR_API_KEY"

Cursor

Settings → Tools & MCP → Add new MCP server, select Streamable HTTP, enter the URL.

Or edit ~/.cursor/mcp.json:

json
{  "mcpServers": {    "dmarkoff": {      "url": "https://mcp.dmarkoff.com/mcp",      "headers": {        "Authorization": "Bearer YOUR_API_KEY"      }    }  }}

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:

json
{  "mcpServers": {    "dmarkoff": {      "serverUrl": "https://mcp.dmarkoff.com/mcp",      "headers": {        "Authorization": "Bearer YOUR_API_KEY"      }    }  }}

Note: Windsurf uses serverUrl, not url.

→ Full connection guide for all clients


Things to ask

Show me an overview of all my DMARC projects
Which domains have Critical severity right now?
Why is SPF failing on example.com? Which senders are the problem?
Are there anomalies in email traffic over the last 24 hours?
Show me source details for example.com grouped by ISP — only rows where SPF is failing
We publish p=reject on example.com — why did some mail still get delivered?
Gmail is throttling us on example.com. What are they actually complaining about?
Our SPF record is at 10 lookups — which includes still carry mail and which can go?
Compliance on example.com dropped last week. Did the DMARC or SPF record change?
Yesterday's Google report for example.com is missing. Is it late, or is something wrong?
Can example.com move to p=reject? What's holding it?
Klaviyo is ours, and the unknown host sending as example.com is not. Record that for the plan.

Live DNS checks — these work for any domain, monitored or not:

Check the SPF record for example.com — are there too many DNS lookups?
What DMARC policy does example.com have right now?
Look up the DKIM key for selector "google" on example.com

Onboarding a new domain — the assistant registers it and hands you the exact TXT record to publish:

Add example.com to my project and tell me what to put in DNS
We already have DMARC on example.com — add our reporting address without touching the rest of the record
I published the record for example.com. Will its reports reach my project?

Tools

Analytics (require API key)

ToolWhat it does
projects_overviewSummary across all projects: domain counts, three compliance rates, severity breakdown
list_domainsFilter domains by severity, search query, payment status; pagination
get_domain_full_dataFull diagnostic: DMARC/SPF/DKIM records, stats, timeline, trends, and the same numbers over the previous period — start here
get_domain_statsCompliance percentages for a custom date range
get_domain_timelineDay-by-day message counts and auth results
get_domain_activity_healthPer-day SPF/DKIM/DMARC severity vs 14-day baseline — detect when and why things changed
get_domain_sendersTop sending sources broken down by known ESPs, unknown, forwarded — per provider or per sending domain, with each sending domain's place in the readiness plan
get_domain_source_detailsPer-record detail grouped by IP, ISP, hostname, reporter or individual report, with filters — and how long each reporter takes to send its reports
get_domain_anomaly_reportLast settled day (2 days ago, UTC) vs the 14 days before it — flags compliance drops, volume drops, days without reports, reports that stopped and mail sent as a parked domain; excluded and unpaid domains are not judged on volume
get_geo_sourcesTop 100 sending locations with compliance stats
get_domain_detailDMARC record text, policy, health status per dimension, errors, name servers
get_spf_recordsSPF return paths, lookup count, errors, pass/fail volume per source
get_dkim_recordsDKIM selectors, signing domains, pass/fail volume per source
get_record_historyPast versions of a DMARC, SPF or DKIM record with what changed between checks — when did this break
get_policy_overridesWhy receivers did not enforce your policy: ARC, forwarding, sampling, local rules
get_smtp_rejectionsMail throttled or rejected at SMTP time, by reason — Gmail's 421/550 codes explained
get_spf_usageWhich SPF mechanisms actually carry mail, and which senders your record misses — for lookup-limit clean-ups
get_enforcement_statusDMARKOFF's readiness plan for a domain: whether it can move to quarantine or reject (or first take pct off), what holds it, which sources to confirm, and the record to publish

Live DNS (API key, but no monitored project)

ToolWhat it does
dns_check_spfCurrent SPF record, what receivers evaluate it to (ok, permerror and so on), parsed include tree and lookup count
dns_check_dmarcCurrent DMARC policy from DNS. With a project, whether the record sends reports to it
dns_check_dkimDKIM public key for a given selector
dns_check_txtAll TXT records with type classification — including spf-ignored, a record that looks like SPF but receivers do not read
generate_dmarc_recordThe DMARC record a domain should publish, merged on top of what is already in DNS and repaired where the checker rejects it, keeping the policy in force, with a list of what changes. With a project, adds your reporting address to rua

Onboarding (requires API key and owner access to the project)

ToolWhat it does
add_domainAdds up to 20 domains to a project and returns the DMARC record to publish for each. Safe to repeat: it says where a domain already is

Source decisions (requires API key and owner access to the project, or a shared project whose owner lets you manage sources)

ToolWhat it does
set_source_decisionRecords your call on a sending source (ours, not ours, or ignore) for the readiness plan, or clears it. Asks before taking out a source the plan counts among your own senders

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_domain creates domains in a project you own. set_source_decision records 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.

来源:README.md,提交 d73b48a

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

4
  1. v1.5.0最新Oct 31, 2026
  2. v1.4.0Oct 20, 2026
  3. v1.3.0Oct 15, 2026
  4. v1.2.0Sep 16, 2026

评分

已满足适用检查项的 75%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。