Documentación

Tu agente tiene una bandeja de entrada
en cuatro pasos.

Conecta cualquier cuenta de correo, pega una URL en un cliente MCP con OAuth y autoriza. Los clientes sin OAuth usan una clave de API en su lugar. Referencia completa de herramientas y guía de conexión más abajo.

Inicio rápidoOAuth (claude.ai)Referencia de herramientasSoporte de proveedores
Inicio rápido

En marcha en minutos.

No se requiere SDK. MCPEmails habla MCP estándar sobre HTTP, así que encaja en cualquier agente compatible con MCP.

01Regístrate y conecta una bandeja

Crea tu cuenta y conecta Gmail

Regístrate en mcpemails.com, luego ve a Panel → Bandejas → Conectar bandeja. Elige Gmail, iCloud, Fastmail o cualquier bandeja IMAP, después completa el flujo de OAuth o pega una contraseña de aplicación. Tu bandeja queda lista en menos de un minuto.

Conecta tu bandeja de entrada →
02Crea una clave de API

Genera un token bearer para tu agente

En Panel → Claves de API, haz clic en «Crear clave». Ponle nombre, selecciona los ámbitos que tu agente necesita — read:email, search:email, send:email, manage:folders, delete:email, manage:drafts, manage:contacts y schedule:email — y copia la clave. Solo se muestra una vez.

# Your key looks like this:
mcpe_live_AbCdEfGhIjKlMnOpQrStUvWxYz123456
03Añade MCPEmails a tu agente

Pega el endpoint MCP en tu cliente

Elige la pestaña de tu cliente más abajo. Los clientes MCP con soporte de OAuth 2.0 (claude.ai, Claude Desktop, Cursor y otros) solo pegan la URL y autorizan, sin necesidad de clave de API. Los clientes sin OAuth, además del acceso por scripts, usan la clave de API del paso 02.

json
# OAuth-capable clients (claude.ai, Claude Desktop, Cursor…)
# No API key required. Paste the URL, click Connect, authorize.
#
# Example: claude.ai
#   1. Go to claude.ai → Customize → Connectors
#   2. Click "Add connector" and paste this URL:
#
#        https://mcpemails.com/api/mcp
#
#   3. Click Connect and sign in with your mcpemails account.
#   4. Every tool your approved scopes allow is live immediately.
#
# Claude Desktop and Cursor follow the same OAuth flow when
# the server URL is configured in their MCP settings.
04Haz tu primera llamada

Pídele a tu agente que revise tu bandeja

Sin copiar y pegar UUIDs de bandejas. Tu agente llama primero a inbox_list para descubrir cada bandeja conectada y su UUID, y luego le preguntas: «Revisa mi bandeja y resume los últimos 5 mensajes no leídos.»

# The agent calls inbox_list first, so no hardcoded UUIDs.
# System prompt (optional, for multi-inbox setups):
You have access to email via MCPEmails.
Start by calling inbox_list to discover available inboxes.
Endpoint

Una URL, MCP estándar.

Todo el tráfico va a un único endpoint Streamable HTTP. Autentícate con un token bearer de tu panel.

POSThttps://mcpemails.com/api/mcp

Envía un cuerpo de petición JSON-RPC 2.0. Métodos admitidos: initialize, tools/list, tools/call.

Transporte: Streamable HTTP (MCP 2025-06-18)
Autenticación: Authorization: Bearer <api-key>
Límites de tasa: 100 pet/min · 1.000/h · 10.000/día por clave
Formato de respuesta: JSON-RPC 2.0 — los resultados correctos también incluyen un objeto tipado structuredContent
Handshake de inicialización
bash
curl -X POST https://mcpemails.com/api/mcp \
  -H "Authorization: Bearer mcpe_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "clientInfo": { "name": "my-agent", "version": "1.0" },
      "capabilities": {}
    }
  }'
Sondeo, no push

MCPEmails es solo de petición/respuesta: cada resultado proviene de una llamada a una herramienta que hace tu agente. No hay webhooks, notificaciones push ni eventos iniciados por el servidor: un correo entrante nunca activa por sí solo una llamada del agente. Para reaccionar al correo nuevo, haz que tu agente sondee de forma periódica, p. ej. llamando a email_read con action: "list" y unread_only: true al intervalo que necesite tu flujo (ten en cuenta los límites de tasa anteriores).

Conexión OAuth

Cero configuración para clientes con OAuth.

Los clientes MCP que admiten OAuth 2.0 (claude.ai, Claude Desktop, Cursor y otros) se conectan automáticamente mediante código de autorización + PKCE. Sin clave de API, sin archivo de configuración. Pega la URL y haz clic en Conectar.

Paso 1: Ve a claude.ai → Personalizar → Conectores → Añadir conector
Paso 2: Pega https://mcpemails.com/api/mcp como la URL del servidor
Paso 3: Haz clic en Conectar. MCPEmails abre una pantalla de autorización
Paso 4: Inicia sesión con tu cuenta de mcpemails y aprueba el acceso
Listo: Todas las herramientas que permiten los alcances aprobados están activas. claude.ai actualiza los tokens automáticamente

Cómo funciona internamente

claude.ai se registra a sí mismo mediante el Registro dinámico de clientes RFC 7591, así que nunca pre-registras un ID de cliente.

La autorización usa Código de autorización OAuth 2.0 + PKCE (RFC 7636), así que nunca se transmite ningún secreto de cliente.

Los tokens se limitan exactamente a los permisos que apruebas — read:email, search:email, send:email, manage:folders, delete:email, manage:drafts, manage:contacts y schedule:email.

¿Usas un cliente sin soporte de OAuth? Crea una clave de API en Panel → Claves de API y pásala como token bearer. Las conexiones por clave de API y por OAuth usan el mismo endpoint MCP y el mismo catálogo de herramientas.
Referencia de herramientas

10 herramientas. Todas las operaciones de correo que tu agente necesita.

Indicar una bandeja es opcional. Cuando tu clave tiene exactamente una bandeja, cada herramienta por bandeja la resuelve automáticamente — no hace falta inbox_id. Con varias bandejas, pasa inbox_id (el UUID de inbox_list) o inbox (la dirección de la bandeja). La mayoría de las herramientas toman un argumento action que selecciona la operación; las insignias muestran los permisos que necesita cada una, y tools/list solo devuelve las herramientas para las que tu clave (o token OAuth) tiene permiso. Haz clic en «Mostrar ejemplo» para ver una petición y respuesta completas.

inbox_listread:email

Devuelve todas las bandejas a las que la clave API u OAuth actual tiene acceso. Llama a esta primero para descubrir los valores de inbox_id, así nunca copias UUID desde el panel. Cada resultado incluye la dirección de correo, el proveedor, una marca de servicio opcional (icloud/yahoo/zoho/yandex/generic/fastmail) y un objeto capabilities que describe qué funciones admite esa bandeja.

ParámetroTipoObligatorioDescripción
providerenumopcionalFiltro opcional — devuelve solo las bandejas servidas por este proveedor. Uno de: gmail, fastmail, imap. Omítelo para listar todas las bandejas a las que la clave tiene acceso.
include_capabilitiesbooleanopcionalSi cada bandeja incluye su objeto capabilities (qué funciones admite). Por defecto true; ponlo en false para una lista compacta con solo inbox_id, dirección de correo, nombre visible, proveedor y marca de servicio.
email_readread:emailsearch:email

Lee, lista y busca mensajes en una bandeja. Define action: 'list' para resúmenes de mensajes recientes (más nuevos primero, con filtro por carpeta/no leídos y paginación), 'read' para el contenido completo de un message_id (cuerpo de texto, HTML saneado opcional y adjuntos), 'read_batch' para obtener hasta 50 message_ids en una sola llamada, 'search' para filtros estructurados e independientes del proveedor (from, to, cc, subject, body, text, unread, has_attachment, flagged, since, before), o 'attachment' para descargar un único adjunto (por attachment_index o filename) como datos base64 — hasta 25 MB. Solo lectura — nunca cambia nada. La acción 'search' también se desbloquea por sí sola con el permiso más limitado search:email.

