io. inboxguard/ email-deliverability
by inboxguard.io · remote · no sign-in to list tools · v1.2.0 · published by io.inboxguard
Scan and fix a domain's email deliverability (SPF, DKIM, DMARC, MTA-STS, BIMI, DNS blocklists).
28 tools: 2 can delete or cancel things, 9 change things and 17 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things9Claude Code: ask: see these tools
- Only reads17Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http email-deliverability https://mcp.inboxguard.io/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnscan_domain
The server marks "scan_domain" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "run": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
28 tools
Deletes or cancels 2Claude Code: deny
apply_dns_fixApply a DNS fix plan to a tracked domain by publishing records at the connected registrar.No findings
Why it is in this group
- The name "apply_dns_fix" says "apply": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Apply a DNS fix plan to a tracked domain by publishing records at the connected registrar. DESTRUCTIVE: it creates/updates/deletes DNS records. Two-step by design — first call get_dns_fix_plan, then pass its `connectionId` and `ops` here verbatim. The server re-derives the diff from the latest scan and rejects any op that no longer matches, so an agent can never apply arbitrary records. Requires an owner/admin API key with write or full scope. Re-scan afterward to confirm the fix.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
- title: Apply the DNS fix plan
remove_domainStop monitoring a domain and delete it (and its scan history) from the account.No findings
Why it is in this group
- The name "remove_domain" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Stop monitoring a domain and delete it (and its scan history) from the account. DESTRUCTIVE and not reversible. Requires an owner/admin API key with write or full scope. (To ADD a domain, run scan_domain with this API key — authenticated scans auto-track the domain.)
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
- title: Remove a monitored domain
Changes things 9Claude Code: ask
check_blocklistsCheck a domain (apex + MX-host IPs) against supported DNS blocklists and return listings, targets checked, and issues (authoritative-side queries; no public-resolver false positive…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check a domain (apex + MX-host IPs) against supported DNS blocklists and return listings, targets checked, and issues (authoritative-side queries; no public-resolver false positives).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: Check DNS blocklists
connect_inbox_placementStore the org's seed-list inbox-placement provider + API key (provider: 'mailreach' or 'glockapps'; GlockApps also needs projectId).No findings
Why it is in this group
- The description's first verb is "store": a word for a change.
Description, as the server wrote it Store the org's seed-list inbox-placement provider + API key (provider: 'mailreach' or 'glockapps'; GlockApps also needs projectId). Enables start_inbox_placement_test. Requires an owner/admin API key with write or full scope.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- title: Connect an inbox-placement provider
connect_sndsStore this org's Microsoft SNDS (Smart Network Data Services) automated-data-access key so InboxGuard syncs per-IP Outlook/Hotmail reputation daily.No findings
Why it is in this group
- The description's first verb is "store": a word for a change.
Description, as the server wrote it Store this org's Microsoft SNDS (Smart Network Data Services) automated-data-access key so InboxGuard syncs per-IP Outlook/Hotmail reputation daily. Get the key from the SNDS Automated Data Access page (https://sendersupport.olc.protection.outlook.com/snds/). Requires an owner/admin API key with write or full scope. Data appears within ~24h of the first sync.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- title: Connect Microsoft SNDS
create_notification_channelCreate a channel that InboxGuard alerts are delivered to: webhook (HMAC-signed), Slack, Microsoft Teams, PagerDuty, SMS, or email.No findings
Why it is in this group
- The name "create_notification_channel" says "create": a word for a change.
Description, as the server wrote it Create a channel that InboxGuard alerts are delivered to: webhook (HMAC-signed), Slack, Microsoft Teams, PagerDuty, SMS, or email. Returns the channel id, and for kind=webhook the `signing_secret` used to verify deliveries. Requires an owner/admin API key with write or full scope.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- title: Create a notification channel
resolve_alertMark an alert resolved (or reopen it with resolved=false).No findings
Why it is in this group
- The name "resolve_alert" says "resolve": a word for reading.
- The description's first verb is "mark": a word for a change.
Description, as the server wrote it Mark an alert resolved (or reopen it with resolved=false). Requires an API key with write/full scope. Resolving an already-resolved alert is a no-op.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Resolve alert
scan_domainRun a full email-deliverability scan (SPF, DKIM, DMARC, MTA-STS, TLS-RPT, MX TLS, BIMI, DNS blocklists) for a domain and return a 0-100 score with per-check findings.1 finding
Why it is in this group
- The description's first verb is "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "scan_domain" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "run": a word for a change.
Description, as the server wrote it Run a full email-deliverability scan (SPF, DKIM, DMARC, MTA-STS, TLS-RPT, MX TLS, BIMI, DNS blocklists) for a domain and return a 0-100 score with per-check findings. A check can come back `not_applicable` (does not apply to this domain, e.g. MTA-STS on a domain with no MX — excluded from the score, not a failure) or `unverified` (could not be determined this scan, e.g. DKIM behind an ESP with a random per-tenant selector like Amazon SES Easy DKIM — never treat as a failure). `scoreSubtitle` explains the denominator when anything was excluded. Runs at your plan tier (full blocklist set on paid plans) and saves the scan to the domain history in your account.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: Scan domain deliverability
scan_domains_batchQueue an asynchronous batch scan of up to 50 domains and get a jobId immediately (avoids the 30s per-call limit).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Queue an asynchronous batch scan of up to 50 domains and get a jobId immediately (avoids the 30s per-call limit). Poll get_scan_job with the jobId until status is succeeded/partial/failed to read per-domain scores. Requires an API key with write or full scope. These scans are NOT added to monitoring or saved to history.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- title: Batch-scan domains (async)
start_inbox_placement_testStart a seed-list inbox-placement test.No findings
Why it is in this group
- The name "start_inbox_placement_test" says "start": a word for a change.
Description, as the server wrote it Start a seed-list inbox-placement test. Returns a testId, the seed addresses to mail your campaign to, and (if the provider requires it) a header to insert. After sending to the seeds, poll get_inbox_placement_test for the Inbox/Spam/Missing verdict. Requires inbox-placement to be connected and an owner/admin API key with write or full scope.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- title: Start an inbox-placement test
Only reads 17Claude Code: allow
analyze_headersRe-verify SPF, DKIM, DMARC, and ARC from a raw RFC 5322 email (full message or just the headers block).No findings
Why it is in this group
- The name "analyze_headers" says "analyze": a word for reading.
Description, as the server wrote it Re-verify SPF, DKIM, DMARC, and ARC from a raw RFC 5322 email (full message or just the headers block). Returns InboxGuard's independent verdict (`ours`), the sender's own Authentication-Results (`theirs`), whether they `agree`, and parsed envelope/headers — useful for spotting forged or mismatched auth results. No account needed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: Analyze raw email headers
get_deliverability_reportReturn a structured deliverability report for a tracked domain: the latest score + letter grade + `scoreSubtitle` (explains the denominator when a check was excluded, e.g.No findings
Why it is in this group
- The name "get_deliverability_report" says "get": a word for reading.
Description, as the server wrote it Return a structured deliverability report for a tracked domain: the latest score + letter grade + `scoreSubtitle` (explains the denominator when a check was excluded, e.g. "80/100 · scored on 65 of 83 applicable points · 1 check unverified"), each check's status (pass/warn/fail/unverified/not_applicable — `not_applicable` means the check doesn't apply to this domain and `unverified` means it couldn't be checked this scan; neither is a failure), the top issues to fix, blocklist count, and DMARC policy. Includes `pdfUrl` — the same auth-gated endpoint that returns a branded one-page PDF (send your bearer token). Use this to summarize a domain's posture or hand a client a report.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Get a deliverability report
get_deliverability_scoreReturn the overall deliverability score and letter grade for a domain (runs a fresh scan).No findings
Why it is in this group
- The name "get_deliverability_score" says "get": a word for reading.
Description, as the server wrote it Return the overall deliverability score and letter grade for a domain (runs a fresh scan).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- title: Get deliverability score
get_dmarc_summarySummarize ingested DMARC aggregate (RUA) reports for a domain tracked in your InboxGuard account: report volume, pass rate, top sending sources, and the rua inbox to publish.No findings
Why it is in this group
- The name "get_dmarc_summary" says "get": a word for reading.
Description, as the server wrote it Summarize ingested DMARC aggregate (RUA) reports for a domain tracked in your InboxGuard account: report volume, pass rate, top sending sources, and the rua inbox to publish. The domain must already be added to the account, and the plan must include DMARC ingest.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Get DMARC summary
get_dns_fix_planCompute the exact DNS-record changes needed to fix a tracked domain's deliverability, based on its latest scan and the org's connected registrar (Cloudflare/Route 53/GoDaddy/Namech…No findings
Why it is in this group
- The name "get_dns_fix_plan" says "get": a word for reading.
Description, as the server wrote it Compute the exact DNS-record changes needed to fix a tracked domain's deliverability, based on its latest scan and the org's connected registrar (Cloudflare/Route 53/GoDaddy/Namecheap). Read-only — nothing changes. Returns the `ops` to pass verbatim to apply_dns_fix, plus `manualReview` items that need a human decision (SPF sender list, DKIM keys, BIMI logo). Requires the domain to be tracked, a scan to exist, and a registrar connection covering the zone.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Preview the DNS fix plan
get_domainFull detail for one tracked domain: the domain record, the latest scan with all per-check findings (spf, dmarc, dkim, ptr, mta_sts, tls_rpt, mx_tls, blocklist), recent score histor…No findings
Why it is in this group
- The name "get_domain" says "get": a word for reading.
Description, as the server wrote it Full detail for one tracked domain: the domain record, the latest scan with all per-check findings (spf, dmarc, dkim, ptr, mta_sts, tls_rpt, mx_tls, blocklist), recent score history, open/recent alerts, and Google Postmaster stats when connected.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Get domain detail
get_inbox_placement_statusReport whether a seed-list inbox-placement provider is connected for the org, which provider, and how many tests have run.No findings
Why it is in this group
- The name "get_inbox_placement_status" says "get": a word for reading.
Description, as the server wrote it Report whether a seed-list inbox-placement provider is connected for the org, which provider, and how many tests have run. Lists the supported providers when not connected.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Get inbox-placement status
get_inbox_placement_testPoll a seed-list inbox-placement test by testId.No findings
Why it is in this group
- The name "get_inbox_placement_test" says "get": a word for reading.
Description, as the server wrote it Poll a seed-list inbox-placement test by testId. Returns status (running/completed/failed) and, once measured, the Inbox/Spam/Missing counts and inbox-placement score (0–100). Call after sending your campaign to the seed addresses from start_inbox_placement_test.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Get an inbox-placement test
get_portfolioOrg-wide deliverability rollup across every monitored domain: average score + overall grade, the grade distribution (how many domains are A/B/C/D/F/unscored), total open alerts, th…No findings
Why it is in this group
- The name "get_portfolio" says "get": a word for reading.
Description, as the server wrote it Org-wide deliverability rollup across every monitored domain: average score + overall grade, the grade distribution (how many domains are A/B/C/D/F/unscored), total open alerts, the domains needing attention (lowest score / open alerts first), and a per-client-group breakdown. Use this for an at-a-glance portfolio health summary across an agency or multi-domain account.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Get the domain portfolio rollup
get_scan_jobPoll an async batch scan started with scan_domains_batch: returns status (queued/running/succeeded/partial/failed), completed count, and per-domain results (domain, ok, score, grad…No findings
Why it is in this group
- The name "get_scan_job" says "get": a word for reading.
Description, as the server wrote it Poll an async batch scan started with scan_domains_batch: returns status (queued/running/succeeded/partial/failed), completed count, and per-domain results (domain, ok, score, grade) as they finish.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Get batch-scan job
get_snds_ip_statsReturn the latest per-IP reputation from Microsoft SNDS for the org's sending IPs: filter result (GREEN/YELLOW/RED), complaint-rate band, spam-trap hits, message volume, and curren…No findings
Why it is in this group
- The name "get_snds_ip_stats" says "get": a word for reading.
Description, as the server wrote it Return the latest per-IP reputation from Microsoft SNDS for the org's sending IPs: filter result (GREEN/YELLOW/RED), complaint-rate band, spam-trap hits, message volume, and current block status. Requires SNDS to be connected (see connect_snds / get_snds_status).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Get Microsoft SNDS per-IP stats
get_snds_statusReport whether Microsoft SNDS is connected for the org, the last sync time + status, how many sending IPs are tracked, and how many are currently blocked by Outlook/Hotmail.No findings
Why it is in this group
- The name "get_snds_status" says "get": a word for reading.
Description, as the server wrote it Report whether Microsoft SNDS is connected for the org, the last sync time + status, how many sending IPs are tracked, and how many are currently blocked by Outlook/Hotmail. Use before get_snds_ip_stats to confirm the integration is live.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Get Microsoft SNDS status
list_alertsList the account's deliverability alerts (score drops, check failures, blocklist listings).No findings
Why it is in this group
- The name "list_alerts" says "list": a word for reading.
Description, as the server wrote it List the account's deliverability alerts (score drops, check failures, blocklist listings). Defaults to open alerts only.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: List alerts
list_domainsList the account's tracked domains with latest scan score, last scan time, and open alert count.No findings
Why it is in this group
- The name "list_domains" says "list": a word for reading.
Description, as the server wrote it List the account's tracked domains with latest scan score, last scan time, and open alert count.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: List tracked domains
list_inbox_placement_testsList recent seed-list inbox-placement tests for the org (most recent first) with their status and Inbox/Spam/Missing scores.No findings
Why it is in this group
- The name "list_inbox_placement_tests" says "list": a word for reading.
Description, as the server wrote it List recent seed-list inbox-placement tests for the org (most recent first) with their status and Inbox/Spam/Missing scores.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: List inbox-placement tests
list_registrar_connectionsList the registrar accounts (Cloudflare, Route 53, GoDaddy, Namecheap) connected to the org — provider, verification, last-used time — plus the supported providers.No findings
Why it is in this group
- The name "list_registrar_connections" says "list": a word for reading.
Description, as the server wrote it List the registrar accounts (Cloudflare, Route 53, GoDaddy, Namecheap) connected to the org — provider, verification, last-used time — plus the supported providers. Use this to check whether the detect-and-fix loop (get_dns_fix_plan / apply_dns_fix) is available before attempting it.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: List registrar connections
list_scansList recent scans (id, domain, run time, score) across all tracked domains, or for one domain when a name is given.No findings
Why it is in this group
- The name "list_scans" says "list": a word for reading.
Description, as the server wrote it List recent scans (id, domain, run time, score) across all tracked domains, or for one domain when a name is given.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: List scan history
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.2.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http email-deliverability https://mcp.inboxguard.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__email-deliverability__get_deliverability_score",
"mcp__email-deliverability__get_dmarc_summary",
"mcp__email-deliverability__list_domains",
"mcp__email-deliverability__get_domain",
"mcp__email-deliverability__list_alerts",
"mcp__email-deliverability__list_scans",
"mcp__email-deliverability__get_dns_fix_plan",
"mcp__email-deliverability__analyze_headers",
"mcp__email-deliverability__get_scan_job",
"mcp__email-deliverability__list_registrar_connections",
"mcp__email-deliverability__get_snds_status",
"mcp__email-deliverability__get_snds_ip_stats",
"mcp__email-deliverability__get_inbox_placement_status",
"mcp__email-deliverability__get_inbox_placement_test",
"mcp__email-deliverability__list_inbox_placement_tests",
"mcp__email-deliverability__get_deliverability_report",
"mcp__email-deliverability__get_portfolio"
],
"ask": [
"mcp__email-deliverability__scan_domain",
"mcp__email-deliverability__check_blocklists",
"mcp__email-deliverability__resolve_alert",
"mcp__email-deliverability__scan_domains_batch",
"mcp__email-deliverability__create_notification_channel",
"mcp__email-deliverability__create_share_link",
"mcp__email-deliverability__connect_snds",
"mcp__email-deliverability__connect_inbox_placement",
"mcp__email-deliverability__start_inbox_placement_test"
],
"deny": [
"mcp__email-deliverability__apply_dns_fix",
"mcp__email-deliverability__remove_domain"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as email-deliverability. Review it before you use it.