MCP服务器用于电子邮件兼容性分析. 分析,预览,diff,并固定21个电子邮件客户端的电子邮件,再加上抓取真实的截图并用可选的API密钥创建可共享链接.
发送 HTML、MJML、Maizzle 或反应电子邮件设置 format 和模板在分析前被编译,所以所检查的是阅读器实际收到的HTML.
为什么你的助手需要这个: 在我们追踪的298个CSS和HTML特性中,每个大电子邮件客户端中只有6个得到充分支持(查看数据) (中文(简体) ). 请克劳德检查你的电子邮件 在你发送它之前.
建造在 @emailens/engine. 也可作为 GitHub 动作。 。 。 .
安装
npx -y @emailens/mcp
设置
克劳德桌面
添加为 claude_desktop_config.json数字 :
{
"mcpServers": {
"emailens": {
"command": "npx",
"args": ["-y", "@emailens/mcp"]
}
}
}
克劳德代码
claude mcp add emailens -- npx -y @emailens/mcp
带有 API 密钥( 可选, 解锁截图 + 共享)
{
"mcpServers": {
"emailens": {
"command": "npx",
"args": ["-y", "@emailens/mcp"],
"env": {
"EMAILENS_API_KEY": "ek_live_..."
}
}
}
}
获取免费 API 密钥 app.emailens.dev/dashboard/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 | 字符串 | 一个 | 电子邮件 HTML 来源 |
path | 字符串 | 一个 | 源文件的绝对路径代替 html (单位:千美元).html, (中文(简体) ), .htm, (中文(简体) ), .mjml, (中文(简体) ), .jsx, (中文(简体) ), .tsx, (中文(简体) ), .vue); 扩展集 format |
clients | 字符串 [] | 没有 | 过滤到特定客户端ID |
format | 语句 | 没有 | "html", (中文(简体) ), "jsx", (中文(简体) ), "mjml", (中文(简体) ), "maizzle" |
analyze_email
快速 CSS 兼容性分析; 返回每个客户的分数和每个问题一个发现. 较快 audit_email 当您只需要 CSS 兼容性时.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
html | 字符串 | 一个 | 电子邮件 HTML 来源 |
path | 字符串 | 一个 | 源文件的绝对路径代替 html (单位:千美元).html, (中文(简体) ), .htm, (中文(简体) ), .mjml, (中文(简体) ), .jsx, (中文(简体) ), .tsx, (中文(简体) ), .vue); 扩展集 format |
format | 语句 | 没有 | 输入格式 |
detail | 语句 | 没有 | "summary" (违约)或 "full" |
clients | 字符串 [] | 没有 | 只报告客户身份 |
targetingPolicy | 语句 | 没有 | "progressive" (违约), "strict",或 "lenient" |
每个问题都有一个发现 而不是每个客户一个. 每个客户的引擎报告
因为一个分数是每个客户, 而每个选择者是因为一个固定是每个选择者.
在普通通讯上 border-radius 抵达12次(两名客户)
放弃它,六个选择者使用它),每份拷贝中都有相同的句子.
这是286KB的JSON, 大约73000个代币, 对于一个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被姓名拒绝; a
空结果会读作“ 此邮件对客户端是好的 ” .
来源位置. 对于 HTML 输入, 每个警告带 loc (单位:千美元)line, (中文(简体) ),
column, (中文(简体) ), offset, (中文(简体) ), length) 第一次出现,加 alsoAtLines 页:1
其他人,所以一个助手可以编辑确切的源,并知道其他的在哪里
对. audit_email 以同样的方式看待其他调查结果.
{
"property": "border-radius",
"loc": { "line": 7, "column": 8, "offset": 142, "length": 25 },
"alsoAtLines": [12, 19]
}
后来发生的是行号,而不是故意的完全位置: 答覆由一个支付每个符号的模型阅读,一个真正的通讯可以 生产出一千多起事件; 全部装入近一倍 有效载荷.
报告职位 html 仅输入。 汇编了JSX、MJML和Maizzle
因此,在分析之前,一个行号会指向生成的输出,而不是
您打开的文件: 工具省略了它, 而不是返回一个外观
权威.
audit_email
全面质量审计:CSS兼容性,垃圾邮件评分,链接验证,可访问性,图像,收件箱预览,大小(Gmail剪接),模板变量,内容溢出,视觉错误,暗模式和移动文本对比,设计一致性,以及客户端目标设定.
后三段覆盖了光线桌面预览无法显示的内容:当客户端强制黑模式或当电子邮件本身的暗块重新油漆表面而未重新涂色时会消失的文本,在电子邮件的断点下作对比,以及不同值但与读者不同的颜色.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
html | 字符串 | 一个 | 电子邮件 HTML 来源 |
path | 字符串 | 一个 | 源文件的绝对路径代替 html (单位:千美元).html, (中文(简体) ), .htm, (中文(简体) ), .mjml, (中文(简体) ), .jsx, (中文(简体) ), .tsx, (中文(简体) ), .vue); 扩展集 format |
format | 语句 | 没有 | 输入格式 |
detail | 语句 | 没有 | "summary" (违约)或 "full" |
clients | 字符串 [] | 没有 | 只报告客户身份 |
skip | 字符串 [] | 没有 | 选中要跳过( 例如 ) . ["spam", "images"](中文(简体) ) |
targetingPolicy | 语句 | 没有 | "progressive" (违约), "strict",或 "lenient" |
emailType | 语句 | 没有 | "transactional" (不需要取消订阅链接)或 "marketing"输入:从内容中猜出 |
previousHtml | 字符串 | 没有 | 持有这个版本的设计,通常是您的初稿. 寄出:这封邮件的第一个版本在会话中审计过. 被删除的编辑内容归根结底 designRemovals |
修补 error 财务报告和审定财务报表 warning 发现. info 发现不是问题:电子邮件安全地掉回那里,所以永远不要删除应答(@media)或暗模 CSS来清除它们.
fix_email
为兼容性问题生成一个结构化的固定快取. 以AI可以直接应用的固定指令返回标记下.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
html | 字符串 | 一个 | 要修复的电子邮件 HTML |
path | 字符串 | 一个 | 源文件的绝对路径代替 html (单位:千美元).html, (中文(简体) ), .htm, (中文(简体) ), .mjml, (中文(简体) ), .jsx, (中文(简体) ), .tsx, (中文(简体) ), .vue); 扩展集 format |
format | 语句 | 没有 | 控制修正语法 |
scope | 语句 | 没有 | "all" 或者说 "current" |
selectedClientId | 字符串 | 没有 | 范围修正的客户端ID |
list_clients
列出所有21个支持的电子邮件客户端,并附有ID,姓名,引擎和暗模式支持.
diff_emails
比较两个电子邮件 HTML 版本;显示分数变化,固定问题,并介绍每个客户端的问题.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
before 编号 : beforePath | 字符串 | 一个 | 原始电子邮件来源或其文件 |
after 编号 : afterPath | 字符串 | 一个 | 已修改的电子邮件源或其文件 |
format | 语句 | 没有 | 输入格式 |
check_deliverability
请检查access-date=中的日期值 (帮助) 一个域的电子邮件可发送性:SPF, DKIM, DMARC, MX, BIMI 记录有分数和可采取行动的问题.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
domain | 字符串 | 对 | 要检查的域( 例如 ). "company.com"(中文(简体) ) |
check_design
电子邮件在每一个客户端的直播预览中是否仍然看起来像它的设计 .
它在真实浏览器中绘制邮件两次: 当客户端显示时, 以及
是你写的 然后按元素比较两种布局元素. 每个
当事人得到一个判决, kept (准备), changed (需要帮助)或 broken
(Broken),原因: 堆叠的列, 移动或移动的按钮
调整大小、填充或角丢失、字体和间距改变。 这是
裁决电子邮件电子邮件页面显示。 编辑后代理可以调用到
证实修复没有在别处破坏布局.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
html | 字符串 | 一个 | 电子邮件 HTML 来源 |
path | 字符串 | 一个 | 源文件的绝对路径代替 html |
clients | 字符串 [] | 没有 | 要检查客户身份 默认:全部21个(每个数秒,一次4个) |
format | 语句 | 没有 | 输入格式 |
{ "broken": ["outlook-windows-legacy"],
"results": [{ "clientId": "outlook-windows-legacy", "name": "Outlook Classic",
"verdict": "broken", "label": "Broken",
"sentence": "Outlook Classic breaks your design.",
"reasons": ["Columns that sit side by side in your design stack on top of each other."],
"more": 0 }] }
它需要一个浏览器。 添加 playwright-core 到服务器,以及 sharp 联 合 国
像素比较. 要么安装局部铬,要么对准您
无浏览器实例 :
{
"mcpServers": {
"emailens": {
"command": "npx",
"args": ["-y", "-p", "@emailens/mcp", "-p", "playwright-core", "-p", "sharp", "emailens-mcp"],
"env": { "BROWSERLESS_URL": "wss://..." }
}
}
}
无 BROWSERLESS_URL它用的是当地的铬. 安装一个
npx playwright-core install chromium还有几件事要知道:
- 它运行在灯光模式, 与我们的现场预览, 不是真正的收件箱.
- 与
sharp,它还比较了两页像素的截图,用 像素,就像主机检查一样。 这更常见于人类 审查者,每个结果都包含diff(像素的去除份额)和aligned没有sharp,只比较页面结构. - 对于无浏览器,会话必须保持全程开放. 举起一
简称
TIMEOUT,或者通过更少clients。 。 。 . - 脚本在两页中被关闭.
- 预览使用的字体站点被下载一次
app.emailens.dev 进入
~/.cache/emailens/fonts。 。 。 .
主机工具( 需要 EMAILENS_API_KEY(中文(简体) )
capture_screenshots
在真实浏览器中捕捉21个客户端的真实电子邮件截图. 屏幕截图由CDN主持.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
html | 字符串 | 一个 | 电子邮件 HTML 来源 |
path | 字符串 | 一个 | 源文件的绝对路径代替 html (单位:千美元).html, (中文(简体) ), .htm, (中文(简体) ), .mjml, (中文(简体) ), .jsx, (中文(简体) ), .tsx, (中文(简体) ), .vue); 扩展集 format |
format | 语句 | 没有 | 输入格式 |
clients | 字符串 [] | 没有 | 过滤客户端 |
modes | 字符串 [] | 没有 | ["light"], (中文(简体) ), ["dark"],或 ["light", "dark"] |
title | 字符串 | 没有 | 预览的名称 |
免费计划:每天30个预览. 报名
share_preview
创建共享链接 。 接受者在没有账户的情况下看到全面分析.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
html | 字符串 | 一个 | 电子邮件 HTML 来源 |
path | 字符串 | 一个 | 源文件的绝对路径代替 html (单位:千美元).html, (中文(简体) ), .htm, (中文(简体) ), .mjml, (中文(简体) ), .jsx, (中文(简体) ), .tsx, (中文(简体) ), .vue); 扩展集 format |
title | 字符串 | 没有 | 显示标题 |
format | 语句 | 没有 | 输入格式 |
需要Dev计划(9/mo)。 共享链接在7天后过期(Dev)或永远不过期(Pro.
模板格式
format 接受 html (默认), mjml, (中文(简体) ), maizzle 财务报告和审定财务报表 jsx (反应)
电子邮件. 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
它们必须安装在服务器运行的地方, 它并不总是在某个地方
你来控制 如果没有,请自行编译模板并发送结果
HTML 为 format: "html":工具在打出这个时是这样说的.
支持的电子邮件客户端( 21)
每个客户端都会链接到其CSS支持页面. 每个助手的设置指南 : 电子邮件.dev/mcp。 。 。 .
| 客户端 | 身份证 | 黑暗模式 | 页:1 |
|---|---|---|---|
| 邮件 | gmail-web | 对 | |
| Gmail 安卓尔 | gmail-android | 对 | |
| 邮件 iOS | gmail-ios | 对 | |
| 展望365 | outlook-web | 对 | |
| 展望窗口 | outlook-windows | 没有 | |
| 展望窗口遗产 | outlook-windows-legacy | 没有 | 2026年10月折旧 |
| IOS展望 | outlook-ios | 对 | 以 4. 0 为单位新建 |
| 展望 Android | outlook-android | 对 | 以 4. 0 为单位新建 |
| 宏的前景 | outlook-macos | 对 | V.1.0中新建 |
| 苹果邮件 | apple-mail-macos | 对 | |
| 苹果邮件 iOS | apple-mail-ios | 对 | |
| 雅虎邮件 | yahoo-mail | 对 | |
| 雅虎邮件Android | yahoo-mail-android | 对 | V.1.0中新建 |
| Yahoo 邮件 iOS | yahoo-mail-ios | 对 | V.1.0中新建 |
| 三星邮件 | samsung-mail | 对 | |
| 雷鸟 | thunderbird | 没有 | |
| 嘿,邮件 | hey-mail | 对 | |
| 质子邮件 | protonmail | 对 | V.1.0中新建 |
| AOL 邮件 | aol | 对 | V.1.0中新建 |
| 快递 | fastmail | 对 | V.1.0中新建 |
| 超级人 | superhuman | 对 |
释放
两个出版物:npm和MCP登记册。 登记名单排列为5个
释放后,因为没有推进 server.json,所以一半是一个
现在工作流程. 相关内容 有细节和四个
设置该版本必须同意.
发展
bun install
bun run build
bun test
bun run typecheck
许可证
麻省理工学院
如果这能让你免于Outlook惊喜, 一颗恒星 帮助其他电子邮件开发者找到它.