Documentation

Votre agent a une boîte de réception
en quatre étapes.

Connectez n'importe quel compte e-mail, collez une URL dans un client MCP compatible OAuth et autorisez. Les clients sans OAuth utilisent plutôt une clé API. Référence complète des outils et guide de connexion ci-dessous.

Démarrage rapideOAuth (claude.ai)Référence des outilsFournisseurs pris en charge
Démarrage rapide

Opérationnel en quelques minutes.

Aucun SDK requis. MCPEmails parle le MCP standard via HTTP, donc il s'intègre dans tout agent compatible MCP.

01Inscrivez-vous et connectez une boîte

Créez votre compte et connectez Gmail

Inscrivez-vous sur mcpemails.com, puis allez dans Tableau de bord → Boîtes → Connecter une boîte. Choisissez Gmail, iCloud, Fastmail ou toute boîte IMAP, puis effectuez le flux OAuth ou collez un mot de passe d'application. Votre boîte est prête en moins d'une minute.

Connecter votre boîte →
02Créez une clé API

Générez un jeton bearer pour votre agent

Dans Tableau de bord → Clés d'API, cliquez sur « Créer une clé ». Nommez-la, sélectionnez les portées dont votre agent a besoin — read:email, search:email, send:email, manage:folders, delete:email, manage:drafts, manage:contacts et schedule:email — et copiez la clé. Elle n'est affichée qu'une seule fois.

# Your key looks like this:
mcpe_live_AbCdEfGhIjKlMnOpQrStUvWxYz123456
03Ajoutez MCPEmails à votre agent

Collez le point de terminaison MCP dans votre client

Choisissez l'onglet de votre client ci-dessous. Les clients MCP qui prennent en charge OAuth 2.0 (claude.ai, Claude Desktop, Cursor et autres) n'ont qu'à coller l'URL et autoriser, aucune clé API nécessaire. Les clients sans OAuth, ainsi que l'accès par script, utilisent la clé API de l'étape 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.
04Effectuez votre premier appel

Demandez à votre agent de vérifier votre boîte de réception

Aucun copier-coller d'UUID de boîte. Votre agent appelle d'abord inbox_list pour découvrir chaque boîte connectée et son UUID, puis vous demandez : « Vérifie ma boîte et résume les 5 derniers messages non lus. »

# 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.
Point de terminaison

Une URL, MCP standard.

Tout le trafic passe par un unique point de terminaison Streamable HTTP. Authentifiez-vous avec un jeton bearer issu de votre tableau de bord.

POSThttps://mcpemails.com/api/mcp

Envoyez un corps de requête JSON-RPC 2.0. Méthodes prises en charge : initialize, tools/list, tools/call.

Transport : Streamable HTTP (MCP 2025-06-18)
Auth : Authorization: Bearer <api-key>
Limites de débit : 100 req/min · 1 000/h · 10 000/jour par clé
Format de réponse : JSON-RPC 2.0 — les résultats réussis comportent aussi un objet typé structuredContent
Handshake d'initialisation
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": {}
    }
  }'
Interrogation, pas push

MCPEmails fonctionne uniquement en requête/réponse : chaque résultat provient d'un appel d'outil effectué par votre agent. Il n'y a ni webhooks, ni notifications push, ni événements initiés par le serveur — un e-mail entrant ne déclenche jamais un appel d'agent de lui-même. Pour réagir aux nouveaux messages, faites interroger votre agent périodiquement, p. ex. en appelant email_read avec action: "list" et unread_only: true à l'intervalle dont votre flux a besoin (attention aux limites de débit ci-dessus).

Connexion OAuth

Zéro configuration pour les clients compatibles OAuth.

Les clients MCP qui prennent en charge OAuth 2.0 (claude.ai, Claude Desktop, Cursor et autres) se connectent automatiquement via le code d'autorisation + PKCE. Aucune clé API, aucun fichier de configuration. Collez l'URL et cliquez sur Connecter.

Étape 1 : Allez dans claude.ai → Customize → Connectors → Add connector
Étape 2 : Collez https://mcpemails.com/api/mcp comme URL du serveur
Étape 3 : Cliquez sur Connect. MCPEmails ouvre un écran d'autorisation
Étape 4 : Connectez-vous avec votre compte mcpemails et approuvez l'accès
Terminé : Chaque outil autorisé par vos portées approuvées est actif. claude.ai renouvelle les jetons automatiquement

