Skip to main content
Glama

Stamp

Check a domain's email authentication (SPF, DKIM, DMARC, MX) from live DNS

stamp_check_email_domain
Read-onlyIdempotent

Use when the user asks why their email goes to spam, whether their domain is set up to send email, or before they launch a newsletter, cold outreach, transactional email or a new sending service, e.g. "why are my emails going to spam?", "is my SPF/DKIM/DMARC right?", "do I meet Gmail and Yahoo's sender requirements?" or "I added SendGrid, did I break SPF?". Reads public DNS (DNS-over-HTTPS) and checks: SPF (exactly one record, every include followed and DNS lookups counted per RFC 7208 against the limit of 10, void lookups, loops, +all/?all, ptr), DMARC (RFC 7489 syntax, policy, pct, alignment, inherited from the parent domain, and whether an external report address authorized it), DKIM (17 common selectors plus any you pass; key type and RSA key size read from the key, revoked or broken keys), and MX (provider, null MX). Returns a grade A-F, a verdict, each check with status pass/warn/fail/info, whether the Gmail, Yahoo and Outlook.com sender rules are met, and copy-ready DNS records to fix problems (e.g. one merged SPF record, a starter DMARC record). Use the real result instead of guessing from memory; DNS cannot list DKIM selectors, so if none is found ask for the provider's selector (the s= value in a DKIM-Signature header) and check again. Accepts a domain, an email address or a URL. Results are cached for 5 minutes; pass fresh=true right after the user changes DNS.

Input Schema

NameRequiredDescriptionDefault
freshNotrue to skip the 5-minute cache, e.g. right after a DNS change.
domainYesThe sending domain, e.g. mycompany.com. An email address (you@mycompany.com) or a URL also works.
dkim_selectorsNoExtra DKIM selectors to try besides the common ones, e.g. ["mxvault"]. Find it as s= in a DKIM-Signature header or in the provider's setup page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, yet the description still adds substantive behavior: reads are public DNS over DNS-over-HTTPS, results are cached 5 minutes with a fresh override, and DNS cannot enumerate DKIM selectors so the caller must supply the s= value. Those are exactly the operational facts an agent needs and none are in the annotation block.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with the usage trigger and every clause carries information, including the example utterances. It is a single dense run-on block that would read faster as short bullets, but there is no filler sentence to cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema available, the description carries the return contract itself: grade A-F, verdict, per-check pass/warn/fail/info, Gmail/Yahoo/Outlook.com rule compliance, and copy-ready fix records. It also covers accepted input forms (domain, email, URL) and the cache/refresh story, so nothing essential is missing for a read-only diagnostic.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are already documented and a 3 would be defensible. The description goes further by explaining the practical consequence of dkim_selectors (selectors cannot be discovered via DNS, so ask for the provider's s= value and re-check) and by tying fresh=true to the post-DNS-change moment.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact verb and resource set: it checks SPF (include following, RFC 7208 lookup counting), DMARC (RFC 7489, alignment, pct, inherited policy), DKIM (17 common selectors, key size) and MX (provider, null MX) from live DNS. That enumeration distinguishes it clearly from the generic sibling stamp_check_dns_record without needing to name it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Trigger conditions are unusually explicit: 'why are my emails going to spam', 'is my SPF/DKIM/DMARC right', pre-launch checks for newsletters, cold outreach, transactional email and new sending services, plus 'use the real result instead of guessing from memory'. It lacks an explicit when-not case or a named alternative tool, which keeps it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources