Mailtrap
oficialSe integra con la API de correo electrónico de Mailtrap.
¿Qué puedes hacer con Mailtrap MCP?
- Enviar correos transaccionales — Pídele a tu asistente que envíe un correo transaccional con contenido inline o una plantilla mediante
send-email. - Probar correos en sandbox — Envía correos de prueba a una bandeja de entrada sandbox e inspecciona el contenido, las puntuaciones de spam y el análisis HTML.
- Monitorear registros de entrega — Busca en los registros de correo e inspecciona el historial de eventos para depurar problemas de entrega con
list-email-logs. - Gestionar plantillas de correo — Crea, lista, actualiza o elimina plantillas usando comandos en lenguaje natural.
- Analizar estadísticas de envío — Obtén tasas de entrega, rebote, apertura y clics para cualquier rango de fechas con
get-sending-stats. - Gestionar dominios de envío — Lista, crea y configura dominios de envío con verificación DNS y seguimiento de clics.
Documentación
Servidor MCP Oficial de Mailtrap
El servidor MCP oficial para Mailtrap — la plataforma de entrega de correo electrónico. Conecta tu cuenta de Mailtrap a Claude, Cursor, VS Code y otros asistentes de IA compatibles con MCP.
Envía correos transaccionales y masivos, prueba mensajes de forma segura en Email Sandbox, gestiona plantillas, contactos, dominios de envío y webhooks, inspecciona registros de correo y estadísticas de entrega, soluciona problemas de entregabilidad y gestiona recursos de la cuenta — todo usando instrucciones en lenguaje natural.
Capacidades
- Email API y SMTP — Envía correos transaccionales y masivos, incluidos mensajes por lotes y basados en plantillas.
- Pruebas de correo — Prueba mensajes en Email Sandbox e inspecciona contenido, encabezados, adjuntos, puntuaciones de spam y compatibilidad con clientes HTML.
- Monitoreo de entrega — Busca registros de correo, inspecciona el historial de eventos y analiza tasas de entrega, rebotes, aperturas, clics y spam.
- Infraestructura de correo — Gestiona dominios de envío, verificación DNS, webhooks y supresiones.
- Contactos — Gestiona contactos, listas, campos personalizados y eventos, con importaciones y exportaciones.
- Gestión de cuenta — Revisa el uso de facturación y gestiona accesos, permisos, tokens de API y subcuentas.
Clientes MCP Compatibles
Funciona con Claude Desktop, Claude Code, Cursor, VS Code y cualquier otro cliente compatible con MCP. Las instrucciones de configuración para cada uno están a continuación.
Requisitos previos
Antes de usar este servidor MCP, necesitas:
- Crear una cuenta de Mailtrap
- Verificar tu dominio
- Obtener tu token de API desde Configuración de API de Mailtrap
- Obtener tu ID de cuenta desde Gestión de cuenta de Mailtrap
Variables de entorno requeridas:
MAILTRAP_API_TOKEN- Requerida para toda la funcionalidadMAILTRAP_ACCOUNT_ID- Requerida para plantillas, estadísticas, registros de correo, listado/visualización de sandbox, dominios de envío y supresiones. Opcional solo para las herramientas de envío (send-email, send-sandbox-email y las herramientas batch-send-*), las herramientas de campañas de correo, las herramientas de información de empresa y las herramientas de exclusión de seguimiento.
Opcionales (se pueden pasar como parámetros de herramienta en su lugar):
DEFAULT_FROM_EMAIL- Correo de remitente predeterminado cuandofromno se proporciona a send-email, send-sandbox-email o las herramientas batch-send-* (donde completabase.from). Permite cambiar el remitente por llamada mediante el parámetrofrom.MAILTRAP_SANDBOX_ID- ID de sandbox predeterminado para herramientas de sandbox cuandosandbox_idno se proporciona. Permite cambiar entre sandboxes por llamada mediante el parámetrosandbox_id.MAILTRAP_TEST_INBOX_ID- ID de bandeja de entrada de prueba predeterminado para herramientas de sandbox cuandotest_inbox_idno se proporciona. Permite cambiar entre bandejas de entrada por llamada mediante el parámetrotest_inbox_id. Alias heredado deMAILTRAP_SANDBOX_ID, aún se respeta como respaldo.MAILTRAP_ORGANIZATION_ID- Requerida para herramientas de organización (list-sub-accounts,create-sub-account).MAILTRAP_ORGANIZATION_API_TOKEN- Token de API con alcance de organización. Requerido para herramientas de organización (separado deMAILTRAP_API_TOKEN).
Instalación rápida
CLI de Smithery
Smithery es un instalador y gestor de registros para servidores MCP que funciona con todos los clientes de IA.
npx @smithery/cli install mailtrap
Smithery maneja automáticamente la configuración del cliente y proporciona un proceso de configuración interactivo. Es la forma más fácil de comenzar con servidores MCP localmente.
Configuración
Claude Desktop
Usa MCPB para instalar el servidor de Mailtrap. Puedes encontrar esos archivos en Releases.
Descarga el archivo .MCPB y ábrelo. Si tienes Claude Desktop, lo abrirá y sugerirá configurarlo.
Claude Desktop o Cursor
Agrega la siguiente configuración:
{
"mcpServers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Si usas asdf para gestionar Node.js, debes usar la ruta absoluta al ejecutable (ejemplo para Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Ubicación del archivo de configuración de Claude Desktop
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Ubicación del archivo de configuración de Cursor
Mac: ~/.cursor/mcp.json
Windows: %USERPROFILE%\.cursor\mcp.json
VS Code
Cambio manual de configuración
Ejecuta en la Paleta de comandos: Preferences: Open User Settings (JSON)
Luego, en el archivo de configuración, agrega la siguiente configuración:
{
"mcp": {
"servers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
[!TIP] No olvides reiniciar tu servidor MCP después de cambiar la sección "env".
Paquete MCP (MCPB)
Para una instalación fácil en hosts que admiten paquetes MCP, puedes distribuir un archivo de paquete .mcpb.
# Build TypeScript and pack the MCPB bundle
npm run mcpb:pack
# Inspect bundle metadata
npm run mcpb:info
# Sign the bundle for distribution (optional)
npm run mcpb:sign
Esto crea mailtrap-mcp.mcpb usando el repositorio manifest.json y artefactos compilados en dist/.
Uso
Una vez configurado, puedes pedirle al agente que envíe correos y gestione plantillas, por ejemplo:
Operaciones de envío de correo:
- "Envía un correo a john.doe@example.com con el asunto 'Reunión mañana' y un recordatorio amable sobre nuestra próxima reunión."
- "Envía un correo a sarah@example.com sobre la actualización del proyecto y copia al equipo en team@example.com"
- "Envía la plantilla de bienvenida (uuid
b81aabcd-1a1e-41cf-91b6-eca0254b3d96) a new@example.com con las variables{ name: 'Alex' }" - "Envía un correo de sandbox a test@example.com con el asunto 'Plantilla de prueba' para previsualizar cómo se ve nuestro correo de bienvenida"
Registros de correo (depuración de entrega):
- "Lista mis registros de correo enviados recientes"
- "Muestra los registros de correo de los correos enviados a user@example.com"
- "Obtén el mensaje del registro de correo para el ID abc-123-uuid para verificar el estado de entrega"
Estadísticas de envío:
- "Obtén estadísticas de envío para enero de 2025"
- "Muestra las tasas de entrega desglosadas por dominio del último mes"
- "¿Cuáles son mis estadísticas de correo por categoría del 2025-01-01 al 2025-01-31?"
Operaciones de sandbox:
- "Obtén todos los mensajes de mi bandeja de entrada de sandbox"
- "Muéstrame la primera página de mensajes de sandbox"
- "Busca mensajes que contengan 'test' en mi bandeja de entrada de sandbox"
- "Muéstrame los detalles del mensaje de sandbox con ID 5159037506"
Operaciones de plantillas:
- "Lista todas las plantillas de correo en mi cuenta de Mailtrap"
- "Crea una nueva plantilla de correo llamada 'Correo de bienvenida' con el asunto '¡Bienvenido a nuestra plataforma!'"
- "Actualiza la plantilla con ID 12345 para cambiar el asunto a 'Mensaje de bienvenida actualizado'"
- "Elimina la plantilla con ID 67890"
Dominios de envío:
- "Lista mis dominios de envío"
- "Obtén el dominio de envío con ID 3938"
- "Crea un dominio de envío para example.com"
- "Activa el seguimiento de clics para el dominio de envío 3938"
- "Elimina el dominio de envío 3938"
- "Obtén el dominio de envío 3938 con instrucciones de configuración DNS"
- "Muestra la información de empresa para el dominio de envío 3938"
- "Establece la información de empresa para el dominio 3938 como Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com"
- "Cambia la ciudad de la información de empresa para el dominio 3938 a Nueva York"
Supresiones:
- "Lista las supresiones para bounced@example.com"
- "Suprime bounced@example.com en el flujo transaccional del dominio 3938"
- "Muéstrame todas las direcciones de correo suprimidas"
- "¿Por qué user@example.com no recibe mis correos?"
- "Elimina user@example.com de la lista de supresiones"
Exclusiones de seguimiento:
- "Deja de rastrear aperturas y clics para privacy@example.com en el dominio 3938"
- "Lista a todos los que optaron por no participar en el seguimiento"
Contactos y listas:
- "Agrega john.doe@example.com a mi lista de contactos de boletín"
- "Muéstrame todas mis listas de contactos"
- "Crea un campo de contacto llamado 'signup_source' para rastrear de dónde provienen los contactos"
- "Actualiza el contacto john.doe@example.com para establecer su plan como 'pro'"
- "Importa contactos de este CSV a mi lista de incorporación"
- "Exporta todos los contactos de mi lista de boletín"
- "Registra un evento 'trial_started' para el contacto john.doe@example.com"
Webhooks:
- "Lista todos los webhooks configurados en mi cuenta"
- "Crea un webhook que apunte a https://example.com/hooks/mailtrap para eventos de rebote y spam"
- "Actualiza el webhook 4821 para que también envíe eventos de entrega"
- "Elimina el webhook 4821"
Cuenta y facturación:
- "¿Cuál es mi uso de facturación actual este mes?"
- "¿Cuántos correos me quedan en mi plan?"
- "Lista a todos los que tienen acceso a esta cuenta de Mailtrap"
- "Muéstrame los recursos de permisos disponibles en mi cuenta"
Tokens de API:
- "Lista todos los tokens de API en mi cuenta"
- "Crea un nuevo token de API para el entorno de staging"
- "Restablece el token de API con ID 1234"
- "Elimina el token de API no utilizado 1234"
Organización y subcuentas:
- "Lista todas las subcuentas en mi organización"
- "Crea una nueva subcuenta para el proyecto del cliente 'Acme Corp'"
Herramientas disponibles
send-email
Envía un correo transaccional a través de Mailtrap. Admite dos modos mutuamente excluyentes: contenido en línea (subject + text/html) o basado en plantillas (template_uuid).
Parámetros:
from(opcional): Remitente como{ email, name? }(también se acepta una cadena de correo simple en tiempo de ejecución). Si no se proporciona, se usaDEFAULT_FROM_EMAIL.to(opcional): Matriz de destinatarios como objetos{ email, name? }(también se aceptan cadenas de correo simples o una sola dirección no matricial en tiempo de ejecución). Opcional si se proporcionaccobcc; al menos uno deto/cc/bccdebe contener un destinatario.cc(opcional): Matriz de destinatarios CC como objetos{ email, name? }(también se aceptan cadenas de correo simples en tiempo de ejecución).bcc(opcional): Matriz de destinatarios CCO como objetos{ email, name? }(también se aceptan cadenas de correo simples en tiempo de ejecución).subject(condicional): Línea de asunto del correo. Requerida para envíos en línea; debe omitirse cuandotemplate_uuidestá establecido.text(condicional): Texto del cuerpo del correo. Requerido (junto con o en lugar dehtml) para envíos en línea; debe omitirse cuandotemplate_uuidestá establecido.html(condicional): Versión HTML del cuerpo del correo. Requerida (junto con o en lugar detext) para envíos en línea; debe omitirse cuandotemplate_uuidestá establecido.category(opcional): Categoría del correo para seguimiento y análisis. Debe omitirse cuandotemplate_uuidestá establecido.template_uuid(opcional): Usa una plantilla de correo de Mailtrap en lugar de contenido en línea. Cuando se establece,subject/text/html/categorydeben omitirse (según la API de Mailtrap).template_variables(opcional): Objeto de variables sustituidas en la plantilla referenciada portemplate_uuid. Solo se permite junto contemplate_uuid.
batch-send-transactional-email
Envía un lote de correos transaccionales en una sola llamada a la API de Mailtrap (flujo de envío predeterminado). Los campos compartidos van en base; las anulaciones por destinatario van en requests[]. Cada solicitud debe incluir al menos un destinatario mediante to, cc o bcc. Misma exclusión mutua en línea-vs-plantilla que send-email — verificada después de fusionar la base con cada solicitud.
Parámetros:
base(opcional): Objeto con campos compartidos en todo el lote.from(opcional): Remitente como{ email, name? }(también se acepta una cadena de correo simple en tiempo de ejecución). Se recurre aDEFAULT_FROM_EMAILsi no se proporciona.reply_to(opcional): Dirección de respuesta (reply-to).subject/text/html/category(opcional, modo inline): Contenido predeterminado para cada solicitud.template_uuid/template_variables(opcional, modo plantilla): Plantilla y variables predeterminadas. Mutuamente excluyentes con los campos inline.custom_variables(opcional): Variables personalizadas predeterminadas (con valores de cadena).headers(opcional): Encabezados personalizados predeterminados.
requests(obligatorio): Matriz no vacía de mensajes por destinatario. Cada entrada tiene:to(opcional): Matriz de destinatarios como objetos{ email, name? }(también se aceptan cadenas de correo simples o una única dirección no matricial en tiempo de ejecución). Opcional si se proporcionaccobcc; al menos uno deto/cc/bccdebe contener un destinatario.cc,bcc,reply_to(opcional).- Anulaciones inline (
subject/text/html/category) o de plantilla (template_uuid/template_variables); cualquier campo omitido recurre al valorbasecorrespondiente. custom_variables,headers(opcional).
batch-send-bulk-email
Envía un lote de correos masivos a través de la API de flujo masivo (bulk-stream) de Mailtrap. Misma forma base + requests[], validación y reglas inline-vs-plantilla que batch-send-transactional-email — la única diferencia es que esta herramienta enruta la llamada a través del endpoint masivo en lugar del transaccional. Consulta los parámetros anteriores.
list-email-logs
Lista los registros de correos enviados (historial de entrega) con paginación y filtros opcionales. Úsalo para depurar problemas de entrega desde el IDE.
Parámetros:
search_after(opcional): Cursor de paginación de la respuesta anterior ennext_page_cursorsent_after(opcional): Fecha/hora ISO 8601; solo registros enviados después de esta horasent_before(opcional): Fecha/hora ISO 8601; solo registros enviados antes de esta horafrom_email(opcional): Filtrar por correo del remitente; usar confrom_operator(predeterminado: ci_equal)to_email(opcional): Filtrar por correo del destinatario; usar conto_operator(predeterminado: ci_equal)status(opcional): Filtrar por estado de entrega: delivered, not_delivered, enqueued, opted_out; usar constatus_operator(predeterminado: equal)subject(opcional): Filtrar por asunto del correo; usar consubject_operator(predeterminado: ci_contain). Usasubject_operator: empty/not_empty para filtrar por presencia de asunto.sending_domain_id(opcional): Filtrar por ID de dominio de envío (número); usar consending_domain_id_operator(predeterminado: equal)sending_stream(opcional): Filtrar por flujo: transactional o bulk; usar consending_stream_operator(predeterminado: equal)events(opcional): Filtrar por tipo(s) de evento: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; usar conevents_operator(include_event / not_include_event)clicks_count/opens_count(opcional): Filtrar por recuento de clics/aperturas; usar con*_operator: equal, greater_than, less_thanclient_ip/sending_ip(opcional): Filtrar por IP; usar con*_operator: equal, not_equal, contain, not_containemail_service_provider_response(opcional): Filtrar por texto de respuesta del proveedor; usar con*_operator(ci_contain, etc.)email_service_provider(opcional): Filtrar por proveedor (exacto); usar con*_operator: equal, not_equalrecipient_mx(opcional): Filtrar por MX del destinatario; usar conrecipient_mx_operator(ci_contain, etc.)category(opcional): Filtrar por categoría de correo; usar concategory_operator: equal, not_equal
Todos los parámetros son opcionales.
get-email-log-message
Obtiene un único mensaje de registro de correo por ID (UUID): un resumen legible (de, para, asunto, hora de envío, estado, categoría, flujo, interacción, contexto de entrega) y luego el historial detallado de eventos. Opcionalmente, con include_content: true, también puedes cargar y mostrar el cuerpo del mensaje (HTML y texto plano) cuando Mailtrap expone una URL de mensaje sin procesar.
Parámetros:
message_id(obligatorio): UUID del mensaje de registro de correo (de la respuesta de envío o de list-email-logs). Usalist-email-logspara encontrar los ID de mensajes.include_content(opcional): Cuandotrue, obtiene el EML sin procesar (siraw_message_urlestá disponible) y añade secciones analizadas del cuerpo HTML y de texto plano, similar a show-sandbox-email-message.
get-sending-stats
Obtén estadísticas de envío de correos (tasas de entrega, rebote, apertura, clics y spam) para un rango de fechas. Opcionalmente, desglosa por dominio, categoría, proveedor de servicios de correo o fecha. Comprueba las tasas de entrega sin salir del editor.
Parámetros:
start_date(obligatorio): Fecha de inicio del rango de estadísticas (AAAA-MM-DD)end_date(obligatorio): Fecha de fin del rango de estadísticas (AAAA-MM-DD)breakdown(opcional): Cómo desglosar las estadísticas:aggregated(predeterminado),by_domain,by_category,by_email_service_provideroby_datesending_domain_ids(opcional): Limitar resultados a estos ID de dominio de envío (matriz de enteros)sending_streams(opcional): Limitar atransactionaly/obulk(matriz de cadenas)categories(opcional): Limitar a estas categorías de correo (matriz de cadenas)email_service_providers(opcional): Limitar a estos proveedores, p. ej., Google, Yahoo, Outlook (matriz de cadenas)
create-template
Crea una nueva plantilla de correo en tu cuenta de Mailtrap.
Parámetros:
name(obligatorio): Nombre de la plantillasubject(obligatorio): Línea de asunto del correohtml(otextes obligatorio): Contenido HTML de la plantillatext(ohtmles obligatorio): Versión en texto plano de la plantillacategory(opcional): Categoría de la plantilla (predeterminado: "General")
list-templates
Lista todas las plantillas de correo en tu cuenta de Mailtrap.
Parámetros:
- No se requieren parámetros
get-template
Obtén una única plantilla de correo por ID, incluidos asunto, categoría y cuerpo HTML/texto.
Parámetros:
template_id(obligatorio): ID de la plantilla a obtener
update-template
Actualiza una plantilla de correo existente.
Parámetros:
template_id(obligatorio): ID de la plantilla a actualizarname(opcional): Nuevo nombre para la plantillasubject(opcional): Nueva línea de asunto del correohtml(opcional): Nuevo contenido HTML de la plantillatext(opcional): Nueva versión en texto plano de la plantillacategory(opcional): Nueva categoría para la plantilla
[!NOTE] Se debe proporcionar al menos un campo actualizable (nombre, asunto, html, texto o categoría) al llamar a update-template para realizar una actualización.
delete-template
Elimina una plantilla de correo existente.
Parámetros:
template_id(obligatorio): ID de la plantilla a eliminar
send-sandbox-email
Envía un correo a tu bandeja de entrada de prueba de Mailtrap con fines de desarrollo y pruebas. Es perfecto para probar plantillas de correo sin enviar mensajes a destinatarios reales. Admite los mismos dos modos que send-email — contenido inline o basado en plantilla (template_uuid).
Parámetros:
test_inbox_id(opcional): ID de la bandeja de entrada de prueba de Mailtrap. Obligatorio a menos que se establezcaMAILTRAP_TEST_INBOX_ID; pásalo en cada llamada para apuntar a una bandeja específica.from(opcional): Remitente como{ email, name? }(también se acepta una cadena de correo simple en tiempo de ejecución). Si no se proporciona, se usaDEFAULT_FROM_EMAIL.to(opcional): Matriz de destinatarios como objetos{ email, name? }(también se aceptan cadenas de correo simples en la matriz, o una cadena separada por comas de correos simples, en tiempo de ejecución). Opcional si se proporcionaccobcc; al menos uno deto/cc/bccdebe contener un destinatario.cc(opcional): Matriz de destinatarios CC como objetos{ email, name? }(también se aceptan cadenas de correo simples en tiempo de ejecución).bcc(opcional): Matriz de destinatarios CCO como objetos{ email, name? }(también se aceptan cadenas de correo simples en tiempo de ejecución).subject(condicional): Línea de asunto del correo. Obligatoria para envíos inline; debe omitirse cuando se establecetemplate_uuid.text(condicional): Texto del cuerpo del correo. Obligatorio (junto conhtmlo en su lugar) para envíos inline; debe omitirse cuando se establecetemplate_uuid.html(condicional): Versión HTML del cuerpo del correo. Obligatoria (junto contexto en su lugar) para envíos inline; debe omitirse cuando se establecetemplate_uuid.category(opcional): Categoría del correo para seguimiento. Debe omitirse cuando se establecetemplate_uuid.template_uuid(opcional): Usa una plantilla de correo de Mailtrap en lugar de contenido inline. Cuando se establece,subject/text/html/categorydeben omitirse.template_variables(opcional): Objeto de variables sustituidas en la plantilla referenciada portemplate_uuid. Solo se permite junto contemplate_uuid.
batch-send-sandbox-email
Envía un lote de correos a tu bandeja de entrada de prueba de Mailtrap en una sola llamada a la API, sin entregarlos a destinatarios reales. Misma forma base + requests[], validación y reglas inline-vs-plantilla que batch-send-transactional-email — la diferencia es que esta herramienta enruta la llamada a través del endpoint de sandbox para una única bandeja de prueba.
Parámetros:
sandbox_id(opcional): ID del sandbox (bandeja de prueba) de Mailtrap. Obligatorio a menos que se establezcaMAILTRAP_SANDBOX_ID; pásalo en cada llamada para apuntar a un sandbox específico.base(opcional),requests(obligatorio): Consultabatch-send-transactional-emailanteriormente.
[!NOTE] Para las herramientas de sandbox, proporciona
test_inbox_iden la llamada a la herramienta o establece la variable de entornoMAILTRAP_TEST_INBOX_ID. Puedes cambiar entre bandejas por llamada pasandotest_inbox_id. Las herramientas que tomansandbox_idusanMAILTRAP_SANDBOX_IDprimero.
get-sandbox-messages
Recupera una lista de mensajes de tu bandeja de entrada de prueba de Mailtrap. Útil para comprobar qué correos se han recibido en tu sandbox durante las pruebas.
Parámetros:
page(opcional): Número de página para la paginación (mínimo: 1)last_id(opcional): Paginación usando el último ID de mensaje. Devuelve mensajes después del ID de mensaje especificado (mínimo: 1)search(opcional): Consulta de búsqueda para filtrar mensajes
[!NOTE] Todos los parámetros son opcionales. Si no se proporciona ninguno, se devolverá la primera página de mensajes de la bandeja. Usa page para paginación tradicional, last_id para paginación basada en cursor, o search para filtrar mensajes por contenido.
show-sandbox-email-message
Muestra información detallada y contenido de un mensaje de correo específico de tu bandeja de entrada de prueba de Mailtrap, incluido el contenido del cuerpo HTML y de texto.
Parámetros:
message_id(obligatorio): ID del mensaje de correo del sandbox a recuperar
[!NOTE] Usa
get-sandbox-messagesprimero para obtener la lista de mensajes y sus ID, y luego usa esta herramienta para ver el contenido completo de un mensaje específico.
get-sandbox-project
Obtén un proyecto de sandbox por ID, incluidas sus bandejas de entrada y recuentos de correos.
Parámetros:
project_id(obligatorio): ID del proyecto a obtener
update-sandbox-project
Cambia el nombre de un proyecto de sandbox existente.
Parámetros:
project_id(obligatorio): ID del proyecto a actualizarname(obligatorio): Nuevo nombre para el proyecto (2–100 caracteres)
list-sandboxes
Lista todos los sandboxes accesibles con el token de API en todos los proyectos.
Parámetros:
- No se requieren parámetros
mark-sandbox-as-read
Marca todos los mensajes de un sandbox como leídos.
Parámetros:
sandbox_id(obligatorio): ID del sandbox sobre el que actuar
reset-sandbox-credentials
Restablece las credenciales SMTP para un sandbox. Devuelve el nuevo nombre de usuario/contraseña.
Parámetros:
sandbox_id(obligatorio): ID del sandbox sobre el que actuar
enable-sandbox-email-address
Habilita la dirección de recepción por correo electrónico para un sandbox (activa la dirección de Mailtrap que entrega mensajes al sandbox mediante SMTP).
Parámetros:
sandbox_id(obligatorio): ID del sandbox sobre el que actuar
reset-sandbox-email-address
Genera una nueva dirección de recepción por correo electrónico para un sandbox.
Parámetros:
sandbox_id(obligatorio): ID del sandbox sobre el que actuar
forward-sandbox-message
Reenvía un mensaje del sandbox a una dirección de correo electrónico externa. Cuenta para tu cuota mensual de reenvío.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox a reenviaremail(obligatorio): Dirección de correo electrónico a la que reenviar el mensaje
update-sandbox-message
Marca un mensaje del sandbox como leído o no leído.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox a actualizaris_read(obligatorio):truemarca como leído,falsemarca como no leído
delete-sandbox-message
Elimina un único mensaje del sandbox.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox a eliminar
get-sandbox-message-spam-score
Obtén el informe de spam de SpamAssassin para un mensaje del sandbox (puntuación, reglas, informe completo). Alternativa independiente a include_spam_report: true en show-sandbox-email-message.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox
get-sandbox-message-html-analysis
Obtén el informe de análisis HTML para un mensaje del sandbox (puntuaciones de compatibilidad con clientes, elementos problemáticos). Alternativa independiente a include_html_analysis: true en show-sandbox-email-message.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox
get-sandbox-message-headers
Obtén las cabeceras de correo analizadas para un mensaje del sandbox.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox
get-sandbox-message-html
Obtén el cuerpo HTML renderizado de un mensaje del sandbox.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox
get-sandbox-message-text
Obtén el cuerpo de texto plano de un mensaje del sandbox.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox
get-sandbox-message-raw
Obtén el mensaje sin procesar, con formato MIME (cabeceras + cuerpo) para un mensaje del sandbox.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox
get-sandbox-message-eml
Obtén el mensaje renderizado como un archivo EML (adecuado para adjuntar a un ticket o importar en otro cliente de correo).
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox
get-sandbox-message-html-source
Obtén el código fuente HTML sin renderizar de un mensaje del sandbox (HTML antes de cualquier transformación del lado de Mailtrap, como reescrituras de enlaces CID).
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox
list-sandbox-attachments
Lista todos los adjuntos de un mensaje del sandbox (nombre de archivo, tipo de contenido, tamaño, ruta de descarga).
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox
get-sandbox-attachment
Obtén metadatos y URL de descarga para un único adjunto.
Parámetros:
sandbox_id(opcional): ID del sandbox. Se usaMAILTRAP_SANDBOX_IDcomo alternativa.message_id(obligatorio): ID del mensaje del sandbox que contiene el adjuntoattachment_id(obligatorio): ID del adjunto a obtener
list-sending-domains
Lista los dominios de envío y su estado de verificación DNS.
Parámetros:
- No se requieren parámetros
get-sending-domain
Obtén un dominio de envío por ID y su estado de verificación (incluidos los registros DNS). Opcionalmente, incluye instrucciones de configuración DNS estableciendo include_setup_instructions a true.
Parámetros:
sending_domain_id(obligatorio): ID del dominio de envíoinclude_setup_instructions(opcional): Si estrue, añade instrucciones de configuración DNS a la respuesta. Valor predeterminado:false
create-sending-domain
Crea un nuevo dominio de envío. Después de la creación, añade registros DNS para verificar el dominio (usa get-sending-domain con include_setup_instructions: true para ver los registros).
Parámetros:
domain_name(obligatorio): Nombre del dominio (p. ej., example.com)
update-sending-domain
Actualiza la configuración de seguimiento y de entrada de un dominio de envío.
Parámetros:
sending_domain_id(obligatorio): ID del dominio de envíoopen_tracking_enabled(opcional): Rastrear aperturas en correos enviados desde este dominioclick_tracking_enabled(opcional): Rastrear clics en enlaces de correos enviados desde este dominiotracking_opt_out_enabled(opcional): Añadir el enlace de exclusión de seguimiento a los correos rastreados. Requiere seguimiento de aperturas o clicsauto_unsubscribe_link_enabled(opcional): Añadir automáticamente un enlace de cancelación de suscripción a los correosinbound_enabled(opcional): Permitir que el dominio se adjunte a una bandeja de entrada entrante como captura total
Debe proporcionarse al menos una configuración además de sending_domain_id.
delete-sending-domain
Elimina un dominio de envío.
Parámetros:
sending_domain_id(obligatorio): ID del dominio de envío a eliminar
send-sending-domain-setup-instructions
Envía por correo electrónico las instrucciones de configuración DNS para un dominio de envío a una dirección determinada. Útil para reenviar registros DNS a un compañero de DevOps.
Parámetros:
sending_domain_id(obligatorio): ID del dominio de envíoemail(obligatorio): Dirección de correo electrónico a la que enviar las instrucciones de configuración DNS
get-company-info
Obtén la información de la empresa de un dominio de envío, utilizada para la verificación de cumplimiento del dominio.
Parámetros:
sending_domain_id(obligatorio): ID del dominio de envío
create-company-info
Establece la información de la empresa de un dominio de envío, requerida para la verificación de cumplimiento del dominio.
Parámetros:
sending_domain_id(obligatorio): ID del dominio de envíoname(obligatorio): Nombre de la empresa o individuoaddress(obligatorio): Dirección postalcity(obligatorio): Ciudadcountry(obligatorio): Paíszip_code(obligatorio): Código postal o ZIPwebsite_url(obligatorio): URL del sitio web de la empresaphone(opcional): Número de teléfonoprivacy_policy_url(opcional): URL de la página de política de privacidadterms_of_service_url(opcional): URL de la página de términos de servicioinfo_level(opcional):businessoindividual
update-company-info
Actualiza la información de la empresa de un dominio de envío.
Parámetros:
sending_domain_id(obligatorio): ID del dominio de envío- Cada campo de create-company-info, todos opcionales. Debe proporcionarse al menos uno; los campos omitidos no se modifican.
list-suppressions
Lista o busca supresiones (rebotes duros, quejas de spam, cancelaciones de suscripción, importaciones manuales). Devuelve hasta 1000 resultados por llamada.
Parámetros:
email(opcional): Filtro de correo electrónico. Devuelve solo supresiones que coincidan con esta dirección.
create-suppression
Añade una dirección de correo electrónico a la lista de supresiones de la cuenta, para que Mailtrap deje de entregar mensajes a esa dirección.
Parámetros:
email(obligatorio): Dirección de correo electrónico a suprimirdomain_id(obligatorio): ID del dominio de envío al que se aplica la supresiónsending_stream(obligatorio):transactionalobulktype(opcional):hard bounce,spam complaint,unsubscriptionomanual import. Valor predeterminado:manual import
delete-suppression
Elimina una supresión por ID. Mailtrap reanudará la entrega a este correo electrónico a menos que se suprima nuevamente.
Parámetros:
suppression_id(obligatorio): ID de la supresión a eliminar
list-tracking-opt-outs
Lista las direcciones de correo electrónico excluidas del seguimiento de aperturas y clics. Devuelve hasta 1000 registros por llamada.
Parámetros:
email(opcional): Filtro de correo electrónico. Devuelve solo exclusiones que coincidan con esta direcciónstart_time(opcional): Solo exclusiones creadas en o después de este momento (ISO 8601)end_time(opcional): Solo exclusiones creadas en o antes de este momento (ISO 8601)last_id(opcional): Cursor de paginación: ellast_idde la respuesta anterior
create-tracking-opt-out
Excluye una dirección de correo electrónico del seguimiento de aperturas y clics para un dominio de envío.
Parámetros:
email(obligatorio): Dirección de correo electrónico para excluir del seguimientodomain_id(obligatorio): ID del dominio de envío al que se aplica la exclusión
delete-tracking-opt-out
Elimina una dirección de correo electrónico de la lista de exclusión de seguimiento, para que el seguimiento de aperturas y clics se aplique nuevamente.
Parámetros:
tracking_opt_out_id(obligatorio): ID de la exclusión de seguimiento a eliminar
list-webhooks
Lista todos los webhooks configurados para la cuenta. Devuelve los registros completos de webhooks como JSON.
Parámetros:
- No se requieren parámetros
get-webhook
Obtén un único webhook por ID. Devuelve el registro completo del webhook como JSON. Nota: signing_secret no se devuelve aquí; solo está disponible en la respuesta de create-webhook.
Parámetros:
webhook_id(obligatorio): ID del webhook a obtener
create-webhook
Crea un webhook. La respuesta incluye un signing_secret para verificar las firmas de las cargas útiles del webhook: este secreto se devuelve solo en la creación, así que guárdalo ahora. Si lo pierdes, recrea el webhook.
Parámetros:
url(obligatorio): URL a la que Mailtrap enviará los eventos del webhook mediante POSTwebhook_type(obligatorio):"email_sending","audit_log"o"inbound_receiving"active(opcional, booleano): valor predeterminadotruepayload_format(opcional):"json"o"jsonlines". Valor predeterminado:"json"sending_stream(opcional, soloemail_sending):"transactional"o"bulk"event_types(opcional, soloemail_sending): matriz dedelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(opcional, soloemail_sending): ID del dominio de envío para limitar este webhookinbound_inbox_id(opcional, soloinbound_receiving): ID de la bandeja de entrada entrante a la que está vinculado el webhook; omítelo para aplicar a todas las bandejas de entrada de la cuenta
update-webhook
Actualiza los campos modificables de un webhook. webhook_type, sending_stream y domain_id no se pueden cambiar después de la creación: recrea el webhook si necesitas cambiar esos campos.
Parámetros:
webhook_id(obligatorio): ID del webhook a actualizarurl(opcional): Nueva URL del webhookactive(opcional, booleano): Habilita o deshabilita el webhookpayload_format(opcional):"json"o"jsonlines"event_types(opcional, soloemail_sending): matriz dedelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectinbound_inbox_id(opcional, soloinbound_receiving): ID de la bandeja de entrada entrante a la que está vinculado el webhook
delete-webhook
Elimina permanentemente un webhook por ID. Devuelve el registro del webhook eliminado.
Parámetros:
webhook_id(obligatorio): ID del webhook a eliminar
get-contact
Obtén un contacto por ID o correo electrónico. Devuelve el registro completo del contacto (membresías de listas, estado, campos personalizados).
Parámetros:
contact_identifier(obligatorio): ID del contacto o dirección de correo electrónico
create-contact
Crea un nuevo contacto.
Parámetros:
email(obligatorio): Dirección de correo electrónicofields(opcional): Valores de campos personalizados claveados por etiqueta de combinación (p. ej.,first_name). Valores de cadena, número o booleanolist_ids(opcional): IDs de listas de contactos para suscribir a este contactounsubscribed(opcional, booleano): Crear el contacto en estadounsubscribed
update-contact
Actualiza un contacto existente identificado por ID o correo electrónico. list_ids reemplaza el conjunto completo de membresías del contacto; list_ids_included/list_ids_excluded agregan/eliminan sin alterar el resto.
Parámetros:
contact_identifier(obligatorio): ID del contacto o correo electrónicoemail(opcional): Nueva dirección de correo electrónicofields(opcional): Valores de campos personalizados claveados por etiqueta de combinaciónlist_ids(opcional): Reemplazar el conjunto de membresías con esta lista exactalist_ids_included(opcional): IDs de listas para agregar (aditivo)list_ids_excluded(opcional): IDs de listas para eliminarunsubscribed(opcional, booleano): Establecer enunsubscribed(verdadero) osubscribed(falso)
delete-contact
Elimina permanentemente un contacto por ID o correo electrónico. Devuelve el registro del contacto eliminado cuando la API responde con uno; de lo contrario, devuelve un payload de confirmación.
Parámetros:
contact_identifier(obligatorio): ID del contacto o correo electrónico
create-contact-event
Registra un evento de contacto contra un contacto (por ID o correo electrónico). Se utiliza para activar automatizaciones de listas de contactos.
Parámetros:
contact_identifier(obligatorio): ID del contacto o correo electróniconame(obligatorio): Nombre del evento (coincide con los disparadores de automatización)params(obligatorio): Objeto de pares clave/valor arbitrarios. Los valores pueden ser cadena, número, booleano o nulo
list-contact-lists
Lista todas las listas de contactos de la cuenta.
Parámetros:
search(opcional): Filtrar listas de contactos por nombre (coincidencia sin distinción de mayúsculas), p. ej.,news
get-contact-list
Obtiene una lista de contactos por ID.
Parámetros:
list_id(obligatorio): ID de la lista de contactos a obtener
create-contact-list
Crea una nueva lista de contactos.
Parámetros:
name(obligatorio): Nombre para la nueva lista
update-contact-list
Renombra una lista de contactos existente.
Parámetros:
list_id(obligatorio): ID de la lista de contactosname(obligatorio): Nuevo nombre para la lista
delete-contact-list
Elimina permanentemente una lista de contactos por ID.
Parámetros:
list_id(obligatorio): ID de la lista de contactos a eliminar
list-contact-fields
Lista todas las definiciones de campos de contacto de la cuenta.
Parámetros:
- No se requieren parámetros
get-contact-field
Obtiene una definición de campo de contacto por ID.
Parámetros:
field_id(obligatorio): ID del campo de contacto
create-contact-field
Crea una nueva definición de campo de contacto. merge_tag debe ser único dentro de la cuenta y se utiliza como nombre de marcador de posición en las variables de plantilla.
Parámetros:
name(obligatorio): Nombre para mostrar (p. ej., "Nombre")merge_tag(obligatorio): Nombre de marcador de posición único (p. ej.,first_name)data_type(obligatorio): Uno detext,number,boolean,date
update-contact-field
Actualiza una definición de campo de contacto. Se puede cambiar cualquier combinación de name, merge_tag y data_type.
Parámetros:
field_id(obligatorio): ID del campo de contactoname(opcional): Nuevo nombre para mostrarmerge_tag(opcional): Nueva etiqueta de combinación (debe permanecer única)data_type(opcional): Uno detext,number,boolean,date
delete-contact-field
Elimina permanentemente una definición de campo de contacto por ID.
Parámetros:
field_id(obligatorio): ID del campo de contacto a eliminar
create-contact-import
Importa contactos de forma masiva. Devuelve un registro de trabajo de importación; consulta su estado con get-contact-import.
Parámetros:
contacts(obligatorio): Matriz de entradas de contacto. Cada entrada necesita:email(obligatorio): Dirección de correo electrónico del contactofields(opcional): Valores de campos personalizados claveados por etiqueta de combinación (valores de cadena o número)list_ids_included(opcional): IDs de listas para agregar el contactolist_ids_excluded(opcional): IDs de listas para eliminar el contacto
get-contact-import
Obtiene el estado de un trabajo de importación de contactos (creado/iniciado/finalizado/fallido) con conteos de creados/actualizados/límite superado.
Parámetros:
import_id(obligatorio): ID del trabajo de importación de contactos
create-contact-export
Exporta contactos que coinciden con un conjunto de filtros combinados con AND. Devuelve un registro de trabajo de exportación; consulta el estado con get-contact-export para recuperar la URL de descarga una vez que status sea finished.
Parámetros:
filters(obligatorio): Matriz de objetos de filtro. Cada uno tiene:name(obligatorio): Campo para filtrar (list_id,subscription_status,email, etc.)operator(obligatorio): Uno deequal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(obligatorio): Valor de comparación (cadena, número, booleano o matriz)
get-contact-export
Obtiene el estado de un trabajo de exportación de contactos. Una vez que status sea finished, el campo url contiene el enlace de descarga CSV.
Parámetros:
export_id(obligatorio): ID del trabajo de exportación de contactos
list-email-campaigns
Lista las campañas de correo electrónico de la cuenta, de más reciente a más antigua, con paginación por token de página. Opcionalmente, filtra por nombre con search.
Parámetros:
token(opcional): Número de página a recuperar (paginación por token de página). El valor predeterminado es1per_page(opcional): Número de campañas por página. El valor predeterminado es50, máximo100search(opcional): Filtrar campañas por nombre (coincidencia parcial sin distinción de mayúsculas)
get-email-campaign
Obtiene una campaña de correo electrónico por ID.
Parámetros:
email_campaign_id(obligatorio): ID de la campaña de correo electrónico
create-email-campaign
Crea una nueva campaña de correo electrónico. La campaña siempre se crea en el estado draft; la programación y el inicio son herramientas separadas (schedule-email-campaign, start-email-campaign).
Parámetros:
name(obligatorio): Nombre de la campañadomain_id(obligatorio): ID del dominio de envío verificado utilizado para la campaña, tal como lo devuelven los endpoints de dominios de envíofrom_local_part(obligatorio): Parte local (antes de la @) de la dirección del remitentetemplate_attributes(obligatorio): Plantilla de correo electrónico en línea. Tiene:subject(obligatorio): Línea de asunto del correo electrónico (máx. 255 caracteres). Admite etiquetas de combinación, p. ej.,Hi {{first_name}}body_html(opcional): Cuerpo HTML (el diseño). Requerido antes de que la campaña pueda programarse o iniciarse. Incluye un enlace de cancelación de suscripción mediante un ancla cuyohrefcontenga el marcador de posición__unsubscribe_url__body_text(opcional): Alternativa de texto plano del cuerpo del correo electrónicomerge_tags(opcional): Nombres simples de las etiquetas de combinación referenciadas en el asunto/cuerpo, p. ej.,["first_name"]
from_display_name(opcional): Nombre para mostrar en el encabezado del remitentereply_to(opcional): Partes de la dirección de respuesta (display_name,local_part,domain)delivery_mode(opcional):rapid(enviar lo más rápido posible) ogradual(limitar adelivery_options.emails_per_hour)delivery_options(opcional): Opciones de limitación de entrega (emails_per_hour)contact_list_ids(opcional): IDs de listas de contactos a las que enviar (se tratan como el conjunto completo de listas incluidas)contact_segment_ids(opcional): IDs de segmentos de contactos a los que enviar (se tratan como el conjunto completo de segmentos incluidos)
update-email-campaign
Actualiza una campaña de correo electrónico en estado draft. Solo cambian los campos proporcionados; la plantilla se edita en el lugar. Las campañas en cualquier otro estado no se pueden actualizar.
Parámetros:
email_campaign_id(obligatorio): ID de la campaña de correo electrónico a actualizar- Todos los demás parámetros son opcionales e idénticos a
create-email-campaign(name,domain_id,from_local_part,from_display_name,reply_to,template_attributes,delivery_mode,delivery_options,contact_list_ids,contact_segment_ids)
delete-email-campaign
Elimina una campaña de correo electrónico por ID. Solo se puede eliminar una campaña en estado draft.
Parámetros:
email_campaign_id(obligatorio): ID de la campaña de correo electrónico a eliminar
start-email-campaign
Inicia el envío de una campaña de correo electrónico en estado draft inmediatamente. Solo se pueden iniciar campañas en estado draft; la plantilla debe tener un diseño body_html y la audiencia y el dominio de envío verificado deben estar configurados.
Parámetros:
email_campaign_id(obligatorio): ID de la campaña de correo electrónico a iniciar
schedule-email-campaign
Programa una campaña de correo electrónico en estado draft para comenzar a enviarse en un momento futuro. Solo se pueden programar campañas en estado draft.
Parámetros:
email_campaign_id(obligatorio): ID de la campaña de correo electrónico a programardatetime(obligatorio): Cuándo enviar la campaña (ISO 8601). Debe ser en el futuro y no más de 1 mes por delante
cancel-email-campaign
Cancela una campaña de correo electrónico en estado scheduled, devolviéndola a draft. Solo se pueden cancelar campañas en estado scheduled.
Parámetros:
email_campaign_id(obligatorio): ID de la campaña de correo electrónico a cancelar
terminate-email-campaign
Termina una campaña de correo electrónico que se está enviando actualmente (started, queued o paused), abortando el envío en curso.
Parámetros:
email_campaign_id(obligatorio): ID de la campaña de correo electrónico a terminar
reset-email-campaign
Restablece una campaña de correo electrónico en estado scheduled de vuelta a draft. Solo se pueden restablecer campañas en estado scheduled.
Parámetros:
email_campaign_id(obligatorio): ID de la campaña de correo electrónico a restablecer
get-email-campaign-stats
Obtiene estadísticas de rendimiento agregadas para una campaña de correo electrónico (conteos y tasas de entregas, aperturas, clics, rebotes, quejas de spam y cancelaciones de suscripción).
Parámetros:
email_campaign_id(obligatorio): ID de la campaña de correo electrónicostart_date(opcional): Inicio de la ventana de agregación (inclusive),YYYY-MM-DD. El valor predeterminado es el día en que la campaña se inició por última vezend_date(opcional): Fin de la ventana de agregación (inclusive),YYYY-MM-DD. El valor predeterminado es la fecha actual
list-accounts
Lista las cuentas de Mailtrap a las que el token de API actual puede acceder, con los niveles de acceso de cada cuenta.
Parámetros:
- No se requieren parámetros
get-billing-usage
Obtiene el uso del ciclo de facturación actual de la cuenta: planes de envío y prueba, límites y conteos actuales.
Parámetros:
- No se requieren parámetros
list-account-accesses
Lista los accesos de cuenta (usuarios, invitaciones, tokens de API) para la cuenta. Los filtros opcionales limitan el resultado a recursos específicos. Requiere permisos de administrador/propietario de la cuenta.
Parámetros:
domain_uuids(opcional): Filtrar por UUIDs de dominios de envío (matriz de cadenas)inbox_ids(opcional): Filtrar por IDs de bandejas de entrada de sandbox (matriz de cadenas)project_ids(opcional): Filtrar por IDs de proyectos de sandbox (matriz de cadenas)
remove-account-access
Elimina un acceso de cuenta por ID. Para especificadores de User, esto revoca sus permisos; para especificadores de Invite o ApiToken, elimina el especificador por completo. Requiere administrador/propietario.
Parámetros:
account_access_id(obligatorio): ID del registro de acceso a eliminar
get-permission-resources
Obtiene todos los recursos (bandejas de entrada, proyectos, dominios, facturación, cuenta) a los que el token de API tiene acceso de administrador, anidados por jerarquía.
Parámetros:
- No se requieren parámetros
bulk-update-permissions
Crea, actualiza o elimina permisos en masa para un solo acceso de cuenta. Los pares (resource_type, resource_id) existentes se actualizan; los nuevos se crean. Establece destroy: true en una entrada para eliminarla.
Parámetros:
account_access_id(obligatorio): ID del acceso de cuenta de destinopermissions(obligatorio): Matriz de entradas de permisos. Cada una tiene:resource_id(obligatorio): ID del recurso (número o cadena)resource_type(obligatorio): Uno deaccount,project,inbox,domain,billingaccess_level(opcional):admin/100oviewer/10destroy(opcional, booleano): Cuando es verdadero, elimina este permiso en lugar de crearlo o actualizarlo
list-api-tokens
Lista todos los tokens de API de la cuenta.
Parámetros:
- No se requieren parámetros
create-api-token
Crea un nuevo token de API. La respuesta incluye el valor secreto token — esta es la única vez que se devuelve el token completo, así que guárdalo inmediatamente. Si lo pierdes, recrea el token.
Parámetros:
name(obligatorio): Nombre visible para el tokenexpires_at(opcional): Expiración del token como fecha-hora ISO 8601. Omítelo para el valor predeterminado del servidor (1 año); pasa unnullexplícito para un token que nunca expira. Se rechazan valores pasados o valores con más de 5 años de antelaciónresources(opcional): Matriz de permisos de recursos para limitar el token. Cada entrada tiene:resource_type(obligatorio): Uno deaccount,project,inbox,domain,billingresource_id(obligatorio): ID del recursoaccess_level(obligatorio):100(administrador) o10(visor)
get-api-token
Obtiene un token de API por ID. Devuelve solo metadatos — el valor secreto del token no se devuelve aquí (solo desde create-api-token / reset-api-token).
Parámetros:
api_token_id(obligatorio): ID del token de API
reset-api-token
Restablece (rota) un token de API por ID. La respuesta incluye el nuevo valor secreto token — se devuelve solo en esta llamada, así que guárdalo inmediatamente. El token anterior queda invalidado.
Parámetros:
api_token_id(obligatorio): ID del token de API a restablecerexpires_at(opcional): Expiración del nuevo token como fecha-hora ISO 8601. Omítelo para el valor predeterminado del servidor (1 año); pasa unnullexplícito para un token que nunca expira. Se rechazan valores pasados o valores con más de 5 años de antelación
delete-api-token
Elimina permanentemente un token de API por ID. El token ya no puede autenticarse después de la eliminación.
Parámetros:
api_token_id(obligatorio): ID del token de API a eliminar
list-sub-accounts
Lista las subcuentas de la organización. Requiere la variable de entorno MAILTRAP_ORGANIZATION_ID y permisos de gestión de subcuentas.
Parámetros:
- No se requieren parámetros
create-sub-account
Crea una nueva subcuenta bajo la organización. Requiere la variable de entorno MAILTRAP_ORGANIZATION_ID y permisos de gestión de subcuentas.
Parámetros:
name(obligatorio): Nombre visible para la nueva subcuenta
list-inbound-folders
Lista todas las carpetas de entrada de la cuenta. Devuelve un resumen formateado.
Parámetros:
- No se requieren parámetros
get-inbound-folder
Obtiene una sola carpeta de entrada por ID. Devuelve el registro completo de la carpeta como JSON.
Parámetros:
folder_id(obligatorio): ID de la carpeta de entrada
create-inbound-folder
Crea una nueva carpeta de entrada.
Parámetros:
name(obligatorio): El nombre de la carpeta
update-inbound-folder
Renombra una carpeta de entrada.
Parámetros:
folder_id(obligatorio): ID de la carpeta de entradaname(obligatorio): El nuevo nombre de la carpeta
delete-inbound-folder
Elimina permanentemente una carpeta de entrada junto con todas sus bandejas de entrada.
Parámetros:
folder_id(obligatorio): ID de la carpeta de entrada
list-inbound-inboxes
Lista todas las bandejas de entrada en una carpeta de entrada. Devuelve un resumen formateado.
Parámetros:
folder_id(obligatorio): ID de la carpeta de entrada
get-inbound-inbox
Obtiene una sola bandeja de entrada por ID. Devuelve el registro completo de la bandeja como JSON.
Parámetros:
folder_id(obligatorio): ID de la carpeta de entradainbox_id(obligatorio): ID de la bandeja de entrada
create-inbound-inbox
Crea una nueva bandeja de entrada en una carpeta.
Parámetros:
folder_id(obligatorio): ID de la carpeta de entradaname(obligatorio): El nombre de la bandeja de entradadomain_id(opcional): Adjuntar a un dominio de envío personalizado (bandeja de captura total). Omítelo para una bandeja alojada en Mailtrap
update-inbound-inbox
Renombra una bandeja de entrada.
Parámetros:
folder_id(obligatorio): ID de la carpeta de entradainbox_id(obligatorio): ID de la bandeja de entradaname(obligatorio): El nuevo nombre de la bandeja de entrada
delete-inbound-inbox
Elimina permanentemente una bandeja de entrada.
Parámetros:
folder_id(obligatorio): ID de la carpeta de entradainbox_id(obligatorio): ID de la bandeja de entrada
list-inbound-messages
Lista los mensajes recibidos en una bandeja de entrada (paginación por cursor). Devuelve un resumen formateado con una pista de página siguiente cuando existen más resultados.
Parámetros:
inbox_id(obligatorio): ID de la bandeja de entradalast_id(opcional): Cursor de paginación dellast_idde una respuesta anterior
get-inbound-message
Obtiene un solo mensaje de entrada con su cuerpo completo y las URL de descarga de archivos adjuntos. Devuelve el registro completo del mensaje como JSON.
Parámetros:
inbox_id(obligatorio): ID de la bandeja de entradamessage_id(obligatorio): ID del mensaje
delete-inbound-message
Elimina permanentemente un mensaje de entrada.
Parámetros:
inbox_id(obligatorio): ID de la bandeja de entradamessage_id(obligatorio): ID del mensaje
reply-to-inbound-message
Responde a un mensaje de entrada (envía al remitente original). Envía un correo real. Las direcciones aceptan una cadena de correo simple o { email, name? }.
Parámetros:
inbox_id(obligatorio): ID de la bandeja de entradamessage_id(obligatorio): ID del mensaje al que respondertext/html(al menos uno recomendado): Cuerpo de la respuestafrom(opcional): Remitente. Se rechaza para bandejas alojadas en Mailtrap; es obligatorio para bandejas con dominio personalizadocc/bcc/reply_to(opcional): Direcciones adicionalescategory(opcional): Categoría del mensajeattachments(opcional): Matriz de{ content (base64), filename, type?, disposition?, content_id? }headers/custom_variables(opcional): Objetos de valores de cadena
reply-all-to-inbound-message
Responde a un mensaje de entrada y copia a los otros destinatarios del original. Envía un correo real. Mismos parámetros que reply-to-inbound-message.
Parámetros:
inbox_id(obligatorio): ID de la bandeja de entradamessage_id(obligatorio): ID del mensaje al que responder- Más los mismos campos de envío opcionales que
reply-to-inbound-message
forward-inbound-message
Reenvía un mensaje de entrada a nuevos destinatarios. Envía un correo real.
Parámetros:
inbox_id(obligatorio): ID de la bandeja de entradamessage_id(obligatorio): ID del mensaje a reenviarto(obligatorio): Al menos un destinatario (cadena de correo simple o{ email, name? }, o una matriz)- Más los mismos campos de envío opcionales que
reply-to-inbound-message
list-inbound-threads
Lista los hilos de conversación en una bandeja de entrada (paginación por cursor). Devuelve un resumen formateado con una pista de página siguiente cuando existen más resultados.
Parámetros:
inbox_id(obligatorio): ID de la bandeja de entradalast_id(opcional): Cursor de paginación dellast_idde una respuesta anterior
get-inbound-thread
Obtiene un solo hilo de entrada con sus mensajes incrustados (del más antiguo al más reciente). Devuelve el registro completo del hilo como JSON.
Parámetros:
inbox_id(obligatorio): ID de la bandeja de entradathread_id(obligatorio): ID del hilo
delete-inbound-thread
Elimina permanentemente un hilo de entrada.
Parámetros:
inbox_id(obligatorio): ID de la bandeja de entradathread_id(obligatorio): ID del hilo
Desarrollo
- Clona el repositorio:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- Instala las dependencias:
npm install
Configuración con Claude Desktop o Cursor
[!TIP] Consulta la ubicación del archivo de configuración en la sección Configuración.
Añade la siguiente configuración:
{
"mcpServers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Si usas asdf para gestionar Node.js, debes usar la ruta absoluta al ejecutable:
(ejemplo para Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
VS Code
[!TIP] Consulta la ubicación del archivo de configuración en la sección Configuración.
{
"mcp": {
"servers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
Pruebas
Ejecutar herramientas contra Mailtrap real
Hay dos formas de ejercitar una herramienta de extremo a extremo contra una cuenta real de Mailtrap: la interfaz de navegador del Inspector MCP para exploración interactiva, o su modo CLI para llamadas puntuales desde la terminal.
Ambas requieren que el paquete se compile primero:
npm run build
y que MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID estén exportados en tu terminal (el script mcp:cli reenvía ambos al servidor generado).
Interfaz de navegador
npm run dev
El Inspector imprime una URL como http://localhost:6274. Ábrela, cambia a la pestaña Herramientas, elige una herramienta (por ejemplo, get-template), completa los parámetros como JSON y pulsa Ejecutar. La respuesta de Mailtrap aparece en el panel inferior.
CLI
Para llamadas puntuales sin la interfaz, usa npm run mcp:cli. Pasa las banderas CLI del Inspector después de -- para que npm las reenvíe tal cual:
# List all tools
npm run mcp:cli -- --method tools/list
# Call a tool — flags after the `--`
npm run mcp:cli -- \
--method tools/call \
--tool-name get-template \
--tool-arg template_id=12345
# Multiple --tool-arg flags for tools with several params
npm run mcp:cli -- \
--method tools/call \
--tool-name send-sending-domain-setup-instructions \
--tool-arg sending_domain_id=3938 \
--tool-arg email=devops@example.com
Ejecutar el servidor MCPB
# Run the MCPB server directly
node dist/mcpb-server.js
# Or use the provided binary
mailtrap-mcpb-server
[!TIP] Para desarrollo con el Inspector MCP:
npm run dev:mcpb
Manejo de errores
Este servidor usa manejo estructurado de errores alineado con las convenciones de MCP:
VALIDATION_ERROR: Fallos de validación de entradaCONFIGURATION_ERROR: Configuración faltante o inválidaEXECUTION_ERROR: Errores de ejecución en tiempo de ejecuciónTIMEOUT: Tiempo de espera agotado de la operación (30 segundos por defecto)
Los errores incluyen mensajes accionables y se registran en forma estructurada.
Seguridad
- Entrada validada mediante esquemas Zod
- Variables de entorno manejadas de forma segura
- Protección de tiempo de espera en operaciones (30 segundos)
- Detalles sensibles saneados en la salida de errores
Registro
Registros JSON estructurados con niveles: INFO, WARN, ERROR, DEBUG.
Habilita el registro de depuración estableciendo DEBUG=true.
# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js
Importante: El servidor escribe los registros en stderr para que stdout permanezca reservado para tramas JSON-RPC. Esto evita que los hosts encuentren errores de análisis JSON debido a registros intercalados.
Ejemplo de análisis de registros usando jq:
# Filter error logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "error")'
# Filter debug logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "debug")'
Solución de problemas
Problemas comunes:
- Token de API faltante: asegúrate de que
MAILTRAP_API_TOKENesté establecido - Sandbox que no funciona: proporciona
test_inbox_iden la llamada a la herramienta o establece la variable de entornoMAILTRAP_TEST_INBOX_ID - Errores de tiempo de espera: verifica la conectividad de red y el estado de la API de Mailtrap
- Errores de validación: asegúrate de que todos los campos obligatorios estén proporcionados
Contribuciones
Los informes de errores y las solicitudes de extracción son bienvenidos en GitHub. Este proyecto pretende ser un espacio seguro y acogedor para la colaboración, y se espera que los contribuyentes cumplan con el código de conducta.
Licencia
El paquete está disponible como código abierto bajo los términos de la Licencia MIT.
Código de conducta
Se espera que todos los que interactúan en los repositorios de código, rastreadores de problemas, salas de chat y listas de correo del proyecto Mailtrap sigan el código de conducta.