ParámetroTipoObligatorioDescripción
actionenumobligatorioQué operación realizar: "list" (resúmenes de mensajes recientes), "read" (contenido completo de un message_id), "read_batch" (varios message_ids), "search" (filtros estructurados) o "attachment" (descargar un adjunto como base64). Determina qué otros argumentos se aplican.
inbox_idstring (uuid)opcionalUUID de la bandeja desde la que leer. Opcional — se resuelve automáticamente cuando la clave tiene exactamente una bandeja; si no, pasa este o inbox. Llama a inbox_list para descubrir los IDs de bandeja.
inboxstringopcionalDirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id.
message_idstringopcionalID de mensaje del proveedor a leer (action 'read' o 'attachment'), de un list o search previo.
message_idsarray[string]opcionalIDs de mensaje del proveedor a leer (action 'read_batch'), de un list o search previo. Máx. 50 por llamada.
folderstringopcionalCarpeta a listar (action 'list'). Por defecto "INBOX". Otros valores: "SENT", "DRAFTS", "TRASH".
unread_onlybooleanopcionalDevolver solo mensajes no leídos (action 'list'). Por defecto false.
limitintegeropcionalMáximo de resultados a devolver (action 'list' o 'search'). Por defecto 20, máx. 100.
offsetintegeropcionalDesplazamiento de paginación basado en cero (action 'list' o 'search'). Por defecto 0.
include_htmlbooleanopcionalIncluir el cuerpo HTML saneado (action 'read'/'read_batch'). Por defecto false.
include_attachmentsbooleanopcionalIncluir datos de adjuntos en base64 (action 'read'/'read_batch'). En 'read_batch' el total de 10 MB se comparte entre todos los mensajes de la llamada. Por defecto false.
mark_as_readbooleanopcionalMarcar el mensaje (o mensajes) como leído tras obtenerlo (action 'read'/'read_batch'). Por defecto false.
fromstringopcionalRemitente a coincidir (action 'search'): dirección de correo, nombre visible o fragmento (p. ej. "alice@example.com" o "Alice").
tostringopcionalDestinatario principal (To) a coincidir (action 'search'): dirección de correo, nombre visible o fragmento.
ccstringopcionalDestinatario en copia (Cc) a coincidir (action 'search'): dirección de correo, nombre visible o fragmento.
subjectstringopcionalTexto a coincidir en el asunto (action 'search'). Las frases de varias palabras se coinciden tal cual.
bodystringopcionalTexto libre a encontrar en el cuerpo del mensaje (action 'search'). (En Gmail esto coincide con todo el mensaje, no solo el cuerpo.)
textstringopcionalTexto libre a coincidir en cualquier parte del mensaje — cabeceras y cuerpo (action 'search').
unreadbooleanopcionalAction 'search': true = solo mensajes no leídos; false = solo leídos; omítelo para ambos.
has_attachmentbooleanopcionalAction 'search': true = solo mensajes con adjunto. No admitido en IMAP genérico (se ignora ahí).
flaggedbooleanopcionalAction 'search': true = solo mensajes marcados/destacados. No admitido en Outlook/Graph (se ignora ahí).
sincestring (ISO date)opcionalFecha o fecha-hora ISO 8601 (action 'search'); devuelve mensajes recibidos en/después de (>=) este instante. P. ej. "2026-06-01".
beforestring (ISO date)opcionalFecha o fecha-hora ISO 8601 (action 'search'); devuelve mensajes recibidos estrictamente antes de (<) este instante.
querystringopcionalCadena de consulta nativa del proveedor (action 'search', recurso de emergencia). Prefiere los campos estructurados de arriba. Se combina con ellos donde se admite; se ignora en Fastmail.
include_foldersarrayopcionalRestringe una búsqueda a estos nombres de carpeta (action 'search'). Por defecto: buscar en todas las carpetas.
email_organizemanage:folderssend:email

Mueve, copia, marca o archiva mensajes. Define action: 'move'/'move_batch' (a un destination_folder_id), 'copy'/'copy_batch' (duplica en un destination_folder_id, dejando el original en su lugar; solo IMAP, Outlook y Fastmail), 'flag' (establece leído/no leído/destacado mediante flag_action sobre message_ids), 'archive' (saca de la bandeja de entrada, no destructivo), o 'search_and_move' (aplica a cada mensaje que coincida con una búsqueda estructurada, lo que evita IDs de mensaje obsoletos). Cada acción necesita el permiso que le corresponde: manage:folders para mover y copiar, send:email para flag/archive. Eliminar mensajes vive en su propia herramienta email_delete.

ParámetroTipoObligatorioDescripción
actionenumobligatorioQué operación realizar: "move", "move_batch", "copy", "copy_batch", "flag", "archive" o "search_and_move". Determina qué otros argumentos se aplican y qué permiso se requiere.
inbox_idstring (uuid)opcionalUUID de la bandeja que contiene los mensajes. Opcional — se resuelve automáticamente cuando la clave tiene exactamente una bandeja; si no, pasa este o inbox. Llama a inbox_list para obtener los IDs de bandeja disponibles.
inboxstringopcionalDirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id.
message_idstringopcionalID de mensaje del proveedor para una acción de un solo mensaje (move, copy, archive), de un list, read o search previo.
message_idsarray[string]opcionalIDs de mensaje del proveedor para una acción por lotes (move_batch, copy_batch, flag). Máx. 500 por llamada.
destination_folder_idstringopcionalCarpeta de destino (move, move_batch, copy, copy_batch, search_and_move): un alias canónico (inbox, sent, drafts, trash, archive, spam), un nombre de carpeta/etiqueta (p. ej. 'Receipts') o un ID de carpeta nativo del proveedor de la acción list de folder. Los nombres y alias se resuelven automáticamente.
flag_actionenumopcionalPara action 'flag': el cambio a aplicar a cada mensaje — "read" o "unread" para fijar el estado de lectura, o "flag"/"unflag" para añadir o quitar una estrella/marca de seguimiento.
fromstringopcionalRemitente a coincidir (search_and_move): dirección de correo, nombre visible o fragmento.
tostringopcionalDestinatario principal (To) a coincidir (search_and_move): dirección de correo, nombre visible o fragmento.
ccstringopcionalDestinatario en copia (Cc) a coincidir (search_and_move): dirección de correo, nombre visible o fragmento.
subjectstringopcionalTexto a coincidir en el asunto (search_and_move).
bodystringopcionalTexto libre a encontrar en el cuerpo del mensaje (search_and_move). (En Gmail esto coincide con todo el mensaje.)
textstringopcionalTexto libre a coincidir en cualquier parte del mensaje — cabeceras y cuerpo (search_and_move).
unreadbooleanopcionalAcciones de búsqueda: true = solo no leídos; false = solo leídos; omítelo para ambos.
has_attachmentbooleanopcionalAcciones de búsqueda: true = solo mensajes con adjunto. No admitido en IMAP genérico (se ignora ahí).
flaggedbooleanopcionalAcciones de búsqueda: true = solo mensajes marcados/destacados. No admitido en Outlook/Graph (se ignora ahí).
sincestring (ISO date)opcionalFecha o fecha-hora ISO 8601 (acciones de búsqueda); coincide con mensajes recibidos en/después de (>=) este instante.
beforestring (ISO date)opcionalFecha o fecha-hora ISO 8601 (acciones de búsqueda); coincide con mensajes recibidos estrictamente antes de (<) este instante.
querystringopcionalCadena de consulta nativa del proveedor (acciones de búsqueda, recurso de emergencia). Prefiere los campos estructurados de arriba. Se ignora en Fastmail.
include_foldersarrayopcionalRestringe la búsqueda a estos nombres de carpeta (acciones de búsqueda). Por defecto: todas las carpetas.
limitintegeropcionalPara search_and_move: número máximo de coincidencias sobre las que actuar. Por defecto 500, máx. 500.
email_deletedelete:email

Elimina mensajes — su propia herramienta, separada de email_organize, porque eliminar es destructivo. Define action: 'delete'/'delete_batch' (Papelera por defecto, o permanente), o 'search_and_delete' (elimina cada mensaje que coincida con una búsqueda estructurada — evita IDs de mensaje obsoletos). Las eliminaciones van a la Papelera salvo que pases permanent: true, que es irreversible. Cada acción necesita el permiso delete:email, y toda la herramienta se marca como destructiva ante tu cliente MCP, que gestiona la confirmación del usuario antes de eliminar nada.

ParámetroTipoObligatorioDescripción
actionenumobligatorioQué operación realizar: "delete", "delete_batch" o "search_and_delete". Determina qué otros argumentos se aplican.
inbox_idstring (uuid)opcionalUUID de la bandeja que contiene los mensajes. Opcional — se resuelve automáticamente cuando la clave tiene exactamente una bandeja; si no, pasa este o inbox. Llama a inbox_list para obtener los IDs de bandeja disponibles.
inboxstringopcionalDirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id.
message_idstringopcionalID de mensaje del proveedor para una eliminación individual (action 'delete'), de un list, read o search previo.
message_idsarray[string]opcionalIDs de mensaje del proveedor para una eliminación por lotes (action 'delete_batch'). Máx. 500 por llamada.
permanentbooleanopcionalSi es true, elimina de forma definitiva (omite la Papelera; puede ser irreversible); si es false u omitido, mueve a la Papelera. La eliminación permanente está disponible en IMAP y Fastmail; Gmail y Outlook solo admiten papelera. Por defecto false.
fromstringopcionalRemitente a coincidir (search_and_delete): dirección de correo, nombre visible o fragmento.
tostringopcionalDestinatario principal (To) a coincidir (search_and_delete): dirección de correo, nombre visible o fragmento.
ccstringopcionalDestinatario en copia (Cc) a coincidir (search_and_delete): dirección de correo, nombre visible o fragmento.
subjectstringopcionalTexto a coincidir en el asunto (search_and_delete).
bodystringopcionalTexto libre a encontrar en el cuerpo del mensaje (search_and_delete). (En Gmail esto coincide con todo el mensaje.)
textstringopcionalTexto libre a coincidir en cualquier parte del mensaje — cabeceras y cuerpo (search_and_delete).
unreadbooleanopcionalAcción de búsqueda: true = solo no leídos; false = solo leídos; omítelo para ambos.
has_attachmentbooleanopcionalAcción de búsqueda: true = solo mensajes con adjunto. No admitido en IMAP genérico (se ignora ahí).
flaggedbooleanopcionalAcción de búsqueda: true = solo mensajes marcados/destacados. No admitido en Outlook/Graph (se ignora ahí).
sincestring (ISO date)opcionalFecha o fecha-hora ISO 8601 (acción de búsqueda); coincide con mensajes recibidos en/después de (>=) este instante.
beforestring (ISO date)opcionalFecha o fecha-hora ISO 8601 (acción de búsqueda); coincide con mensajes recibidos estrictamente antes de (<) este instante.
querystringopcionalCadena de consulta nativa del proveedor (acción de búsqueda, recurso de emergencia). Prefiere los campos estructurados de arriba. Se ignora en Fastmail.
include_foldersarrayopcionalRestringe la búsqueda a estos nombres de carpeta (acción de búsqueda). Por defecto: todas las carpetas.
limitintegeropcionalPara search_and_delete: número máximo de coincidencias sobre las que actuar. Por defecto 500, máx. 500.
email_composesend:email

Envía correo nuevo o responde a mensajes existentes. Define action: 'send' para un correo nuevo (to/subject/body, opcionalmente cc/bcc/html_body/reply_to/attachments), 'reply' para responder a un message_id (las cabeceras de hilo se establecen automáticamente; opcionalmente reply_all), o 'forward' para reenviar un message_id a nuevos destinatarios (opcionalmente readjuntando los archivos originales). La firma de la bandeja se añade automáticamente — en respuestas y reenvíos va después de tu texto y antes del bloque citado, regida por el modo de respuesta de la firma; pasa include_signature: false para suprimirla en un único mensaje escueto. Las tres son irreversibles una vez enviadas.

