Pipefire email deliverability tools
by pipefire.ai · remote · no sign-in to list tools · v1.0.0 · published by ai.pipefire
Free email deliverability tools: SPF, DKIM, DMARC, blacklist and header checks, cold email scoring.
16 tools: 13 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things13Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http pipefire https://pipefire.ai/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "generate_spf_record" 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":false}; The name "generate_spf_record" says "generate": a word for a change.
The server marks "generate_dmarc_record" 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":false}; The name "generate_dmarc_record" says "generate": a word for a change.
The server marks "generate_dkim_record" 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":false}; The name "generate_dkim_record" says "generate": 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.
16 tools
Changes things 13Claude Code: ask
check_bimiCheck a domain's BIMI record (logo in the inbox) and whether its DMARC policy is strict enough for BIMI to show.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's BIMI record (logo in the inbox) and whether its DMARC policy is strict enough for BIMI to show.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
check_blacklistsCheck whether a domain's sending IPs, or a single IPv4 address, are listed on the major email blacklists (Spamhaus, Barracuda, SpamCop and others), with removal links.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 whether a domain's sending IPs, or a single IPv4 address, are listed on the major email blacklists (Spamhaus, Barracuda, SpamCop and others), with removal links.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
check_cold_emailScore a cold email (subject and body) out of 10 against the rules Pipefire checks its own emails with: length, reading level, the ask, subject line, and spam-filter wording.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 Score a cold email (subject and body) out of 10 against the rules Pipefire checks its own emails with: length, reading level, the ask, subject line, and spam-filter wording. Returns each issue with why it matters and how to fix it.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
check_dkimLook up a domain's DKIM public key, trying the selectors Google Workspace, Microsoft 365 and common senders use, plus one you name.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 Look up a domain's DKIM public key, trying the selectors Google Workspace, Microsoft 365 and common senders use, plus one you name.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
check_dmarcCheck a domain's DMARC record: whether one exists at _dmarc, its policy (none, quarantine, reject), whether reports are collected, and outdated tags.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's DMARC record: whether one exists at _dmarc, its policy (none, quarantine, reject), whether reports are collected, and outdated tags. Tells you whether the domain can be impersonated by email.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
check_domain_email_setupCheck whether a domain is set up to send and receive email properly: MX, SPF, DKIM and DMARC in one go, each with pass/warn/fail, what was found, and how to fix it.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 whether a domain is set up to send and receive email properly: MX, SPF, DKIM and DMARC in one go, each with pass/warn/fail, what was found, and how to fix it. Use when someone asks why their email goes to spam, whether their domain is set up right, or before sending cold email.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
check_mta_stsCheck a domain's MTA-STS policy, which forces encrypted delivery of incoming mail.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's MTA-STS policy, which forces encrypted delivery of incoming mail.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
check_spfCheck a domain's SPF record: whether it exists, is valid, stays under the 10 DNS lookup limit, and ends with a sensible all mechanism.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's SPF record: whether it exists, is valid, stays under the 10 DNS lookup limit, and ends with a sensible all mechanism.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
generate_dkim_recordFormat a DKIM public key as the TXT record to publish at selector._domainkey.yourdomain.1 finding
Why it is in this group
- The name "generate_dkim_record" says "generate": 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 "generate_dkim_record" 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":false}; The name "generate_dkim_record" says "generate": a word for a change.
Description, as the server wrote it Format a DKIM public key as the TXT record to publish at selector._domainkey.yourdomain.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
generate_dmarc_recordBuild a valid DMARC TXT record (to publish at _dmarc.yourdomain) from a policy and report addresses.1 finding
Why it is in this group
- The name "generate_dmarc_record" says "generate": 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 "generate_dmarc_record" 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":false}; The name "generate_dmarc_record" says "generate": a word for a change.
Description, as the server wrote it Build a valid DMARC TXT record (to publish at _dmarc.yourdomain) from a policy and report addresses.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
generate_spf_recordBuild a valid SPF TXT record for a domain from the email services it sends with, with warnings about the 10-lookup limit.1 finding
Why it is in this group
- The name "generate_spf_record" says "generate": 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 "generate_spf_record" 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":false}; The name "generate_spf_record" says "generate": a word for a change.
Description, as the server wrote it Build a valid SPF TXT record for a domain from the email services it sends with, with warnings about the 10-lookup limit.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
suggest_sending_domainsSuggest lookalike sending domains for cold email (so the main domain is never put at risk), with live .com/.net availability.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 Suggest lookalike sending domains for cold email (so the main domain is never put at risk), with live .com/.net availability. Give a business name or its website.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
test_subject_lineScore a cold email subject line out of 10: length, wording that hurts opens, and spam trigger words, with fixes.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 Score a cold email subject line out of 10: length, wording that hurts opens, and spam trigger words, with fixes.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 3Claude Code: allow
analyze_email_headersRead the raw headers of a received email: SPF, DKIM and DMARC results, alignment, the delivery path and delays.No findings
Why it is in this group
- The name "analyze_email_headers" says "analyze": a word for reading.
Description, as the server wrote it Read the raw headers of a received email: SPF, DKIM and DMARC results, alignment, the delivery path and delays. Use when someone pastes headers and asks why a message went to spam or failed authentication.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
check_mxList a domain's mail servers (MX records) and which provider handles its email.No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
Description, as the server wrote it List a domain's mail servers (MX records) and which provider handles its email.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
guess_email_addressesList the likely email address formats for a person at a company domain (first@, first.last@, flast@ ...).No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
Description, as the server wrote it List the likely email address formats for a person at a company domain (first@, first.last@, flast@ ...). Guesses only: verify before sending.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http pipefire https://pipefire.ai/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__pipefire__check_mx",
"mcp__pipefire__analyze_email_headers",
"mcp__pipefire__guess_email_addresses"
],
"ask": [
"mcp__pipefire__check_domain_email_setup",
"mcp__pipefire__check_dmarc",
"mcp__pipefire__check_spf",
"mcp__pipefire__check_dkim",
"mcp__pipefire__check_bimi",
"mcp__pipefire__check_mta_sts",
"mcp__pipefire__check_blacklists",
"mcp__pipefire__check_cold_email",
"mcp__pipefire__test_subject_line",
"mcp__pipefire__suggest_sending_domains",
"mcp__pipefire__generate_spf_record",
"mcp__pipefire__generate_dmarc_record",
"mcp__pipefire__generate_dkim_record"
],
"deny": []
}
}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 pipefire. Review it before you use it.