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.
Aucun SDK requis. MCPEmails parle le MCP standard via HTTP, donc il s'intègre dans tout agent compatible MCP.
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 →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_AbCdEfGhIjKlMnOpQrStUvWxYz123456Choisissez 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.
# 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.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.Tout le trafic passe par un unique point de terminaison Streamable HTTP. Authentifiez-vous avec un jeton bearer issu de votre tableau de bord.
https://mcpemails.com/api/mcpEnvoyez un corps de requête JSON-RPC 2.0. Méthodes prises en charge : 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 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).
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.
https://mcpemails.com/api/mcp comme URL du serveurComment ç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.
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:emailemail_readread:emailsearch:emailemail_organizemanage:folderssend:emailemail_deletedelete:emailemail_composesend:emailfolderread:emailmanage:foldersdraftmanage:draftsscheduleschedule:emailcontact_searchmanage:contactssignatureread:emailsend:emailinbox_listread:emailRenvoie 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ètre | Type | Requis | Description |
|---|---|---|---|
provider | enum | optionnel | Filtre 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_capabilities | boolean | optionnel | Si 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:emailLire, 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ètre | Type | Requis | Description |
|---|---|---|---|
action | enum | requis | Quelle 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_id | string (uuid) | optionnel | UUID 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. |
inbox | string | optionnel | Adresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni. |
message_id | string | optionnel | ID de message du fournisseur à lire (action 'read' ou 'attachment'), issu d'un list ou search précédent. |
message_ids | array[string] | optionnel | ID de message du fournisseur à lire (action 'read_batch'), issus d'un list ou search précédent. Max 50 par appel. |
folder | string | optionnel | Dossier à lister (action 'list'). Par défaut "INBOX". Autres valeurs : "SENT", "DRAFTS", "TRASH". |
unread_only | boolean | optionnel | Ne renvoyer que les messages non lus (action 'list'). Par défaut false. |
limit | integer | optionnel | Nombre max de résultats à renvoyer (action 'list' ou 'search'). Par défaut 20, max 100. |
offset | integer | optionnel | Décalage de pagination commençant à zéro (action 'list' ou 'search'). Par défaut 0. |
include_html | boolean | optionnel | Inclure le corps HTML assaini (action 'read'/'read_batch'). Par défaut false. |
include_attachments | boolean | optionnel | Inclure 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_read | boolean | optionnel | Marquer le ou les messages comme lus après récupération (action 'read'/'read_batch'). Par défaut false. |
from | string | optionnel | Expéditeur à faire correspondre (action 'search') : adresse e-mail, nom affiché ou fragment (p. ex. "alice@example.com" ou "Alice"). |
to | string | optionnel | Destinataire principal (To) à faire correspondre (action 'search') : adresse e-mail, nom affiché ou fragment. |
cc | string | optionnel | Destinataire en copie (Cc) à faire correspondre (action 'search') : adresse e-mail, nom affiché ou fragment. |
subject | string | optionnel | Texte à faire correspondre dans l'objet (action 'search'). Les expressions de plusieurs mots sont prises telles quelles. |
body | string | optionnel | Texte libre à trouver dans le corps du message (action 'search'). (Sur Gmail, cela correspond à l'ensemble du message, pas seulement au corps.) |
text | string | optionnel | Texte libre à faire correspondre n'importe où dans le message — en-têtes et corps (action 'search'). |
unread | boolean | optionnel | Action 'search' : true = uniquement les messages non lus ; false = uniquement les lus ; omettez pour les deux. |
has_attachment | boolean | optionnel | Action 'search' : true = uniquement les messages avec pièce jointe. Non pris en charge sur IMAP générique (ignoré ici). |
flagged | boolean | optionnel | Action 'search' : true = uniquement les messages marqués/suivis. Non pris en charge sur Outlook/Graph (ignoré ici). |
since | string (ISO date) | optionnel | Date ou date-heure ISO 8601 (action 'search') ; renvoie les messages reçus le/après (>=) cet instant. P. ex. "2026-06-01". |
before | string (ISO date) | optionnel | Date ou date-heure ISO 8601 (action 'search') ; renvoie les messages reçus strictement avant (<) cet instant. |
query | string | optionnel | Chaî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_folders | array | optionnel | Restreindre une recherche à ces noms de dossier (action 'search'). Par défaut : rechercher dans tous les dossiers. |
email_organizemanage:folderssend:emailDé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ètre | Type | Requis | Description |
|---|---|---|---|
action | enum | requis | Quelle 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_id | string (uuid) | optionnel | UUID 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. |
inbox | string | optionnel | Adresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni. |
message_id | string | optionnel | ID 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_ids | array[string] | optionnel | ID de message du fournisseur pour une action par lot (move_batch, copy_batch, flag). Max 500 par appel. |
destination_folder_id | string | optionnel | Dossier 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_action | enum | optionnel | Pour 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. |
from | string | optionnel | Expéditeur à faire correspondre (search_and_move) : adresse e-mail, nom affiché ou fragment. |
to | string | optionnel | Destinataire principal (To) à faire correspondre (search_and_move) : adresse e-mail, nom affiché ou fragment. |
cc | string | optionnel | Destinataire en copie (Cc) à faire correspondre (search_and_move) : adresse e-mail, nom affiché ou fragment. |
subject | string | optionnel | Texte à faire correspondre dans l'objet (search_and_move). |
body | string | optionnel | Texte libre à trouver dans le corps du message (search_and_move). (Sur Gmail, cela correspond à l'ensemble du message.) |
text | string | optionnel | Texte libre à faire correspondre n'importe où dans le message — en-têtes et corps (search_and_move). |
unread | boolean | optionnel | Actions de recherche : true = uniquement non lus ; false = uniquement lus ; omettez pour les deux. |
has_attachment | boolean | optionnel | Actions de recherche : true = uniquement les messages avec pièce jointe. Non pris en charge sur IMAP générique (ignoré ici). |
flagged | boolean | optionnel | Actions de recherche : true = uniquement les messages marqués/suivis. Non pris en charge sur Outlook/Graph (ignoré ici). |
since | string (ISO date) | optionnel | Date ou date-heure ISO 8601 (actions de recherche) ; correspond aux messages reçus le/après (>=) cet instant. |
before | string (ISO date) | optionnel | Date ou date-heure ISO 8601 (actions de recherche) ; correspond aux messages reçus strictement avant (<) cet instant. |
query | string | optionnel | Chaî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_folders | array | optionnel | Restreindre la recherche à ces noms de dossier (actions de recherche). Par défaut : tous les dossiers. |
limit | integer | optionnel | Pour search_and_move : nombre maximal de correspondances à traiter. Par défaut 500, max 500. |
email_deletedelete:emailSupprimer 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ètre | Type | Requis | Description |
|---|---|---|---|
action | enum | requis | Quelle opération effectuer : "delete", "delete_batch" ou "search_and_delete". Détermine quels autres arguments s'appliquent. |
inbox_id | string (uuid) | optionnel | UUID 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. |
inbox | string | optionnel | Adresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni. |
message_id | string | optionnel | ID de message du fournisseur pour une suppression unique (action 'delete'), issu d'un list, read ou search précédent. |
message_ids | array[string] | optionnel | ID de message du fournisseur pour une suppression par lot (action 'delete_batch'). Max 500 par appel. |
permanent | boolean | optionnel | Si 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. |
from | string | optionnel | Expéditeur à faire correspondre (search_and_delete) : adresse e-mail, nom affiché ou fragment. |
to | string | optionnel | Destinataire principal (To) à faire correspondre (search_and_delete) : adresse e-mail, nom affiché ou fragment. |
cc | string | optionnel | Destinataire en copie (Cc) à faire correspondre (search_and_delete) : adresse e-mail, nom affiché ou fragment. |
subject | string | optionnel | Texte à faire correspondre dans l'objet (search_and_delete). |
body | string | optionnel | Texte libre à trouver dans le corps du message (search_and_delete). (Sur Gmail, cela correspond à l'ensemble du message.) |
text | string | optionnel | Texte libre à faire correspondre n'importe où dans le message — en-têtes et corps (search_and_delete). |
unread | boolean | optionnel | Action de recherche : true = uniquement non lus ; false = uniquement lus ; omettez pour les deux. |
has_attachment | boolean | optionnel | Action de recherche : true = uniquement les messages avec pièce jointe. Non pris en charge sur IMAP générique (ignoré ici). |
flagged | boolean | optionnel | Action de recherche : true = uniquement les messages marqués/suivis. Non pris en charge sur Outlook/Graph (ignoré ici). |
since | string (ISO date) | optionnel | Date ou date-heure ISO 8601 (action de recherche) ; correspond aux messages reçus le/après (>=) cet instant. |
before | string (ISO date) | optionnel | Date ou date-heure ISO 8601 (action de recherche) ; correspond aux messages reçus strictement avant (<) cet instant. |
query | string | optionnel | Chaî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_folders | array | optionnel | Restreindre la recherche à ces noms de dossier (action de recherche). Par défaut : tous les dossiers. |
limit | integer | optionnel | Pour search_and_delete : nombre maximal de correspondances à traiter. Par défaut 500, max 500. |
email_composesend:emailEnvoyer 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ètre | Type | Requis | Description |
|---|---|---|---|
action | enum | requis | Quelle opération effectuer : "send", "reply" ou "forward". Détermine quels autres arguments s'appliquent. |
inbox_id | string (uuid) | optionnel | UUID 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. |
inbox | string | optionnel | Adresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni. |
message_id | string | optionnel | ID de message du fournisseur du message d'origine (action 'reply' ou 'forward'), issu d'un list, read ou search précédent. |
to | array[string] | optionnel | Adresses e-mail des destinataires (requis pour 'send' et 'forward'). Max 50. |
subject | string | optionnel | Objet de l'e-mail (action 'send'). Max 998 caractères. En reply/forward, il est dérivé de l'original. |
body | string | optionnel | Corps en texte brut. Pour 'reply', c'est votre réponse ; pour 'forward', une note facultative ajoutée au-dessus du message transféré. |
cc | array[string] | optionnel | Destinataires en copie (send, forward). Par défaut []. |
bcc | array[string] | optionnel | Destinataires en copie cachée (send, forward). Par défaut []. |
html_body | string | optionnel | Version HTML du corps (multipart/alternative). L'appelant est responsable d'un HTML sûr. |
reply_to | string | optionnel | Adresse de l'en-tête Reply-To (action 'send'). |
reply_all | boolean | optionnel | Répondre à tous les destinataires d'origine — To + Cc (action 'reply'). Par défaut false. |
include_attachments | boolean | optionnel | Ré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_signature | boolean | optionnel | Indique 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. |
attachments | array | optionnel | Pièces jointes. Chaque élément : { filename, mime_type, data (base64) }. Max 20 éléments, 10 Mo au total. |
folderread:emailmanage:foldersGé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ètre | Type | Requis | Description |
|---|---|---|---|
action | enum | requis | Quelle opération effectuer : "list", "create", "rename" ou "delete". Détermine quels autres arguments s'appliquent et quelle portée est requise. |
inbox_id | string (uuid) | optionnel | UUID 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. |
inbox | string | optionnel | Adresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni. |
name | string | optionnel | Nom du nouveau dossier ou libellé (action 'create'). 1–255 caractères. |
folder_id | string | optionnel | ID de dossier/libellé natif du fournisseur (action 'rename' ou 'delete'), issu de l'action list de folder. |
new_name | string | optionnel | Nouveau nom affiché (action 'rename'). 1–255 caractères. |
draftmanage:draftsGé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ètre | Type | Requis | Description |
|---|---|---|---|
action | enum | requis | Quelle opération effectuer : "list", "create", "update" ou "send". Détermine quels autres arguments s'appliquent. |
inbox_id | string (uuid) | optionnel | UUID 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. |
inbox | string | optionnel | Adresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni. |
draft_id | string | optionnel | ID 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. |
subject | string | optionnel | Objet du brouillon (action 'create'/'update'). |
body | string | optionnel | Corps en texte brut du brouillon (action 'create'/'update'). |
to | array[string] | optionnel | Adresses des destinataires (action 'create'/'update'). Par défaut []. |
cc | array[string] | optionnel | Destinataires en copie (action 'create'/'update'). Par défaut []. |
bcc | array[string] | optionnel | Destinataires en copie cachée (action 'create'/'update'). Par défaut []. |
html_body | string | optionnel | Corps HTML facultatif (action 'create'/'update'). |
include_signature | boolean | optionnel | Indique 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. |
limit | integer | optionnel | Nombre maximal de brouillons à renvoyer (action 'list'). Par défaut 20, max 50. |
scheduleschedule:emailProgrammer 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ètre | Type | Requis | Description |
|---|---|---|---|
action | enum | requis | Quelle opération effectuer : "create", "list" ou "cancel". Détermine quels autres arguments s'appliquent. |
inbox_id | string (uuid) | optionnel | UUID 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. |
inbox | string | optionnel | Adresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni. |
to | array[string] | optionnel | Adresses e-mail des destinataires (action 'create'). Max 50. |
subject | string | optionnel | Objet de l'e-mail (action 'create'). Max 998 caractères. |
body | string | optionnel | Corps en texte brut de l'e-mail (action 'create'). |
send_at | string (ISO 8601) | optionnel | Date-heure ISO 8601 avec fuseau horaire à laquelle envoyer (action 'create'). Doit être dans le futur, p. ex. "2026-06-02T09:00:00Z". |
cc | array[string] | optionnel | Destinataires en copie (action 'create'). Par défaut []. |
bcc | array[string] | optionnel | Destinataires en copie cachée (action 'create'). Par défaut []. |
html_body | string | optionnel | Version HTML facultative du corps (action 'create'). |
reply_to | string | optionnel | Adresse facultative de l'en-tête Reply-To (action 'create'). |
attachments | array | optionnel | Pièces jointes (action 'create'). Même schéma que l'action send. Max 20 éléments, 10 Mo au total. |
scheduled_send_id | string (uuid) | optionnel | UUID de l'envoi programmé à annuler (action 'cancel'). |
limit | integer | optionnel | Nombre maximal de résultats (action 'list'). Par défaut 20, max 100. |
contact_searchmanage:contactsTrouvez des correspondants par nom ou e-mail grâce à une analyse en direct de votre boîte — il n'y a pas de liste de contacts stockée. Chaque appel analyse une fenêtre récente de courrier correspondant et renvoie les personnes qui correspondent, triées par contact le plus récent, chacune avec son nom affiché, son e-mail, le nombre de messages correspondants et l'horodatage du dernier contact. Les nombres reflètent les messages correspondants dans cette fenêtre, pas tout votre historique, et rien n'est stocké entre les appels.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
query | string | requis | Fragment de nom ou d'e-mail, comparé sans tenir compte de la casse au nom affiché et à l'adresse. Au moins 1 caractère. |
inbox_id | string (uuid) | optionnel | Facultatif. Restreindre l'analyse en direct à une seule boîte. Omettez-le pour analyser les boîtes auxquelles la clé a accès (un nombre limité). |
inbox | string | optionnel | Adresse e-mail de la boîte à laquelle se restreindre, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni. |
limit | integer | optionnel | Nombre maximal de contacts à renvoyer. Par défaut 20, max 50. |
signatureread:emailsend:emailLire 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ètre | Type | Requis | Description |
|---|---|---|---|
action | enum | requis | Quelle 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_id | string (uuid) | optionnel | UUID 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. |
inbox | string | optionnel | Adresse e-mail de la boîte à utiliser, comme alternative pratique à inbox_id. Facultatif ; ignoré si inbox_id est fourni. |
signature_text | string | optionnel | Corps 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_html | string | optionnel | Corps 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_enabled | boolean | optionnel | Indique 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_mode | enum | optionnel | Quand 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". |
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.
| Code | Type | Quand cela survient | Réessayable |
|---|---|---|---|
-32001 | JSON-RPC error | Clé 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 |
-32601 | JSON-RPC error | Méthode JSON-RPC inconnue (par ex. appel d'une méthode autre qu'initialize, tools/list, tools/call) | Non |
-32602 | JSON-RPC error | Nom d'outil inconnu, ou paramètre manquant / invalide dans tools/call | Non |
-32029 | JSON-RPC error | Limite 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: true | Tool result | L'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 |
// 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
}
}
}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.
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é.
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.
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.