¿Qué es el Servidor MCP de Emailit?

El Servidor MCP de Emailit es un servidor de código abierto del Protocolo de Contexto de Modelo que conecta asistentes de IA directamente con Emailit.

Te permite enviar correos electrónicos, gestionar contactos, dominios, plantillas y más a través de lenguaje natural, directamente desde Claude, Cursor o cualquier cliente compatible con MCP.

Requisitos previos

Modos de transporte

El servidor admite dos modos de transporte:

Stdio (predeterminado)

El cliente MCP inicia el servidor como un subproceso y se comunica a través de entrada/salida estándar. La clave de API se pasa mediante una variable de entorno o argumento CLI. Esta es la opción más sencilla y funciona con todos los clientes principales.

HTTP (HTTP Transmisible)

Para integraciones remotas o basadas en web, el servidor funciona como un servidor HTTP utilizando transporte HTTP Transmisible. Los clientes se autentican por sesión pasando su clave de API como token Bearer en el encabezado Authorization. El endpoint se expone en /mcp.

Instalación y configuración

Claude Code (Stdio)

claude mcp add emailit \
  -e EMAILIT_API_KEY=tu_clave_api \
  -- npx -y @emailit/emailit-mcp

Claude Code (HTTP)

Primero inicia el servidor:

npx -y @emailit/emailit-mcp --http --port 3000

Luego regístralo:

claude mcp add emailit \
  --transport http http://127.0.0.1:3000/mcp \
  --header "Authorization: Bearer tu_clave_api"

Cursor (Stdio)

Abre la paleta de comandos y elige Cursor Settings → MCP → Add new global MCP server, luego pega:

{
  "mcpServers": {
    "emailit": {
      "command": "npx",
      "args": ["-y", "@emailit/emailit-mcp"],
      "env": {
        "EMAILIT_API_KEY": "tu_clave_api"
      }
    }
  }
}

Cursor (HTTP)

Inicia el servidor, luego agrega:

{
  "mcpServers": {
    "emailit": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer tu_clave_api"
      }
    }
  }
}

Claude Desktop (Stdio)

Abre Configuración de Claude Desktop → pestaña Developer → Edit Config, luego pega:

{
  "mcpServers": {
    "emailit": {
      "command": "npx",
      "args": ["-y", "@emailit/emailit-mcp"],
      "env": {
        "EMAILIT_API_KEY": "tu_clave_api"
      }
    }
  }
}

Opciones CLI

OpciónDescripción
--key <clave>Clave de API (solo stdio; HTTP usa token Bearer)
--sender <email>Remitente predeterminado de un dominio verificado
--reply-to <email>Responder a predeterminado (se puede repetir)
--httpUsar transporte HTTP en lugar de stdio
--port <puerto>Puerto HTTP (predeterminado: 3000)
-h, --helpMostrar mensaje de ayuda

Variables de entorno

VariableDescripción
EMAILIT_API_KEYClave de API (requerida para stdio)
SENDER_EMAIL_ADDRESSRemitente predeterminado de un dominio verificado
REPLY_TO_EMAIL_ADDRESSESDirecciones de respuesta separadas por comas
MCP_PORTPuerto HTTP (predeterminado: 3000)

Consejo: Si no proporcionas una dirección de correo del remitente, el servidor MCP te pedirá una cada vez que envíes un correo.

Herramientas disponibles

El servidor expone 47 herramientas en 8 categorías.

Correos electrónicos (10 herramientas)

HerramientaDescripción
send-emailEnviar un correo (HTML, texto, plantillas, adjuntos, programación)
list-emailsListar correos con paginación y filtrado opcional
get-emailObtener un correo específico por ID
get-email-rawObtener el mensaje MIME completo sin procesar
get-email-bodyObtener contenido del cuerpo procesado (texto y HTML)
get-email-attachmentsObtener adjuntos con contenido base64
get-email-metaObtener metadatos del correo
update-emailActualizar la hora de envío de un correo programado
cancel-emailCancelar un correo programado o pendiente
retry-emailReintentar un correo fallido, con error o retenido

Dominios (6 herramientas)

HerramientaDescripción
create-domainCrear un dominio y obtener registros DNS
get-domainObtener información del dominio y estado de verificación
list-domainsListar todos los dominios
update-domainActualizar configuración de seguimiento
delete-domainEliminar un dominio (irreversible)
verify-domainActivar verificación DNS

Claves de API (5 herramientas)

HerramientaDescripción
create-api-keyCrear una nueva clave de API (se muestra solo una vez)
get-api-keyObtener información de la clave de API
list-api-keysListar todas las claves de API
update-api-keyActualizar el nombre de una clave de API
delete-api-keyEliminar una clave de API (irreversible)

Audiencias (5 herramientas)

HerramientaDescripción
create-audienceCrear una audiencia para campañas
get-audienceObtener detalles de la audiencia
list-audiencesListar todas las audiencias
update-audienceActualizar el nombre de una audiencia
delete-audienceEliminar una audiencia y todos sus suscriptores

Contactos (5 herramientas)

HerramientaDescripción
create-contactCrear un contacto con suscripciones a audiencias
get-contactObtener un contacto por ID o dirección de correo
list-contactsListar todos los contactos
update-contactActualizar los detalles de un contacto
delete-contactEliminar un contacto y sus registros de suscriptor

Plantillas (6 herramientas)

HerramientaDescripción
create-templateCrear una plantilla de correo
get-templateObtener una plantilla por ID con todas las versiones
list-templatesListar plantillas publicadas con filtrado
update-templateActualizar una plantilla
delete-templateEliminar una plantilla permanentemente
publish-templatePublicar una versión de plantilla

Supresiones (5 herramientas)

HerramientaDescripción
create-suppressionAgregar una dirección de correo a la lista de supresión
get-suppressionObtener una supresión por ID o correo
list-suppressionsListar todas las supresiones
update-suppressionActualizar una supresión
delete-suppressionEliminar una supresión

Webhooks (5 herramientas)

HerramientaDescripción
create-webhookCrear un webhook con suscripciones a eventos
get-webhookObtener información del webhook
list-webhooksListar todos los webhooks
update-webhookActualizar un webhook
delete-webhookEliminar un webhook

Ejemplos de uso

Enviar un correo simple

Pregúntale a tu asistente de IA:

“Envía un correo de bienvenida a john@example.com con el asunto ‘¡Bienvenido!’”

La IA llama a send-email con:

{
  "from": "hola@midominio.com",
  "to": "john@example.com",
  "subject": "¡Bienvenido!",
  "html": "<h1>¡Bienvenido!</h1><p>Gracias por registrarte.</p>"
}

Enviar con plantilla y variables

“Envía la plantilla correo-bienvenida a sarah@example.com con su nombre como Sarah.”

{
  "from": "hola@midominio.com",
  "to": "sarah@example.com",
  "template": "correo-bienvenida",
  "variables": { "name": "Sarah" }
}

Programar un correo

“Programa un correo recordatorio para equipo@empresa.com para mañana a las 9am.”

{
  "from": "recordatorios@midominio.com",
  "to": "equipo@empresa.com",
  "subject": "Recordatorio de Reunión Diaria",
  "text": "¡No olviden la reunión a las 9:30!",
  "scheduled_at": "mañana a las 9am"
}

Enviar con adjuntos

“Envía un correo a contabilidad@empresa.com con la factura en PDF adjunta.”

{
  "from": "facturacion@midominio.com",
  "to": "contabilidad@empresa.com",
  "subject": "Factura Mensual",
  "html": "<p>Por favor encuentra la factura adjunta.</p>",
  "attachments": [
    {
      "filename": "factura-2026-05.pdf",
      "url": "https://example.com/facturas/2026-05.pdf"
    }
  ]
}

Gestionar dominios

“Agrega mi dominio correo.example.com y muéstrame los registros DNS.”

La IA llama a create-domain y muestra los registros DNS requeridos para que los configures con tu proveedor de DNS.

“Verifica mi dominio.”

La IA llama a verify-domain para verificar la propagación DNS e informa el estado de verificación.

Gestionar contactos

“Agrega a Jane Smith (jane@example.com) a la audiencia aud_abc123.”

{
  "email": "jane@example.com",
  "first_name": "Jane",
  "last_name": "Smith",
  "audiences": ["aud_abc123"]
}

Gestionar plantillas

“Crea una plantilla de boletín con alias boletin-mensual.”

{
  "name": "Boletín Mensual",
  "alias": "boletin-mensual",
  "subject": "Actualización {{mes}}",
  "html": "<h1>Actualización de {{mes}}</h1>..."
}

Gestionar supresiones

“Suprime rebotado@example.com por demasiados rebotes duros.”

{
  "email": "rebotado@example.com",
  "type": "bounce",
  "reason": "demasiados rebotes duros"
}

Configurar webhooks

“Crea un webhook que envíe eventos de entrega y rebote a mi endpoint.”

{
  "name": "Rastreador de Entregas",
  "url": "https://miapp.com/webhooks/email",
  "events": ["email.delivered", "email.bounced"]
}

Notas de seguridad

  • Las claves de API nunca deben confirmarse en el control de versiones.
  • En modo stdio, la clave de API se almacena en la configuración del cliente MCP.
  • En modo HTTP, los clientes pasan la clave de API por sesión mediante token Bearer.
  • Las URLs de webhook se validan contra SSRF antes de la creación.
  • Las operaciones de eliminación solicitan a la IA que confirme contigo primero.

Solución de problemas

“Se requiere clave de API para modo stdio” Establece la variable de entorno EMAILIT_API_KEY o pasa --key.

Dominio no verificado Configura los registros DNS de la salida de create-domain, luego llama a verify-domain.

Correo rechazado / no se envía Asegúrate de que el dominio esté verificado y la dirección del remitente use ese dominio.

No se puede cancelar el correo programado Debe ser al menos 3 minutos antes de la hora programada.

Falla el reintento Solo se pueden reintentar correos con fallas graves, con errores, retenidos o suprimidos.

Desarrollo local

git clone https://github.com/emailit/emailit-mcp.git
cd emailit-mcp
npm install

# Ejecutar en modo stdio
EMAILIT_API_KEY=tu_clave node src/index.js

# Ejecutar en modo HTTP
node src/index.js --http --port 3000

Para más detalles, consulta el repositorio de GitHub.

Localizado por IA