Emailens Mcp

Servidor MCP para análisis de compatibilidad de correos electrónicos. Analiza, previsualiza, compara y corrige correos HTML en 15 clientes de correo, además de capturar capturas de pantalla reales y crear enlaces compartibles con una clave API opcional.

Documentación

emailens / mcp

Análisis de renderizado de correos electrónicos para asistentes de IA

CI npm license MCP Registry Smithery GitHub stars

Servidor MCP para análisis de compatibilidad de correos electrónicos. Analiza, previsualiza, compara y corrige correos en 21 clientes de correo, además de capturar capturas de pantalla reales y crear enlaces compartibles con una clave API opcional.

Envía HTML, MJML, Maizzle o React Email. Establece format y la plantilla se compila antes del análisis, de modo que lo que se verifica es el HTML que tus lectores realmente reciben.

Por qué tu asistente lo necesita: de las 298 funciones CSS y HTML que rastreamos, solo 6 son totalmente compatibles en todos los principales clientes de correo (ver los datos). Pide a Claude que revise tu correo antes de enviarlo.

Construido sobre @emailens/engine. También disponible como GitHub Action.

Instalación

npx -y @emailens/mcp

Configuración

Claude Desktop

Añade a claude_desktop_config.json:

{
  "mcpServers": {
    "emailens": {
      "command": "npx",
      "args": ["-y", "@emailens/mcp"]
    }
  }
}

Claude Code

claude mcp add emailens -- npx -y @emailens/mcp

Con clave API (opcional, desbloquea capturas de pantalla y uso compartido)

{
  "mcpServers": {
    "emailens": {
      "command": "npx",
      "args": ["-y", "@emailens/mcp"],
      "env": {
        "EMAILENS_API_KEY": "ek_live_..."
      }
    }
  }
}

Obtén tu clave API gratuita en emailens.dev/settings/api-keys.

Remoto (sin instalación)

Usa el endpoint alojado: no se necesitan npm ni Node.js. Se requiere clave API.

{
  "mcpServers": {
    "emailens": {
      "url": "https://emailens.dev/api/mcp",
      "headers": {
        "Authorization": "Bearer ek_live_..."
      }
    }
  }
}

Herramientas

Herramientas locales (sin necesidad de cuenta)

preview_email

Vista previa completa de compatibilidad de correo: transforma HTML para 21 clientes, analiza CSS, genera puntuaciones, simula modo oscuro, verifica la vista previa de la bandeja de entrada y el tamaño del correo.

ParámetroTipoObligatorioDescripción
htmlstringCódigo fuente HTML del correo
clientsstring[]NoFiltrar a IDs de cliente específicos
formatenumNo"html", "jsx", "mjml", "maizzle"

analyze_email

Análisis rápido de compatibilidad CSS; devuelve puntuaciones por cliente y un hallazgo por problema. Más rápido que audit_email cuando solo necesitas compatibilidad CSS.

ParámetroTipoObligatorioDescripción
htmlstringCódigo fuente HTML del correo
formatenumNoFormato de entrada
detailenumNo"summary" (predeterminado) o "full"
clientsstring[]NoInformar solo estos IDs de cliente

Un hallazgo por problema, no uno por cliente. El motor informa por cliente porque una puntuación es por cliente, y por selector porque una corrección es por selector. En un boletín ordinario, border-radius llega doce veces (dos clientes que lo eliminan, seis selectores que lo usan) con la misma frase en cada copia. Eso eran 286KB de JSON, alrededor de 73,000 tokens, para un correo de 11KB.

Los hallazgos se agrupan por propiedad, gravedad y mensaje, enumerando los clientes afectados, con posiciones fusionadas en todos ellos. El mismo correo ahora devuelve 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]
}

Los fragmentos de corrección no se incluyen; eran 93KB de esos 286KB, y fix_email los produce para los problemas en los que decides actuar. hasFix te indica que uno está disponible; fixType te indica si la reparación es de marcado o CSS.

Pasa detail: "full" para la forma por cliente del motor con fragmentos, y clients: ["gmail-web", "outlook-windows"] para informar solo lo que te importa: el ahorro adicional más rápido, reduciendo aproximadamente a la mitad la respuesta para dos clientes. Las puntuaciones permanecen de correo completo de cualquier manera: reducir el informe no cambia el valor del correo en otros lugares. Un ID de cliente desconocido se rechaza por nombre; un resultado vacío se leería como "este correo está bien para ese cliente".

Posiciones de origen. Para entrada HTML, cada advertencia lleva loc (line, column, offset, length) para la primera aparición, además de alsoAtLines para cualquier otra, de modo que un asistente pueda editar el origen exacto y sepa dónde están las demás. audit_email posiciona sus otros hallazgos de la misma manera.

{
  "property": "border-radius",
  "loc": { "line": 7, "column": 8, "offset": 142, "length": 25 },
  "alsoAtLines": [12, 19]
}

Las apariciones posteriores son números de línea en lugar de posiciones completas a propósito: esta respuesta es leída por un modelo que paga por cada token, y un boletín real puede producir más de mil apariciones; llevarlas todas completas casi duplica la carga útil.

Las posiciones se informan solo para entrada html. JSX, MJML y Maizzle se compilan antes del análisis, por lo que un número de línea apuntaría a la salida generada en lugar de al archivo que tienes abierto: las herramientas lo omiten en lugar de devolver uno que parezca autoritativo.

audit_email

Auditoría de calidad integral: compatibilidad CSS, puntuación de spam, validación de enlaces, accesibilidad, imágenes, vista previa de bandeja de entrada, tamaño (recorte de Gmail), variables de plantilla, desbordamiento de contenido, errores visuales, contraste de texto en modo oscuro y móvil, y consistencia de diseño.

Los últimos tres cubren lo que una vista previa de escritorio ligera no puede mostrar: texto que desaparece cuando un cliente fuerza el modo oscuro o cuando el bloque oscuro del propio correo repinta una superficie sin volver a colorear el texto sobre ella, contraste por debajo del punto de interrupción del correo, y colores que difieren en valor pero no para un lector.

ParámetroTipoObligatorioDescripción
htmlstringCódigo fuente HTML del correo
formatenumNoFormato de entrada
detailenumNo"summary" (predeterminado) o "full"
clientsstring[]NoInformar solo estos IDs de cliente
skipstring[]NoComprobaciones a omitir (p. ej. ["spam", "images"])

fix_email

Genera un mensaje de corrección estructurado para problemas de compatibilidad. Devuelve markdown con instrucciones de corrección que la IA puede aplicar directamente.

ParámetroTipoObligatorioDescripción
htmlstringHTML del correo a corregir
formatenumNoControla la sintaxis de corrección
scopeenumNo"all" o "current"
selectedClientIdstringNoID de cliente para correcciones específicas

list_clients

Enumera los 21 clientes de correo compatibles con IDs, nombres, motores y soporte de modo oscuro.

diff_emails

Compara dos versiones de HTML de correo; muestra cambios de puntuación, problemas corregidos y problemas introducidos por cliente.

ParámetroTipoObligatorioDescripción
beforestringHTML del correo original
afterstringHTML del correo modificado
formatenumNoFormato de entrada

check_deliverability

Verifica la entregabilidad del correo para un dominio: registros SPF, DKIM, DMARC, MX, BIMI con una puntuación y problemas accionables.

ParámetroTipoObligatorioDescripción
domainstringDominio a verificar (p. ej. "company.com")

Herramientas alojadas (requieren EMAILENS_API_KEY)

capture_screenshots

Captura capturas de pantalla reales de correos en 21 clientes en navegadores reales. Las capturas se alojan en CDN.

ParámetroTipoObligatorioDescripción
htmlstringCódigo fuente HTML del correo
formatenumNoFormato de entrada
clientsstring[]NoFiltrar clientes
modesstring[]No["light"], ["dark"] o ["light", "dark"]
titlestringNoNombre para la vista previa

Plan gratuito: 30 vistas previas/día. Regístrate

share_preview

Crea un enlace compartible. Los destinatarios ven el análisis completo sin una cuenta.

ParámetroTipoObligatorioDescripción
htmlstringCódigo fuente HTML del correo
titlestringNoTítulo para mostrar
formatenumNoFormato de entrada

Requiere plan Dev ($9/mes). Los enlaces compartidos caducan después de 7 días (Dev) o nunca (Pro).

Formatos de plantilla

format acepta html (el predeterminado), mjml, maizzle y jsx (React Email). Cualquier cosa que no sea html se compila antes del análisis y también decide la sintaxis en la que se devuelven los fragmentos de corrección.

Compilar importa más de lo que parece. Un cliente de correo renderiza la salida, por lo que eso es lo que debe verificarse: si se entrega un documento <mjml> sin procesar, un analizador HTML no encuentra CSS en él e informa un correo perfectamente limpio. Una respuesta así es peor que un error, porque un asistente la repetirá.

Los compiladores no están incluidos. MJML solo ocupa 56MB, y este servidor se inicia normalmente con npx, por lo que el motor los mantiene como dependencias opcionales entre pares:

npm install mjml                                              # MJML
npm install @maizzle/framework                                # Maizzle
npm install sucrase react @react-email/components @react-email/render  # React Email

Deben instalarse donde se ejecuta el servidor, que no siempre es un lugar que controles. Si no es así, compila la plantilla tú mismo y envía el HTML resultante con format: "html": las herramientas lo indican cuando llegan a esto.

Clientes de correo compatibles (21)

ClienteIDModo oscuroNotas
Gmailgmail-web
Gmail Androidgmail-android
Gmail iOSgmail-ios
Outlook 365outlook-web
Outlook Windowsoutlook-windowsNo
Outlook Windows Legacyoutlook-windows-legacyNoObsoleto oct. 2026
Outlook iOSoutlook-iosNuevo en v0.4.0
Outlook Androidoutlook-androidNuevo en v0.4.0
Outlook para Macoutlook-macosNuevo en v0.10.0
Apple Mailapple-mail-macos
Apple Mail iOSapple-mail-ios
Yahoo Mailyahoo-mail
Yahoo Mail Androidyahoo-mail-androidNuevo en v0.10.0
Yahoo Mail iOSyahoo-mail-iosNuevo en v0.10.0
Samsung Mailsamsung-mail
ThunderbirdthunderbirdNo
HEY Mailhey-mail
Proton MailprotonmailNuevo en v0.10.0
AOL MailaolNuevo en v0.10.0
FastmailfastmailNuevo en v0.10.0
Superhumansuperhuman

Publicación

Dos publicaciones: npm y el registro MCP. El listado del registro quedó cinco versiones atrás porque nada empujaba server.json, así que esa mitad es un flujo de trabajo ahora. RELEASING.md tiene los detalles y los cuatro lugares donde la versión debe coincidir.

Desarrollo

bun install
bun run build
bun test
bun run typecheck

Licencia

MIT


Si esto te salvó de una sorpresa de Outlook, una estrella ayuda a otros desarrolladores de correo a encontrarlo.