Skip to main content
Glama

Stamp

Check an SPF, DMARC or DKIM record before publishing it

stamp_check_dns_record
Read-onlyIdempotent

Use when you or the user are about to publish or edit an SPF, DMARC or DKIM TXT record, for example after writing a new SPF record that adds a sending service, or when the user pastes a record and asks "is this right?". Detects the record type. SPF: syntax per RFC 7208, every include and redirect followed live in DNS and counted against the 10-lookup limit, void lookups, loops, the final all; returns a lookup tree. DMARC: RFC 7489 tags and values (p, sp, pct, rua/ruf, adkim/aspf, fo). DKIM: key type and RSA key size read from the key, revoked (empty p=) or truncated keys. Returns valid true/false, errors, warnings and where to publish it. Pass domain so a/mx terms without a value can be resolved.

Input Schema

NameRequiredDescriptionDefault
domainNoOptional: the domain the record is for, so SPF a and mx terms can be checked.
recordYesThe TXT record value, e.g. "v=spf1 include:_spf.google.com ~all" or "v=DMARC1; p=none; rua=mailto:dmarc@mycompany.com". Quoted chunks ("..." "...") are joined.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description correctly spends its space on behavior instead: it performs live DNS lookups, follows every include and redirect, counts them against the 10-lookup limit, and reports void lookups and loops, plus what is returned (valid true/false, errors, warnings, publish location). That is valuable context an agent could not get from the annotations. It does not discuss latency or failure behavior when DNS is unreachable.

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 description is front-loaded: the usage trigger comes first, then the per-record-type capabilities, then the return shape. Each sentence is informative, though the enumeration of DMARC tags (p, sp, pct, rua/ruf, adkim/aspf, fo) is slightly listy. Overall the density is justified for a validating tool with three distinct validation modes.

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?

There is no output schema, so the description carries the burden of describing returns, and it does: valid true/false, errors, warnings, and where to publish. It also explains the three validation modes, the live-DNS lookup behavior, and the one non-obvious parameter. Nothing an agent needs in order to call this correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented, giving a baseline of 3. The description restates the domain parameter's purpose, adding only the nuance that it lets a/mx terms without a value be resolved; that is a small increment over the schema's own wording. It adds nothing about the record parameter beyond what the schema example already shows.

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

Purpose4/5

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

The description states a specific verb and resource: it checks SPF, DMARC and DKIM TXT records, auto-detects the type, and validates them per RFC 7208/7489. This distinguishes it from the sibling stamp_check_email_domain implicitly, because this tool's input is a single record rather than a domain. However, the sibling is never named, so the agent has to infer that split from the parameter shape.

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?

The description gives clear trigger conditions: when you or the user are about to publish or edit a record, after adding a sending service, or when a pasted record prompts 'is this right?'. That is concrete and actionable. It does not name when-not to use it or point to stamp_check_email_domain as the alternative for whole-domain checks.

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