Skip to main content
Glama
thenewit-eu

mailfact-mcp

Official
by thenewit-eu

Query fact rows

query_records
Read-only

Query day-aggregated DMARC fact rows to drill into a source IP, domain, day, or alignment outcome, and continue truncated results with a cursor.

Instructions

Day-aggregated fact rows. Use this to drill into one IP, day, or alignment outcome. Does not follow pagination: when truncated is true, pass next_cursor back as cursor. The cursor carries the filters, so the follow-up does not need to restate them. Rows are narrowed and third-party strings are length-capped.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayNoExact day, YYYY-MM-DD.
cursorNonext_cursor from a previous truncated response.
domainNo
day_afterNo
source_ipNoExact sending IP.
day_beforeNo
dispositionNo
header_fromNoSubstring of the From domain.
spf_alignedNo
dkim_alignedNo
reporter_orgNoSubstring of the reporter name.
source_ip_asnNo
source_ip_nameNoSubstring of the sender label.
source_ip_as_nameNoSubstring of the AS name.
source_ip_countryNoISO 3166-1 alpha-2.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

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, non-destructive, open-world), so the bar is lower. The description adds genuinely useful behavior beyond that: rows are narrowed, third-party strings are length-capped, and pagination is non-standard (truncated/next_cursor contract). It doesn't mention auth or rate limits.

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

Conciseness5/5

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

Five tight sentences, front-loaded with what the rows are, no repetition, and the pagination contract is stated as a concrete action rather than prose.

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

Completeness4/5

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

No output schema, so the description must carry return semantics, and it does mention truncation/cursor and length-capping. It still doesn't say what a row contains or the shape of the response, but it is adequate for a parameter-driven query tool with strong annotations.

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 description coverage is 53%, so several params (domain, day_after, day_before, disposition, alignment booleans) lack descriptions while others (day, cursor, source_ip) are self-evident. The description adds filter semantics for alignment outcome and cursor but does not document the unlabeled parameters, leaving the coverage gap only partially filled.

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?

States the resource concretely ('day-aggregated fact rows') and names usable drill axes (IP, day, alignment outcome), which distinguishes its granularity from aggregate/report siblings. It stops short of naming a specific sibling alternative, so an agent still has to infer when to prefer it over get_report_records.

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?

Gives clear context ('drill into one IP, day, or alignment outcome') and an explicit continuation protocol for truncation, including that the cursor carries filters. No exclusions or named alternatives are stated, so it doesn't reach 5.

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