Mermail
Bandejas de entrada de correo electrónico con prioridad en la privacidad para agentes de IA. Lea, busque, redacte, envíe y clasifique correos a través de Streamable HTTP MCP.
Documentación
MCP
Conecta asistentes de IA a Mermail mediante Streamable HTTP MCP con OAuth o una clave de API.
Mermail expone un servidor Model Context Protocol que envuelve la API HTTP vendida. Los asistentes llaman a los mismos endpoints con ámbito de workspace que los clientes autenticados, incluidos uso, workspaces, buzones, correo electrónico, conversaciones de agentes y triaje de tareas.
Endpoint
| Elemento | Valor |
|---|---|
| URL predeterminada del catálogo completo | https://console.mermail.app/mcp |
| URL recomendada para bandeja de entrada de agente | https://console.mermail.app/mcp?profile=agent-inbox |
| Transporte | Streamable HTTP (JSON-RPC sobre POST) |
| Autenticación | OAuth 2.1 Bearer (interactivo) o x-api-key: sk-proj-… (automatización) |
| Alternativa de cabecera | x-mermail-tool-profile: agent-inbox |
| Métodos | El tráfico de herramientas usa POST. GET no autenticado puede devolver el desafío de descubrimiento OAuth; GET y DELETE autenticados devuelven 405. |
El servidor es sin estado: no hay suscripción SSE de larga duración. Una respuesta POST negociada puede usar application/json o text/event-stream, por lo que los clientes deben aceptar ambas mientras tratan cada solicitud como sin estado.
La URL original /mcp no cambia y continúa exponiendo el catálogo completo.
Autenticación
OAuth (paridad con navegador)
Los clientes MCP que admiten OAuth descubren Mermail mediante metadatos de recurso protegido, abren la página de autorización de la consola y reciben un token de acceso Bearer después de que el usuario inicie sesión con Enoki (igual que en la aplicación web) y elija un workspace. La interfaz de consentimiento muestra un nombre de cliente amigable (por ejemplo, ChatGPT o Cursor), no el id opaco mcp_client_….
| Elemento | Valor |
|---|---|
| PRM | https://console.mermail.app/.well-known/oauth-protected-resource |
| Metadatos AS | https://console.mermail.app/.well-known/oauth-authorization-server |
| Ámbitos | mcp:tools, openid, offline_access |
Las llamadas no autenticadas devuelven 401 con un desafío WWW-Authenticate que apunta al documento PRM.
Acceso a Agent Wallet
Las herramientas de PayBox aparecen solo en la sesión OAuth predeterminada de perfil completo. Los catálogos de clave de API y el perfil agent-inbox nunca las incluyen. Un miembro actual del workspace puede usar paybox_* en vivo visible para el modelo a través de la conexión activa del propietario del workspace; la gestión de conexiones y las herramientas de compatibilidad heredadas de Agent Wallet siguen siendo solo para el propietario.
| Ámbito | Propósito |
|---|---|
mcp:tools | Acceso principal a las herramientas de Mermail. En el perfil completo, esto puede exponer herramientas de PayBox en vivo a los miembros actuales del workspace a través de la conexión activa del propietario. |
wallet:read, wallet:transact | Etiquetas de compatibilidad heredadas únicamente. No son necesarias para la visibilidad de la wallet y no reemplazan a mcp:tools. |
Conéctate al endpoint predeterminado /mcp con OAuth y selecciona el workspace previsto.
Siempre tools/call get_paybox_connection una vez como primera acción de PayBox.
No esperes a que aparezca en tools/list; la ausencia de una lista del host no significa "no expuesto". Después de una sonda usable/ACTIVE, continúa incluso si la primera lista omitió paybox_*. Reconecta Mermail MCP solo después de que esa llamada devuelva herramienta desconocida, método no encontrado o un fallo grave. Los propietarios pueden recibir connect_handoff o reauth_handoff y abrir ese console_url de Mermail Agent Wallet; los miembros en su lugar reciben OWNER_ACTION_REQUIRED cuando la conexión compartida necesita reparación, sin traspaso. En ese caso, el propietario debe conectar o reautorizar PayBox dentro de Mermail. No agregues ámbitos de wallet heredados, cambies identidades, construyas una URL ni reconectes la configuración de conectores de Claude, ChatGPT o Codex para autorizar PayBox.
Las herramientas de PayBox no usan el flujo prepare_destructive_action de Mermail. PayBox es la autoridad para delegación, concesiones permanentes, aprobación y firma. Una concesión permanente puede permitir una operación sin un clic nuevo; cuando se necesita interacción, la MCP App de PayBox la gestiona. Pendiente, SUBMISSION_UNKNOWN y paybox_continuation_origin_not_found no son éxito.
Herramientas de PayBox en vivo y UI
Mermail retransmite el catálogo en vivo de herramientas y MCP App de PayBox en lugar de mantener una lista de permitidos revisada de nombres de herramientas o hashes de esquema. Las herramientas visibles para el modelo usan paybox_<upstream-name>; los alias solo de app mantienen el nombre y la visibilidad exactos del upstream. Por lo tanto, nuevas herramientas válidas y cambios de esquema pueden aparecer sin una versión de Mermail.
Los hosts compatibles renderizan la interfaz ui:// anunciada por PayBox en línea para firmar y otros pasos interactivos. Si el host no puede renderizar MCP Apps, Mermail devuelve un traspaso de navegador autenticado. Mermail no muestra su propio mensaje de Aprobar/Rechazar para ninguna de las dos vías. El host aún puede solicitar o bloquear una operación financiera bajo su propia política, y Mermail no puede eludir esa decisión.
Los datos comerciales no secretos de PayBox están disponibles para el modelo y la UI. Los tokens OAuth o bearer, claves privadas y semillas, credenciales de tarjetas, cargas útiles firmadas sin procesar y URL de aprobación secretas están excluidos del contexto del modelo, la persistencia, los registros y los errores. Las llamadas solo de app pueden recibir estado de firma efímero dentro de la interfaz aislada de PayBox sin exponerlo al modelo.
Clave de API (automatización / CLI)
- Crea una clave de API de workspace en Configuración → Claves de API. Consulta Autenticación.
- Envíala en cada
POSTde MCP comox-api-key. - Las sesiones de cookie / consola por sí solas son rechazadas para MCP.
Ambos modos de autenticación limitan las herramientas a un workspace y consumen las RPM y créditos de API de ese workspace.
Descubre el servidor
curl -sS https://console.mermail.app/.well-known/mcp/server-card.json | jq .
La tarjeta incluye transporte Streamable HTTP, autenticación OAuth 2.1 y clave de API opcional, serverInfo.description, iconos en https://console.mermail.app/brand/icon-primary.png y la lista completa de herramientas.
Registro MCP oficial
Mermail está publicado como app.mermail/mcp en el Registro MCP oficial. Los clientes y agregadores (PulseMCP, Smithery, Glama y otros) descubren servidores remotos Streamable HTTP desde ese feed.
| Elemento | Valor |
|---|---|
| Nombre del registro | app.mermail/mcp |
| Sitio web | mermail.app/agents |
| Prueba de propiedad | https://mermail.app/.well-known/mcp-registry-auth |
Consejo
Prefiere la URL y la lista de herramientas de la tarjeta del servidor en vivo para tu host. No fijes un host si implementas en un dominio personalizado.
Conecta un asistente
Usa la guía interactiva en mermail.app/agents para pasos específicos del host.
| Host | Autenticación |
|---|---|
| Cursor y Claude | OAuth — agrega la URL alojada cuando los conectores personalizados estén disponibles en el workspace. Para verificación centrada en buzón, conéctate a https://console.mermail.app/mcp?profile=agent-inbox; usa /mcp cuando la tarea necesite el catálogo completo |
| App MCP personalizada de ChatGPT | OAuth — habilita los controles de desarrollador y crea Mermail cuando las apps personalizadas estén disponibles en el workspace |
| Codex | OAuth — codex mcp add mermail --url https://console.mermail.app/mcp, luego codex mcp login mermail |
| OpenClaw | OAuth — openclaw mcp add mermail --url https://console.mermail.app/mcp --transport streamable-http --auth oauth, luego openclaw mcp login mermail |
| Directorio de plugins de ChatGPT / Codex (cuando se publique) | Apps OAuth conectadas + Skills (estilo Linear) |
| Hermes Agent | OAuth — agrega url + auth: oauth bajo mcp_servers en ~/.hermes/config.yaml, luego hermes mcp login mermail desde una terminal nueva. En un host remoto/sin cabeza, abre la URL impresa localmente y pega la URL de redirección final de nuevo en el mensaje de inicio de sesión |
| CLI, trabajos sin cabeza y alternativas de paquetes/plugins | Clave de API — Streamable HTTP + x-api-key; PayBox no está disponible |
Ejemplo con clave de API:
{
"mcpServers": {
"mermail": {
"url": "https://console.mermail.app/mcp",
"headers": {
"x-api-key": "sk-proj-YOUR_KEY"
}
}
}
}
Las claves de configuración exactas varían según el host. Las partes importantes son la URL /mcp seleccionada y el transporte Streamable HTTP, no SSE.
Para flujos de trabajo empaquetados, instala Mermail Skills (npx --yes skills add Nudgen-Marketing/mermail-skills) o conéctate mediante el id de registro app.mermail/mcp cuando tu host admita la instalación desde el Registro oficial.
Perfil de bandeja de entrada de agente con privilegios mínimos
Los clientes alojados comúnmente aceptan una URL de servidor pero no cabeceras personalizadas fijas. Para esos clientes, selecciona el perfil aditivo en la URL:
{
"mcpServers": {
"mermail-agent-inbox": {
"url": "https://console.mermail.app/mcp?profile=agent-inbox",
"headers": {
"x-api-key": "sk-proj-YOUR_KEY"
}
}
}
}
Si el cliente admite cabeceras fijas, la alternativa compatible hacia atrás es la URL original /mcp más x-mermail-tool-profile: agent-inbox en cada POST sin estado. Ambos selectores exponen solo:
get_api_credit_usage
list_workspaces
get_workspace
list_email_domains
list_workspace_mailboxes
list_mailboxes
create_mailbox
get_mailbox
list_emails
search_emails
get_email
get_email_context
Expone una escritura de aprovisionamiento con ámbito, create_mailbox, más lecturas seguras de buzón y correo electrónico. No expone envío, cuentas conectadas, chat de agente, mutación administrativa, herramientas destructivas ni de wallet. El perfil completo de herramientas sigue siendo el predeterminado cuando ni la URL ni la cabecera seleccionan un perfil, preservando los clientes /mcp existentes. Un perfil no vacío desconocido, o valores conflictivos de URL y cabecera, devuelve 400 con invalid_mcp_tool_profile.
Use este perfil enfocado para descubrimiento de buzones, aprovisionamiento opcional,
monitoreo de verificación, lectura de mensajes y contexto de hilo sanitizado y acotado.
No use create_mailbox como prueba de conexión. El perfil no expone send_email, reply_to_email,
forward_email, borradores ni envíos programados. Conecte un flujo de envío
explícitamente autorizado al catálogo /mcp predeterminado en lugar de cambiar silenciosamente la
URL del perfil.
El perfil reduce el catálogo MCP de Mermail; no elimina el navegador, shell, pago u otras herramientas proporcionadas por separado por el host.
Cómo se asignan las herramientas a la API
Cada envoltorio de la API de Sold se asigna a una operación de la API de Sold. Las herramientas de PayBox se asignan a la operación correspondiente en el catálogo en vivo de PayBox:
| Argumento | Uso |
|---|---|
| Parámetros de ruta | Cadenas de nivel superior (mailboxId, workspaceId, …) que coinciden con la ruta de OpenAPI. mailboxId acepta public_id (UUID), alias de ID alojado o correo electrónico actual — prefiera public_id de list_mailboxes. |
query | Objeto opcional de valores de cadena de consulta |
body | Cuerpo JSON opcional para POST / PUT / PATCH |
idempotencyKey | Opcional; se envía como Idempotency-Key |
confirmationToken | Requerido en herramientas destructivas de buzón, espacio de trabajo y administrativas de Mermail (ver más abajo); nunca usado por herramientas paybox_* |
Nombres de herramientas y espacios de nombres del host
Mermail anuncia nombres de protocolo MCP simples como list_emails,
search_emails y get_email. Un host puede calificar esos nombres en su interfaz o
contexto de agente. Por ejemplo, Claude puede mostrar Mermail:list_emails, mientras que
otro cliente puede usar un formato de espacio de nombres diferente.
El espacio de nombres pertenece al host, no al contrato MCP de Mermail. Un
cliente MCP personalizado debe usar el nombre exacto devuelto por tools/list — por ejemplo,
tools/call.params.name: "list_emails". No reescriba el nombre de la herramienta del servidor a
Mermail:list_emails ni agregue alias específicos del host. En un asistente alojado, use
la referencia calificada exacta mostrada por ese host y deje que su puente MCP la asigne
de vuelta al nombre de protocolo simple.
Mermail está dirigido a clientes MCP HTTP Streamable compatibles con estándares. La carga de herramientas, los espacios de nombres, los controles de caché y el soporte de Agent Skills siguen siendo capacidades del cliente, por lo que el comportamiento puede variar según el host y la versión.
Argumentos nativos list_emails
Pase query como un objeto JSON nativo. No pase una cadena JSON escapada. Use
los campos canónicos sortColumn y sortDirection en lugar de un valor
combinado sort:
{
"mailboxId": "MAILBOX_PUBLIC_ID_OR_EMAIL",
"query": {
"folder": "inbox",
"limit": 10,
"sortColumn": "date",
"sortDirection": "DESC",
"metadata_only": true
}
}
Para el perfil agent-inbox, Mermail además aplica
metadata_only=true, require_scan_status=clean y
agent_safe_content=true en operaciones de listado. Los llamadores deben enviar igualmente un
objeto con esquema correcto para que la misma solicitud siga siendo portátil entre clientes MCP
y perfiles.
Anide los campos de la API de Sold bajo el argumento MCP body. Si los agentes pasan campos de Sold planos en el nivel superior (to, subject, text, …), Mermail los pliega en body.
create_mailbox requiere body.email y body.name. body.workspaceId es
opcional cuando la concesión OAuth o la clave de API ya vinculan MCP a un espacio de trabajo. Si
lo proporciona, debe coincidir con ese alcance de credencial. Una creación exitosa consume
10 créditos de aprovisionamiento; esos son créditos de API del espacio de trabajo, no un pago $10.
Pase idempotencyKey para un intento de creación repetido con intención idéntica. No
es prueba de ejecución empresarial exactamente una vez. Después de un conflicto o respuesta
incierta, liste los buzones y resuelva la dirección normalizada exacta antes de
decidir si reintentar. Las solicitudes autenticadas que llevan una clave de idempotencia
tienen un límite de cuerpo de huella de solicitud de 50 MiB; un cuerpo sobredimensionado falla antes de que
la operación se ejecute con 413 idempotency_payload_too_large.
Para un buzón solo de verificación, incluya:
{
"settings": {
"agentInbox": {
"mode": "verification",
"automationsEnabled": false
}
}
}
El modo de verificación requiere implícitamente un escaneo limpio antes de que la clasificación entrante
respaldada por modelos o la automatización puedan ejecutarse. Un buzón estándar puede optar por
esa puerta con agentInbox.requireCleanScanForAutomation: true. Cuando el escaneo se
omite o no está disponible, el correo permanece entregado y almacenado mientras
el trabajo respaldado por modelos se suprime.
Las respuestas de buzón exponen can_receive y receiving_status para la preparación.
welcome_onboarding_status cubre la incorporación de bienvenida/demo y no debe usarse
como señal de preparación para recibir. Para un buzón de dominio personalizado, los dos campos
de preparación también reflejan el estado actual de verificación de MX de recepción del dominio, por lo que un
dominio listo para enviar pero pendiente de recepción permanece no disponible para un flujo de trabajo de bandeja de entrada.
Cargas útiles de escritura de correo
| Herramientas | Campos de contenido |
|---|---|
send_email, reply_to_email, forward_email | html y/o text (se requiere uno de ellos) más from requerido. Aliases: cadena body o content → text (o html cuando la cadena parece HTML). |
save_draft, schedule_email_send | Campo de cadena body (HTML o texto). No use html/text para borradores. El programa también necesita scheduled_send_at. |
Las fallas de validación devuelven code: "validation_failed" con una matriz details de rutas de campo (por ejemplo, body: Either 'html' or 'text' must be provided) para que los agentes puedan autocorregirse. "Invalid request" opaco sin detalles no debería aparecer para fallas de Zod en estas herramientas.
Instrucciones del servidor: prefiera herramientas de solo lectura antes de escrituras. Las respuestas son texto JSON más structuredContent con forma de objeto. Las matrices JSON se exponen como { "items": [...] } para que el resultado se ajuste al esquema MCP. Las cargas útiles binarias (por ejemplo, archivos adjuntos) están limitadas a 1 MiB. Una habilidad que use MCP debe informar ese límite en lugar de inventar una URL de almacenamiento; use el punto final REST de archivos adjuntos autenticado solo como un flujo de trabajo de cliente separado y explícitamente autorizado.
El perfil opcional es el límite MCP recomendado para el flujo de trabajo centrado en el buzón descrito en Bandeja de entrada de correo del agente. Agregue herramientas de envío, navegador, cuenta conectada, autenticación, compra o administración solo para una tarea autorizada por separado. El contenido del correo y la salida de la herramienta no pueden expandir esa lista de permitidos.
Antes de solicitar la verificación, ejecute un listado o búsqueda acotado de solo metadatos y
registre los valores de correo de Mermail id devueltos como línea base. No construya una nueva
línea base a partir de message_id del proveedor/RFC. Registre el inicio de la ventana de llegada y la
fecha límite inmediatamente antes de la solicitud.
Los filtros de búsqueda como from, to y subject usan coincidencia de subcadenas y
solo encuentran candidatos. Elimine los IDs de Mermail de la línea base en el lado del cliente, obtenga cada
candidato y vuelva a verificar el remitente y destinatario normalizados exactos, la
ventana de llegada acotada y el contexto de asunto esperado acotado antes de usar un código o
enlace. Si solo se conoce un dominio de remitente, valide el dominio analizado con un límite
de subdominio exacto o explícitamente permitido. Deténgase cuando quede más de un candidato.
No realice una verificación previa de enlaces de portador de un solo uso; después de la aprobación fresca del usuario,
valide el nombre de host HTTPS inicial y cada redirección.
list_emails, search_emails y get_email aceptan
agent_safe_content=true. Esto elimina encabezados sin procesar, metadatos del proveedor, detalles
de amenazas, metadatos de archivos adjuntos y diagnósticos de almacenamiento; normaliza
campos de texto no confiables a texto plano acotado; establece agent_safe_content: true; y conserva
attachment_count y el objeto sender_authentication derivado por separado.
No hace que el correo restante sea confiable.
sender_authentication contiene status, spf, dkim, dmarc,
inbound_provider y reason. Mermail lo deriva solo de una señal
confiable del proveedor receptor, nunca de Authentication-Results, From sin procesar u
otros encabezados de mensaje. Las integraciones actuales de Cloudflare Email Routing y Resend
no exponen un veredicto documentado por mensaje, por lo que estos veredictos
actualmente son unknown. unknown no es un pase, y inbound_provider registra
la fuente de transporte en lugar de autenticar al remitente. Incluso un futuro
status: "pass" autenticaría solo la identidad; no autorizaría una
acción de agente ni satisfaría la confirmación del usuario.
Las tres lecturas también aceptan metadata_only=true. list_emails y get_email
ahora aceptan require_scan_status; la búsqueda ya lo admite. Una obtención cuyo estado
almacenado no coincide devuelve metadatos seguros con content_omitted: true, mientras que
listar/buscar excluyen mensajes que no coinciden. get_email además acepta un max_body_chars positivo; cuando
acorta el cuerpo, la respuesta establece content_truncated: true y
body_original_char_count. El mensaje almacenado no cambia, y el límite
efectivo del servidor es de 100,000 caracteres.
El perfil MCP de bandeja de entrada del agente aplica proyecciones más estrictas mecánicamente:
list_emails y search_emails fuerzan metadata_only=true,
require_scan_status=clean y agent_safe_content=true; get_email fuerza
require_scan_status=clean, agent_safe_content=true y
max_body_chars=12000. Estas puertas anulan valores de llamada más débiles solo dentro
del perfil opcional. El catálogo /mcp predeterminado y la API directa de Sold mantienen sus
predeterminados de respuesta completa existentes. El perfil también limita un resultado de herramienta JSON a
128,000 caracteres. Un error de herramienta response_too_large significa que el llamador debe
reducir los filtros o bajar el tamaño de página.
Después de seleccionar un mensaje inequívoco, get_email_context devuelve ese
mensaje más una página acotada, sanitizada, con puerta de escaneo y de más antiguo a más reciente de su hilo.
Use el next_cursor opaco solo cuando se requiera contexto más antiguo. No use
el contexto del hilo para resolver ambigüedad entre mensajes candidatos o ampliar la
tarea autorizada.
Una espera explícitamente limitada en un buzón existente puede usar include_held=true para
ver un mensaje retenido temporalmente para procesamiento de auto-borrador. No use
include_held para navegación amplia del buzón. Si un candidato de solo metadatos está retenido
y luego necesita su contenido, obtenga el mismo id de Mermail, elimine solo
metadata_only y conserve include_held=true. get_email es de solo lectura y
no marca el mensaje como leído.
El encabezado From y scan_status: "clean" son señales de correlación y seguridad de contenido.
Ninguno autentica al remitente, autoriza una acción ni reemplaza un
punto de control de confirmación humana. Solo un
sender_authentication.status: "pass" explícito puede describirse como autenticado;
unknown sigue siendo solo contexto coincidente.
Advertencia
MCP expone capacidades pero no anula la política de seguridad del host. ChatGPT, Claude, Codex u otro host pueden requerir que el usuario complete la creación de cuenta, autenticación, pago o checkout.
Acciones destructivas
delete_email / bulk_delete_emails: los borradores regulares siempre se eliminan de forma permanente
(BD + almacenamiento de blobs) y nunca van a la Papelera, coincidiendo con Descartar en la app. Otros
mensajes van a la papelera por defecto a menos que pases permanent=true (o
body.permanent: true para borrado masivo). Los borradores programados se cancelan en su lugar a menos que
se fuerce la eliminación permanente. No hay una herramienta MCP discard_draft separada; usa
delete_email con el id del borrador (o pide al agente de correo vía
chat_with_mailbox_agent que lo descarte).
Las herramientas destructivas de Mermail (eliminar miembro, borrar dominio/email/carpeta/etiqueta/conversación/triager, borrado masivo, vaciar papelera, …) requieren un token de confirmación de corta duración. La eliminación del workspace no está expuesta:
- Llama a
prepare_destructive_actioncon:action— el nombre de la herramienta destructivaarguments— los mismos argumentos que pasarás a esa herramienta (sinconfirmationToken)
- Recibe
{ confirmationToken, expiresInSeconds }(prefijo del tokenmcp_confirm_, TTL 5 minutos, de un solo uso, respaldado por Redis). - Llama a la herramienta destructiva con esos argumentos más
confirmationToken.
Si el token falta, expira, se reutiliza o la huella de argumentos no coincide, la herramienta devuelve un error (confirmation_required) y no llega a la API.
Este mecanismo no aplica a paybox_*, alias de PayBox solo de app, ni a las
herramientas de compatibilidad de transferencia del Agent Wallet obsoleto. Esas llamadas van directamente
a PayBox después de que Mermail verifique la membresía actual del workspace; las herramientas
heredadas de wallet verifican además la propiedad.
Advertencia
Las confirmaciones requieren Redis. Si Redis / caché está deshabilitado,
prepare_destructive_actionfalla con503confirmation_unavailable.
Solución de problemas
Herramienta no encontrada o Finding tools
Un error como Tool 'Mermail:list_emails' not found seguido de
Finding tools normalmente significa que el host no ha cargado la referencia
calificada de la herramienta en la conversación actual, o está usando un catálogo
de herramientas en caché. Por sí solo no significa que Mermail haya eliminado la
herramienta de protocolo list_emails.
Para Claude:
- Deja que un paso
Finding toolstermine, luego reintenta la lectura una vez. - En la conversación actual, abre Connectors → Tool access y haz que Mermail esté Always available cuando lo necesites de forma consistente.
- Confirma que Mermail esté habilitado para esa conversación.
- Para verificación o lecturas de la bandeja de entrada, prefiere
https://console.mermail.app/mcp?profile=agent-inbox. Su catálogo de 12 herramientas reduce el descubrimiento diferido de herramientas. - Si cambiaste la URL o Claude retuvo un esquema anterior, elimina Mermail en Customize → Connectors, agrégalo de nuevo con la URL deseada, completa OAuth e inicia una nueva conversación.
Para otro IDE o host MCP, reconecta o recarga el servidor/plugin MCP, limpia
las definiciones de herramientas MCP en caché cuando el host exponga ese control,
e inicia una nueva sesión. Inspecciona la vista tools/list del host antes
de reintentar. Mantén el nombre de herramienta list_emails; no evites una
caché del cliente renombrando la herramienta o añadiendo un alias de servidor
específico del host.
Después de que el descubrimiento tenga éxito, verifica los argumentos de la llamada
de forma independiente. En particular, query debe ser un objeto y la
ordenación de más reciente a más antiguo usa sortColumn: "date" más sortDirection: "DESC".
| Resultado | Qué comprobar |
|---|---|
Tool '<namespace>:list_emails' not found / Finding tools | Recarga las herramientas del conector para la conversación actual y confirma que su nombre simple descubierto es list_emails. Usa el perfil enfocado para trabajo de lectura/verificación y el perfil predeterminado solo cuando se requieran herramientas más amplias. |
401 | Completa la autenticación OAuth nuevamente y sigue el desafío de WWW-Authenticate Protected Resource Metadata, o verifica que x-api-key contenga una clave válida y no revocada. Las cookies de la consola no autentican MCP. |
403 | Confirma el alcance del espacio de trabajo y el rol de la credencial. Las herramientas de dominio personalizado restringidas a desarrolladores devuelven 403 en espacios de trabajo Free. |
413 idempotency_payload_too_large | Una solicitud autenticada con Idempotency-Key superó el límite de huella de 50 MiB. Reduce el cuerpo antes de reintentar; la operación no se ejecutó. |
400 email_send_recipient_limit_exceeded | Un envío externo Free supera 10 destinatarios totales en To+Cc+Bcc. No dividas ni alteres silenciosamente la carga útil; requiere una nueva aprobación exacta de destinatarios. |
429 | Se superó el RPM del espacio de trabajo o la ventana de destinatarios de correo externo. Muestra Retry-After; nunca reintentes automáticamente una escritura tipo envío. Las ventanas de destinatarios Free son 10/minuto, 50/hora y 200/día. |
429 email_send_rate_limit_exceeded | Detente después de la única llamada y muestra Retry-After. Una entrega programada puede restaurarse a scheduled y diferirse; no la reportes como enviada ni crees otro programa. |
503 email_send_rate_limit_unavailable | El envío externo falla de forma segura porque el limitador de destinatarios no está disponible. No cambies credenciales/superficies ni afirmes la entrega. |
response_too_large | Reduce los filtros, disminuye el tamaño de página o baja max_body_chars. El perfil de bandeja del agente limita un resultado JSON de herramienta a 128,000 caracteres. |
503 confirmation_unavailable | La confirmación de acciones destructivas respaldada por Redis no está disponible. No llames a la herramienta destructiva; restaura Redis/caché y prepara una nueva confirmación. |
400 paybox_amount_requires_decimal / paybox_amount_scale_mismatch | Una transferencia de catálogo envió unidades base. Reenvía con el monto humano en amount_decimal y sin amount. Consulta transferencias de tokens de catálogo. |
400 paybox_amount_below_dust_floor | Mermail tiene un precio unitario confiable y la transferencia implica menos de aproximadamente $0.01. Pide al usuario un monto de al menos $0.01 y reintenta con ese amount_decimal. Consulta errores y recuperación. |
400 paybox_amount_value_mismatch | El valor USD implícito no coincide con value_cents. Reformula el monto o corrige value_cents. |
409 agent_approval_asset_missing | La tarjeta de aprobación es anterior a la corrección de transferencia de activos. Inicia una nueva transferencia para que se cree una tarjeta nueva. |
503 agent_approval_persist_timeout | Mermail no pudo registrar la aprobación a tiempo. No vuelvas a enviar; primero verifica el estado de la solicitud. |
502 paybox_tool_error | PayBox rechazó la operación y Mermail reenvía un motivo saneado, como un nonce demasiado bajo. Inicia un nuevo paybox_request_transfer en lugar de reutilizar la solicitud estacionada. |
502 paybox_upstream_uncertain | El resultado del envío es desconocido. Nunca reintentes automáticamente; verifica con PayBox y la red de destino. |
422 paybox_signing_unsupported | La continuación de la app MCP no puede usar de forma segura el plan de firma devuelto. Detente; no expongas el plan ni reintentes/sustituyas el pago. |
paybox_continuation_origin_not_found | PayBox Submit falló porque la continuación de firma no tenía pay_x402 / transferencia / origen de swap. No se espera la firma. Concilia paybox_get_request una vez; si falta el origen, espera un paybox_pay_x402 autorizado nuevo. No llames a reopen_signing_window. Consulta errores y recuperación. |
Host vacío tools/list para paybox_* | Siempre llama a tools/call get_paybox_connection una vez antes de cualquier copia de reconexión MCP. La ausencia de la lista no es "no expuesto". Reconecta solo después de que esa llamada devuelva herramienta desconocida, método no encontrado o un fallo duro. |
OWNER_ACTION_REQUIRED en get_paybox_connection.status | Un miembro no puede reparar la conexión compartida del propietario. Pide al propietario del espacio de trabajo que conecte/reautorice PayBox en Mermail; no se devuelve ninguna transferencia. |
PAYBOX_UNAVAILABLE en connection.status | PayBox no respondió a esa lectura. La conexión delegada sigue activa, así que vuelve a leer más tarde en lugar de reconectar. |
Catálogo de herramientas
En el momento de la publicación, una sesión de clave API expone 72 herramientas:
prepare_destructive_action más 71 envoltorios de API Sold. Las sesiones OAuth de perfil completo
con mcp:tools central pueden exponer herramientas adicionales de PayBox además
de esa línea base. El catálogo en vivo depende del tiempo de ejecución y es aditivo; no
fijes su total. Agrupado por área:
Estas acceden a rutas REST restringidas a desarrolladores. Los espacios de trabajo Free reciben `403` cuando la herramienta se ejecuta.
`list_workspace_mailboxes`, `list_mailboxes`, `create_mailbox`, `get_mailbox`, `update_mailbox_settings`, `get_mailbox_storage`
`list_emails`, `send_email`, `get_email`, `get_email_context`, `update_email`, `delete_email`, `bulk_delete_emails`, `bulk_mark_emails_read`, `bulk_move_emails`, `move_email`, `reply_to_email`, `forward_email`, `download_attachment`, `save_draft`, `regenerate_draft`, `schedule_email_send`, `empty_trash`, `get_thread`, `mark_thread_read`, `list_folders`, `create_folder`, `update_folder`, `delete_folder`, `search_emails`, `list_custom_labels`, `create_custom_label`, `update_custom_label`, `delete_custom_label`
`list_agent_conversations`, `create_agent_conversation`, `rename_agent_conversation`, `delete_agent_conversation`, `list_agent_messages`, `chat_with_mailbox_agent`, `list_task_triagers`, `create_task_triager`, `list_recent_triager_runs`, `update_task_triager`, `delete_task_triager`, `set_default_task_triager`, `get_or_create_triager_conversation`
`list_composio_toolkits`, `connect_composio_toolkit`, `disconnect_composio_toolkit`, `list_composio_connections`, `sync_composio_connections`, `search_composio_tools`, `get_composio_tool_schema`, `execute_composio_tool`, `get_composio_calendar_account`
Solo catálogo completo. Conecta aplicaciones de terceros (Apollo, GitHub, Slack, Calendar y más), luego busca y ejecuta herramientas. Los kits de herramientas Composio de Gmail y Outlook permanecen deshabilitados. Consulta [Composio](/integrations/composio).
Los miembros actuales del workspace pueden recibir `get_paybox_connection`, `get_paybox_invocation`, recursos de la App MCP y el catálogo en vivo de `paybox_*` visible para el modelo a través de la conexión activa del propietario. Los propietarios además reciben `get_agent_wallet`, herramientas heredadas de credenciales/portafolio/solicitudes, traspasos de conexión y alias de compatibilidad obsoletos de propuesta/envío/rechazo.
No disponible para claves API ni para el perfil de bandeja de entrada del agente. Requiere el núcleo `mcp:tools`; las etiquetas heredadas `wallet:read` / `wallet:transact` son solo de compatibilidad. Los miembros usan la identidad que invoca para auditoría mientras PayBox se ejecuta a través de la conexión del propietario. Solo los propietarios pueden conectar/reautorizar o usar herramientas de wallet heredadas. Las URL de Checkout / MoonPay permanecen solo en el navegador (`[redacted]`); use los `funding_handoff.console_url` devueltos para Funding, `signing_handoff.console_url` para transferencias pendientes y los `connect_handoff` / `reauth_handoff` solo para propietarios para reparación de PayBox dentro de Mermail — nunca aloje configuraciones de conector. Los hosts compatibles renderizan los recursos `ui://` de PayBox en línea; otros hosts reciben un traspaso autenticado al navegador. Las credenciales secretas y los planes de firma permanecen solo en el navegador. Si un resultado x402 de terminal incluye `x_payment`, trátelo como prueba de pago sensible: úselo solo para reintentar el recurso pagado exacto y nunca lo cite, registre, persista o exponga. Consulte [Agent Wallet](/agent-wallet/overview).
Use `paybox_request_transfer` para cada nueva transferencia, incluidos USDC y activos nativos; use `paybox_request_swap` para intercambios de tokens; use `paybox_pay_x402` solo para un recurso/acción pagada seleccionada por el usuario y un límite de gasto exacto. No pague con `paybox_use_service` — esa herramienta es `mode: "probe"` no pagada solo cuando el esquema en vivo la tiene. Las filas del catálogo en vivo como `paybox_discover_services` y `paybox_get_contract` pueden aparecer sin una fila de cobertura separada. Lea cada esquema en vivo en lugar de reutilizar campos de propuesta heredados. Consulte [transferencias de tokens del catálogo](/agent-wallet/catalog-transfers) y [intercambios y x402](/agent-wallet/swaps-and-x402).
`prepare_destructive_action` — emite tokens de confirmación para herramientas destructivas de buzón, workspace y administrativas de Mermail; no aplica a PayBox
Las herramientas de mundo abierto (correo saliente / invitaciones / chat de agente) están anotadas con openWorldHint para clientes MCP que muestran esa señal.
Las herramientas de etiquetas personalizadas gestionan definiciones de clasificador (name, lenguaje natural
rules y color opcional). No etiquetan manualmente un correo existente,
reordenan definiciones ni alternan la detección de etiquetas. update_email cambia solo
el estado de leído/destacado; no invente un campo o herramienta de asignación de etiquetas.
Para el perfil completo predeterminado, los clientes deben verificar los nombres de herramientas requeridos en lugar de
exigir un total exacto. Las futuras versiones de Mermail pueden agregar herramientas compatibles
sin eliminar ni renombrar la línea base existente. El perfil opcional agent-inbox
sigue siendo el subconjunto exacto de 12 herramientas documentado anteriormente.
Para las formas de solicitud/respuesta de cada ruta HTTP subyacente, use la Referencia de API.