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.
No se requiere SDK. MCPEmails habla MCP estándar sobre HTTP, así que encaja en cualquier agente compatible con MCP.
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 →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_AbCdEfGhIjKlMnOpQrStUvWxYz123456Elige 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.
# 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.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.Todo el tráfico va a un único endpoint Streamable HTTP. Autentícate con un token bearer de tu panel.
https://mcpemails.com/api/mcpEnvía un cuerpo de petición JSON-RPC 2.0. Métodos admitidos: initialize, tools/list, tools/call.
structuredContentcurl -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": {}
}
}'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).
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.
https://mcpemails.com/api/mcp como la URL del servidorCó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.
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:emailemail_readread:emailsearch:emailemail_organizemanage:folderssend:emailemail_deletedelete:emailemail_composesend:emailfolderread:emailmanage:foldersdraftmanage:draftsscheduleschedule:emailcontact_searchmanage:contactssignatureread:emailsend:emailinbox_listread:emailDevuelve 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
provider | enum | opcional | Filtro 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_capabilities | boolean | opcional | Si 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:emailLee, 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
action | enum | obligatorio | Qué 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_id | string (uuid) | opcional | UUID 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. |
inbox | string | opcional | Dirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id. |
message_id | string | opcional | ID de mensaje del proveedor a leer (action 'read' o 'attachment'), de un list o search previo. |
message_ids | array[string] | opcional | IDs de mensaje del proveedor a leer (action 'read_batch'), de un list o search previo. Máx. 50 por llamada. |
folder | string | opcional | Carpeta a listar (action 'list'). Por defecto "INBOX". Otros valores: "SENT", "DRAFTS", "TRASH". |
unread_only | boolean | opcional | Devolver solo mensajes no leídos (action 'list'). Por defecto false. |
limit | integer | opcional | Máximo de resultados a devolver (action 'list' o 'search'). Por defecto 20, máx. 100. |
offset | integer | opcional | Desplazamiento de paginación basado en cero (action 'list' o 'search'). Por defecto 0. |
include_html | boolean | opcional | Incluir el cuerpo HTML saneado (action 'read'/'read_batch'). Por defecto false. |
include_attachments | boolean | opcional | Incluir 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_read | boolean | opcional | Marcar el mensaje (o mensajes) como leído tras obtenerlo (action 'read'/'read_batch'). Por defecto false. |
from | string | opcional | Remitente a coincidir (action 'search'): dirección de correo, nombre visible o fragmento (p. ej. "alice@example.com" o "Alice"). |
to | string | opcional | Destinatario principal (To) a coincidir (action 'search'): dirección de correo, nombre visible o fragmento. |
cc | string | opcional | Destinatario en copia (Cc) a coincidir (action 'search'): dirección de correo, nombre visible o fragmento. |
subject | string | opcional | Texto a coincidir en el asunto (action 'search'). Las frases de varias palabras se coinciden tal cual. |
body | string | opcional | Texto libre a encontrar en el cuerpo del mensaje (action 'search'). (En Gmail esto coincide con todo el mensaje, no solo el cuerpo.) |
text | string | opcional | Texto libre a coincidir en cualquier parte del mensaje — cabeceras y cuerpo (action 'search'). |
unread | boolean | opcional | Action 'search': true = solo mensajes no leídos; false = solo leídos; omítelo para ambos. |
has_attachment | boolean | opcional | Action 'search': true = solo mensajes con adjunto. No admitido en IMAP genérico (se ignora ahí). |
flagged | boolean | opcional | Action 'search': true = solo mensajes marcados/destacados. No admitido en Outlook/Graph (se ignora ahí). |
since | string (ISO date) | opcional | Fecha o fecha-hora ISO 8601 (action 'search'); devuelve mensajes recibidos en/después de (>=) este instante. P. ej. "2026-06-01". |
before | string (ISO date) | opcional | Fecha o fecha-hora ISO 8601 (action 'search'); devuelve mensajes recibidos estrictamente antes de (<) este instante. |
query | string | opcional | Cadena 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_folders | array | opcional | Restringe una búsqueda a estos nombres de carpeta (action 'search'). Por defecto: buscar en todas las carpetas. |
email_organizemanage:folderssend:emailMueve, 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
action | enum | obligatorio | Qué 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_id | string (uuid) | opcional | UUID 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. |
inbox | string | opcional | Dirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id. |
message_id | string | opcional | ID de mensaje del proveedor para una acción de un solo mensaje (move, copy, archive), de un list, read o search previo. |
message_ids | array[string] | opcional | IDs de mensaje del proveedor para una acción por lotes (move_batch, copy_batch, flag). Máx. 500 por llamada. |
destination_folder_id | string | opcional | Carpeta 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_action | enum | opcional | Para 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. |
from | string | opcional | Remitente a coincidir (search_and_move): dirección de correo, nombre visible o fragmento. |
to | string | opcional | Destinatario principal (To) a coincidir (search_and_move): dirección de correo, nombre visible o fragmento. |
cc | string | opcional | Destinatario en copia (Cc) a coincidir (search_and_move): dirección de correo, nombre visible o fragmento. |
subject | string | opcional | Texto a coincidir en el asunto (search_and_move). |
body | string | opcional | Texto libre a encontrar en el cuerpo del mensaje (search_and_move). (En Gmail esto coincide con todo el mensaje.) |
text | string | opcional | Texto libre a coincidir en cualquier parte del mensaje — cabeceras y cuerpo (search_and_move). |
unread | boolean | opcional | Acciones de búsqueda: true = solo no leídos; false = solo leídos; omítelo para ambos. |
has_attachment | boolean | opcional | Acciones de búsqueda: true = solo mensajes con adjunto. No admitido en IMAP genérico (se ignora ahí). |
flagged | boolean | opcional | Acciones de búsqueda: true = solo mensajes marcados/destacados. No admitido en Outlook/Graph (se ignora ahí). |
since | string (ISO date) | opcional | Fecha o fecha-hora ISO 8601 (acciones de búsqueda); coincide con mensajes recibidos en/después de (>=) este instante. |
before | string (ISO date) | opcional | Fecha o fecha-hora ISO 8601 (acciones de búsqueda); coincide con mensajes recibidos estrictamente antes de (<) este instante. |
query | string | opcional | Cadena de consulta nativa del proveedor (acciones de búsqueda, recurso de emergencia). Prefiere los campos estructurados de arriba. Se ignora en Fastmail. |
include_folders | array | opcional | Restringe la búsqueda a estos nombres de carpeta (acciones de búsqueda). Por defecto: todas las carpetas. |
limit | integer | opcional | Para search_and_move: número máximo de coincidencias sobre las que actuar. Por defecto 500, máx. 500. |
email_deletedelete:emailElimina 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
action | enum | obligatorio | Qué operación realizar: "delete", "delete_batch" o "search_and_delete". Determina qué otros argumentos se aplican. |
inbox_id | string (uuid) | opcional | UUID 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. |
inbox | string | opcional | Dirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id. |
message_id | string | opcional | ID de mensaje del proveedor para una eliminación individual (action 'delete'), de un list, read o search previo. |
message_ids | array[string] | opcional | IDs de mensaje del proveedor para una eliminación por lotes (action 'delete_batch'). Máx. 500 por llamada. |
permanent | boolean | opcional | Si 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. |
from | string | opcional | Remitente a coincidir (search_and_delete): dirección de correo, nombre visible o fragmento. |
to | string | opcional | Destinatario principal (To) a coincidir (search_and_delete): dirección de correo, nombre visible o fragmento. |
cc | string | opcional | Destinatario en copia (Cc) a coincidir (search_and_delete): dirección de correo, nombre visible o fragmento. |
subject | string | opcional | Texto a coincidir en el asunto (search_and_delete). |
body | string | opcional | Texto libre a encontrar en el cuerpo del mensaje (search_and_delete). (En Gmail esto coincide con todo el mensaje.) |
text | string | opcional | Texto libre a coincidir en cualquier parte del mensaje — cabeceras y cuerpo (search_and_delete). |
unread | boolean | opcional | Acción de búsqueda: true = solo no leídos; false = solo leídos; omítelo para ambos. |
has_attachment | boolean | opcional | Acción de búsqueda: true = solo mensajes con adjunto. No admitido en IMAP genérico (se ignora ahí). |
flagged | boolean | opcional | Acción de búsqueda: true = solo mensajes marcados/destacados. No admitido en Outlook/Graph (se ignora ahí). |
since | string (ISO date) | opcional | Fecha o fecha-hora ISO 8601 (acción de búsqueda); coincide con mensajes recibidos en/después de (>=) este instante. |
before | string (ISO date) | opcional | Fecha o fecha-hora ISO 8601 (acción de búsqueda); coincide con mensajes recibidos estrictamente antes de (<) este instante. |
query | string | opcional | Cadena de consulta nativa del proveedor (acción de búsqueda, recurso de emergencia). Prefiere los campos estructurados de arriba. Se ignora en Fastmail. |
include_folders | array | opcional | Restringe la búsqueda a estos nombres de carpeta (acción de búsqueda). Por defecto: todas las carpetas. |
limit | integer | opcional | Para search_and_delete: número máximo de coincidencias sobre las que actuar. Por defecto 500, máx. 500. |
email_composesend:emailEnví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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
action | enum | obligatorio | Qué operación realizar: "send", "reply" o "forward". Determina qué otros argumentos se aplican. |
inbox_id | string (uuid) | opcional | UUID 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. |
inbox | string | opcional | Dirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id. |
message_id | string | opcional | ID de mensaje del proveedor del mensaje original (action 'reply' o 'forward'), de un list, read o search previo. |
to | array[string] | opcional | Direcciones de correo de los destinatarios (obligatorio para 'send' y 'forward'). Máx. 50. |
subject | string | opcional | Asunto del correo (action 'send'). Máx. 998 caracteres. En reply/forward se deriva del original. |
body | string | opcional | Cuerpo de texto. Para 'reply' es tu respuesta; para 'forward' una nota opcional antepuesta al mensaje reenviado. |
cc | array[string] | opcional | Destinatarios en copia (send, forward). Por defecto []. |
bcc | array[string] | opcional | Destinatarios en copia oculta (send, forward). Por defecto []. |
html_body | string | opcional | Versión HTML del cuerpo (multipart/alternative). Quien llama es responsable de un HTML seguro. |
reply_to | string | opcional | Dirección de la cabecera Reply-To (action 'send'). |
reply_all | boolean | opcional | Responder a todos los destinatarios originales — To + Cc (action 'reply'). Por defecto false. |
include_attachments | boolean | opcional | Readjuntar los adjuntos del mensaje original (action 'forward'). Los archivos que superen el presupuesto de 10 MB se omiten. Por defecto false. |
include_signature | boolean | opcional | Si 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. |
attachments | array | opcional | Archivos adjuntos. Cada elemento: { filename, mime_type, data (base64) }. Máx. 20 elementos, 10 MB en total. |
folderread:emailmanage:foldersGestiona 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
action | enum | obligatorio | Qué operación realizar: "list", "create", "rename" o "delete". Determina qué otros argumentos se aplican y qué permiso se requiere. |
inbox_id | string (uuid) | opcional | UUID 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. |
inbox | string | opcional | Dirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id. |
name | string | opcional | Nombre de la nueva carpeta o etiqueta (action 'create'). 1–255 caracteres. |
folder_id | string | opcional | ID de carpeta/etiqueta nativo del proveedor (action 'rename' o 'delete'), de la acción list de folder. |
new_name | string | opcional | Nuevo nombre visible (action 'rename'). 1–255 caracteres. |
draftmanage:draftsGestiona 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
action | enum | obligatorio | Qué operación realizar: "list", "create", "update" o "send". Determina qué otros argumentos se aplican. |
inbox_id | string (uuid) | opcional | UUID 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. |
inbox | string | opcional | Dirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id. |
draft_id | string | opcional | ID 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. |
subject | string | opcional | Asunto del borrador (action 'create'/'update'). |
body | string | opcional | Cuerpo de texto del borrador (action 'create'/'update'). |
to | array[string] | opcional | Direcciones de destinatarios (action 'create'/'update'). Por defecto []. |
cc | array[string] | opcional | Destinatarios en copia (action 'create'/'update'). Por defecto []. |
bcc | array[string] | opcional | Destinatarios en copia oculta (action 'create'/'update'). Por defecto []. |
html_body | string | opcional | Cuerpo HTML opcional (action 'create'/'update'). |
include_signature | boolean | opcional | Si 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. |
limit | integer | opcional | Número máximo de borradores a devolver (action 'list'). Por defecto 20, máx. 50. |
scheduleschedule:emailPrograma 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
action | enum | obligatorio | Qué operación realizar: "create", "list" o "cancel". Determina qué otros argumentos se aplican. |
inbox_id | string (uuid) | opcional | UUID 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. |
inbox | string | opcional | Dirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id. |
to | array[string] | opcional | Direcciones de correo de los destinatarios (action 'create'). Máx. 50. |
subject | string | opcional | Asunto del correo (action 'create'). Máx. 998 caracteres. |
body | string | opcional | Cuerpo de texto del correo (action 'create'). |
send_at | string (ISO 8601) | opcional | Fecha-hora ISO 8601 con zona horaria a la que enviar (action 'create'). Debe estar en el futuro, p. ej. "2026-06-02T09:00:00Z". |
cc | array[string] | opcional | Destinatarios en copia (action 'create'). Por defecto []. |
bcc | array[string] | opcional | Destinatarios en copia oculta (action 'create'). Por defecto []. |
html_body | string | opcional | Versión HTML opcional del cuerpo (action 'create'). |
reply_to | string | opcional | Dirección opcional de la cabecera Reply-To (action 'create'). |
attachments | array | opcional | Archivos adjuntos (action 'create'). Mismo esquema que la acción send. Máx. 20 elementos, 10 MB en total. |
scheduled_send_id | string (uuid) | opcional | UUID del envío programado a cancelar (action 'cancel'). |
limit | integer | opcional | Número máximo de resultados (action 'list'). Por defecto 20, máx. 100. |
contact_searchmanage:contactsEncuentra correspondientes por nombre o correo con un escaneo en vivo de tu buzón — no hay una lista de contactos almacenada. Cada llamada escanea una ventana reciente de correo coincidente y devuelve las personas que coinciden, ordenadas por contacto más reciente, cada una con nombre visible, correo, recuento de mensajes coincidentes y marca de tiempo del último contacto. Los recuentos reflejan los mensajes coincidentes en esa ventana, no todo tu historial, y nada se almacena entre llamadas.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
query | string | obligatorio | Fragmento de nombre o correo, coincidido sin distinguir mayúsculas/minúsculas con el nombre visible y la dirección. Al menos 1 carácter. |
inbox_id | string (uuid) | opcional | Opcional. Restringe el escaneo en vivo a una bandeja. Omítelo para escanear las bandejas a las que la clave tiene acceso (un número acotado). |
inbox | string | opcional | Dirección de correo de la bandeja a la que restringir, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id. |
limit | integer | opcional | Número máximo de contactos a devolver. Por defecto 20, máx. 50. |
signatureread:emailsend:emailLee 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
action | enum | obligatorio | Qué operación realizar: "get" (leer la firma actual) o "set" (escribirla). Determina qué otros argumentos se aplican y qué permiso se requiere. |
inbox_id | string (uuid) | opcional | UUID 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. |
inbox | string | opcional | Dirección de correo de la bandeja a usar, como alternativa práctica a inbox_id. Opcional; se ignora si se indica inbox_id. |
signature_text | string | opcional | Cuerpo 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_html | string | opcional | Cuerpo 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_enabled | boolean | opcional | Si 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_mode | enum | opcional | Cuá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". |
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ódigo | Tipo | Cuándo ocurre | Reintentable |
|---|---|---|---|
-32001 | JSON-RPC error | Clave 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 |
-32601 | JSON-RPC error | Método JSON-RPC desconocido (p. ej. llamar a un método distinto de initialize, tools/list, tools/call) | No |
-32602 | JSON-RPC error | Nombre de herramienta desconocido, o parámetro ausente / inválido en tools/call | No |
-32029 | JSON-RPC error | Lí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: true | Tool result | La 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 |
// 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
}
}
}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.
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.
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.
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.