Comment ça fonctionne en coulisses

claude.ai s'enregistre via RFC 7591 Dynamic Client Registration, donc vous ne préenregistrez jamais d'ID client.

L'autorisation utilise OAuth 2.0 Authorization Code + PKCE (RFC 7636), donc aucun secret client n'est jamais transmis.

Les jetons sont limités exactement aux autorisations que vous approuvez — read:email, search:email, send:email, manage:folders, delete:email, manage:drafts, manage:contacts et schedule:email.

Vous utilisez un client sans prise en charge d'OAuth ? Créez une clé API dans Tableau de bord → Clés API et passez-la comme jeton bearer. Les connexions par clé API et par OAuth utilisent le même point de terminaison MCP et le même catalogue d'outils.
Référence des outils

10 outils. Toutes les opérations e-mail dont votre agent a besoin.

Cibler une boîte est facultatif. Quand votre clé n'a qu'une seule boîte, chaque outil par boîte la résout automatiquement — pas besoin d’inbox_id. Avec plusieurs boîtes, passez inbox_id (l'UUID renvoyé par inbox_list) ou inbox (l'adresse e-mail de la boîte). La plupart des outils prennent un argument action qui sélectionne l'opération ; les badges indiquent les portées dont chacun a besoin, et tools/list ne renvoie que les outils pour lesquels votre clé (ou jeton OAuth) est autorisée. Cliquez sur « Afficher l'exemple » pour voir une requête et une réponse complètes.

inbox_listread:email

Renvoie toutes les boîtes auxquelles la clé API ou le jeton OAuth actuel a accès. Appelez-le en premier pour découvrir les valeurs inbox_id, afin de ne jamais copier-coller d'UUID depuis le tableau de bord. Chaque résultat inclut l'adresse e-mail, le fournisseur, une marque de service facultative (icloud/yahoo/zoho/yandex/generic/fastmail) et un objet capabilities décrivant les fonctionnalités prises en charge par cette boîte.

ParamètreTypeRequisDescription
providerenumoptionnelFiltre facultatif — ne renvoie que les boîtes servies par ce fournisseur. L'un de : gmail, fastmail, imap. Omettez-le pour lister toutes les boîtes auxquelles la clé a accès.
include_capabilitiesbooleanoptionnelSi chaque boîte inclut son objet capabilities (les fonctionnalités prises en charge). Par défaut true ; mettez false pour une liste compacte ne contenant que inbox_id, adresse e-mail, nom affiché, fournisseur et marque de service.
email_readread:emailsearch:email

Lire, lister et rechercher des messages dans une boîte. Définissez action : 'list' pour des résumés de messages récents (les plus récents d'abord, avec filtrage par dossier/non lus et pagination), 'read' pour le contenu complet d'un message_id (corps texte, HTML assaini facultatif et pièces jointes), 'read_batch' pour récupérer jusqu'à 50 message_ids en un seul appel, 'search' pour des filtres structurés et indépendants du fournisseur (from, to, cc, subject, body, text, unread, has_attachment, flagged, since, before), ou 'attachment' pour télécharger une seule pièce jointe (par attachment_index ou filename) en données base64 — jusqu'à 25 Mo. En lecture seule — ne modifie jamais rien. L'action 'search' est aussi débloquée seule par la portée plus restreinte search:email.

ParamètreTypeRequisDescription
actionenumrequisQuelle opération effectuer : "list" (résumés de messages récents), "read" (contenu complet d'un message_id), "read_batch" (plusieurs message_ids), "search" (filtres structurés) ou "attachment" (télécharger une pièce jointe en base64). Détermine quels autres arguments s'appliquent.
inbox_idstring (uuid)optionnelUUID de la boîte à lire. Facultatif — résolu automatiquement quand la clé n'a qu'une seule boîte ; sinon passez celui-ci ou inbox. Appelez inbox_list pour découvrir les ID de boîte.
inboxstringoptionnelAdresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni.
message_idstringoptionnelID de message du fournisseur à lire (action 'read' ou 'attachment'), issu d'un list ou search précédent.
message_idsarray[string]optionnelID de message du fournisseur à lire (action 'read_batch'), issus d'un list ou search précédent. Max 50 par appel.
folderstringoptionnelDossier à lister (action 'list'). Par défaut "INBOX". Autres valeurs : "SENT", "DRAFTS", "TRASH".
unread_onlybooleanoptionnelNe renvoyer que les messages non lus (action 'list'). Par défaut false.
limitintegeroptionnelNombre max de résultats à renvoyer (action 'list' ou 'search'). Par défaut 20, max 100.
offsetintegeroptionnelDécalage de pagination commençant à zéro (action 'list' ou 'search'). Par défaut 0.
include_htmlbooleanoptionnelInclure le corps HTML assaini (action 'read'/'read_batch'). Par défaut false.
include_attachmentsbooleanoptionnelInclure les données des pièces jointes en base64 (action 'read'/'read_batch'). En 'read_batch', la limite totale de 10 Mo est partagée entre tous les messages de l'appel. Par défaut false.
mark_as_readbooleanoptionnelMarquer le ou les messages comme lus après récupération (action 'read'/'read_batch'). Par défaut false.
fromstringoptionnelExpéditeur à faire correspondre (action 'search') : adresse e-mail, nom affiché ou fragment (p. ex. "alice@example.com" ou "Alice").
tostringoptionnelDestinataire principal (To) à faire correspondre (action 'search') : adresse e-mail, nom affiché ou fragment.
ccstringoptionnelDestinataire en copie (Cc) à faire correspondre (action 'search') : adresse e-mail, nom affiché ou fragment.
subjectstringoptionnelTexte à faire correspondre dans l'objet (action 'search'). Les expressions de plusieurs mots sont prises telles quelles.
bodystringoptionnelTexte libre à trouver dans le corps du message (action 'search'). (Sur Gmail, cela correspond à l'ensemble du message, pas seulement au corps.)
textstringoptionnelTexte libre à faire correspondre n'importe où dans le message — en-têtes et corps (action 'search').
unreadbooleanoptionnelAction 'search' : true = uniquement les messages non lus ; false = uniquement les lus ; omettez pour les deux.
has_attachmentbooleanoptionnelAction 'search' : true = uniquement les messages avec pièce jointe. Non pris en charge sur IMAP générique (ignoré ici).
flaggedbooleanoptionnelAction 'search' : true = uniquement les messages marqués/suivis. Non pris en charge sur Outlook/Graph (ignoré ici).
sincestring (ISO date)optionnelDate ou date-heure ISO 8601 (action 'search') ; renvoie les messages reçus le/après (>=) cet instant. P. ex. "2026-06-01".
beforestring (ISO date)optionnelDate ou date-heure ISO 8601 (action 'search') ; renvoie les messages reçus strictement avant (<) cet instant.
querystringoptionnelChaîne de requête native du fournisseur (action 'search', solution de secours). Préférez les champs structurés ci-dessus. Combinée avec eux quand c'est pris en charge ; ignorée sur Fastmail.
include_foldersarrayoptionnelRestreindre une recherche à ces noms de dossier (action 'search'). Par défaut : rechercher dans tous les dossiers.
email_organizemanage:folderssend:email

Déplacer, copier, marquer ou archiver des messages. Définissez action : 'move'/'move_batch' (vers un destination_folder_id), 'copy'/'copy_batch' (dupliquer dans un destination_folder_id, en laissant l'original en place ; IMAP, Outlook et Fastmail uniquement), 'flag' (définir lu/non lu/marqué via flag_action sur des message_ids), 'archive' (sortir de la boîte de réception, non destructif), ou 'search_and_move' (appliquer à chaque message correspondant à une recherche structurée, ce qui évite les ID de message obsolètes). Chaque action nécessite la portée correspondante : manage:folders pour les déplacements et les copies, send:email pour flag/archive. La suppression des messages a son propre outil email_delete.

ParamètreTypeRequisDescription
actionenumrequisQuelle opération effectuer : "move", "move_batch", "copy", "copy_batch", "flag", "archive" ou "search_and_move". Détermine quels autres arguments s'appliquent et quelle portée est requise.
inbox_idstring (uuid)optionnelUUID de la boîte qui contient les messages. Facultatif — résolu automatiquement quand la clé n'a qu'une seule boîte ; sinon passez celui-ci ou inbox. Appelez inbox_list pour obtenir les ID de boîte disponibles.
inboxstringoptionnelAdresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni.
message_idstringoptionnelID de message du fournisseur pour une action sur un seul message (move, copy, archive), issu d'un list, read ou search précédent.
message_idsarray[string]optionnelID de message du fournisseur pour une action par lot (move_batch, copy_batch, flag). Max 500 par appel.
destination_folder_idstringoptionnelDossier de destination (move, move_batch, copy, copy_batch, search_and_move) : un alias canonique (inbox, sent, drafts, trash, archive, spam), un nom de dossier/libellé (p. ex. 'Receipts') ou un ID de dossier natif du fournisseur issu de l'action list de folder. Les noms et alias sont résolus automatiquement.
flag_actionenumoptionnelPour l'action 'flag' : la modification à appliquer à chaque message — "read" ou "unread" pour définir le statut de lecture, ou "flag"/"unflag" pour ajouter ou retirer une étoile/un indicateur de suivi.
fromstringoptionnelExpéditeur à faire correspondre (search_and_move) : adresse e-mail, nom affiché ou fragment.
tostringoptionnelDestinataire principal (To) à faire correspondre (search_and_move) : adresse e-mail, nom affiché ou fragment.
ccstringoptionnelDestinataire en copie (Cc) à faire correspondre (search_and_move) : adresse e-mail, nom affiché ou fragment.
subjectstringoptionnelTexte à faire correspondre dans l'objet (search_and_move).
bodystringoptionnelTexte libre à trouver dans le corps du message (search_and_move). (Sur Gmail, cela correspond à l'ensemble du message.)
textstringoptionnelTexte libre à faire correspondre n'importe où dans le message — en-têtes et corps (search_and_move).
unreadbooleanoptionnelActions de recherche : true = uniquement non lus ; false = uniquement lus ; omettez pour les deux.
has_attachmentbooleanoptionnelActions de recherche : true = uniquement les messages avec pièce jointe. Non pris en charge sur IMAP générique (ignoré ici).
flaggedbooleanoptionnelActions de recherche : true = uniquement les messages marqués/suivis. Non pris en charge sur Outlook/Graph (ignoré ici).
sincestring (ISO date)optionnelDate ou date-heure ISO 8601 (actions de recherche) ; correspond aux messages reçus le/après (>=) cet instant.
beforestring (ISO date)optionnelDate ou date-heure ISO 8601 (actions de recherche) ; correspond aux messages reçus strictement avant (<) cet instant.
querystringoptionnelChaîne de requête native du fournisseur (actions de recherche, solution de secours). Préférez les champs structurés ci-dessus. Ignorée sur Fastmail.
include_foldersarrayoptionnelRestreindre la recherche à ces noms de dossier (actions de recherche). Par défaut : tous les dossiers.
limitintegeroptionnelPour search_and_move : nombre maximal de correspondances à traiter. Par défaut 500, max 500.
email_deletedelete:email

Supprimer des messages — son propre outil, distinct d'email_organize, car la suppression est destructive. Définissez action : 'delete'/'delete_batch' (Corbeille par défaut, ou permanent), ou 'search_and_delete' (supprimer chaque message correspondant à une recherche structurée — évite les ID de message obsolètes). Les suppressions vont à la Corbeille sauf si vous passez permanent : true, ce qui est irréversible. Chaque action nécessite la portée delete:email, et l'outil entier est signalé comme destructif à votre client MCP, qui gère la confirmation de l'utilisateur avant toute suppression.

ParamètreTypeRequisDescription
actionenumrequisQuelle opération effectuer : "delete", "delete_batch" ou "search_and_delete". Détermine quels autres arguments s'appliquent.
inbox_idstring (uuid)optionnelUUID de la boîte qui contient les messages. Facultatif — résolu automatiquement quand la clé n'a qu'une seule boîte ; sinon passez celui-ci ou inbox. Appelez inbox_list pour obtenir les ID de boîte disponibles.
inboxstringoptionnelAdresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni.
message_idstringoptionnelID de message du fournisseur pour une suppression unique (action 'delete'), issu d'un list, read ou search précédent.
message_idsarray[string]optionnelID de message du fournisseur pour une suppression par lot (action 'delete_batch'). Max 500 par appel.
permanentbooleanoptionnelSi true, suppression définitive (contourne la Corbeille ; peut être irréversible) ; si false ou omis, déplacement vers la Corbeille. La suppression définitive est disponible sur IMAP et Fastmail ; Gmail et Outlook ne prennent en charge que la corbeille. Par défaut false.
fromstringoptionnelExpéditeur à faire correspondre (search_and_delete) : adresse e-mail, nom affiché ou fragment.
tostringoptionnelDestinataire principal (To) à faire correspondre (search_and_delete) : adresse e-mail, nom affiché ou fragment.
ccstringoptionnelDestinataire en copie (Cc) à faire correspondre (search_and_delete) : adresse e-mail, nom affiché ou fragment.
subjectstringoptionnelTexte à faire correspondre dans l'objet (search_and_delete).
bodystringoptionnelTexte libre à trouver dans le corps du message (search_and_delete). (Sur Gmail, cela correspond à l'ensemble du message.)
textstringoptionnelTexte libre à faire correspondre n'importe où dans le message — en-têtes et corps (search_and_delete).
unreadbooleanoptionnelAction de recherche : true = uniquement non lus ; false = uniquement lus ; omettez pour les deux.
has_attachmentbooleanoptionnelAction de recherche : true = uniquement les messages avec pièce jointe. Non pris en charge sur IMAP générique (ignoré ici).
flaggedbooleanoptionnelAction de recherche : true = uniquement les messages marqués/suivis. Non pris en charge sur Outlook/Graph (ignoré ici).
sincestring (ISO date)optionnelDate ou date-heure ISO 8601 (action de recherche) ; correspond aux messages reçus le/après (>=) cet instant.
beforestring (ISO date)optionnelDate ou date-heure ISO 8601 (action de recherche) ; correspond aux messages reçus strictement avant (<) cet instant.
querystringoptionnelChaîne de requête native du fournisseur (action de recherche, solution de secours). Préférez les champs structurés ci-dessus. Ignorée sur Fastmail.
include_foldersarrayoptionnelRestreindre la recherche à ces noms de dossier (action de recherche). Par défaut : tous les dossiers.
limitintegeroptionnelPour search_and_delete : nombre maximal de correspondances à traiter. Par défaut 500, max 500.
email_composesend:email

Envoyer un nouveau message ou répondre à des messages existants. Définissez action : 'send' pour un nouvel e-mail (to/subject/body, éventuellement cc/bcc/html_body/reply_to/attachments), 'reply' pour répondre à un message_id (les en-têtes de fil sont définis automatiquement ; éventuellement reply_all), ou 'forward' pour transférer un message_id à de nouveaux destinataires (en réattachant éventuellement les fichiers d'origine). La signature de la boîte est ajoutée automatiquement — sur les réponses et les transferts, elle se place après votre texte et avant le bloc cité, selon le mode de réponse de la signature ; passez include_signature: false pour la supprimer sur un message court ponctuel. Les trois sont irréversibles une fois envoyées.

ParamètreTypeRequisDescription
actionenumrequisQuelle opération effectuer : "send", "reply" ou "forward". Détermine quels autres arguments s'appliquent.
inbox_idstring (uuid)optionnelUUID de la boîte depuis laquelle envoyer. Facultatif — résolu automatiquement quand la clé n'a qu'une seule boîte ; sinon passez celui-ci ou inbox. Appelez inbox_list pour obtenir les ID de boîte disponibles.
inboxstringoptionnelAdresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni.
message_idstringoptionnelID de message du fournisseur du message d'origine (action 'reply' ou 'forward'), issu d'un list, read ou search précédent.
toarray[string]optionnelAdresses e-mail des destinataires (requis pour 'send' et 'forward'). Max 50.
subjectstringoptionnelObjet de l'e-mail (action 'send'). Max 998 caractères. En reply/forward, il est dérivé de l'original.
bodystringoptionnelCorps en texte brut. Pour 'reply', c'est votre réponse ; pour 'forward', une note facultative ajoutée au-dessus du message transféré.
ccarray[string]optionnelDestinataires en copie (send, forward). Par défaut [].
bccarray[string]optionnelDestinataires en copie cachée (send, forward). Par défaut [].
html_bodystringoptionnelVersion HTML du corps (multipart/alternative). L'appelant est responsable d'un HTML sûr.
reply_tostringoptionnelAdresse de l'en-tête Reply-To (action 'send').
reply_allbooleanoptionnelRépondre à tous les destinataires d'origine — To + Cc (action 'reply'). Par défaut false.
include_attachmentsbooleanoptionnelRéattacher les pièces jointes du message d'origine (action 'forward'). Les fichiers dépassant le budget de 10 Mo sont omis. Par défaut false.
include_signaturebooleanoptionnelIndique s'il faut ajouter la signature configurée de la boîte à ce message. Par défaut true ; mettez false pour envoyer ce seul message sans la signature.
attachmentsarrayoptionnelPièces jointes. Chaque élément : { filename, mime_type, data (base64) }. Max 20 éléments, 10 Mo au total.
folderread:emailmanage:folders

Gérer les dossiers de la boîte (libellés sur Gmail). Définissez action : 'list' (chaque dossier avec son ID natif du fournisseur, son nom affiché, son type et ses nombres de messages — utilisez les ID comme argument folder lors du listage et comme destination de déplacement), 'create' (name), 'rename' (folder_id, new_name) ou 'delete' (folder_id — irréversible ; les messages qu'il contient peuvent être perdus selon le fournisseur). 'list' nécessite read:email ; create/rename/delete nécessitent manage:folders, et delete est signalé comme destructif à votre client MCP.

ParamètreTypeRequisDescription
actionenumrequisQuelle opération effectuer : "list", "create", "rename" ou "delete". Détermine quels autres arguments s'appliquent et quelle portée est requise.
inbox_idstring (uuid)optionnelUUID de la boîte dont les dossiers sont gérés. Facultatif — résolu automatiquement quand la clé n'a qu'une seule boîte ; sinon passez celui-ci ou inbox. Appelez inbox_list pour obtenir les ID de boîte disponibles.
inboxstringoptionnelAdresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni.
namestringoptionnelNom du nouveau dossier ou libellé (action 'create'). 1–255 caractères.
folder_idstringoptionnelID de dossier/libellé natif du fournisseur (action 'rename' ou 'delete'), issu de l'action list de folder.
new_namestringoptionnelNouveau nom affiché (action 'rename'). 1–255 caractères.
draftmanage:drafts

Gérer les brouillons dans le dossier Drafts de la boîte. Définissez action : 'list' (brouillons enregistrés, chacun avec son draft_id, son objet, ses destinataires et sa date de création), 'create' (subject/body requis, éventuellement to/cc/bcc/html_body), 'update' (draft_id plus les champs à écraser) ou 'send' (draft_id — supprime le brouillon et l'envoie, irréversible). La signature de la boîte est intégrée à la création ou à la mise à jour du brouillon, elle est donc déjà présente dans le dossier Drafts et n'est pas réajoutée à l'envoi ; passez include_signature: false pour créer un brouillon sans elle. Sur les boîtes basées sur IMAP, un draft_id change à chaque mise à jour, utilisez donc toujours le plus récent ; Gmail et Outlook conservent un draft_id stable.

ParamètreTypeRequisDescription
actionenumrequisQuelle opération effectuer : "list", "create", "update" ou "send". Détermine quels autres arguments s'appliquent.
inbox_idstring (uuid)optionnelUUID de la boîte qui contient les brouillons. Facultatif — résolu automatiquement quand la clé n'a qu'une seule boîte ; sinon passez celui-ci ou inbox. Appelez inbox_list pour obtenir les ID de boîte disponibles.
inboxstringoptionnelAdresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni.
draft_idstringoptionnelID de brouillon du fournisseur (action 'update' ou 'send'), issu de l'action create, update ou list la plus récente. Sur les boîtes IMAP, il change après chaque mise à jour, utilisez donc toujours le plus récent.
subjectstringoptionnelObjet du brouillon (action 'create'/'update').
bodystringoptionnelCorps en texte brut du brouillon (action 'create'/'update').
toarray[string]optionnelAdresses des destinataires (action 'create'/'update'). Par défaut [].
ccarray[string]optionnelDestinataires en copie (action 'create'/'update'). Par défaut [].
bccarray[string]optionnelDestinataires en copie cachée (action 'create'/'update'). Par défaut [].
html_bodystringoptionnelCorps HTML facultatif (action 'create'/'update').
include_signaturebooleanoptionnelIndique s'il faut intégrer la signature configurée de la boîte au brouillon (action 'create'/'update'). Par défaut true ; mettez false pour enregistrer un brouillon sans la signature.
limitintegeroptionnelNombre maximal de brouillons à renvoyer (action 'list'). Par défaut 20, max 50.
scheduleschedule:email

Programmer un e-mail pour une livraison ultérieure via une file d'attente côté serveur. Définissez action : 'create' (to/subject/body plus un horodatage send_at au format ISO 8601 — les destinataires et le corps sont validés immédiatement, et les envois invalides ne sont pas mis en file), 'list' (envois programmés en attente, les plus proches d'abord, éventuellement filtrés par boîte) ou 'cancel' (scheduled_send_id — seuls les envois encore 'pending' peuvent être annulés). Le distributeur s'exécute chaque minute, la livraison peut donc avoir lieu jusqu'à 60 secondes après send_at.

ParamètreTypeRequisDescription
actionenumrequisQuelle opération effectuer : "create", "list" ou "cancel". Détermine quels autres arguments s'appliquent.
inbox_idstring (uuid)optionnelUUID de la boîte depuis laquelle envoyer (action 'create') ou par laquelle filtrer (action 'list'). Facultatif — résolu automatiquement quand la clé n'a qu'une seule boîte ; sinon passez celui-ci ou inbox. Appelez inbox_list pour obtenir les ID de boîte disponibles.
inboxstringoptionnelAdresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni.
toarray[string]optionnelAdresses e-mail des destinataires (action 'create'). Max 50.
subjectstringoptionnelObjet de l'e-mail (action 'create'). Max 998 caractères.
bodystringoptionnelCorps en texte brut de l'e-mail (action 'create').
send_atstring (ISO 8601)optionnelDate-heure ISO 8601 avec fuseau horaire à laquelle envoyer (action 'create'). Doit être dans le futur, p. ex. "2026-06-02T09:00:00Z".
ccarray[string]optionnelDestinataires en copie (action 'create'). Par défaut [].
bccarray[string]optionnelDestinataires en copie cachée (action 'create'). Par défaut [].
html_bodystringoptionnelVersion HTML facultative du corps (action 'create').
reply_tostringoptionnelAdresse facultative de l'en-tête Reply-To (action 'create').
attachmentsarrayoptionnelPièces jointes (action 'create'). Même schéma que l'action send. Max 20 éléments, 10 Mo au total.
scheduled_send_idstring (uuid)optionnelUUID de l'envoi programmé à annuler (action 'cancel').
limitintegeroptionnelNombre maximal de résultats (action 'list'). Par défaut 20, max 100.
signatureread:emailsend:email

Lire ou configurer la signature e-mail de la boîte, qui est ajoutée côté serveur à chaque envoi, réponse, transfert, brouillon et message programmé. Définissez action : 'get' (renvoie le texte et le HTML de la signature actuelle, si elle est activée, le mode de réponse/transfert et sa source — 'manual', 'gmail_import' ou null) ou 'set' (écrire signature_text et/ou signature_html, et éventuellement signature_enabled et signature_reply_mode). Les signatures prennent en charge le HTML enrichi : gras, italique, titres, listes, couleurs, alignement, liens et images/logos hébergés référencés par des URL https, de sorte qu'un agent peut définir une signature entièrement mise en forme en passant signature_html. Le même éditeur enrichi est disponible dans le tableau de bord. Définir une signature marque sa source comme 'manual', ce qui remplace définitivement l'import automatique de Gmail pour cette boîte. 'get' nécessite read:email ; 'set' nécessite send:email.

ParamètreTypeRequisDescription
actionenumrequisQuelle opération effectuer : "get" (lire la signature actuelle) ou "set" (l'écrire). Détermine quels autres arguments s'appliquent et quelle portée est requise.
inbox_idstring (uuid)optionnelUUID de la boîte dont la signature est lue ou définie. Facultatif — résolu automatiquement quand la clé n'a qu'une seule boîte ; sinon passez celui-ci ou inbox. Appelez inbox_list pour obtenir les ID de boîte disponibles.
inboxstringoptionnelAdresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni.
signature_textstringoptionnelCorps de signature en texte brut (action 'set'). Omettez-le pour ne rien changer ; passez une chaîne vide pour l'effacer. Si seul le texte est fourni, une version HTML est dérivée automatiquement à l'envoi.
signature_htmlstringoptionnelCorps de signature en HTML enrichi facultatif (action 'set'). Accepte la mise en forme (gras, italique, souligné, titres, listes, couleurs, alignement, liens) et des images hébergées via des balises <img> dont le src est une URL https (pas de base64 ni de CID) ; il est nettoyé à l'enregistrement. Omettez-le pour ne rien changer ; passez une chaîne vide pour l'effacer.
signature_enabledbooleanoptionnelIndique si la signature est ajoutée au courrier sortant (action 'set'). Par défaut true ; mettez false pour cesser de l'ajouter sans supprimer le texte.
signature_reply_modeenumoptionnelQuand inclure la signature dans les réponses et les transferts (action 'set') : "always" (chaque réponse/transfert), "first_only" (par défaut — uniquement le premier message d'un fil, pour éviter la double signature) ou "never".
Codes d'erreur

Codes d'erreur et conseils de réessai.

Les échecs d'authentification, de portée et de limite de débit renvoient un objet error JSON-RPC avec un code numérique. Les échecs d'exécution d'outil (boîte introuvable, erreur du fournisseur, etc.) renvoient un result normal avec isError: true et un message lisible dans content[0].text.

CodeTypeQuand cela survientRéessayable
-32001JSON-RPC errorClé API manquante, mal formée, révoquée ou expirée. Également renvoyé lorsque la clé API n'a pas la portée requise pour l'outil appelé.Non
-32601JSON-RPC errorMéthode JSON-RPC inconnue (par ex. appel d'une méthode autre qu'initialize, tools/list, tools/call)Non
-32602JSON-RPC errorNom d'outil inconnu, ou paramètre manquant / invalide dans tools/callNon
-32029JSON-RPC errorLimite de débit par clé ou quota quotidien de la formule dépassé. Vérifiez data.error_code : « rate_limit_exceeded » contre « quota_exceeded ». Vérifiez data.retry_after (secondes) avant de réessayer.
isError: trueTool resultL'outil s'est exécuté mais a rencontré une erreur (boîte introuvable, message introuvable, échec d'authentification du fournisseur, destinataire invalide, pièce jointe trop volumineuse, fournisseur 5xx). La description de l'erreur se trouve dans content[0].text.Non
Exemple de réponse d'erreur d'exécution
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
    }
  }
}
Limites de débit

Limites de débit et quotas.

Fenêtres glissantes par clé

100 req / min · 1 000 / h · 10 000 / jour

Appliqué par clé API quelle que soit la formule. En cas de dépassement, le serveur renvoie le code d'erreur -32029 avec data.error_code: "rate_limit_exceeded" et un champ data.retry_after (secondes). Respectez cette valeur avant de réessayer.

Plafond par minute de la formule

Gratuit 60 / min · Solo 300 / min · Team 1 000 / min

L'usage est illimité ; il s'agit d'une limite de pointe d'usage équitable par espace de travail (agrégée sur toutes vos clés API). En cas de dépassement, les appels renvoient data.error_code: "rate_limit_exceeded" avec data.window: "per_minute" et un compte à rebours data.retry_after (secondes). Passez à une formule supérieure pour un plafond plus élevé.

Réessayer en toute sécurité

Respectez toujours retry_after ; ne réessayez jamais les envois à l'aveugle

Pour les erreurs rate_limit_exceeded, attendez data.retry_after secondes avant de réessayer. Utilisez un backoff exponentiel pour provider_error. Ne réessayez pas automatiquement les envois email_compose en cas de provider_error, car le message a peut-être déjà été accepté par le fournisseur.

Prêt à connecter votre boîte de réception ?

Commencez avec la formule Gratuit : illimitée, aucune carte requise. Passez à Solo ou Team pour des limites de pointe plus élevées et des fonctionnalités d'équipe.