ParámetroTipoObligatorioDescripción
actionenumobligatorioQué operación realizar: "send", "reply" o "forward". Determina qué otros argumentos se aplican.
inbox_idstring (uuid)opcionalUUID de la bandeja desde la que enviar. Opcional — se resuelve automáticamente cuando la clave tiene exactamente una bandeja; si no, pasa este o inbox. Llama a inbox_list para obtener los IDs de bandeja disponibles.
inboxstringopcionalDirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id.
message_idstringopcionalID de mensaje del proveedor del mensaje original (action 'reply' o 'forward'), de un list, read o search previo.
toarray[string]opcionalDirecciones de correo de los destinatarios (obligatorio para 'send' y 'forward'). Máx. 50.
subjectstringopcionalAsunto del correo (action 'send'). Máx. 998 caracteres. En reply/forward se deriva del original.
bodystringopcionalCuerpo de texto. Para 'reply' es tu respuesta; para 'forward' una nota opcional antepuesta al mensaje reenviado.
ccarray[string]opcionalDestinatarios en copia (send, forward). Por defecto [].
bccarray[string]opcionalDestinatarios en copia oculta (send, forward). Por defecto [].
html_bodystringopcionalVersión HTML del cuerpo (multipart/alternative). Quien llama es responsable de un HTML seguro.
reply_tostringopcionalDirección de la cabecera Reply-To (action 'send').
reply_allbooleanopcionalResponder a todos los destinatarios originales — To + Cc (action 'reply'). Por defecto false.
include_attachmentsbooleanopcionalReadjuntar los adjuntos del mensaje original (action 'forward'). Los archivos que superen el presupuesto de 10 MB se omiten. Por defecto false.
include_signaturebooleanopcionalSi añadir la firma configurada de la bandeja a este mensaje. Por defecto true; ponlo en false para enviar este único mensaje sin la firma.
attachmentsarrayopcionalArchivos adjuntos. Cada elemento: { filename, mime_type, data (base64) }. Máx. 20 elementos, 10 MB en total.
folderread:emailmanage:folders

Gestiona las carpetas del buzón (etiquetas en Gmail). Define action: 'list' (cada carpeta con su ID nativo del proveedor, nombre visible, tipo y recuentos de mensajes — usa los IDs como argumento folder al listar correo y como destino de movimientos), 'create' (name), 'rename' (folder_id, new_name) o 'delete' (folder_id — irreversible; los mensajes que contenga pueden perderse según el proveedor). 'list' necesita read:email; create/rename/delete necesitan manage:folders, y delete se marca como destructivo ante tu cliente MCP.

ParámetroTipoObligatorioDescripción
actionenumobligatorioQué operación realizar: "list", "create", "rename" o "delete". Determina qué otros argumentos se aplican y qué permiso se requiere.
inbox_idstring (uuid)opcionalUUID de la bandeja cuyas carpetas se gestionan. Opcional — se resuelve automáticamente cuando la clave tiene exactamente una bandeja; si no, pasa este o inbox. Llama a inbox_list para obtener los IDs de bandeja disponibles.
inboxstringopcionalDirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id.
namestringopcionalNombre de la nueva carpeta o etiqueta (action 'create'). 1–255 caracteres.
folder_idstringopcionalID de carpeta/etiqueta nativo del proveedor (action 'rename' o 'delete'), de la acción list de folder.
new_namestringopcionalNuevo nombre visible (action 'rename'). 1–255 caracteres.
draftmanage:drafts

Gestiona los borradores en la carpeta Drafts de la bandeja. Define action: 'list' (borradores guardados, cada uno con su draft_id, asunto, destinatarios y fecha de creación), 'create' (subject/body obligatorios, opcionalmente to/cc/bcc/html_body), 'update' (draft_id más los campos a sobrescribir) o 'send' (draft_id — elimina el borrador y lo envía, irreversible). La firma de la bandeja se incrusta cuando el borrador se crea o se actualiza, así que ya está presente en la carpeta Drafts y no se vuelve a añadir al enviar; pasa include_signature: false para crear un borrador sin ella. En bandejas basadas en IMAP un draft_id cambia en cada actualización, así que usa siempre el más reciente; Gmail y Outlook mantienen un draft_id estable.

ParámetroTipoObligatorioDescripción
actionenumobligatorioQué operación realizar: "list", "create", "update" o "send". Determina qué otros argumentos se aplican.
inbox_idstring (uuid)opcionalUUID de la bandeja que contiene los borradores. Opcional — se resuelve automáticamente cuando la clave tiene exactamente una bandeja; si no, pasa este o inbox. Llama a inbox_list para obtener los IDs de bandeja disponibles.
inboxstringopcionalDirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id.
draft_idstringopcionalID de borrador del proveedor (action 'update' o 'send'), de la acción create, update o list más reciente. En bandejas IMAP cambia tras cada actualización, así que usa siempre el más reciente.
subjectstringopcionalAsunto del borrador (action 'create'/'update').
bodystringopcionalCuerpo de texto del borrador (action 'create'/'update').
toarray[string]opcionalDirecciones de destinatarios (action 'create'/'update'). Por defecto [].
ccarray[string]opcionalDestinatarios en copia (action 'create'/'update'). Por defecto [].
bccarray[string]opcionalDestinatarios en copia oculta (action 'create'/'update'). Por defecto [].
html_bodystringopcionalCuerpo HTML opcional (action 'create'/'update').
include_signaturebooleanopcionalSi incrustar la firma configurada de la bandeja en el borrador (action 'create'/'update'). Por defecto true; ponlo en false para guardar un borrador sin la firma.
limitintegeropcionalNúmero máximo de borradores a devolver (action 'list'). Por defecto 20, máx. 50.
scheduleschedule:email

Programa correo para entrega futura mediante una cola en el servidor. Define action: 'create' (to/subject/body más una marca de tiempo send_at en ISO 8601 — los destinatarios y el cuerpo se validan de inmediato, y los envíos inválidos no se encolan), 'list' (envíos programados pendientes, los más próximos primero, opcionalmente filtrados por bandeja) o 'cancel' (scheduled_send_id — solo se pueden cancelar los envíos que sigan 'pending'). El despachador se ejecuta cada minuto, por lo que la entrega puede ocurrir hasta 60 segundos después de send_at.

ParámetroTipoObligatorioDescripción
actionenumobligatorioQué operación realizar: "create", "list" o "cancel". Determina qué otros argumentos se aplican.
inbox_idstring (uuid)opcionalUUID de la bandeja desde la que enviar (action 'create') o por la que filtrar (action 'list'). Opcional — se resuelve automáticamente cuando la clave tiene exactamente una bandeja; si no, pasa este o inbox. Llama a inbox_list para obtener los IDs de bandeja disponibles.
inboxstringopcionalDirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id.
toarray[string]opcionalDirecciones de correo de los destinatarios (action 'create'). Máx. 50.
subjectstringopcionalAsunto del correo (action 'create'). Máx. 998 caracteres.
bodystringopcionalCuerpo de texto del correo (action 'create').
send_atstring (ISO 8601)opcionalFecha-hora ISO 8601 con zona horaria a la que enviar (action 'create'). Debe estar en el futuro, p. ej. "2026-06-02T09:00:00Z".
ccarray[string]opcionalDestinatarios en copia (action 'create'). Por defecto [].
bccarray[string]opcionalDestinatarios en copia oculta (action 'create'). Por defecto [].
html_bodystringopcionalVersión HTML opcional del cuerpo (action 'create').
reply_tostringopcionalDirección opcional de la cabecera Reply-To (action 'create').
attachmentsarrayopcionalArchivos adjuntos (action 'create'). Mismo esquema que la acción send. Máx. 20 elementos, 10 MB en total.
scheduled_send_idstring (uuid)opcionalUUID del envío programado a cancelar (action 'cancel').
limitintegeropcionalNúmero máximo de resultados (action 'list'). Por defecto 20, máx. 100.
signatureread:emailsend:email

Lee o configura la firma de correo de la bandeja, que se añade del lado del servidor en cada envío, respuesta, reenvío, borrador y mensaje programado. Define action: 'get' (devuelve el texto y el HTML actuales de la firma, si está habilitada, el modo de respuesta/reenvío y su origen — 'manual', 'gmail_import' o null) o 'set' (escribe signature_text o signature_html, y opcionalmente signature_enabled y signature_reply_mode). Las firmas admiten HTML enriquecido: negrita, cursiva, encabezados, listas, colores, alineación, enlaces e imágenes/logotipos alojados referenciados como URLs https, de modo que un agente puede establecer una firma con formato completo pasando signature_html. El mismo editor enriquecido está disponible en el panel. Establecer una firma marca su origen como 'manual', lo que anula de forma permanente la importación automática de Gmail para esa bandeja. 'get' necesita read:email; 'set' necesita send:email.

