mcpField
E
Emailens MCP

Emailens MCP

远程服务
emailens.dev开发工具7今天更新

关于 Emailens MCP

Emailens MCP 为制作 HTML、MJML、Maizzle 或 React Email 邮件的开发者和内容团队提供兼容性与质量检查,并可比较版本、生成修复提示词。它在分析前编译模板,并可通过 API 密钥启用截图和分享。

主要功能

  1. 01检查 21 个邮件客户端的兼容性
  2. 02审计垃圾邮件、链接和无障碍问题
  3. 03编译多种邮件模板格式
  4. 04比较版本并生成修复提示词
  5. 05可选截图与分享预览

适用场景

  1. 01发送前检查邮件在各客户端的表现
  2. 02审计营销邮件的投递与无障碍问题
  3. 03比较修改前后的问题变化
  4. 04为兼容性问题生成修复指导

MCP 相关

向 MCP 客户端提供邮件预览、分析、审计、修复、客户端列表、版本比较及域名投递检查工具。截图和分享工具需要配置 EMAILENS_API_KEY;也可连接托管端点。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://emailens.dev/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npm@emailens/mcp0.14.0

工具

13
参数类型必填说明
htmlstring是电子邮件 HTML 源代码
formatenum否输入格式:'html'(默认)、'jsx'、'mjml' 或 'maizzle'html | jsx | mjml | maizzle
clientsarray否可选的客户端 ID 筛选条件

详细介绍

emailens / mcp

面向 AI 助手的电子邮件渲染分析

CI npm license MCP Registry Smithery GitHub stars

用于电子邮件兼容性分析的 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、生成评分、模拟暗色模式、检查收件箱预览和电子邮件大小。

参数类型必填说明
htmlstring二选一电子邮件 HTML 源码
pathstring二选一源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format
clientsstring[]否仅筛选指定的客户端 ID
formatenum否"html"、"jsx"、"mjml"、"maizzle"
analyze_email

快速进行 CSS 兼容性分析;返回各客户端的评分,并针对每个问题提供一条发现。只需要了解 CSS 兼容性时,它比 audit_email 更快。

参数类型必填描述
htmlstring二选一邮件 HTML 源码
pathstring二选一源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format
formatenum否输入格式
detailenum否"summary"(默认)或 "full"
clientsstring[]否仅报告这些客户端 ID
targetingPolicyenum否"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 截断)、模板变量、内容溢出、视觉缺陷、深色模式和移动设备上的文本对比度、设计一致性以及客户端定位。

最后三项涵盖了浅色桌面预览无法展示的问题:客户端强制启用深色模式时消失的文本,或邮件自身的深色区块重绘背景却未重新着色其上的文本;低于邮件断点的对比度;以及数值不同但读者无法区分的颜色。

参数类型必填说明
htmlstring二选一邮件 HTML 源码
pathstring二选一源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format
formatenum否输入格式
detailenum否"summary"(默认)或 "full"
clientsstring[]否仅报告这些客户端 ID
skipstring[]否要跳过的检查(例如 ["spam", "images"])
targetingPolicyenum否"progressive"(默认)、"strict" 或 "lenient"
emailTypeenum否"transactional"(无需退订链接)或 "marketing"。省略时:根据内容推断
previousHtmlstring否用于对照当前版本的设计,通常是初稿。省略时:使用本次会话中审计的该邮件首个版本。编辑移除的内容会作为 designRemovals 返回

修复 error 和 warning 级别的发现项。info 级别的发现项不是问题:邮件会在这些情况下安全回退,因此不要为了清除它们而移除响应式(@media)或深色模式 CSS。

fix_email

为兼容性问题生成结构化修复提示词。返回包含修复说明的 Markdown,AI 可直接应用这些说明。

参数类型必填说明
htmlstring二选一要修复的邮件 HTML
pathstring二选一源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format
formatenum否控制修复语法
scopeenum否"all" 或 "current"
selectedClientIdstring否用于限定修复范围的客户端 ID
list_clients

列出全部 21 个受支持的邮件客户端,包括 ID、名称、引擎和深色模式支持情况。

diff_emails

比较两个邮件 HTML 版本;显示每个客户端的评分变化、已修复问题和新增问题。

参数类型必填说明
before / beforePathstring二选一原始邮件源码或其文件
after / afterPathstring二选一修改后的邮件源码或其文件
formatenum否输入格式
check_deliverability

检查域名的邮件送达能力:SPF、DKIM、DMARC、MX、BIMI 记录,并提供评分和可执行的问题建议。

参数类型必填说明
domainstring是要检查的域名(例如 "company.com")
托管工具(需要 EMAILENS_API_KEY)
capture_screenshots

在真实浏览器中捕获邮件在 21 个客户端上的截图。截图托管在 CDN 上。

参数类型必填说明
htmlstring二选一邮件 HTML 源码
pathstring二选一源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format
formatenum否输入格式
clientsstring[]否筛选客户端
modesstring[]否["light"]、["dark"] 或 ["light", "dark"]
titlestring否预览名称

免费套餐:每天 30 次预览。注册

share_preview

创建可分享的链接。接收者无需账户即可查看完整分析。

参数类型必填描述
htmlstring二选一邮件 HTML 源码
pathstring二选一源文件的绝对路径,用于替代 html(.html、.htm、.mjml、.jsx、.tsx、.vue);扩展名决定 format
titlestring否显示标题
formatenum否输入格式

需要 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深色模式备注
Gmailgmail-web是
Gmail Androidgmail-android是
Gmail iOSgmail-ios是
Outlook 365outlook-web是
Outlook Windowsoutlook-windows否
Outlook Windows Legacyoutlook-windows-legacy否将于 2026 年 10 月弃用
Outlook iOSoutlook-ios是v0.4.0 中新增
Outlook Androidoutlook-android是v0.4.0 中新增
Outlook for Macoutlook-macos是v0.10.0 中新增
Apple Mailapple-mail-macos是
Apple Mail iOSapple-mail-ios是
Yahoo Mailyahoo-mail是
Yahoo Mail Androidyahoo-mail-android是v0.10.0 中新增
Yahoo Mail iOSyahoo-mail-ios是v0.10.0 中新增
Samsung Mailsamsung-mail是
Thunderbirdthunderbird否
HEY Mailhey-mail是
Proton Mailprotonmail是v0.10.0 中新增
AOL Mailaol是v0.10.0 中新增
Fastmailfastmail是v0.10.0 中新增
Superhumansuperhuman是

发布

发布到两个平台:npm 和 MCP registry。由于没有人推送 server.json,注册表条目落后了五个版本,因此现在已将这一环节纳入工作流。RELEASING.md 中有详细说明,以及必须保持版本一致的四个位置。

开发

bun install
bun run build
bun test
bun run typecheck

许可证

MIT


如果这帮你避免了 Outlook 带来的意外,点个星能帮助其他邮件开发者找到它。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。