mailfact-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MAILFACT_API_URL | No | The Mailfact API origin, with or without a trailing /api/v1. Defaults to https://api.mailfact.app. | https://api.mailfact.app |
| MAILFACT_API_TOKEN | Yes | Your Mailfact API token (a read scope is enough). Required. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_domainsA | Domains registered on this token's organisation. Pass fqdn for an exact hostname match (case-insensitive, trailing dot stripped). Returns ids the other tools take as domain. |
| get_domainB | One domain by id, including its published DMARC policy snapshot and the RUA tag to publish. |
| get_alignment_summaryA | Per-day message counts: total, DMARC pass, DMARC fail, and disposition (none, quarantine, reject). Counts are message-weighted. Default window is 30 days, clamped at 365. If the window has more than 50 days, the most recent 50 are returned and truncated is true. Pass an earlier day_before to see the days before those. |
| get_reporter_coverageA | One row per receiving mailbox provider (the DMARC reporter_org), with message-weighted pass/fail counts and sources_seen. Sorted by volume descending. At most 50 rows. |
| list_sending_sourcesA | One row per sending IP (default), autonomous system, or From domain. Counts are message-weighted, including spf_passed and dkim_passed. Identity strings are the greatest value seen in the window and are length-capped. Sorted by volume descending. At most 50 rows; truncated is true when more existed. |
| query_recordsA | 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. |
| list_aggregate_reportsA | One row per ingested aggregate XML. Use the id with get_report_records. Does not follow pagination: when truncated is true, pass next_cursor back as cursor. The cursor carries the filters. |
| get_report_recordsA | Re-parses one aggregate XML into per-record rows (source, count, alignment, disposition, identifiers). Third-party strings are length-capped. At most 50 rows. When truncated is true, pass next_offset back as offset. |
| whoamiB | The organisation this token is bound to, and the resolved plan features (api_tokens_enabled, retention_days, and the rest). user is null for an API token. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools target distinct resources (domains, summaries, reporter orgs, sending sources, raw reports), and descriptions clarify boundaries. However, the record-oriented trio (query_records, get_report_records, list_aggregate_reports) plus get_alignment_summary overlap conceptually, so an agent may hesitate between drilling into records versus reports.
Names follow a clean verb_noun pattern (list_domains, get_domain, get_alignment_summary, list_sending_sources, query_records). The only deviation is whoami, which is idiomatic but breaks the pattern slightly.
Nine tools is well-scoped for a DMARC aggregate-reporting server, with each tool earning its place across domains, summaries, coverage, sources, and raw records.
The read-only reporting surface is broadly complete: domains, policy snapshots, daily summaries, reporter coverage, sending sources, and raw report access are all present. Minor gap: no mutation tools (e.g. registering a domain or publishing a DMARC policy), though read-only may be the intended scope.