Resend Email

oficial

Envía correos electrónicos directamente desde tu editor usando la API de Resend.

¿Qué puedes hacer con Resend Email MCP?

  • Enviar y gestionar correos electrónicos — Pide a tu IA que envíe, programe o envíe en lotes correos electrónicos con HTML, archivos adjuntos, CC/CCO y encabezados personalizados usando sendEmail y herramientas relacionadas.
  • Gestionar contactos y audiencias — Crea, actualiza, importa o elimina contactos, y administra sus membresías de segmentos y suscripciones a temas.
  • Crear y enviar campañas de difusión — Redacta, programa y envía correos electrónicos de difusión con marcadores de personalización y texto de vista previa.
  • Verificar y configurar dominios — Agrega, verifica y actualiza dominios de remitente, incluyendo configuración de seguimiento, TLS y recepción.
  • Inspeccionar registros de API y webhooks — Recupera y examina registros de solicitudes de API con cuerpos completos de solicitud/respuesta, y gestiona endpoints de webhook.
  • Colaborar en plantillas y difusiones — Conéctate al editor visual de Resend para leer e iterar sobre contenido borrador de plantillas y difusiones.

Documentación

Servidor MCP de Resend

smithery badge npm version

Conecta tu agente de IA a la plataforma Resend. Envía y recibe correos electrónicos, gestiona contactos, difusiones, dominios y más, directamente desde cualquier cliente MCP como Claude, Cursor o Claude Code.

Ofrecemos tanto un servidor MCP remoto alojado por Resend como un servidor MCP local (este paquete).

Servidor MCP Remoto

Resend aloja el servidor MCP en:

https://mcp.resend.com/mcp

Conecta cualquier cliente MCP que soporte servidores remotos (HTTP transmitible). No hay nada que instalar ni ningún proceso local que ejecutar, lo que lo convierte en la mejor opción para clientes basados en web como Claude y plataformas de agentes alojadas.

Al conectarte, tu cliente abre una ventana del navegador para iniciar sesión en Resend y aprobar el acceso mediante OAuth.

Claude Code

claude mcp add --transport http resend https://mcp.resend.com/mcp

Luego ejecuta /mcp en Claude Code y selecciona resend para completar el inicio de sesión OAuth.

Claude

En Claude (web o escritorio), abre Configuración > Conectores > Añadir conector personalizado e introduce:

https://mcp.resend.com/mcp

Cursor

Abre la paleta de comandos y elige "Configuración de Cursor" > "MCP" > "Añadir nuevo servidor MCP global".

{
  "mcpServers": {
    "resend": {
      "url": "https://mcp.resend.com/mcp"
    }
  }
}

Codex

codex mcp add resend --url https://mcp.resend.com/mcp

Copilot

Para usar GitHub Copilot en VS Code, añade lo siguiente a tu settings.json:

{
  "mcp": {
    "servers": {
      "resend": {
        "type": "http",
        "url": "https://mcp.resend.com/mcp"
      }
    }
  }
}

Windsurf

{
  "mcpServers": {
    "resend": {
      "serverUrl": "https://mcp.resend.com/mcp"
    }
  }
}

Warp

En la Configuración de Warp, navega a Agentes > Servidores MCP, y haz clic en +Añadir para agregar un nuevo servidor.

{
  "resend": {
    "serverUrl": "https://mcp.resend.com/mcp"
  }
}

Autenticación con una clave API

Si tu cliente se ejecuta en un lugar donde no es posible iniciar sesión en el navegador (un servidor, CI o un agente sin interfaz gráfica), pasa una clave API de Resend como token Bearer en lugar de usar OAuth.

Claude Code:

claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"

Configuración JSON (Cursor, Windsurf y otros), añade un encabezado Authorization:

{
  "mcpServers": {
    "resend": {
      "url": "https://mcp.resend.com/mcp",
      "headers": {
        "Authorization": "Bearer re_xxxxxxxxx"
      }
    }
  }
}

Servidor MCP Local

