Emailens MCP
by emailens · remote · local (npm) · no sign-in to list tools · v0.12.0 · published by GitHub user emailens
Analyze, audit, fix and diff HTML, MJML, Maizzle and React Email across 21 email clients.
13 tools: 5 change things and 8 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things5Claude Code: ask: see these tools
- Only reads8Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http emailens https://emailens.dev/api/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnfix_email
The server marks "fix_email" 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 description's first verb is "generate": a word for a change.
The server marks "sandbox_get_inbox" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sandbox_get_inbox" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
13 tools
Changes things 5Claude Code: ask
audit_emailComprehensive quality audit , CSS compatibility, spam, links, accessibility, images, inbox preview, size, templates, content overflow, visual bugs.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 Comprehensive quality audit , CSS compatibility, spam, links, accessibility, images, inbox preview, size, templates, content overflow, visual bugs.
Annotations the server declares
- title: Audit Email
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
build_emailGenerate a cross-client-compatible email from a brief using Emailens's self-healing loop (generate → score across 21 clients → repair).No findings
Why it is in this group
- The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate a cross-client-compatible email from a brief using Emailens's self-healing loop (generate → score across 21 clients → repair). Output stays in the framework you choose. Returns a runId immediately , poll get_build_status for progress and the final code. Requires a Pro/Team API key.
Annotations the server declares
- title: Build Email
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
check_deliverabilityCheck email deliverability for a domain , SPF, DKIM, DMARC, MX, BIMI.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 email deliverability for a domain , SPF, DKIM, DMARC, MX, BIMI.
Annotations the server declares
- title: Check Deliverability
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
fix_emailGenerate a structured fix prompt for email compatibility issues.1 finding
Why it is in this group
- The description's first verb is "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 "fix_email" 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 description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate a structured fix prompt for email compatibility issues.
Annotations the server declares
- title: Fix Email
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sandbox_get_inboxRetrieve or auto-create your Emailens sandbox test email address for capturing test emails.1 finding
Why it is in this group
- The name "sandbox_get_inbox" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "sandbox_get_inbox" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sandbox_get_inbox" says "get": a word for reading.
Description, as the server wrote it Retrieve or auto-create your Emailens sandbox test email address for capturing test emails.
Annotations the server declares
- title: Get Sandbox Inbox
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 8Claude Code: allow
analyze_emailQuick CSS compatibility analysis , returns warnings and per-client scores.No findings
Why it is in this group
- The name "analyze_email" says "analyze": a word for reading.
Description, as the server wrote it Quick CSS compatibility analysis , returns warnings and per-client scores.
Annotations the server declares
- title: Analyze Email
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
diff_emailsCompare two email HTML versions , shows score changes, fixed issues, and regressions per client.No findings
Why it is in this group
- The name "diff_emails" says "diff": a word for reading.
Description, as the server wrote it Compare two email HTML versions , shows score changes, fixed issues, and regressions per client.
Annotations the server declares
- title: Diff Emails
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_build_statusCheck a build_email run by runId , returns status, iteration, best compatibility score, and the current best source once available.No findings
Why it is in this group
- The name "get_build_status" says "get": a word for reading.
Description, as the server wrote it Check a build_email run by runId , returns status, iteration, best compatibility score, and the current best source once available.
Annotations the server declares
- title: Get Build Status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_clientsList all 21 supported email clients with IDs, names, rendering engines, dark mode support, and deprecation status.No findings
Why it is in this group
- The name "list_clients" says "list": a word for reading.
Description, as the server wrote it List all 21 supported email clients with IDs, names, rendering engines, dark mode support, and deprecation status. Use the returned IDs to filter other tools like preview_email or capture_screenshots.
Annotations the server declares
- title: List Email Clients
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
preview_emailFull email compatibility preview , transforms HTML for 21 email clients, analyzes CSS, generates scores, simulates dark mode, checks inbox preview and email size.No findings
Why it is in this group
- The name "preview_email" says "preview": a word for reading.
Description, as the server wrote it Full email compatibility preview , transforms HTML for 21 email clients, analyzes CSS, generates scores, simulates dark mode, checks inbox preview and email size.
Annotations the server declares
- title: Preview Email
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sandbox_get_messageGet complete email details: HTML/text body, parsed headers, spam score, SPF/DKIM/DMARC auth status, and validated links.No findings
Why it is in this group
- The name "sandbox_get_message" says "get": a word for reading.
Description, as the server wrote it Get complete email details: HTML/text body, parsed headers, spam score, SPF/DKIM/DMARC auth status, and validated links.
Annotations the server declares
- title: Get Sandbox Message
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sandbox_list_messagesList recently captured test emails in the Emailens sandbox.No findings
Why it is in this group
- The name "sandbox_list_messages" says "list": a word for reading.
Description, as the server wrote it List recently captured test emails in the Emailens sandbox.
Annotations the server declares
- title: List Sandbox Messages
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sandbox_wait_for_emailPoll and wait for a matching incoming test email in the sandbox (ideal for auth OTPs, magic links, transactional email assertions).No findings
Why it is in this group
- The name "sandbox_wait_for_email" says "wait": a word for reading.
Description, as the server wrote it Poll and wait for a matching incoming test email in the sandbox (ideal for auth OTPs, magic links, transactional email assertions).
Annotations the server declares
- title: Wait for Sandbox Email
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- 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 0.12.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http emailens https://emailens.dev/api/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__emailens__preview_email",
"mcp__emailens__analyze_email",
"mcp__emailens__list_clients",
"mcp__emailens__diff_emails",
"mcp__emailens__get_build_status",
"mcp__emailens__sandbox_list_messages",
"mcp__emailens__sandbox_wait_for_email",
"mcp__emailens__sandbox_get_message"
],
"ask": [
"mcp__emailens__audit_email",
"mcp__emailens__fix_email",
"mcp__emailens__check_deliverability",
"mcp__emailens__build_email",
"mcp__emailens__sandbox_get_inbox"
],
"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 emailens. Review it before you use it.
