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 分

    請在儲存庫或註冊中心條目中宣告授權條款。