El servidor alojado ejecuta el mismo código de fuente abierta disponible en NPM como resend-mcp. Si prefieres ejecutar el servidor tú mismo, puedes integrarlo en cualquier cliente MCP compatible usando npx. Necesitarás:

El servidor local soporta dos modos de transporte: stdio (predeterminado) y HTTP.

Elige tu modo y cliente preferido a continuación para empezar. Recuerda reemplazar re_xxxxxxxxx con tu clave API real.

Transporte Stdio (Predeterminado)

Configuración Rápida

Instala para todos los agentes y editores detectados/seleccionados:

npx add-mcp resend-mcp --name resend --env "RESEND_API_KEY=re_xxxxxxxxx"

Claude Code

claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- npx -y resend-mcp

Codex

codex mcp add resend \
  --env RESEND_API_KEY=re_xxxxxxxxx \
  -- npx -y resend-mcp

Cursor

Abre la paleta de comandos y elige "Configuración de Cursor" > "MCP" > "Añadir nuevo servidor MCP global".

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Claude Desktop

Abre la configuración de Claude Desktop > pestaña "Desarrollador" > "Editar Configuración".

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Copilot

Para usar GitHub Copilot en VS Code, añade lo siguiente a tu settings.json:

{
  "mcp": {
    "servers": {
      "resend": {
        "command": "npx",
        "args": ["-y", "resend-mcp"],
        "env": {
          "RESEND_API_KEY": "re_xxxxxxxxx"
        }
      }
    }
  }
}

Gemini CLI

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

OpenCode

Añade a tu configuración de opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "resend": {
      "type": "local",
      "command": ["npx", "-y", "resend-mcp"],
      "enabled": true,
      "environment": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Windsurf

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Devin

En Devin, abre Configuración > Conexiones > Servidores MCP y haz clic en Añadir un MCP personalizado. Consulta la guía de Devin para el paso a paso completo.

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx",
        "SENDER_EMAIL_ADDRESS": "onboarding@resend.dev"
      }
    }
  }
}

Transporte HTTP

Ejecuta el servidor sobre HTTP para integraciones remotas o basadas en web, por ejemplo detrás de tu propio túnel o proxy inverso, en lugar de usar el servidor MCP remoto alojado de Resend. En modo HTTP, cada cliente se autentica pasando su clave API de Resend como token Bearer en el encabezado Authorization.

Inicia el servidor:

npx -y resend-mcp --http --port 3000

El servidor escuchará en http://127.0.0.1:3000 y expondrá el endpoint MCP en /mcp usando HTTP transmitible.

Claude Code

claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"

Cursor

Abre la paleta de comandos y elige "Configuración de Cursor" > "MCP" > "Añadir nuevo servidor MCP global".

{
  "mcpServers": {
    "resend": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer re_xxxxxxxxx"
      }
    }
  }
}

También puedes establecer el puerto mediante la variable de entorno MCP_PORT:

MCP_PORT=3000 npx -y resend-mcp --http

Usar como biblioteca

El transporte HTTP también se exporta para poder integrarse en otro servicio en lugar de ejecutarse mediante la CLI. Cada cliente que se conecta se autentica con su propia clave API de Resend pasada como token Bearer.

import { runHttp } from 'resend-mcp/http';

// Options are optional — pass `senderEmailAddress` / `replierEmailAddresses`
// to set defaults. Binds the port and returns the Node http.Server, exposing
// the MCP endpoint at POST/GET/DELETE /mcp and a GET /health check.
const server = await runHttp({}, 3000);

Por defecto, el servidor aplica validación Host solo para localhost (protección contra reenlace DNS). Al desplegar detrás de un proxy inverso o balanceador de carga, donde el servidor está protegido por la clave API Bearer por solicitud, establece host a 0.0.0.0 para que el Host reenviado por el proxy y las comprobaciones de salud del balanceador de carga no sean rechazadas con 403 Invalid Host:

const server = await runHttp({}, 3000, { host: '0.0.0.0' });
// or pin specific hostnames instead of disabling validation:
const server = await runHttp({}, 3000, { allowedHosts: ['mcp.example.com'] });

A través de la CLI esto se asigna a --host / --allowed-hosts (o MCP_HOST / MCP_ALLOWED_HOSTS).

Opciones

Puedes pasar argumentos adicionales para configurar el servidor local:

  • --key: Tu clave API de Resend (solo modo stdio, ya que el modo HTTP usa el token Bearer del cliente)
  • --sender: Dirección de correo electrónico del remitente predeterminado de un dominio verificado
  • --reply-to: Dirección de correo electrónico de respuesta predeterminada (se puede especificar varias veces)
  • --http: Usar transporte HTTP en lugar de stdio (predeterminado: stdio)
  • --port: Puerto HTTP al usar --http (predeterminado: 3000, o variable de entorno MCP_PORT)
  • --host: Host para protección contra reenlace DNS al usar --http (predeterminado: 127.0.0.1, o MCP_HOST). Establecer a 0.0.0.0 para deshabilitar la validación Host detrás de un proxy/balanceador de carga.
  • --allowed-hosts: Lista de permitidos Host separada por comas al usar --http (o MCP_ALLOWED_HOSTS)

Variables de entorno:

  • RESEND_API_KEY: Tu clave API de Resend (requerida para stdio, opcional para HTTP ya que los clientes la pasan mediante token Bearer)
  • SENDER_EMAIL_ADDRESS: Dirección de correo electrónico del remitente predeterminado de un dominio verificado (opcional)
  • REPLY_TO_EMAIL_ADDRESSES: Direcciones de correo electrónico de respuesta separadas por comas (opcional)
  • MCP_PORT: Puerto HTTP al usar --http (opcional)
  • MCP_HOST: Host para protección contra reenlace DNS al usar --http (opcional)
  • MCP_ALLOWED_HOSTS: Lista de permitidos Host separada por comas al usar --http (opcional)

[!NOTE] Si no proporcionas una dirección de correo electrónico del remitente, el servidor MCP te pedirá que proporciones una cada vez que llames a la herramienta.

Herramientas del Servidor MCP

El servidor MCP de Resend le da a tu agente de IA acceso nativo a toda la plataforma Resend a través de una única integración. Puedes gestionar todos los aspectos de tu infraestructura de correo electrónico usando lenguaje natural.

  • Correos electrónicos: Enviar, listar, obtener, cancelar, actualizar y enviar correos electrónicos por lotes. Soporta HTML, texto plano, adjuntos (archivo local, URL o base64), CC/BCC, respuesta, programación, etiquetas, encabezados personalizados, envío basado en temas y claves de idempotencia.
  • Correos electrónicos recibidos: Listar y leer correos electrónicos entrantes. Listar y descargar adjuntos de correos electrónicos recibidos.
  • Plantillas: Crear, listar, obtener, actualizar, publicar, duplicar y eliminar plantillas de correo electrónico. Soporta la composición de contenido de plantillas y marcadores de posición {{{VARIABLE}}}.
  • Contactos: Crear, listar, obtener, actualizar y eliminar contactos. Gestionar membresías de segmentos, suscripciones a temas e importaciones CSV de contactos. Soporta propiedades de contacto personalizadas.
  • Difusiones: Crear, enviar, listar, obtener, actualizar y eliminar campañas de difusión. Soporta programación, marcadores de posición de personalización y texto de vista previa.
  • Automatizaciones: Crear, listar, obtener, actualizar y eliminar automatizaciones. Revisar las ejecuciones de una automatización.
  • Eventos: Enviar eventos para activar automatizaciones para un contacto. Crear, actualizar y eliminar definiciones de eventos.
  • Dominios: Crear, listar, obtener, actualizar, eliminar y verificar dominios de remitente. Configurar seguimiento, TLS y capacidades de envío/recepción. Crear y verificar reclamaciones de dominio.
  • Segmentos: Crear, listar, obtener y eliminar segmentos de audiencia.
  • Supresiones: Listar, obtener, añadir y eliminar entradas de la lista de supresión, individualmente o en lote. Los rebotes duros y las quejas de spam se suprimen automáticamente; añade direcciones manualmente para cumplir con las solicitudes de no contacto.
  • Temas: Crear, listar, obtener, actualizar y eliminar temas de suscripción.
  • Propiedades de contacto: Crear, listar, obtener, actualizar y eliminar atributos de contacto personalizados.
  • Claves API: Crear, listar y eliminar claves API.
  • Webhooks: Crear, listar, obtener, actualizar y eliminar webhooks para notificaciones de eventos.
  • Registros: Listar e inspeccionar registros de solicitudes API, incluyendo cuerpos completos de solicitud y respuesta.
  • Editor: Conectarse (y desconectarse) del editor visual en el panel de Resend, y leer el contenido de un borrador mientras se colabora en difusiones y plantillas.

