mcp-email
Servidor MCP autoalojado para cualquier bandeja de entrada IMAP/SMTP. Múltiples cuentas en una sola configuración. Construido para Claude Code.
Documentación
mcp-email
Servidor MCP autoalojado para IMAP y SMTP. Multi-cuenta en una sola configuración. Diseñado para Claude Code y cualquier cliente compatible con MCP.
Comprar en Gumroad — $49 · Página de aterrizaje · Documentación de configuración por proveedor
Qué es este repositorio
Esta es la cara pública de mcp-email, un producto de pago de OneShotForge. El código fuente vive en el paquete de pago vendido en Gumroad. Este repositorio contiene:
- El README que estás leyendo (características, alcance, preguntas frecuentes)
- La documentación completa de configuración por proveedor (
docs/CONFIG.md) - El registro de cambios público (
CHANGELOG.md) - Los términos de licencia (
LICENSE)
Si estás comprando: esto es suficiente para decidir si mcp-email se adapta a tu configuración. El enlace de compra está arriba.
Si ya has comprado: el código fuente completo en TypeScript, la configuración de Docker, los archivos de compilación y la guía de instalación completa están en el zip que recibiste después del pago.
Por qué existe esto
El estándar MCP de Anthropic permite que los agentes hablen con tus herramientas. El correo electrónico es la herramienta más solicitada. Pero los servidores "MCP email" existentes que probé o te encierran en Gmail, exigen una configuración OAuth que toma una tarde, o se rompen en cuanto los apuntas a una segunda cuenta.
mcp-email es el que construí para mí después de ese triaje. Lo vendo porque ahora resuelve un problema de manera suficientemente limpia como para preferir que me paguen por mantenerlo en lugar de mantenerlo gratis.
Lo que es diferente:
- Cualquier proveedor IMAP/SMTP — Gmail, Hostinger, Fastmail, iCloud, Outlook 365, Proton (vía Bridge), Yahoo, Zoho, dominios personalizados, cualquier cosa que hable el protocolo.
- Multi-cuenta en una sola configuración — declara N cuentas mediante variables de entorno, cada llamada a herramienta toma un argumento
account. Una instancia del servidor habla con todas ellas. - 15 herramientas, nivel producción — listar, buscar, leer, hilos, adjuntos, enviar, borrador, mover, copiar, eliminar, marcar, CRUD de carpetas. Las operaciones aburridas están cubiertas.
- Autoalojado, las credenciales nunca salen de tu máquina — se ejecuta localmente vía
npmo en Docker. Autenticación con token Bearer en el endpoint MCP. Sin telemetría, sin proxy SaaS. - Un solo archivo
.env— sin baile de OAuth, sin JSON de cuenta de servicio, sin proyecto de Google Cloud. Genera contraseñas de aplicación en el lado del proveedor, colócalas, listo.
Qué obtienes al comprar
Después del pago en Gumroad, descargas un único zip que contiene:
- Código fuente completo en TypeScript para el servidor (Node 20+,
@modelcontextprotocol/sdk,imapflow,nodemailer) - Dockerfile + docker-compose.yml listos para ejecutar
.env.examplecon la plantilla completa y comentarios en línea- El README ampliado con instrucciones de instalación, conexión con Claude Code, despliegue en producción vía Caddy y solución de problemas
- Una licencia comercial perpetua (ver LICENCIA para los términos completos — uso comercial ilimitado, sin reventa, reembolso dentro del primer día si no se adapta)
- Actualizaciones gratuitas de parches y menores dentro de la versión mayor 1.x
Tiempo aproximado hasta la primera llamada a herramienta después del pago: 5 minutos si la contraseña de aplicación de tu proveedor ya está generada.
Matriz de proveedores
Uso Hostinger y Gmail a diario. La configuración está documentada y probada para los demás.
| Proveedor | Autenticación | Host IMAP | Host SMTP | Notas |
|---|---|---|---|---|
| Hostinger | Contraseña de buzón | imap.hostinger.com:993 | smtp.hostinger.com:465 | Lo que uso para hello@oneshotforge.com. 10/10 en mail-tester.com. |
| Gmail / Workspace | Contraseña de aplicación | imap.gmail.com:993 | smtp.gmail.com:465 | Activa 2FA primero. Los administradores de Workspace pueden deshabilitar IMAP a nivel de organización. |
| Fastmail | Contraseña de aplicación | imap.fastmail.com:993 | smtp.fastmail.com:465 | Implementación limpia, sin sorpresas. |
| iCloud Mail | Contraseña específica de aplicación | imap.mail.me.com:993 | smtp.mail.me.com:587 | SMTP en 587/STARTTLS. |
| Outlook 365 | Contraseña de aplicación | outlook.office365.com:993 | smtp.office365.com:587 | Algunos inquilinos deshabilitan SMTP AUTH. Las cuentas personales siempre funcionan. |
| Proton Mail | Vía Proton Bridge | 127.0.0.1:1143 | 127.0.0.1:1025 | Bridge debe estar ejecutándose localmente. |
| Yahoo Mail | Contraseña de aplicación | imap.mail.yahoo.com:993 | smtp.mail.yahoo.com:465 | Contraseña de aplicación en seguridad de la cuenta. |
| Zoho Mail | Contraseña de aplicación (o normal) | imap.zoho.eu:993 / .com | smtp.zoho.eu:465 / .com | Los inquilinos de la UE y EE. UU. usan hosts diferentes. |
| Genérico | Contraseña de aplicación o normal | depende | depende | Cualquier cosa compatible con RFC funciona. |
Configuración completa por proveedor en docs/CONFIG.md.
Las 15 herramientas
Todas las herramientas toman un parámetro account — el ID que declaraste en .env. Las carpetas por defecto son INBOX cuando corresponde.
Lectura (6)
| Herramienta | Propósito |
|---|---|
email_list_folders | Listar todas las carpetas IMAP con conteos de no leídos |
email_list_messages | Listar mensajes en una carpeta con paginación y filtro de no leídos |
email_search_messages | Buscar por remitente, asunto, cuerpo, fecha o tiene-adjunto |
email_get_message | Cuerpo completo del mensaje (texto + HTML + metadatos de adjuntos) por UID |
email_get_attachment | Obtener el contenido de un adjunto (UTF-8 o base64) |
email_get_thread | Reconstruir un hilo de conversación desde Message-ID / In-Reply-To / References |
Escritura (2)
| Herramienta | Propósito |
|---|---|
email_send_message | Enviar vía SMTP, añadir una copia a la carpeta Enviados vía IMAP |
email_create_draft | Crear un borrador en la carpeta Borradores |
Gestión (7)
| Herramienta | Propósito |
|---|---|
email_move_message | Mover un mensaje a otra carpeta |
email_copy_message | Copiar un mensaje a otra carpeta |
email_delete_message | Mover a Papelera (por defecto) o \Deleted + expurgar |
email_mark_message | Establecer o quitar banderas \Seen / \Flagged / \Answered |
email_create_folder | Crear una carpeta IMAP |
email_rename_folder | Renombrar una carpeta IMAP |
email_delete_folder | Eliminar una carpeta IMAP |
Cómo se conecta a Claude Code
Después de la instalación (cubierta en el zip), añade esto a tu proyecto .mcp.json o ~/.claude.json global:
{
"mcpServers": {
"email": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_AUTH_TOKEN"
}
}
}
}
Reinicia Claude Code (/mcp para verificar que el servidor está connected), luego intenta:
"Lista mis últimos 5 correos no leídos en la cuenta
main."
O, para uso avanzado con multi-cuenta:
"Busca en la cuenta
supportmensajes sin responder decustomer@example.comen los últimos 7 días, resúmelos y redacta una respuesta en la cuentamain."
Precio
$49 de una sola vez. Licencia comercial perpetua, uso comercial ilimitado, sin tarifa recurrente.
Reembolso el mismo día si no se adapta a tu configuración. Envía un correo a hello@oneshotforge.com dentro de las 24 horas posteriores a la compra y lo procesaré (a la mañana siguiente si estoy dormido cuando escribes).
Límites y alcance (intencional)
- Autenticación: solo contraseña de aplicación o contraseña normal. Sin OAuth 2.0. Esto mantiene el servidor sin estado y agnóstico del proveedor.
- Transporte: solo HTTP (sin stdio). MCP sobre HTTP es el único modo que admite agentes remotos e infraestructura compartida.
- Nombres de carpetas: los valores por defecto asumen
INBOX,Sent,Drafts,Trash. Los servidores con prefijos comoINBOX.Sentse manejan con un respaldo. Los nombres personalizados requieren pequeños cambios de código. - Descarga de adjuntos: límite de 1 MB para adjuntos binarios (devueltos como base64). Los adjuntos textuales (text/*, JSON, XML, ICS) no tienen límite.
- Cuerpo HTML: truncado después de 25,000 caracteres en
email_get_message. El cuerpo de texto siempre se envía completo.
Hoja de ruta (post-1.0, no comprometido)
- Anulaciones opcionales de entorno
SENT_FOLDER/DRAFTS_FOLDER/TRASH_FOLDERpor cuenta - Flujo OAuth para Gmail y Microsoft (complemento separado, no incluido)
- Webhook en correo entrante (notificaciones push para agentes)
- Puente de calendario/ICS (producto separado, se integrará limpiamente)
- Etiquetado automático con IA vía la API de Anthropic
Vota con un correo — ¿qué quieres a continuación? hello@oneshotforge.com.
Licencia
Licencia comercial — ver LICENSE.
En resumen: uso personal y comercial ilimitado después de la compra, sin reventa ni redistribución del código fuente.
Soporte
- Errores y solicitudes de funciones: envía un correo a
hello@oneshotforge.comcon una reproducción clara. - Preguntas sobre licencias, precios por volumen: misma dirección.
- Registro de cambios público:
CHANGELOG.md.
Construido por OneShotForge.