ParámetroTipoObligatorioDescripción
actionenumobligatorioQué operación realizar: "get" (leer la firma actual) o "set" (escribirla). Determina qué otros argumentos se aplican y qué permiso se requiere.
inbox_idstring (uuid)opcionalUUID de la bandeja cuya firma se va a leer o establecer. Opcional — se resuelve automáticamente cuando la clave tiene exactamente una bandeja; si no, pasa este o inbox. Llama a inbox_list para obtener los IDs de bandeja disponibles.
inboxstringopcionalDirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id.
signature_textstringopcionalCuerpo de la firma en texto plano (action 'set'). Omítelo para dejarlo sin cambios; pasa una cadena vacía para borrarlo. Si solo se indica el texto, al enviar se deriva automáticamente una versión HTML.
signature_htmlstringopcionalCuerpo opcional de la firma en HTML enriquecido (action 'set'). Admite formato (negrita, cursiva, subrayado, encabezados, listas, colores, alineación, enlaces) e imágenes alojadas mediante etiquetas <img> cuyo src sea una URL https (sin base64 ni CID); se sanea al guardar. Omítelo para dejarlo sin cambios; pasa una cadena vacía para borrarlo.
signature_enabledbooleanopcionalSi la firma se añade al correo saliente (action 'set'). Por defecto true; ponlo en false para dejar de añadirla sin borrar el texto.
signature_reply_modeenumopcionalCuándo incluir la firma en respuestas y reenvíos (action 'set'): "always" (cada respuesta/reenvío), "first_only" (por defecto — solo el primer mensaje de un hilo, evitando firmar por duplicado) o "never".
Códigos de error

Códigos de error y guía de reintentos.

Los fallos de autenticación, alcance y límite de tasa devuelven un objeto error JSON-RPC con un código numérico. Los fallos de ejecución de herramientas (bandeja no encontrada, error del proveedor, etc.) devuelven un result normal con isError: true y un mensaje legible en content[0].text.

CódigoTipoCuándo ocurreReintentable
-32001JSON-RPC errorClave de API ausente, malformada, revocada o caducada. También se devuelve cuando la clave de API carece del alcance requerido para la herramienta llamada.No
-32601JSON-RPC errorMétodo JSON-RPC desconocido (p. ej. llamar a un método distinto de initialize, tools/list, tools/call)No
-32602JSON-RPC errorNombre de herramienta desconocido, o parámetro ausente / inválido en tools/callNo
-32029JSON-RPC errorLímite de tasa por clave o cuota diaria del plan superados. Revisa data.error_code: "rate_limit_exceeded" vs "quota_exceeded". Revisa data.retry_after (segundos) antes de reintentar.
isError: trueTool resultLa herramienta se ejecutó pero encontró un error (bandeja no encontrada, mensaje no encontrado, fallo de autenticación del proveedor, destinatario inválido, adjunto demasiado grande, 5xx del proveedor). La descripción del error está en content[0].text.No
Ejemplo de respuesta de error de ejecución
json
// Tool execution error: inbox not found
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [{ "type": "text", "text": "Inbox not found or not accessible." }],
    "isError": true
  }
}

// Rate limit error: JSON-RPC error object with data
{
  "jsonrpc": "2.0",
  "id": 3,
  "error": {
    "code": -32029,
    "message": "Rate limit exceeded",
    "data": {
      "error_code": "rate_limit_exceeded",
      "window": "per_minute",
      "limit": 100,
      "used": 100,
      "retry_after": 34
    }
  }
}
Límites de tasa

Límites de tasa y cuotas.

Ventanas móviles por clave

100 pet / min · 1.000 / h · 10.000 / día

Aplicados por clave de API independientemente del plan. Cuando se superan, el servidor devuelve el código de error -32029 con data.error_code: "rate_limit_exceeded" y un campo data.retry_after (segundos). Respeta ese valor antes de reintentar.

Tope por minuto del plan

Gratis 60 / min · Solo 300 / min · Team 1.000 / min

El uso es ilimitado; este es un límite de ráfaga de uso justo por espacio de trabajo (agregado entre todas tus claves de API). Cuando se supera, las llamadas devuelven data.error_code: "rate_limit_exceeded" con data.window: "per_minute" y una cuenta atrás data.retry_after (segundos). Mejora tu plan para un tope más alto.

Reintentar de forma segura

Respeta siempre retry_after; nunca reintentes envíos a ciegas

Para errores rate_limit_exceeded, espera data.retry_after segundos antes de reintentar. Usa retroceso exponencial para provider_error. No reintentes automáticamente los envíos de email_compose ante provider_error, ya que el mensaje puede haber sido aceptado por el proveedor.

¿Listo para conectar tu bandeja de entrada?

Empieza en el plan Gratis: ilimitado, sin tarjeta. Mejora a Solo o Team para límites de ráfaga más altos y funciones de equipo.