Desarrollo Local

  1. Clona este proyecto y compila:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
  1. Para usar la compilación local, reemplaza el comando npx con la ruta a tu compilación local:

Claude Code (stdio):

claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- node ABSOLUTE_PATH_TO_PROJECT/dist/index.js

Claude Code (HTTP):

claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"

Cursor / Claude Desktop (stdio):

{
  "mcpServers": {
    "resend": {
      "command": "node",
      "args": ["ABSOLUTE_PATH_TO_PROJECT/dist/index.js"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Cursor (HTTP):

{
  "mcpServers": {
    "resend": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer re_xxxxxxxxx"
      }
    }
  }
}

Pruebas en Vivo con un Cliente MCP

Al desarrollar, puedes probar los cambios en una sesión real de cliente MCP mientras editas el código en otra.

La idea: ejecuta tsc --watch para reconstruir continuamente dist/, y apunta un cliente MCP separado al dist/index.js compilado desde un directorio diferente. Cuando quieras recoger los cambios de código, reinicia la sesión del cliente MCP (los servidores MCP son procesos stdio de larga duración que no se recargan en caliente).

Ejemplo con Claude Code:

  1. Ejecuta el observador de TypeScript para auto-reconstruir al guardar:

    pnpm tsc --watch
    
  2. En un directorio separado, crea un .mcp.json apuntando a la salida de compilación:

    mkdir -p /tmp/mcp-test
    
    // /tmp/mcp-test/.mcp.json
    {
      "mcpServers": {
        "resend-dev": {
          "command": "node",
          "args": ["/absolute/path/to/resend-mcp/dist/index.js"],
          "env": {
            "RESEND_API_KEY": "re_xxxxxxxxx"
          }
        }
      }
    }
    
  3. Inicia Claude Code desde ese directorio y usa las herramientas MCP. Después de hacer cambios en el código, inicia una nueva sesión de Claude Code para recoger la nueva compilación.

El mismo principio se aplica a cualquier cliente MCP — separa tu entorno de pruebas de tu entorno de desarrollo, usa una ruta absoluta a dist/index.js, y reconecta el servidor MCP después de reconstruir.

Pruebas con MCP Inspector

Nota: Asegúrate de haber compilado el proyecto primero (consulta la sección Desarrollo Local arriba).

Usando Transporte Stdio

  1. Establece tu clave API:

    export RESEND_API_KEY=re_your_key_here
    
  2. Inicia el inspector:

    pnpm inspector
    
  3. En el navegador (Interfaz del Inspector):

    • Elige stdio (lanzar un proceso).
    • Comando: node
    • Args: dist/index.js (o la ruta completa a dist/index.js)
    • Env: RESEND_API_KEY=re_your_key_here (o déjalo en blanco si ya lo exportaste en la misma terminal).
    • Haz clic en Conectar, luego usa "Listar herramientas" para verificar que el servidor funciona.

Usando Transporte HTTP

  1. Inicia el servidor HTTP en una terminal:

    node dist/index.js --http --port 3000
    
  2. Inicia el inspector en otra terminal:

    pnpm inspector
    
  3. En el navegador (Interfaz del Inspector):

    • Elige HTTP transmitible (conectar a URL).
    • URL: http://127.0.0.1:3000/mcp
    • Añade un encabezado personalizado: Authorization: Bearer re_your_key_here y activa el interruptor.
    • Haz clic en Conectar, luego usa "Listar herramientas" para verificar que el servidor funciona.