Emailens MCP
Analyze, audit, fix and diff HTML, MJML, Maizzle and React Email across 21 email clients.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"@emailens/mcp"
]
}
}
}Runnable packages
0.6.2stdioRemote endpoints
https://emailens.dev/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢preview_email(html, clients, format)
Full email compatibility preview , transforms HTML for 21 email clients, analyzes CSS, generates scores, simulates dark mode, checks inbox preview and email size.
Input Schema
{
"type": "object",
"properties": {
"html": {
"type": "string",
"description": "The email HTML source code"
},
"clients": {
"description": "Optional client ID filter",
"type": "array",
"items": {
"type": "string"
}
},
"format": {
"description": "Input format: 'html' (default), 'jsx', 'mjml', or 'maizzle'",
"type": "string",
"enum": [
"html",
"jsx",
"mjml",
"maizzle"
]
}
},
"required": [
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢analyze_email(html, format)
Quick CSS compatibility analysis , returns warnings and per-client scores.
Input Schema
{
"type": "object",
"properties": {
"html": {
"type": "string",
"description": "The email HTML source code"
},
"format": {
"description": "Input format for framework-specific fix snippets",
"type": "string",
"enum": [
"html",
"jsx",
"mjml",
"maizzle"
]
}
},
"required": [
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢audit_email(html, format, skip)
Comprehensive quality audit , CSS compatibility, spam, links, accessibility, images, inbox preview, size, templates, content overflow, visual bugs.
Input Schema
{
"type": "object",
"properties": {
"html": {
"type": "string",
"description": "The email HTML source code"
},
"format": {
"description": "Input format",
"type": "string",
"enum": [
"html",
"jsx",
"mjml",
"maizzle"
]
},
"skip": {
"description": "Checks to skip",
"type": "array",
"items": {
"type": "string",
"enum": [
"spam",
"links",
"accessibility",
"images",
"compatibility",
"inboxPreview",
"size",
"templateVariables",
"overflow",
"visual"
]
}
}
},
"required": [
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢fix_email(html, format, scope, selectedClientId)
Generate a structured fix prompt for email compatibility issues.
Input Schema
{
"type": "object",
"properties": {
"html": {
"type": "string",
"description": "The email HTML source code to fix"
},
"format": {
"description": "Input format , controls fix syntax",
"type": "string",
"enum": [
"html",
"jsx",
"mjml",
"maizzle"
]
},
"scope": {
"description": "Fix scope",
"type": "string",
"enum": [
"all",
"current"
]
},
"selectedClientId": {
"description": "Client ID for scoped fixes",
"type": "string"
}
},
"required": [
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_clients
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.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢diff_emails(before, after, format)
Compare two email HTML versions , shows score changes, fixed issues, and regressions per client.
Input Schema
{
"type": "object",
"properties": {
"before": {
"type": "string",
"description": "Original email HTML"
},
"after": {
"type": "string",
"description": "Modified email HTML"
},
"format": {
"description": "Input format",
"type": "string",
"enum": [
"html",
"jsx",
"mjml",
"maizzle"
]
}
},
"required": [
"before",
"after"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_deliverability(domain)
Check email deliverability for a domain , SPF, DKIM, DMARC, MX, BIMI.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 3,
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$",
"description": "Domain to check (e.g. 'company.com')"
}
},
"required": [
"domain"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢build_email(intent, format, seedHtml, threshold, maxIterations)
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.
Input Schema
{
"type": "object",
"properties": {
"intent": {
"type": "string",
"description": "What the email should be and contain , the brief to build from"
},
"format": {
"description": "Output framework: 'html' (default), 'jsx', 'mjml', or 'maizzle'",
"type": "string",
"enum": [
"html",
"jsx",
"mjml",
"maizzle"
]
},
"seedHtml": {
"description": "Optional existing code to improve from instead of starting blank",
"type": "string"
},
"threshold": {
"description": "Target compatibility score, 50-100 (default 90)",
"type": "number"
},
"maxIterations": {
"description": "Max repair rounds, 1-8 (default 5)",
"type": "number"
}
},
"required": [
"intent"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_build_status(runId)
Check a build_email run by runId , returns status, iteration, best compatibility score, and the current best source once available.
Input Schema
{
"type": "object",
"properties": {
"runId": {
"type": "string",
"description": "The runId returned by build_email"
}
},
"required": [
"runId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence