关于 Emailens MCP
Emailens MCP 为制作 HTML、MJML、Maizzle 或 React Email 邮件的开发者和内容团队提供兼容性与质量检查,并可比较版本、生成修复提示词。它在分析前编译模板,并可通过 API 密钥启用截图和分享。
主要功能
- 01检查 21 个邮件客户端的兼容性
- 02审计垃圾邮件、链接和无障碍问题
- 03编译多种邮件模板格式
- 04比较版本并生成修复提示词
- 05可选截图与分享预览
适用场景
- 01发送前检查邮件在各客户端的表现
- 02审计营销邮件的投递与无障碍问题
- 03比较修改前后的问题变化
- 04为兼容性问题生成修复指导
MCP 相关
向 MCP 客户端提供邮件预览、分析、审计、修复、客户端列表、版本比较及域名投递检查工具。截图和分享工具需要配置 EMAILENS_API_KEY;也可连接托管端点。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://emailens.dev/api/mcpclaude mcp add --transport http emailens https://emailens.dev/api/mcp{"mcpServers":{"emailens":{"type":"http","url":"https://emailens.dev/api/mcp"}}}在 Cursor 中打开{"servers":{"emailens":{"type":"http","url":"https://emailens.dev/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"emailens":{"type":"http","url":"https://emailens.dev/api/mcp"}}}{"mcpServers":{"emailens":{"serverUrl":"https://emailens.dev/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
13| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| html | string | 是 | 电子邮件 HTML 源代码 |
| format | enum | 否 | 输入格式:'html'(默认)、'jsx'、'mjml' 或 'maizzle'html | jsx | mjml | maizzle |
| clients | array | 否 | 可选的客户端 ID 筛选条件 |
详细介绍
用于电子邮件兼容性分析的 MCP 服务。可在 21 种电子邮件客户端中分析、预览、比较并修复电子邮件,还可捕获真实截图,并使用可选的 API 密钥创建可分享链接。
支持发送 HTML、MJML、Maizzle 或 React Email。设置 format 后,模板会在分析前编译,因此检查的是读者实际收到的 HTML。
为什么你的助手需要它:在我们追踪的 298 项 CSS 和 HTML 功能中,只有 6 项在所有主流电子邮件客户端中都获得完全支持(查看数据)。发送邮件前,让 Claude 帮你检查一下。
基于 @emailens/engine 构建。也可通过 GitHub Action 使用。
安装
npx -y @emailens/mcp
设置
Claude Desktop
添加到 claude_desktop_config.json:
{
"mcpServers": {
"emailens": {
"command": "npx",
"args": ["-y", "@emailens/mcp"]
}
}
}
Claude Code
claude mcp add emailens -- npx -y @emailens/mcp
使用 API 密钥(可选,可解锁截图和分享功能)
{
"mcpServers": {
"emailens": {
"command": "npx",
"args": ["-y", "@emailens/mcp"],
"env": {
"EMAILENS_API_KEY": "ek_live_..."
}
}
}
}
前往 app.emailens.dev/dashboard/api 获取免费的 API 密钥。
远程(无需安装)
使用托管端点:无需 npm 或 Node.js。需要 API 密钥。
{
"mcpServers": {
"emailens": {
"url": "https://app.emailens.dev/api/mcp",
"headers": {
"Authorization": "Bearer ek_live_..."
}
}
}
}
工具
本地工具(无需账户)
preview_email
完整的电子邮件兼容性预览:为 21 种客户端转换 HTML、分析 CSS、生成评分、模拟暗色模式、检查收件箱预览和电子邮件大小。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
html | string | 二选一 | 电子邮件 HTML 源码 |
path | string | 二选一 | 源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format |
clients | string[] | 否 | 仅筛选指定的客户端 ID |
format | enum | 否 | "html"、"jsx"、"mjml"、"maizzle" |
analyze_email
快速进行 CSS 兼容性分析;返回各客户端的评分,并针对每个问题提供一条发现。只需要了解 CSS 兼容性时,它比 audit_email 更快。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
html | string | 二选一 | 邮件 HTML 源码 |
path | string | 二选一 | 源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format |
format | enum | 否 | 输入格式 |
detail | enum | 否 | "summary"(默认)或 "full" |
clients | string[] | 否 | 仅报告这些客户端 ID |
targetingPolicy | enum | 否 | "progressive"(默认)、"strict" 或 "lenient" |
每个问题只提供一条发现,而不是每个客户端一条。 引擎按客户端报告,因为评分是按客户端计算的;也按选择器报告,因为修复是针对选择器的。普通新闻邮件中的 border-radius 会出现 12 次(两个客户端不支持它,六个选择器使用了它),每处都带有相同的说明。那会产生 286KB 的 JSON,约 73,000 个 token,而邮件只有 11KB。
发现结果按属性、严重程度和消息分组,列出受影响的客户端,并合并它们各自的位置。同一封邮件现在只返回 40KB。
{
"property": "border-radius",
"severity": "warning",
"clients": ["outlook-windows", "outlook-windows-legacy"],
"message": "Does not support \"border-radius\". Round corners can be used in VML…",
"fixType": "structural",
"hasFix": true,
"loc": { "line": 61, "column": 28, "offset": 2753, "length": 171 },
"alsoAtLines": [62, 64, 75, 78, 87]
}
不包含修复代码片段;它们占了那 286KB 中的 93KB,而 fix_email 会为你决定要处理的问题生成这些片段。hasFix 表示是否有可用的修复;fixType 表示修复针对标记还是 CSS。
传入 detail: "full" 可获取引擎按客户端返回的完整数据(含代码片段);传入 clients: ["gmail-web", "outlook-windows"] 则只报告你关心的内容:这是进一步提速的最佳方式,选择两个客户端时响应大小大约减半。
无论如何,评分始终针对整封邮件:缩小报告范围不会改变这封邮件在其他客户端上的评分。未知客户端 ID 会按名称被拒绝;如果返回空结果,读起来会像是“这封邮件在该客户端上没有问题”。
源代码位置。 对于 HTML 输入,每条警告都会带有 loc(line、column、offset、length),表示首次出现的位置;此外还会提供 alsoAtLines,列出其他出现位置,这样助手就可以编辑精确的源代码,并知道其余位置在哪里。audit_email 对其他发现的位置也采用相同方式。
{
"property": "border-radius",
"loc": { "line": 7, "column": 8, "offset": 142, "length": 25 },
"alsoAtLines": [12, 19]
}
后续出现位置只报告行号,而不提供完整位置,这是有意为之:模型读取此响应时,每个 token 都需要付费,而且一封真实的新闻邮件可能会出现上千处;完整记录所有位置几乎会使载荷翻倍。
仅对 html 输入报告位置。JSX、MJML 和 Maizzle 会在分析前编译,因此行号指向的是生成的输出,而不是你当前打开的文件;这些工具会省略位置,而不会返回看似权威的位置。
audit_email
全面质量审计:CSS 兼容性、垃圾邮件评分、链接验证、无障碍性、图片、收件箱预览、大小(Gmail 截断)、模板变量、内容溢出、视觉缺陷、深色模式和移动设备上的文本对比度、设计一致性以及客户端定位。
最后三项涵盖了浅色桌面预览无法展示的问题:客户端强制启用深色模式时消失的文本,或邮件自身的深色区块重绘背景却未重新着色其上的文本;低于邮件断点的对比度;以及数值不同但读者无法区分的颜色。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
html | string | 二选一 | 邮件 HTML 源码 |
path | string | 二选一 | 源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format |
format | enum | 否 | 输入格式 |
detail | enum | 否 | "summary"(默认)或 "full" |
clients | string[] | 否 | 仅报告这些客户端 ID |
skip | string[] | 否 | 要跳过的检查(例如 ["spam", "images"]) |
targetingPolicy | enum | 否 | "progressive"(默认)、"strict" 或 "lenient" |
emailType | enum | 否 | "transactional"(无需退订链接)或 "marketing"。省略时:根据内容推断 |
previousHtml | string | 否 | 用于对照当前版本的设计,通常是初稿。省略时:使用本次会话中审计的该邮件首个版本。编辑移除的内容会作为 designRemovals 返回 |
修复 error 和 warning 级别的发现项。info 级别的发现项不是问题:邮件会在这些情况下安全回退,因此不要为了清除它们而移除响应式(@media)或深色模式 CSS。
fix_email
为兼容性问题生成结构化修复提示词。返回包含修复说明的 Markdown,AI 可直接应用这些说明。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
html | string | 二选一 | 要修复的邮件 HTML |
path | string | 二选一 | 源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format |
format | enum | 否 | 控制修复语法 |
scope | enum | 否 | "all" 或 "current" |
selectedClientId | string | 否 | 用于限定修复范围的客户端 ID |
list_clients
列出全部 21 个受支持的邮件客户端,包括 ID、名称、引擎和深色模式支持情况。
diff_emails
比较两个邮件 HTML 版本;显示每个客户端的评分变化、已修复问题和新增问题。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
before / beforePath | string | 二选一 | 原始邮件源码或其文件 |
after / afterPath | string | 二选一 | 修改后的邮件源码或其文件 |
format | enum | 否 | 输入格式 |
check_deliverability
检查域名的邮件送达能力:SPF、DKIM、DMARC、MX、BIMI 记录,并提供评分和可执行的问题建议。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
domain | string | 是 | 要检查的域名(例如 "company.com") |
托管工具(需要 EMAILENS_API_KEY)
capture_screenshots
在真实浏览器中捕获邮件在 21 个客户端上的截图。截图托管在 CDN 上。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
html | string | 二选一 | 邮件 HTML 源码 |
path | string | 二选一 | 源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format |
format | enum | 否 | 输入格式 |
clients | string[] | 否 | 筛选客户端 |
modes | string[] | 否 | ["light"]、["dark"] 或 ["light", "dark"] |
title | string | 否 | 预览名称 |
免费套餐:每天 30 次预览。注册
share_preview
创建可分享的链接。接收者无需账户即可查看完整分析。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
html | string | 二选一 | 邮件 HTML 源码 |
path | string | 二选一 | 源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format |
title | string | 否 | 显示标题 |
format | enum | 否 | 输入格式 |
需要 Dev 套餐($9/mo)。分享链接在 7 天后失效(Dev),或永不过期(Pro)。
模板格式
format 接受 html(默认值)、mjml、maizzle 和 jsx(React
Email)。maizzle 是 HTML 模板或 Vue 单文件组件。粘贴的 Vue 文件如果未指定 format,会按 maizzle 编译。除 html 外,其他格式都会在分析前编译,并决定修复代码片段返回时使用的语法。
编译的重要性超乎想象。邮件客户端渲染的是输出结果,因此必须检查输出结果:如果收到原始的 <mjml> 文档,HTML 解析器会发现其中没有 CSS,并报告邮件完全没有问题。这样的回答比错误更糟,因为助手会重复给出它。
编译器不会随包捆绑。 仅 MJML 就会占用 56MB,而此服务通常通过 npx 启动,因此引擎将编译器作为可选的对等依赖:
npm install mjml # MJML
npm install @maizzle/framework@5 # Maizzle HTML
npm install @maizzle/framework@6 # Maizzle Vue single-file components
npm install sucrase react @react-email/components @react-email/render # React Email
必须在运行服务的环境中安装这些依赖,而该环境并非总是由你控制。如果无法安装,请自行编译模板,并使用 format: "html" 发送生成的 HTML:工具遇到这种情况时会提示你。
支持的邮件客户端(21)
每个客户端都链接到其 CSS 支持页面。每种助手的设置指南:emailens.dev/mcp。
| 客户端 | ID | 深色模式 | 备注 |
|---|---|---|---|
| Gmail | gmail-web | 是 | |
| Gmail Android | gmail-android | 是 | |
| Gmail iOS | gmail-ios | 是 | |
| Outlook 365 | outlook-web | 是 | |
| Outlook Windows | outlook-windows | 否 | |
| Outlook Windows Legacy | outlook-windows-legacy | 否 | 将于 2026 年 10 月弃用 |
| Outlook iOS | outlook-ios | 是 | v0.4.0 中新增 |
| Outlook Android | outlook-android | 是 | v0.4.0 中新增 |
| Outlook for Mac | outlook-macos | 是 | v0.10.0 中新增 |
| Apple Mail | apple-mail-macos | 是 | |
| Apple Mail iOS | apple-mail-ios | 是 | |
| Yahoo Mail | yahoo-mail | 是 | |
| Yahoo Mail Android | yahoo-mail-android | 是 | v0.10.0 中新增 |
| Yahoo Mail iOS | yahoo-mail-ios | 是 | v0.10.0 中新增 |
| Samsung Mail | samsung-mail | 是 | |
| Thunderbird | thunderbird | 否 | |
| HEY Mail | hey-mail | 是 | |
| Proton Mail | protonmail | 是 | v0.10.0 中新增 |
| AOL Mail | aol | 是 | v0.10.0 中新增 |
| Fastmail | fastmail | 是 | v0.10.0 中新增 |
| Superhuman | superhuman | 是 |
发布
发布到两个平台:npm 和 MCP registry。由于没有人推送 server.json,注册表条目落后了五个版本,因此现在已将这一环节纳入工作流。RELEASING.md 中有详细说明,以及必须保持版本一致的四个位置。
开发
bun install
bun run build
bun test
bun run typecheck
许可证
MIT
如果这帮你避免了 Outlook 带来的意外,点个星能帮助其他邮件开发者找到它。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。