pyfastmail-mcp

Servidor MCP para Fastmail: correo electrónico, contactos, calendarios y archivos a través de JMAP, CardDAV, CalDAV y WebDAV

Documentación

pyfastmail-mcp

Un servidor MCP que brinda a los asistentes de IA acceso completo a tu cuenta de Fastmail: correo electrónico, contactos, calendarios y almacenamiento de archivos.

⚠️ Este servidor puede enviar correos electrónicos, eliminar mensajes y modificar contactos/calendarios en tu nombre. Los asistentes de IA pueden actuar sobre contenido de fuentes no confiables (correos electrónicos, páginas web, archivos) que podrían contener ataques de inyección de prompts. Revisa las llamadas a herramientas antes de aprobarlas, especialmente acciones que envíen correos o eliminen datos.

Características

DominioProtocoloHerramientas
CorreoJMAPEnviar, responder, reenviar, buscar, leer, fijar, archivar, palabras clave, correo enmascarado, adjuntos, hilos, importar/exportar, identidades
ContactosJMAPListar libretas de direcciones, CRUD de contactos, consulta
CalendarioCalDAVListar calendarios, CRUD de eventos (opcional — requiere contraseña de aplicación)
ArchivosWebDAVListar, subir, descargar, mover, eliminar, crear carpetas (opcional — requiere contraseña de aplicación)

Instalación

pip install pyfastmail-mcp

O ejecuta directamente con uvx:

uvx pyfastmail-mcp

Configuración

1. Obtén las credenciales de Fastmail

Necesitas un token de API de Fastmail. Una contraseña de aplicación es opcional (solo se necesita para calendario y almacenamiento de archivos).

Si solo configuras el token de API, el servidor se inicia con las herramientas de correo y contactos. Las herramientas de calendario y archivos se registran solo cuando también se proporciona la contraseña de aplicación.

2. Configura las variables de entorno

export FASTMAIL_API_TOKEN="fmu1-..."
export FASTMAIL_APP_PASSWORD="your-app-password"
export FASTMAIL_EMAIL="you@fastmail.com"

3. Añádelo a tu cliente MCP

Para Claude Desktop, añade a claude_desktop_config.json:

{
  "mcpServers": {
    "fastmail": {
      "command": "uvx",
      "args": ["pyfastmail-mcp"],
      "env": {
        "FASTMAIL_API_TOKEN": "fmu1-...",
        "FASTMAIL_APP_PASSWORD": "your-app-password",
        "FASTMAIL_EMAIL": "you@fastmail.com"
      }
    }
  }
}

Para Kiro CLI, añade a .kiro/settings/mcp.json:

{
  "mcpServers": {
    "fastmail": {
      "command": "uvx",
      "args": ["pyfastmail-mcp"],
      "env": {
        "FASTMAIL_API_TOKEN": "${FASTMAIL_API_TOKEN}",
        "FASTMAIL_EMAIL": "${FASTMAIL_EMAIL}",
        "FASTMAIL_APP_PASSWORD": "${FASTMAIL_APP_PASSWORD}"
      }
    }
  }
}

Herramientas

Correo (mail_*)

HerramientaDescripción
health_checkVerificar conexión y autenticación
mail_list_mailboxesListar todas las bandejas de entrada (carpetas/etiquetas)
mail_create_mailboxCrear una bandeja de entrada
mail_rename_mailboxRenombrar una bandeja de entrada
mail_delete_mailboxEliminar una bandeja de entrada
mail_get_emailObtener correo por ID (con encabezados opcionales)
mail_get_recent_emailsObtener correos recientes
mail_search_emailsBuscar por consulta
mail_search_snippetsFragmentos resaltados de resultados de búsqueda
mail_get_email_threadObtener hilo completo
mail_mark_email_readMarcar como leído/no leído
mail_pin_emailFijar/desfijar (marcar/estrella)
mail_move_emailMover a bandeja de entrada
mail_delete_emailMover a la papelera o eliminar permanentemente
mail_archive_emailArchivar
mail_manage_email_labelsAñadir/eliminar palabras clave
mail_export_emailDescargar archivo .eml sin procesar
mail_import_emailImportar .eml al almacén de correo
mail_parse_emailAnalizar un blob como correo sin importar
mail_list_identitiesListar identidades de envío
mail_set_identityCrear/actualizar/eliminar identidades
mail_send_emailEnviar nuevo correo
mail_reply_to_emailResponder al correo
mail_forward_emailReenviar correo
mail_list_masked_emailsListar correos enmascarados
mail_create_masked_emailCrear correo enmascarado
mail_update_masked_emailActualizar estado, dominio, descripción o URL del correo enmascarado
mail_download_attachmentDescargar adjunto
mail_upload_attachmentSubir blob para envío

Contactos (contacts_*)

HerramientaDescripción
contacts_list_address_booksListar libretas de direcciones
contacts_listListar contactos (combinación de consulta y obtención)
contacts_get_contactObtener contacto(s) por ID
contacts_query_contactsConsultar contactos con filtros y ordenación
contacts_create_contactCrear contacto
contacts_update_contactActualizar campos de contacto
contacts_delete_contactEliminar contacto(s)

Calendario (calendar_*)

HerramientaDescripción
calendar_list_calendarsListar calendarios
calendar_list_eventsListar eventos
calendar_get_eventObtener detalles del evento
calendar_create_eventCrear evento
calendar_update_eventActualizar evento
calendar_delete_eventEliminar evento

Archivos (files_*)

HerramientaDescripción
files_listListar archivos/carpetas
files_getDescargar archivo
files_uploadSubir archivo
files_create_folderCrear carpeta
files_moveMover/renombrar archivo
files_deleteEliminar archivo/carpeta

Desarrollo

git clone https://github.com/pjosols/pyfastmail-mcp.git
cd pyfastmail-mcp
uv sync --group dev
uv run pytest

Licencia

MIT