Mailtrap
officielS'intègre avec l'API Email de Mailtrap.
Que pouvez-vous faire avec Mailtrap MCP ?
- Envoyer un e-mail transactionnel — Demandez à l’assistant d’envoyer un e-mail avec un objet et un corps en texte ou en HTML, en utilisant éventuellement un modèle et des variables.
- Tester dans Email Sandbox — Envoyez des messages dans un environnement de test et examinez leur contenu, leurs en-têtes et leurs pièces jointes sans qu’ils parviennent à de vrais destinataires.
- Déboguer la livraison avec les journaux — Répertoriez et filtrez les journaux des e-mails envoyés, puis ouvrez un message spécifique pour consulter l’historique de ses événements et son statut de livraison.
- Analyser les statistiques d’envoi — Obtenez les taux de livraison, de rebond, d’ouverture, de clic et de signalement comme spam pour une période donnée, ventilés par domaine, catégorie ou date.
- Gérer les modèles — Créez, répertoriez, mettez à jour et supprimez les modèles d’e-mail stockés dans votre compte Mailtrap.
- Gérer les domaines et les suppressions — Répertoriez les domaines, obtenez les instructions de configuration DNS et consultez ou supprimez les adresses supprimées.
Documentation
Serveur MCP officiel de Mailtrap
Le serveur MCP officiel de Mailtrap, la plateforme de distribution d’e-mails. Il connecte votre compte Mailtrap à Claude, Cursor, VS Code et à d’autres assistants IA compatibles avec MCP.
Envoyez des e-mails transactionnels et en masse, testez des messages en toute sécurité dans Email Sandbox, gérez les modèles, les contacts, les domaines et les webhooks, consultez les journaux d’e-mails et les statistiques de distribution, résolvez les problèmes de délivrabilité et gérez les ressources du compte, le tout à l’aide de prompts en langage naturel.
Fonctionnalités
- API e-mail et SMTP — Envoyez des e-mails transactionnels et en masse, y compris des messages par lots et basés sur des modèles.
- Tests d’e-mails — Testez des messages dans Email Sandbox et examinez leur contenu, leurs en-têtes, leurs pièces jointes, leurs scores de spam et leur compatibilité avec les clients HTML.
- Suivi de la distribution — Recherchez dans les journaux d’e-mails, consultez l’historique des événements et analysez les taux de distribution, de rebond, d’ouverture, de clic et de spam.
- Infrastructure e-mail — Gérez les domaines, la vérification DNS, les webhooks et les suppressions.
- Contacts — Gérez les contacts, les listes, les champs personnalisés et les événements, ainsi que les importations et les exportations.
- Gestion du compte — Consultez l’utilisation de la facturation et gérez les accès, les autorisations, les jetons API et les sous-comptes.
Clients MCP pris en charge
Fonctionne avec Claude Desktop, Claude Code, Cursor, VS Code et tout autre client compatible avec MCP. Les instructions de configuration de chacun sont ci-dessous.
Prérequis
Avant d’utiliser ce serveur MCP, vous devez :
- Créer un compte Mailtrap
- Vérifier votre domaine
- Obtenir votre jeton API dans les paramètres de l’API Mailtrap
- Obtenir votre ID de compte dans la gestion des comptes Mailtrap
- Installer Node.js 22 ou une version ultérieure, sauf si vous exécutez l’image Docker
Variables d’environnement requises :
MAILTRAP_API_TOKEN- Requis pour toutes les fonctionnalitésMAILTRAP_ACCOUNT_ID- Requis pour les modèles, get-sending-stats, les journaux d’e-mails, la liste et l’affichage des sandboxes, les domaines et les suppressions. Facultatif uniquement pour les outils d’envoi (send-email, send-sandbox-email et les outils batch-send-*), les outils de campagnes e-mail, get-marketing-stats, les outils d’informations sur l’entreprise, les outils de désactivation du suivi et list-accounts.
Facultatives (peuvent être transmises comme paramètres d’outil à la place) :
DEFAULT_FROM_EMAIL- Adresse e-mail d’expéditeur par défaut lorsquefromn’est pas fourni à send-email, send-sandbox-email ou aux outils batch-send-* (où elle renseignebase.from). Permet de changer d’expéditeur à chaque appel à l’aide du paramètrefrom.MAILTRAP_SANDBOX_ID- ID de sandbox par défaut lorsqu’un outil ne reçoit passandbox_id(l’ancientest_inbox_idreste accepté pour les outils d’envoi, de liste et d’affichage des messages de sandbox). Permet de changer de sandbox à chaque appel à l’aide des paramètres.MAILTRAP_TEST_INBOX_ID- Alias obsolète deMAILTRAP_SANDBOX_ID; toujours lu comme valeur de repli pour les configurations existantes, et génère un avertissement d’obsolescence sur stderr lorsqu’il est utilisé.MAILTRAP_ORGANIZATION_ID- Requis pour les outils d’organisation (list-sub-accounts,create-sub-account,delete-sub-account).MAILTRAP_ORGANIZATION_API_TOKEN- Jeton API associé à l’organisation. Requis pour les outils d’organisation (distinct deMAILTRAP_API_TOKEN).
Installation rapide
Docker
Exécutez le serveur via stdio avec l’image du catalogue MCP Docker :
docker run --rm -i \
-e MAILTRAP_API_TOKEN="${MAILTRAP_API_TOKEN}" \
-e MAILTRAP_ACCOUNT_ID="${MAILTRAP_ACCOUNT_ID}" \
-e DEFAULT_FROM_EMAIL="${DEFAULT_FROM_EMAIL}" \
-e MAILTRAP_SANDBOX_ID="${MAILTRAP_SANDBOX_ID}" \
-e MAILTRAP_ORGANIZATION_ID="${MAILTRAP_ORGANIZATION_ID}" \
-e MAILTRAP_ORGANIZATION_API_TOKEN="${MAILTRAP_ORGANIZATION_API_TOKEN}" \
mcp/mailtrap
Consultez les prérequis pour connaître les variables d’environnement requises et facultatives.
Pour créer une image à partir de ce dépôt : docker build -t mcp/mailtrap .
Smithery CLI
Smithery est un registre et un programme d’installation de serveurs MCP compatible avec les clients IA.
Installez le serveur publié (mailtrap/mailtrap-mcp) dans un client local (remplacez le nom du client selon vos besoins) :
npx -y smithery mcp add mailtrap/mailtrap-mcp --client claude
Consultez la documentation de Smithery CLI pour découvrir d’autres clients (cursor, windsurf, etc.) et savoir comment publier des mises à jour.
Configuration
Claude Desktop
Utilisez MCPB pour installer le serveur Mailtrap. Vous trouverez ces fichiers dans Releases.
Téléchargez le fichier .MCPB et ouvrez-le. Si vous utilisez Claude Desktop, il s’ouvrira et vous proposera de le configurer.
Claude Desktop ou Cursor
Ajoutez la configuration suivante :
{
"mcpServers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_SANDBOX_ID": "your_sandbox_id"
}
}
}
}
Si vous utilisez asdf pour gérer Node.js, vous devez utiliser le chemin absolu de l’exécutable (exemple pour Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "22.14.0",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_SANDBOX_ID": "your_sandbox_id"
}
}
}
}
Emplacement du fichier de configuration de Claude Desktop
Mac : ~/Library/Application Support/Claude/claude_desktop_config.json
Windows : %APPDATA%\Claude\claude_desktop_config.json
Emplacement du fichier de configuration de Cursor
Mac : ~/.cursor/mcp.json
Windows : %USERPROFILE%\.cursor\mcp.json
VS Code
Modification manuelle de la configuration
Exécutez dans la palette de commandes : Preferences: Open User Settings (JSON)
Puis, dans le fichier de paramètres, ajoutez la configuration suivante :
{
"mcp": {
"servers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_SANDBOX_ID": "your_sandbox_id"
}
}
}
}
}
[!TIP] N’oubliez pas de redémarrer votre serveur MCP après avoir modifié la section "env".
Bundle MCP (MCPB)
Pour faciliter l’installation sur les hôtes prenant en charge les bundles MCP, vous pouvez distribuer un fichier bundle .mcpb.
# Build TypeScript and pack the MCPB bundle
npm run mcpb:pack
# Inspect bundle metadata
npm run mcpb:info
# Sign the bundle for distribution (optional)
npm run mcpb:sign
Cela crée mailtrap-mcp.mcpb. Le script copie dist/, manifest.json, icon.png et la
licence dans mcpb-build/, y installe les dépendances de production et empaquette uniquement ce répertoire.
N’exécutez pas mcpb pack . depuis la racine du dépôt.
Utilisation
Une fois la configuration terminée, vous pouvez demander à l’agent d’envoyer des e-mails et de gérer des modèles, par exemple :
Opérations d’envoi d’e-mails :
- "Envoyer un e-mail à john.doe@example.com avec pour objet 'Meeting Tomorrow' et un rappel amical concernant notre prochaine réunion."
- "Envoyer un e-mail à sarah@example.com au sujet de la mise à jour du projet, et mettre l’équipe en copie à team@example.com"
- "Envoyer le modèle de bienvenue (uuid
b81aabcd-1a1e-41cf-91b6-eca0254b3d96) à new@example.com avec les variables{ name: 'Alex' }" - "Envoyer un e-mail de sandbox à test@example.com avec pour objet 'Test Template' afin de prévisualiser l’apparence de notre e-mail de bienvenue"
Journaux d’e-mails (débogage de la distribution) :
- "Afficher mes journaux récents d’e-mails envoyés"
- "Afficher les journaux d’e-mails envoyés à user@example.com"
- "Récupérer le message du journal d’e-mail portant l’ID abc-123-uuid pour vérifier l’état de distribution"
Statistiques :
- "Obtenir les statistiques d’envoi pour janvier 2025"
- "Afficher les taux de distribution par domaine pour le mois dernier"
- "Quelles sont mes statistiques d’e-mails par catégorie du 2025-01-01 au 2025-01-31 ?"
- "Quels résultats a obtenu mon marketing par e-mail le mois dernier ? Comparer les campagnes et les automatisations"
Opérations de sandbox :
- "Récupérer tous les messages de ma sandbox"
- "Afficher la première page des messages de sandbox"
- "Rechercher les messages contenant 'test' dans ma sandbox"
- "Créer une sandbox appelée 'QA' dans le projet 42 et me fournir ses identifiants SMTP"
- "Supprimer tous les messages de la sandbox 1234"
- "Afficher les détails du message de sandbox portant l’ID 5159037506"
Opérations sur les modèles :
- "Lister tous les modèles d’e-mail de mon compte Mailtrap"
- "Créer un modèle d’e-mail appelé 'Welcome Email' avec pour objet 'Welcome to our platform!'"
- "Mettre à jour le modèle portant l’ID 12345 pour remplacer l’objet par 'Updated Welcome Message'"
- "Supprimer le modèle portant l’ID 67890"
Domaines :
- "Lister mes domaines"
- "Récupérer le domaine portant l’ID 3938"
- "Créer un domaine pour example.com"
- "Activer le suivi des clics pour le domaine 3938"
- "Supprimer le domaine 3938"
- "Récupérer le domaine 3938 avec les instructions de configuration DNS"
- "Afficher les informations de l’entreprise pour le domaine 3938"
- "Définir les informations de l’entreprise pour le domaine 3938 sur Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com"
- "Remplacer la ville des informations de l’entreprise pour le domaine 3938 par New York"
Suppressions :
- "Lister les suppressions pour bounced@example.com"
- "Supprimer bounced@example.com du flux transactionnel du domaine 3938"
- "Afficher toutes les adresses e-mail supprimées"
- "Pourquoi user@example.com ne reçoit-il pas mes e-mails ?"
- "Retirer user@example.com de la liste de suppression"
Désactivation du suivi :
- "Désactiver le suivi des ouvertures et des clics pour privacy@example.com sur le domaine 3938"
- "Lister toutes les personnes qui ont désactivé le suivi"
Contacts et listes :
- "Ajouter john.doe@example.com à ma liste de contacts de la newsletter"
- "Afficher toutes mes listes de contacts"
- "Créer un champ de contact appelé 'signup_source' pour suivre l’origine des contacts"
- "Mettre à jour le contact john.doe@example.com pour définir son offre sur 'pro'"
- "Importer ces contacts CSV dans ma liste d’intégration"
- "Exporter tous les contacts de ma liste de newsletter"
- "Enregistrer un événement 'trial_started' pour le contact john.doe@example.com"
Webhooks :
- "Lister tous les webhooks configurés sur mon compte"
- "Créer un webhook pointant vers https://example.com/hooks/mailtrap pour les événements de rebond et de spam"
- "Mettre à jour le webhook 4821 pour qu’il envoie également les événements de distribution"
- "Supprimer le webhook 4821"
Compte et facturation :
- "Quelle est mon utilisation actuelle de la facturation ce mois-ci ?"
- "Combien d’e-mails me reste-t-il dans mon forfait ?"
- "Lister toutes les personnes ayant accès à ce compte Mailtrap"
- "Afficher les ressources d’autorisation disponibles sur mon compte"
Jetons API :
- "Lister tous les jetons API de mon compte"
- "Créer un jeton API pour l’environnement de préproduction"
- "Réinitialiser le jeton API portant l’ID 1234"
- "Supprimer le jeton API inutilisé 1234"
Organisation et sous-comptes :
- "Lister tous les sous-comptes de mon organisation"
- "Créer un sous-compte pour le projet client 'Acme Corp'"
Outils renommés
Mailtrap appelle désormais les boîtes de réception de test des sandboxes et les domaines d’envoi des domaines ; les outils ont été renommés en conséquence. Les anciens noms n’apparaissent plus dans la liste des outils, mais les appels à ces noms fonctionnent toujours et génèrent un avertissement d’obsolescence sur stderr. Ils seront supprimés dans une prochaine version majeure.
Les clients MCP et les frameworks d’agents font correspondre les listes d’autorisation, de refus et de filtrage aux noms d’outils annoncés. Remplacez donc les entrées propres à chaque outil par les nouveaux noms : une entrée de refus pour delete-sending-domain ne bloque plus delete-domain.
| Ancien nom | Nouveau nom |
|---|---|
create-sandbox-inbox | create-sandbox |
get-sandbox-inbox | get-sandbox |
update-sandbox-inbox | update-sandbox |
delete-sandbox-inbox | delete-sandbox |
clean-sandbox-inbox | clean-sandbox |
list-sending-domains | list-domains |
get-sending-domain | get-domain |
create-sending-domain | create-domain |
update-sending-domain | update-domain |
delete-sending-domain | delete-domain |
send-sending-domain-setup-instructions | send-domain-setup-instructions |
paramètre sending_domain_id des outils de domaine et d’informations sur l’entreprise | domain_id |
variable d’environnement MAILTRAP_TEST_INBOX_ID | MAILTRAP_SANDBOX_ID |
Les filtres qui reflètent un champ d’API conservent leur nom : sending_domain_id sur list-email-logs et sending_domain_ids sur les outils de statistiques.
Outils disponibles
send-email
Envoie un e-mail transactionnel via Mailtrap. Prend en charge deux modes mutuellement exclusifs : contenu intégré (subject + text/html) ou basé sur un modèle (template_uuid).
Paramètres :
from(facultatif) : Expéditeur au format{ email, name? }(une simple adresse e-mail est également acceptée à l’exécution). Si cette valeur n’est pas fournie,DEFAULT_FROM_EMAILest utilisé.to(facultatif) : Tableau de destinataires sous forme d’objets{ email, name? }(de simples adresses e-mail ou une adresse unique hors tableau sont également acceptées à l’exécution). Facultatif siccoubccest fourni ; au moins l’un deto/cc/bccdoit contenir un destinataire.cc(facultatif) : Tableau de destinataires en copie (CC) sous forme d’objets{ email, name? }(de simples adresses e-mail sont également acceptées à l’exécution).bcc(facultatif) : Tableau de destinataires en copie cachée (BCC) sous forme d’objets{ email, name? }(de simples adresses e-mail sont également acceptées à l’exécution).subject(conditionnel) : Objet de l’e-mail. Obligatoire pour les envois avec contenu intégré ; doit être omis lorsquetemplate_uuidest défini.text(conditionnel) : Texte du corps de l’e-mail. Obligatoire (avec ou à la place dehtml) pour les envois avec contenu intégré ; doit être omis lorsquetemplate_uuidest défini.html(conditionnel) : Version HTML du corps de l’e-mail. Obligatoire (avec ou à la place detext) pour les envois avec contenu intégré ; doit être omis lorsquetemplate_uuidest défini.category(facultatif) : Catégorie d’e-mail pour le suivi et l’analyse. Doit être omise lorsquetemplate_uuidest défini.template_uuid(facultatif) : Utiliser un modèle d’e-mail Mailtrap à la place du contenu intégré. Lorsque cette valeur est définie,subject/text/html/categorydoivent être omis (conformément à l’API Mailtrap).template_variables(facultatif) : Objet contenant les variables substituées dans le modèle référencé partemplate_uuid. Autorisé uniquement avectemplate_uuid.
batch-send-transactional-email
Envoie un lot d’e-mails transactionnels en un seul appel à l’API Mailtrap (flux d’envoi par défaut). Les champs communs sont placés dans base ; les remplacements propres à chaque destinataire sont placés dans requests[]. Chaque requête doit inclure au moins un destinataire via to, cc ou bcc. Même règle d’exclusion mutuelle entre contenu intégré et modèle que pour send-email — vérifiée après fusion de la base avec chaque requête.
Paramètres :
base(facultatif) : Objet contenant les champs communs à l’ensemble du lot.from(facultatif) : Expéditeur au format{ email, name? }(une simple adresse e-mail est également acceptée à l’exécution). À défaut, utiliseDEFAULT_FROM_EMAIL.reply_to(facultatif) : Adresse de réponse.subject/text/html/category(facultatif, mode contenu intégré) : Contenu par défaut pour chaque requête.template_uuid/template_variables(facultatif, mode modèle) : Modèle et variables par défaut. Mutuellement exclusifs avec les champs de contenu intégré.custom_variables(facultatif) : Variables personnalisées par défaut (valeurs de type chaîne).headers(facultatif) : En-têtes personnalisés par défaut.
requests(obligatoire) : Tableau non vide de messages destinés aux destinataires. Chaque entrée contient :to(facultatif) : Tableau de destinataires sous forme d’objets{ email, name? }(de simples adresses e-mail ou une adresse unique hors tableau sont également acceptées à l’exécution). Facultatif siccoubccest fourni ; au moins l’un deto/cc/bccdoit contenir un destinataire.cc,bcc,reply_to(facultatif).- Remplacements de contenu intégré (
subject/text/html/category) ou de modèle (template_uuid/template_variables) ; tout champ omis reprend la valeur correspondante debase. custom_variables,headers(facultatif).
batch-send-bulk-email
Envoie un lot d’e-mails en masse via l’API de flux d’envoi en masse de Mailtrap. Même structure base + requests[], mêmes règles de validation et mêmes règles de contenu intégré ou de modèle que pour batch-send-transactional-email — la seule différence est que cet outil achemine l’appel via le point de terminaison en masse plutôt que transactionnel. Consultez les paramètres ci-dessus.
list-email-logs
Répertorie les journaux des e-mails envoyés (historique de livraison), avec pagination et filtres facultatifs. À utiliser depuis l’IDE pour déboguer les problèmes de livraison.
Paramètres :
search_after(facultatif) : Curseur de pagination issu denext_page_cursorde la réponse précédentesent_after(facultatif) : Date/heure ISO 8601 ; seuls les journaux des envois postérieurs à cette date sont inclussent_before(facultatif) : Date/heure ISO 8601 ; seuls les journaux des envois antérieurs à cette date sont inclusfrom_email(facultatif) : Filtrer par adresse e-mail de l’expéditeur ; utiliser avecfrom_operator(par défaut : ci_equal)to_email(facultatif) : Filtrer par adresse e-mail du destinataire ; utiliser avecto_operator(par défaut : ci_equal)status(facultatif) : Filtrer par état de livraison : delivered, not_delivered, enqueued, opted_out ; utiliser avecstatus_operator(par défaut : equal)subject(facultatif) : Filtrer par objet de l’e-mail ; utiliser avecsubject_operator(par défaut : ci_contain). Utilisersubject_operator: empty/not_empty pour filtrer selon la présence d’un objet.sending_domain_id(facultatif) : Filtrer par ID de domaine (nombre) ; utiliser avecsending_domain_id_operator(par défaut : equal)sending_stream(facultatif) : Filtrer par flux : transactional ou bulk ; utiliser avecsending_stream_operator(par défaut : equal)events(facultatif) : Filtrer par type(s) d’événement : delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension ; utiliser avecevents_operator(include_event / not_include_event)clicks_count/opens_count(facultatif) : Filtrer par nombre de clics/ouvertures ; utiliser avec*_operator: equal, greater_than, less_thanclient_ip/sending_ip(facultatif) : Filtrer par adresse IP ; utiliser avec*_operator: equal, not_equal, contain, not_containemail_service_provider_response(facultatif) : Filtrer par texte de réponse du fournisseur ; utiliser avec*_operator(ci_contain, etc.)email_service_provider(facultatif) : Filtrer par fournisseur (exact) ; utiliser avec*_operator: equal, not_equalrecipient_mx(facultatif) : Filtrer par MX du destinataire ; utiliser avecrecipient_mx_operator(ci_contain, etc.)category(facultatif) : Filtrer par catégorie d’e-mail ; utiliser aveccategory_operator: equal, not_equal
Tous les paramètres sont facultatifs.
get-email-log-message
Récupère un seul message de journal d’e-mail par ID (UUID) : un résumé lisible (expéditeur, destinataire, objet, heure d’envoi, état, catégorie, flux, engagement, contexte de livraison), puis l’historique détaillé des événements. Avec include_content: true, vous pouvez également charger et afficher le corps du message (HTML et texte brut) lorsque Mailtrap expose une URL de message brut.
Paramètres :
message_id(obligatoire) : UUID du message de journal d’e-mail (issu de la réponse d’envoi ou de list-email-logs). Utilisezlist-email-logspour trouver les ID des messages.include_content(facultatif) : Lorsquetrue, récupère le fichier EML brut (siraw_message_urlest disponible) et ajoute des sections contenant le corps analysé en HTML et en texte brut, comme dans show-sandbox-email-message.
get-sending-stats
Récupère les statistiques d’envoi d’e-mails (taux de livraison, de rebond, d’ouverture, de clic et de signalement comme spam) pour une période donnée. Vous pouvez également ventiler les résultats par domaine, catégorie, fournisseur de services de messagerie ou date. Consultez les taux de livraison sans quitter l’éditeur.
Paramètres :
start_date(obligatoire) : Date de début de la période statistique (YYYY-MM-DD)end_date(obligatoire) : Date de fin de la période statistique (YYYY-MM-DD)breakdown(facultatif) : Ventilation des statistiques :aggregated(par défaut),by_domain,by_category,by_email_service_providerouby_datesending_domain_ids(facultatif) : Limiter les résultats à ces ID de domaine (tableau d’entiers)sending_streams(facultatif) : Limiter àtransactionalet/oubulk(tableau de chaînes)categories(facultatif) : Limiter à ces catégories d’e-mail (tableau de chaînes)email_service_providers(facultatif) : Limiter à ces fournisseurs, par exemple Google, Yahoo, Outlook (tableau de chaînes)
get-marketing-stats
Récupère les statistiques agrégées d’Email Marketing pour les campagnes et les automatisations sur une période donnée : nombres et taux d’envois, de livraisons, de rebonds, d’ouvertures, de clics, de signalements comme spam et de désabonnements. delivery_rate et bounce_rate sont des parts de sent_count ; les autres taux sont des parts de delivery_count.
Paramètres :
start_date(obligatoire) : Début de la période (inclus),YYYY-MM-DDend_date(obligatoire) : Fin de la période (incluse),YYYY-MM-DDsending_domain_ids(facultatif) : Limiter les résultats à ces ID de domaine (tableau d’entiers)sources(facultatif) :campaignsouautomationslimite les statistiques à cette source ; omettez ce paramètre ou indiquez les deux pour inclure tout le trafic Email Marketing (tableau de chaînes)email_service_providers(facultatif) : Limiter à ces fournisseurs, par exemple Google, Yahoo, Outlook (tableau de chaînes)
create-template
Crée un modèle d’e-mail dans votre compte Mailtrap.
Paramètres :
name(obligatoire) : Nom du modèlesubject(obligatoire) : Objet de l’e-mailhtml(outextest obligatoire) : Contenu HTML du modèletext(ouhtmlest obligatoire) : Version en texte brut du modèlecategory(facultatif) : Catégorie du modèle (par défaut, « General »)
list-templates
Répertorie les modèles d’e-mail de votre compte Mailtrap avec une pagination par jeton de page. Lorsqu’il existe d’autres modèles, le résultat indique le token de la page suivante. Les pages correspondent à des décalages dans la liste triée des plus récents aux plus anciens ; après avoir supprimé des modèles, relancez la liste à partir de token 1 au lieu de continuer avec le jeton suivant. Une page vide indique la dernière page contenant encore des modèles.
Paramètres :
token(facultatif) : Numéro de la page à récupérer (pagination par jeton de page). Par défaut :1per_page(facultatif) : Nombre de modèles par page. Par défaut :50, maximum100. Indiquez la même valeur pour chaque page
get-template
Récupère un modèle d’e-mail par ID, avec son objet, sa catégorie et son corps HTML/texte.
Paramètres :
template_id(obligatoire) : ID du modèle à récupérer
update-template
Met à jour un modèle d’e-mail existant.
Paramètres :
template_id(obligatoire) : ID du modèle à mettre à journame(facultatif) : Nouveau nom du modèlesubject(facultatif) : Nouvel objet de l’e-mailhtml(facultatif) : Nouveau contenu HTML du modèletext(facultatif) : Nouvelle version en texte brut du modèlecategory(facultatif) : Nouvelle catégorie du modèle
[!NOTE] Au moins un champ modifiable (name, subject, html, text ou category) doit être fourni lors de l’appel à update-template pour effectuer une mise à jour.
delete-template
Supprime un modèle d’e-mail existant.
Paramètres :
template_id(obligatoire) : ID du modèle à supprimer
send-sandbox-email
Envoie un e-mail à votre sandbox Mailtrap à des fins de développement et de test. C’est idéal pour tester des modèles d’e-mail sans envoyer de messages à de vrais destinataires. Prend en charge les deux mêmes modes que send-email — contenu intégré ou basé sur un modèle (template_uuid).
Paramètres :
sandbox_id(facultatif) : Préféré. ID du sandbox Mailtrap. Obligatoire sauf siMAILTRAP_SANDBOX_IDest défini.test_inbox_id(facultatif) : Alias hérité desandbox_idlorsquesandbox_idest omis.from(facultatif) : Expéditeur au format{ email, name? }(une simple adresse e-mail est également acceptée à l’exécution). Si cette valeur n’est pas fournie,DEFAULT_FROM_EMAILest utilisé.to(facultatif) : Tableau de destinataires sous forme d’objets{ email, name? }(les simples adresses e-mail dans le tableau ou une chaîne d’adresses e-mail simples séparées par des virgules sont également acceptées à l’exécution). Facultatif siccoubccest fourni ; au moins l’un deto/cc/bccdoit contenir un destinataire.cc(facultatif) : Tableau de destinataires en copie (CC) sous forme d’objets{ email, name? }(les simples adresses e-mail sont également acceptées à l’exécution).bcc(facultatif) : Tableau de destinataires en copie cachée (BCC) sous forme d’objets{ email, name? }(les simples adresses e-mail sont également acceptées à l’exécution).subject(conditionnel) : Objet de l’e-mail. Obligatoire pour les envois en ligne ; doit être omis lorsquetemplate_uuidest défini.text(conditionnel) : Texte du corps de l’e-mail. Obligatoire (avec ou à la place dehtml) pour les envois en ligne ; doit être omis lorsquetemplate_uuidest défini.html(conditionnel) : Version HTML du corps de l’e-mail. Obligatoire (avec ou à la place detext) pour les envois en ligne ; doit être omis lorsquetemplate_uuidest défini.category(facultatif) : Catégorie de l’e-mail pour le suivi. Doit être omis lorsquetemplate_uuidest défini.template_uuid(facultatif) : Utiliser un modèle d’e-mail Mailtrap à la place du contenu en ligne. Lorsque cette valeur est définie,subject/text/html/categorydoivent être omis.template_variables(facultatif) : Objet contenant les variables substituées dans le modèle référencé partemplate_uuid. Autorisé uniquement avectemplate_uuid.
batch-send-sandbox-email
Envoie un lot d’e-mails à votre sandbox Mailtrap en un seul appel API, sans les remettre à de vrais destinataires. Même structure base + requests[], mêmes règles de validation et mêmes règles d’envoi en ligne ou par modèle que pour batch-send-transactional-email — la différence est que cet outil achemine l’appel via le point de terminaison du sandbox pour un seul sandbox.
Paramètres :
sandbox_id(facultatif) : ID du sandbox Mailtrap. Obligatoire sauf siMAILTRAP_SANDBOX_IDest défini ; transmettez-le à chaque appel pour cibler un sandbox spécifique.base(facultatif),requests(obligatoire) : Voirbatch-send-transactional-emailci-dessus.
[!NOTE] La plupart des outils de sandbox utilisent
sandbox_id(ou se rabattent surMAILTRAP_SANDBOX_ID; la variable d’environnement obsolèteMAILTRAP_TEST_INBOX_IDfonctionne toujours).send-sandbox-email,get-sandbox-messagesetshow-sandbox-email-messageacceptent également l’ancientest_inbox_id.get-sandbox,update-sandbox,delete-sandboxetclean-sandboxutilisentsandbox_idavec l’ancieninbox_id(même ID ;inbox_idn’est pas utilisé par les outils de messagerie). Les outils de messagerie entrante utilisentinbox_idpour un produit différent (courrier reçu), et non pour le sandbox.
get-sandbox-messages
Récupère la liste des messages de votre sandbox Mailtrap. Utile pour vérifier quels e-mails ont été reçus dans votre sandbox pendant les tests.
Paramètres :
sandbox_id(facultatif) : Préféré. ID du sandbox, sauf siMAILTRAP_SANDBOX_IDest défini.test_inbox_id(facultatif) : Alias hérité desandbox_id.page(facultatif) : Numéro de page pour la pagination (minimum : 1)last_id(facultatif) : Pagination à l’aide du dernier ID de message. Renvoie les messages suivant l’ID de message indiqué (minimum : 1)search(facultatif) : Requête de recherche pour filtrer les messages
[!NOTE] Les paramètres d’ID du sandbox sont facultatifs lorsque
MAILTRAP_SANDBOX_IDest défini. Si aucun desandbox_id,test_inbox_idou de la variable d’environnement n’est fourni, l’appel échoue. Pagination : utilisezpage,last_idousearchselon vos besoins.
show-sandbox-email-message
Affiche des informations détaillées et le contenu d’un e-mail spécifique de votre sandbox Mailtrap, y compris le corps HTML et texte.
Paramètres :
sandbox_id(facultatif) : Préféré. ID du sandbox, sauf siMAILTRAP_SANDBOX_IDest défini.test_inbox_id(facultatif) : Alias hérité desandbox_id.message_id(obligatoire) : ID du message e-mail du sandbox à récupérer
[!NOTE] Utilisez d’abord
get-sandbox-messagespour obtenir les ID des messages, puis cet outil pour afficher leur contenu complet.
list-sandbox-projects
Liste tous les projets de sandbox et leurs sandboxes.
Paramètres :
- Aucun paramètre requis
create-sandbox-project
Crée un projet de sandbox pour regrouper des sandboxes.
Paramètres :
name(obligatoire) : Nom du projet (2 à 100 caractères)
get-sandbox-project
Récupère un projet de sandbox par ID, y compris ses sandboxes et le nombre d’e-mails.
Paramètres :
project_id(obligatoire) : ID du projet à récupérer
update-sandbox-project
Renomme un projet de sandbox existant.
Paramètres :
project_id(obligatoire) : ID du projet à mettre à journame(obligatoire) : Nouveau nom du projet (2 à 100 caractères)
delete-sandbox-project
Supprime un projet de sandbox et tous ses sandboxes.
Paramètres :
project_id(obligatoire) : ID du projet à supprimer
create-sandbox
Crée un sandbox dans un projet. Renvoie les nouveaux identifiants SMTP du sandbox.
Paramètres :
project_id(obligatoire) : ID du projet dans lequel créer le sandboxname(obligatoire) : Nom du sandbox
get-sandbox
Récupère les détails d’un sandbox, y compris les identifiants SMTP, le nombre d’e-mails et son état.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. Obligatoire sauf siMAILTRAP_SANDBOX_IDest défini.inbox_id(facultatif) : Alias hérité desandbox_id.
update-sandbox
Met à jour le nom ou le nom d’utilisateur e-mail d’un sandbox.
Paramètres :
sandbox_id(obligatoire) : ID du sandbox (alias hérité :inbox_id)name(facultatif) : Nouveau nom du sandboxemail_username(facultatif) : Nouveau nom d’utilisateur e-mail du sandbox
Au moins l’un de name ou email_username doit être fourni.
delete-sandbox
Supprime un sandbox et tous ses messages.
Paramètres :
sandbox_id(obligatoire) : ID du sandbox (alias hérité :inbox_id)
clean-sandbox
Supprime tous les messages d’un sandbox sans supprimer le sandbox lui-même.
Paramètres :
sandbox_id(obligatoire) : ID du sandbox (alias hérité :inbox_id)
list-sandboxes
Liste tous les sandboxes accessibles au jeton API dans l’ensemble des projets.
Paramètres :
- Aucun paramètre requis
mark-sandbox-as-read
Marque comme lus tous les messages d’un sandbox.
Paramètres :
sandbox_id(obligatoire) : ID du sandbox concerné
reset-sandbox-credentials
Réinitialise les identifiants SMTP d’un sandbox. Renvoie le nouveau nom d’utilisateur et le nouveau mot de passe.
Paramètres :
sandbox_id(obligatoire) : ID du sandbox concerné
enable-sandbox-email-address
Active l’adresse de réception des e-mails d’un sandbox (active l’adresse Mailtrap qui achemine les messages vers le sandbox via SMTP).
Paramètres :
sandbox_id(obligatoire) : ID du sandbox concerné
reset-sandbox-email-address
Génère une nouvelle adresse de réception des e-mails pour un sandbox.
Paramètres :
sandbox_id(obligatoire) : ID du sandbox concerné
forward-sandbox-message
Transfère un message du sandbox vers une adresse e-mail externe. Le transfert est décompté de votre quota mensuel.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox à transféreremail(obligatoire) : Adresse e-mail vers laquelle transférer le message
update-sandbox-message
Marque un message du sandbox comme lu ou non lu.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox à mettre à jouris_read(obligatoire) :truemarque le message comme lu,falsele marque comme non lu
delete-sandbox-message
Supprime un seul message du sandbox.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox à supprimer
get-sandbox-message-spam-score
Récupère le rapport SpamAssassin d’un message du sandbox (score, règles, rapport complet). Alternative autonome à include_spam_report: true sur show-sandbox-email-message.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox
get-sandbox-message-html-analysis
Récupère le rapport d’analyse HTML d’un message du sandbox (scores de compatibilité des clients, éléments problématiques). Alternative autonome à include_html_analysis: true sur show-sandbox-email-message.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox
get-sandbox-message-headers
Récupère les en-têtes de courrier analysés d’un message du sandbox.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox
get-sandbox-message-html
Récupère le corps HTML rendu d’un message du sandbox.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox
get-sandbox-message-text
Récupère le corps en texte brut d’un message du sandbox.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox
get-sandbox-message-raw
Récupère le message brut au format MIME (en-têtes + corps) d’un message du sandbox.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox
get-sandbox-message-eml
Récupère le message sous forme de contenu de fichier EML (adapté à une pièce jointe à un ticket ou à l’importation dans un autre client de messagerie).
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox
get-sandbox-message-html-source
Récupère le code source HTML non rendu d’un message du sandbox (HTML avant toute transformation côté Mailtrap, comme la réécriture des liens CID).
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox
list-sandbox-attachments
Liste toutes les pièces jointes d’un message du sandbox (nom de fichier, type de contenu, taille, chemin de téléchargement).
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox
get-sandbox-attachment
Récupère les métadonnées et l’URL de téléchargement d’une pièce jointe.
Paramètres :
sandbox_id(facultatif) : ID du sandbox. À défaut, utiliseMAILTRAP_SANDBOX_ID.message_id(obligatoire) : ID du message du sandbox contenant la pièce jointeattachment_id(obligatoire) : ID de la pièce jointe à récupérer
list-domains
Liste les domaines et leur état de vérification DNS.
Paramètres :
- Aucun paramètre requis
get-domain
Récupère un domaine par ID et son état de vérification (y compris les enregistrements DNS). Vous pouvez inclure des instructions de configuration DNS en définissant include_setup_instructions sur true.
Paramètres :
domain_id(obligatoire) : ID du domaine (alias hérité :sending_domain_id)include_setup_instructions(facultatif) : Sitrue, ajoute les instructions de configuration DNS à la réponse. Valeur par défaut :false
create-domain
Crée un domaine. Après sa création, ajoutez des enregistrements DNS pour le vérifier (utilisez get-domain avec include_setup_instructions: true pour afficher les enregistrements).
Paramètres :
domain_name(obligatoire) : Nom de domaine (par exemple, example.com)
update-domain
Mettre à jour les paramètres de suivi et de réception d’un domaine.
Paramètres :
domain_id(obligatoire) : ID du domaine (ancien alias :sending_domain_id)open_tracking_enabled(facultatif) : Suivre les ouvertures des e-mails envoyés depuis ce domaineclick_tracking_enabled(facultatif) : Suivre les clics sur les liens des e-mails envoyés depuis ce domainetracking_opt_out_enabled(facultatif) : Ajouter le lien de désactivation du suivi aux e-mails suivis. Nécessite le suivi des ouvertures ou des clicsauto_unsubscribe_link_enabled(facultatif) : Ajouter automatiquement un lien de désabonnement aux e-mailsinbound_enabled(facultatif) : Autoriser l’association du domaine à une boîte de réception entrante en tant que domaine fourre-tout
Au moins un paramètre autre que domain_id doit être fourni.
delete-domain
Supprimer un domaine.
Paramètres :
domain_id(obligatoire) : ID du domaine à supprimer (ancien alias :sending_domain_id)
send-domain-setup-instructions
Envoyer par e-mail les instructions de configuration DNS d’un domaine à une adresse donnée. Utile pour transmettre les enregistrements DNS à un collègue DevOps.
Paramètres :
domain_id(obligatoire) : ID du domaine (ancien alias :sending_domain_id)email(obligatoire) : Adresse e-mail à laquelle envoyer les instructions de configuration DNS
get-company-info
Obtenir les informations sur l’entreprise d’un domaine, utilisées pour la vérification de conformité du domaine.
Paramètres :
domain_id(obligatoire) : ID du domaine (ancien alias :sending_domain_id)
create-company-info
Définir les informations sur l’entreprise d’un domaine, requises pour la vérification de conformité du domaine.
Paramètres :
domain_id(obligatoire) : ID du domaine (ancien alias :sending_domain_id)name(obligatoire) : Nom de l’entreprise ou de la personneaddress(obligatoire) : Adresse postalecity(obligatoire) : Villecountry(obligatoire) : Payszip_code(obligatoire) : Code postalwebsite_url(obligatoire) : URL du site Web de l’entreprisephone(facultatif) : Numéro de téléphoneprivacy_policy_url(facultatif) : URL de la page de politique de confidentialitéterms_of_service_url(facultatif) : URL de la page des conditions d’utilisationinfo_level(facultatif) :businessouindividual
update-company-info
Mettre à jour les informations sur l’entreprise d’un domaine.
Paramètres :
domain_id(obligatoire) : ID du domaine (ancien alias :sending_domain_id)- Tous les champs de create-company-info sont facultatifs. Au moins un doit être fourni ; les champs omis restent inchangés.
list-suppressions
Répertorier ou rechercher les suppressions (rebonds définitifs, plaintes pour spam, désabonnements, importations manuelles). Renvoie jusqu’à 1000 résultats par appel.
Paramètres :
email(facultatif) : Filtre par e-mail. Renvoie uniquement les suppressions correspondant à cette adresse.
create-suppression
Ajouter une adresse e-mail à la liste de suppression du compte afin que Mailtrap cesse de lui envoyer des e-mails.
Paramètres :
email(obligatoire) : Adresse e-mail à supprimerdomain_id(obligatoire) : ID du domaine auquel s’applique la suppressionsending_stream(obligatoire) :transactionaloubulktype(facultatif) :hard bounce,spam complaint,unsubscriptionoumanual import. Valeur par défaut :manual import
delete-suppression
Supprimer une suppression par ID. Mailtrap reprendra l’envoi à cette adresse e-mail, sauf si elle est à nouveau supprimée.
Paramètres :
suppression_id(obligatoire) : ID de la suppression à supprimer
list-tracking-opt-outs
Répertorier les adresses e-mail exclues du suivi des ouvertures et des clics. Renvoie jusqu’à 1000 enregistrements par appel.
Paramètres :
email(facultatif) : Filtre par e-mail. Renvoie uniquement les exclusions correspondant à cette adressestart_time(facultatif) : Uniquement les exclusions créées à partir de cette date et heure (ISO 8601)end_time(facultatif) : Uniquement les exclusions créées jusqu’à cette date et heure (ISO 8601)last_id(facultatif) : Curseur de pagination — lelast_idde la réponse précédente
create-tracking-opt-out
Exclure une adresse e-mail du suivi des ouvertures et des clics pour un domaine.
Paramètres :
email(obligatoire) : Adresse e-mail à exclure du suividomain_id(obligatoire) : ID du domaine auquel s’applique l’exclusion
delete-tracking-opt-out
Retirer une adresse e-mail de la liste d’exclusion du suivi afin que le suivi des ouvertures et des clics s’applique à nouveau.
Paramètres :
tracking_opt_out_id(obligatoire) : ID de l’exclusion du suivi à supprimer
list-webhooks
Répertorier tous les webhooks configurés pour le compte. Renvoie les enregistrements complets des webhooks au format JSON.
Paramètres :
- Aucun paramètre requis
get-webhook
Obtenir un webhook par ID. Renvoie l’enregistrement complet du webhook au format JSON. Remarque : signing_secret n’est pas renvoyé ici — il est uniquement disponible dans la réponse de create-webhook.
Paramètres :
webhook_id(obligatoire) : ID du webhook à récupérer
create-webhook
Créer un webhook. La réponse inclut un signing_secret permettant de vérifier les signatures des charges utiles du webhook — ce secret n’est renvoyé qu’à la création ; enregistrez-le donc maintenant. Si vous le perdez, recréez le webhook.
Paramètres :
url(obligatoire) : URL à laquelle Mailtrap enverra les événements du webhook par POSTwebhook_type(obligatoire) :"email_sending","audit_log"ou"inbound_receiving"active(facultatif, booléen) : valeur par défaut :truepayload_format(facultatif) :"json"ou"jsonlines". Valeur par défaut :"json"sending_stream(facultatif,email_sendinguniquement) :"transactional"ou"bulk"event_types(facultatif,email_sendinguniquement) : tableau dedelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(facultatif,email_sendinguniquement) : ID du domaine auquel limiter ce webhookinbound_inbox_id(facultatif,inbound_receivinguniquement) : ID de la boîte de réception entrante associée au webhook ; omettre pour l’appliquer à toutes les boîtes de réception du compte
update-webhook
Mettre à jour les champs modifiables d’un webhook. webhook_type, sending_stream et domain_id ne peuvent pas être modifiés après la création — recréez le webhook si vous devez les changer.
Paramètres :
webhook_id(obligatoire) : ID du webhook à mettre à joururl(facultatif) : Nouvelle URL du webhookactive(facultatif, booléen) : Activer ou désactiver le webhookpayload_format(facultatif) :"json"ou"jsonlines"event_types(facultatif,email_sendinguniquement) : tableau dedelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectinbound_inbox_id(facultatif,inbound_receivinguniquement) : ID de la boîte de réception entrante associée au webhook
delete-webhook
Supprimer définitivement un webhook par ID. Renvoie l’enregistrement du webhook supprimé.
Paramètres :
webhook_id(obligatoire) : ID du webhook à supprimer
get-contact
Obtenir un contact par ID ou par e-mail. Renvoie l’enregistrement complet du contact (appartenances aux listes, statut, champs personnalisés).
Paramètres :
contact_identifier(obligatoire) : ID du contact ou adresse e-mail
create-contact
Créer un contact.
Paramètres :
email(obligatoire) : Adresse e-mailfields(facultatif) : Valeurs des champs personnalisés indexées par balise de fusion (par ex.first_name). Valeurs de type chaîne, nombre ou booléenlist_ids(facultatif) : ID des listes de contacts auxquelles abonner ce contactunsubscribed(facultatif, booléen) : Créer le contact avec le statutunsubscribed
update-contact
Mettre à jour un contact existant identifié par ID ou par e-mail. list_ids remplace l’ensemble des appartenances du contact ; list_ids_included/list_ids_excluded ajoutent ou retirent des appartenances sans modifier les autres.
Paramètres :
contact_identifier(obligatoire) : ID du contact ou adresse e-mailemail(facultatif) : Nouvelle adresse e-mailfields(facultatif) : Valeurs des champs personnalisés indexées par balise de fusionlist_ids(facultatif) : Remplacer l’ensemble des appartenances par cette liste exactelist_ids_included(facultatif) : ID des listes à ajouter (ajout)list_ids_excluded(facultatif) : ID des listes à retirerunsubscribed(facultatif, booléen) : Définir surunsubscribed(true) ousubscribed(false)
delete-contact
Supprimer définitivement un contact par ID ou par e-mail. Renvoie l’enregistrement du contact supprimé si l’API en fournit un ; sinon, renvoie une charge utile de confirmation.
Paramètres :
contact_identifier(obligatoire) : ID du contact ou adresse e-mail
create-contact-event
Enregistrer un événement associé à un contact (par ID ou par e-mail). Sert à déclencher les automatisations des listes de contacts.
Paramètres :
contact_identifier(obligatoire) : ID du contact ou adresse e-mailname(obligatoire) : Nom de l’événement (correspond aux déclencheurs d’automatisation)params(obligatoire) : Objet contenant des paires clé/valeur arbitraires. Les valeurs peuvent être de type chaîne, nombre, booléen ou null
list-contact-lists
Répertorier toutes les listes de contacts du compte.
Paramètres :
search(facultatif) : Filtrer les listes de contacts par nom (correspondance insensible à la casse), par ex.news
get-contact-list
Obtenir une liste de contacts par ID.
Paramètres :
list_id(obligatoire) : ID de la liste de contacts à récupérer
create-contact-list
Créer une liste de contacts.
Paramètres :
name(obligatoire) : Nom de la nouvelle liste
update-contact-list
Renommer une liste de contacts existante.
Paramètres :
list_id(obligatoire) : ID de la liste de contactsname(obligatoire) : Nouveau nom de la liste
delete-contact-list
Supprimer définitivement une liste de contacts par ID.
Paramètres :
list_id(obligatoire) : ID de la liste de contacts à supprimer
list-contact-fields
Répertorier toutes les définitions de champs de contact du compte.
Paramètres :
- Aucun paramètre requis
get-contact-field
Obtenir une définition de champ de contact par ID.
Paramètres :
field_id(obligatoire) : ID du champ de contact
create-contact-field
Créer une définition de champ de contact. merge_tag doit être unique dans le compte et sert de nom de remplacement dans les variables de modèle.
Paramètres :
name(obligatoire) : Nom d’affichage (par ex. « Prénom »)merge_tag(obligatoire) : Nom de remplacement unique (par ex.first_name)data_type(obligatoire) : L’un detext,number,boolean,date
update-contact-field
Mettre à jour une définition de champ de contact. Toute combinaison de name, merge_tag et data_type peut être modifiée.
Paramètres :
field_id(obligatoire) : ID du champ de contactname(facultatif) : Nouveau nom d’affichagemerge_tag(facultatif) : Nouvelle balise de fusion (doit rester unique)data_type(facultatif) : L’un detext,number,boolean,date
delete-contact-field
Supprimer définitivement une définition de champ de contact par ID.
Paramètres :
field_id(obligatoire) : ID du champ de contact à supprimer
create-contact-import
Importer des contacts en masse. Renvoie un enregistrement de tâche d’importation ; interrogez son statut avec get-contact-import.
Paramètres :
contacts(obligatoire) : Tableau d’entrées de contact. Chaque entrée doit contenir :email(obligatoire) : Adresse e-mail du contactfields(facultatif) : Valeurs des champs personnalisés indexées par balise de fusion (valeurs de type chaîne ou nombre)list_ids_included(facultatif) : ID des listes auxquelles ajouter le contactlist_ids_excluded(facultatif) : ID des listes desquelles retirer le contact
get-contact-import
Obtenir le statut d’une tâche d’importation de contacts (créée/démarrée/terminée/échouée), ainsi que le nombre de contacts créés, mis à jour et dépassant la limite.
Paramètres :
import_id(obligatoire) : ID de la tâche d’importation de contacts
create-contact-export
Exporter les contacts correspondant à un ensemble de filtres combinés par ET. Renvoie un enregistrement de tâche d’exportation ; interrogez son statut avec get-contact-export pour récupérer l’URL de téléchargement lorsque status est finished.
Paramètres :
filters(obligatoire) : Tableau d’objets de filtre. Chacun contient :name(obligatoire) : Champ sur lequel appliquer le filtre (list_id,subscription_status,email, etc.)operator(obligatoire) : L’une des valeurs suivantes :equal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(obligatoire) : Valeur de comparaison (chaîne, nombre, booléen ou tableau)
get-contact-export
Obtenir l’état d’une tâche d’exportation de contacts. Une fois que status vaut finished, le champ url contient le lien de téléchargement du fichier CSV.
Paramètres :
export_id(obligatoire) : ID de la tâche d’exportation de contacts
list-email-campaigns
Lister les campagnes e-mail du compte, de la plus récente à la plus ancienne, avec une pagination par jeton de page. Filtrer éventuellement par nom avec search.
Paramètres :
token(facultatif) : Numéro de page à récupérer (pagination par jeton de page). La valeur par défaut est1per_page(facultatif) : Nombre de campagnes par page. La valeur par défaut est50, le maximum est100search(facultatif) : Filtrer les campagnes par nom (correspondance partielle sans distinction entre majuscules et minuscules)
get-email-campaign
Obtenir une campagne e-mail par ID.
Paramètres :
email_campaign_id(obligatoire) : ID de la campagne e-mail
create-email-campaign
Créer une campagne e-mail. La campagne est toujours créée à l’état draft ; la planification et le démarrage s’effectuent avec des outils distincts (schedule-email-campaign, start-email-campaign).
Paramètres :
name(obligatoire) : Nom de la campagnedomain_id(obligatoire) : ID du domaine vérifié utilisé pour la campagne, tel que renvoyé parlist-domainsfrom_local_part(obligatoire) : Partie locale (avant le @) de l’adresse d’expéditeurtemplate_attributes(obligatoire) : Modèle d’e-mail intégré. Contient :subject(obligatoire) : Objet de l’e-mail (255 caractères max.). Prend en charge les balises de fusion, par exempleHi {{first_name}}body_html(facultatif) : Corps HTML (la conception). Obligatoire avant de pouvoir planifier ou démarrer la campagne. Inclure un lien de désabonnement via une ancre dont lehrefcontient le placeholder__unsubscribe_url__body_text(facultatif) : Version texte brut du corps de l’e-mailmerge_tags(facultatif) : Noms seuls des balises de fusion référencées dans l’objet/le corps, par exemple["first_name"]
from_display_name(facultatif) : Nom d’affichage figurant dans l’en-tête Fromreply_to(facultatif) : Éléments de l’adresse Reply-To (display_name,local_part,domain)delivery_mode(facultatif) :rapid(envoyer aussi vite que possible) ougradual(limiter le débit àdelivery_options.emails_per_hour)delivery_options(facultatif) : Options de limitation du débit d’envoi (emails_per_hour)contact_list_ids(facultatif) : ID des listes de contacts auxquelles envoyer la campagne (considérées comme l’ensemble complet des listes incluses)contact_segment_ids(facultatif) : ID des segments de contacts auxquels envoyer la campagne (considérés comme l’ensemble complet des segments inclus)
update-email-campaign
Mettre à jour une campagne e-mail à l’état draft. Seuls les champs fournis sont modifiés ; le modèle est modifié sur place. Les campagnes dans tout autre état ne peuvent pas être mises à jour.
Paramètres :
email_campaign_id(obligatoire) : ID de la campagne e-mail à mettre à jour- Tous les autres paramètres sont facultatifs et identiques à ceux de
create-email-campaign(name,domain_id,from_local_part,from_display_name,reply_to,template_attributes,delivery_mode,delivery_options,contact_list_ids,contact_segment_ids)
delete-email-campaign
Supprimer une campagne e-mail par ID. Seule une campagne à l’état draft peut être supprimée.
Paramètres :
email_campaign_id(obligatoire) : ID de la campagne e-mail à supprimer
start-email-campaign
Démarrer immédiatement l’envoi d’une campagne e-mail draft. Seules les campagnes draft peuvent être démarrées ; le modèle doit avoir une conception body_html, et l’audience ainsi que le domaine vérifié doivent être définis.
Paramètres :
email_campaign_id(obligatoire) : ID de la campagne e-mail à démarrer
schedule-email-campaign
Planifier le démarrage de l’envoi d’une campagne e-mail draft à une date ultérieure. Seules les campagnes draft peuvent être planifiées.
Paramètres :
email_campaign_id(obligatoire) : ID de la campagne e-mail à planifierdatetime(obligatoire) : Date et heure d’envoi de la campagne (ISO 8601). Doit être dans le futur et ne pas dépasser un mois à l’avance
cancel-email-campaign
Annuler une campagne e-mail scheduled et la remettre à l’état draft. Seules les campagnes scheduled peuvent être annulées.
Paramètres :
email_campaign_id(obligatoire) : ID de la campagne e-mail à annuler
terminate-email-campaign
Mettre fin à une campagne e-mail en cours d’envoi (started, queued ou paused), en interrompant l’envoi en cours.
Paramètres :
email_campaign_id(obligatoire) : ID de la campagne e-mail à interrompre
reset-email-campaign
Réinitialiser une campagne e-mail scheduled pour la remettre à l’état draft. Seules les campagnes scheduled peuvent être réinitialisées.
Paramètres :
email_campaign_id(obligatoire) : ID de la campagne e-mail à réinitialiser
get-email-campaign-stats
Obtenir les statistiques agrégées de performance d’une campagne e-mail (nombres et taux de distribution, d’ouvertures, de clics, de rebonds, de signalements comme spam et de désabonnements).
Paramètres :
email_campaign_id(obligatoire) : ID de la campagne e-mailstart_date(facultatif) : Début de la période d’agrégation (inclus),YYYY-MM-DD. Par défaut, le jour du dernier démarrage de la campagneend_date(facultatif) : Fin de la période d’agrégation (incluse),YYYY-MM-DD. Par défaut, la date du jour
list-accounts
Lister les comptes Mailtrap auxquels le jeton API actuel peut accéder, avec les niveaux d’accès de chacun. Fonctionne sans MAILTRAP_ACCOUNT_ID ; utilisez-le donc pour trouver l’ID de votre compte.
Paramètres :
- Aucun paramètre requis
get-billing-usage
Obtenir l’utilisation du compte pour le cycle de facturation en cours : forfaits d’envoi et de test, limites et nombres actuels.
Paramètres :
- Aucun paramètre requis
list-account-accesses
Lister les accès au compte (utilisateurs, invitations, jetons API). Des filtres facultatifs permettent de limiter les résultats à des ressources spécifiques. Nécessite les autorisations d’administrateur ou de propriétaire du compte.
Paramètres :
domain_uuids(facultatif) : Filtrer par UUID de domaine (tableau de chaînes)inbox_ids(facultatif) : Filtrer par ID de sandbox (tableau de chaînes)project_ids(facultatif) : Filtrer par ID de projet sandbox (tableau de chaînes)
remove-account-access
Supprimer un accès au compte par ID. Pour les identifiants User, cette opération révoque leurs autorisations ; pour les identifiants Invite ou ApiToken, elle supprime entièrement l’identifiant. Nécessite les autorisations d’administrateur ou de propriétaire.
Paramètres :
account_access_id(obligatoire) : ID de l’enregistrement d’accès à supprimer
get-permission-resources
Obtenir toutes les ressources (sandboxes, projets, domaines, facturation, compte) sur lesquelles le jeton API dispose d’un accès administrateur, organisées selon la hiérarchie.
Paramètres :
- Aucun paramètre requis
bulk-update-permissions
Créer, mettre à jour ou supprimer en masse des autorisations pour un seul accès au compte. Les paires (resource_type, resource_id) existantes sont mises à jour ; les nouvelles sont créées. Définir destroy: true sur une entrée pour la supprimer.
Paramètres :
account_access_id(obligatoire) : ID de l’accès au compte ciblepermissions(obligatoire) : Tableau d’entrées d’autorisation. Chacune contient :resource_id(obligatoire) : ID de la ressource (nombre ou chaîne)resource_type(obligatoire) : L’une des valeurs suivantes :account,project,inbox,domain,billingaccess_level(facultatif) :admin/100ouviewer/10destroy(facultatif, booléen) : Si la valeur est true, supprime cette autorisation au lieu de la créer ou de la mettre à jour
list-api-tokens
Lister tous les jetons API du compte.
Paramètres :
- Aucun paramètre requis
create-api-token
Créer un jeton API. La réponse inclut la valeur secrète token — c’est la seule fois que le jeton complet est renvoyé ; enregistrez-le immédiatement. Si vous le perdez, recréez le jeton.
Paramètres :
name(obligatoire) : Nom d’affichage du jetonexpires_at(facultatif) : Date d’expiration du jeton au format date-heure ISO 8601. Omettre ce paramètre pour utiliser la valeur par défaut du serveur (1 an) ; fournir explicitementnullpour un jeton qui n’expire jamais. Les dates passées ou situées à plus de 5 ans dans le futur sont refuséesresources(facultatif) : Tableau d’autorisations de ressources pour limiter la portée du jeton. Chaque entrée contient :resource_type(obligatoire) : L’une des valeurs suivantes :account,project,inbox,domain,billingresource_id(obligatoire) : ID de la ressourceaccess_level(obligatoire) :100(administrateur) ou10(lecteur)
get-api-token
Obtenir un jeton API par ID. Renvoie uniquement les métadonnées — la valeur secrète du jeton n’est pas renvoyée ici (elle est renvoyée uniquement par create-api-token / reset-api-token).
Paramètres :
api_token_id(obligatoire) : ID du jeton API
reset-api-token
Réinitialiser (faire tourner) un jeton API par ID. La réponse inclut la nouvelle valeur secrète token — renvoyée uniquement lors de cet appel ; enregistrez-la immédiatement. L’ancien jeton est invalidé.
Paramètres :
api_token_id(obligatoire) : ID du jeton API à réinitialiserexpires_at(facultatif) : Date d’expiration du nouveau jeton au format date-heure ISO 8601. Omettre ce paramètre pour utiliser la valeur par défaut du serveur (1 an) ; fournir explicitementnullpour un jeton qui n’expire jamais. Les dates passées ou situées à plus de 5 ans dans le futur sont refusées
delete-api-token
Supprimer définitivement un jeton API par ID. Après sa suppression, le jeton ne peut plus servir à l’authentification.
Paramètres :
api_token_id(obligatoire) : ID du jeton API à supprimer
list-sub-accounts
Lister les sous-comptes de l’organisation. Nécessite la variable d’environnement MAILTRAP_ORGANIZATION_ID et les autorisations de gestion des sous-comptes.
Paramètres :
- Aucun paramètre requis
create-sub-account
Créer un sous-compte dans l’organisation. Nécessite la variable d’environnement MAILTRAP_ORGANIZATION_ID et les autorisations de gestion des sous-comptes.
Paramètres :
name(obligatoire) : Nom d’affichage du nouveau sous-compte
delete-sub-account
Supprimer définitivement un sous-compte par ID et toutes ses données. La suppression du dernier sous-compte entraîne la suppression de l’organisation ; un nouvel appel renvoie 404. Une suppression simultanée du même sous-compte renvoie 409. Nécessite la variable d’environnement MAILTRAP_ORGANIZATION_ID et les autorisations d’administrateur de l’organisation. La fonctionnalité Organization & Sub-accounts doit être activée pour l’organisation (sinon, 403).
Paramètres :
sub_account_id(obligatoire) : ID du sous-compte à supprimer
list-inbound-folders
Lister tous les dossiers entrants du compte. Renvoie un résumé mis en forme.
Paramètres :
- Aucun paramètre requis
get-inbound-folder
Obtenir un dossier entrant par ID. Renvoie l’enregistrement complet du dossier au format JSON.
Paramètres :
folder_id(obligatoire) : ID du dossier entrant
create-inbound-folder
Créer un dossier entrant.
Paramètres :
name(obligatoire) : Nom du dossier
update-inbound-folder
Renommer un dossier entrant.
Paramètres :
folder_id(obligatoire) : ID du dossier entrantname(obligatoire) : Nouveau nom du dossier
delete-inbound-folder
Supprimer définitivement un dossier entrant ainsi que toutes ses boîtes de réception.
Paramètres :
folder_id(obligatoire) : ID du dossier entrant
list-inbound-inboxes
Lister toutes les boîtes de réception d’un dossier entrant. Renvoie un résumé mis en forme.
Paramètres :
folder_id(obligatoire) : ID du dossier entrant
get-inbound-inbox
Obtenir une boîte de réception par ID. Renvoie l’enregistrement complet de la boîte de réception au format JSON.
Paramètres :
folder_id(obligatoire) : ID du dossier entrantinbox_id(obligatoire) : ID de la boîte de réception
create-inbound-inbox
Créer une boîte de réception dans un dossier entrant.
Paramètres :
folder_id(obligatoire) : ID du dossier de réceptionname(obligatoire) : Nom de la boîte de réceptiondomain_id(facultatif) : Associer à un domaine personnalisé (boîte de réception fourre-tout). Omettre pour une boîte de réception hébergée par Mailtrap
update-inbound-inbox
Renommer une boîte de réception entrante.
Paramètres :
folder_id(obligatoire) : ID du dossier de réceptioninbox_id(obligatoire) : ID de la boîte de réceptionname(obligatoire) : Nouveau nom de la boîte de réception
delete-inbound-inbox
Supprimer définitivement une boîte de réception entrante.
Paramètres :
folder_id(obligatoire) : ID du dossier de réceptioninbox_id(obligatoire) : ID de la boîte de réception
list-inbound-messages
Lister les messages reçus dans une boîte de réception entrante (pagination par curseur). Renvoie un résumé formaté avec une indication de page suivante lorsqu'il existe d'autres résultats.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionlast_id(facultatif) : Curseur de pagination provenant dulast_idd'une réponse précédente
get-inbound-message
Récupérer un message entrant avec son corps complet et les URL de téléchargement des pièces jointes. Renvoie l'enregistrement complet du message au format JSON.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionmessage_id(obligatoire) : ID du message
delete-inbound-message
Supprimer définitivement un message entrant.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionmessage_id(obligatoire) : ID du message
reply-to-inbound-message
Répondre à un message entrant (envoi à l'expéditeur d'origine). Envoie un véritable e-mail. Les adresses peuvent être une adresse e-mail seule ou { email, name? }.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionmessage_id(obligatoire) : ID du message auquel répondretext/html(au moins un recommandé) : Corps de la réponsefrom(facultatif) : Expéditeur. Refusé pour les boîtes de réception hébergées par Mailtrap ; obligatoire pour les boîtes de réception associées à un domaine personnalisécc/bcc/reply_to(facultatif) : Adresses supplémentairescategory(facultatif) : Catégorie du messageattachments(facultatif) : Tableau de{ content (base64), filename, type?, disposition?, content_id? }headers/custom_variables(facultatif) : Objets contenant des valeurs de type chaîne
reply-all-to-inbound-message
Répondre à un message entrant en mettant en copie les autres destinataires du message d'origine. Envoie un véritable e-mail. Mêmes paramètres que reply-to-inbound-message.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionmessage_id(obligatoire) : ID du message auquel répondre- Ainsi que les mêmes champs d'envoi facultatifs que
reply-to-inbound-message
forward-inbound-message
Transférer un message entrant à de nouveaux destinataires. Envoie un véritable e-mail.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionmessage_id(obligatoire) : ID du message à transférerto(obligatoire) : Au moins un destinataire (adresse e-mail seule ou{ email, name? }, ou un tableau)- Ainsi que les mêmes champs d'envoi facultatifs que
reply-to-inbound-message
list-inbound-threads
Lister les fils de conversation d'une boîte de réception entrante (pagination par curseur), avec un filtrage facultatif par search. Renvoie un résumé formaté avec une indication de page suivante lorsqu'il existe d'autres résultats.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionlast_id(facultatif) : Curseur de pagination provenant dulast_idd'une réponse précédentesearch(facultatif) : Texte sans distinction entre majuscules et minuscules, comparé à l'objet du fil et aux adresses de ses messages dans les champs from/to/cc/bcc. Transmettre la même valeur lors de la pagination
get-inbound-thread
Récupérer un fil entrant avec ses messages intégrés (du plus ancien au plus récent). Renvoie l'enregistrement complet du fil au format JSON.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionthread_id(obligatoire) : ID du fil
delete-inbound-thread
Supprimer définitivement un fil entrant.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionthread_id(obligatoire) : ID du fil
list-inbound-forward-rules
Lister les règles de transfert d'une boîte de réception entrante. Renvoie un résumé formaté.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réception
get-inbound-forward-rule
Récupérer une règle de transfert entrante par son ID. Renvoie l'enregistrement complet de la règle au format JSON, y compris ses conditions et ses destinations.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionforward_rule_id(obligatoire) : ID de la règle de transfert
create-inbound-forward-rule
Créer une règle de transfert pour une boîte de réception entrante. Les messages reçus qui satisfont toutes les conditions sont transférés vers les destinations de la règle.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionname(obligatoire) : Nom de la règle, unique dans la boîte de réceptionconditions(facultatif) : Tableau de{ match_type, operator, value?, header_key? }.match_typeestsender,recipientouheader;operatorestequal,not_equal,contains,starts_with,ends_with,emptyounot_empty(empty/not_emptyuniquement pourheader, et ne prennent aucunvalue) ;header_keyest obligatoire pourheader. Omettre ou transmettre[]pour correspondre à tous les messagesdestinations(facultatif) : Tableau de{ email }vers lesquels transférer les messages correspondants
update-inbound-forward-rule
Mettre à jour une règle de transfert entrante. Seuls les champs fournis sont modifiés ; un tableau conditions ou destinations fourni remplace l'ensemble complet.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionforward_rule_id(obligatoire) : ID de la règle de transfertname(facultatif) : Nouveau nom de la règleconditions(facultatif) : Ensemble de conditions de remplacement (même structure qu'à la création) ;[]supprime toutes les conditions, de sorte que la règle correspond à tous les messagesdestinations(facultatif) : Ensemble de destinations de remplacement ;[]supprime toutes les destinations
delete-inbound-forward-rule
Supprimer définitivement une règle de transfert entrante.
Paramètres :
inbox_id(obligatoire) : ID de la boîte de réceptionforward_rule_id(obligatoire) : ID de la règle de transfert
Développement
- Cloner le dépôt :
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- Installer les dépendances :
npm install
Configuration avec Claude Desktop ou Cursor
[!TIP] Consultez l'emplacement du fichier de configuration dans la section Configuration.
Ajoutez la configuration suivante :
{
"mcpServers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_SANDBOX_ID": "your_sandbox_id"
}
}
}
}
Si vous utilisez asdf pour gérer Node.js, vous devez utiliser le chemin absolu de l'exécutable :
(exemple pour Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "22.14.0",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_SANDBOX_ID": "your_sandbox_id"
}
}
}
}
VS Code
[!TIP] Consultez l'emplacement du fichier de configuration dans la section Configuration.
{
"mcp": {
"servers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_SANDBOX_ID": "your_sandbox_id"
}
}
}
}
}
Tests
Exécuter les outils avec un véritable compte Mailtrap
Il existe deux façons de tester un outil de bout en bout avec un véritable compte Mailtrap : l'interface Web du MCP Inspector pour une exploration interactive, ou son mode CLI pour effectuer des appels ponctuels depuis le shell.
Dans les deux cas, le bundle doit d'abord être compilé :
npm run build
et MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID doivent être exportés dans votre shell (le script mcp:cli transmet les deux au serveur lancé).
Interface Web
npm run dev
L'Inspector affiche une URL telle que http://localhost:6274. Ouvrez-la, passez à l'onglet Tools, choisissez un outil (par exemple get-template), renseignez les paramètres au format JSON, puis cliquez sur Run. La réponse de Mailtrap apparaît dans le panneau ci-dessous.
CLI
Pour effectuer des appels ponctuels sans l'interface, utilisez npm run mcp:cli. Passez les options CLI de l'Inspector après -- afin que npm les transmette telles quelles :
# List all tools
npm run mcp:cli -- --method tools/list
# Call a tool — flags after the `--`
npm run mcp:cli -- \
--method tools/call \
--tool-name get-template \
--tool-arg template_id=12345
# Multiple --tool-arg flags for tools with several params
npm run mcp:cli -- \
--method tools/call \
--tool-name send-domain-setup-instructions \
--tool-arg domain_id=3938 \
--tool-arg email=devops@example.com
Exécuter le serveur MCPB
# Run the MCPB server directly
node dist/mcpb-server.js
# Or use the provided binary
mailtrap-mcpb-server
[!TIP] Pour le développement avec le MCP Inspector :
npm run dev:mcpb
Gestion des erreurs
Ce serveur utilise une gestion structurée des erreurs conforme aux conventions MCP :
VALIDATION_ERROR: Échecs de validation des entréesCONFIGURATION_ERROR: Configuration manquante ou invalideEXECUTION_ERROR: Erreurs d'exécutionTIMEOUT: Délai d'expiration de l'opération (30 secondes par défaut)
Les erreurs comprennent des messages exploitables et sont consignées sous forme structurée.
Sécurité
- Validation des entrées à l'aide de schémas Zod
- Gestion sécurisée des variables d'environnement
- Protection contre les délais d'expiration des opérations (30 secondes)
- Assainissement des informations sensibles dans les messages d'erreur
Journalisation
Journaux JSON structurés avec les niveaux : INFO, WARN, ERROR, DEBUG.
Activez la journalisation de débogage en définissant DEBUG=true.
# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js
Important : le serveur écrit les journaux sur stderr afin que stdout reste réservé aux trames JSON-RPC. Cela évite que les hôtes rencontrent des erreurs d'analyse JSON dues à l'entrelacement des journaux.
Exemple d'analyse des journaux avec jq :
# Filter error logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "error")'
# Filter debug logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "debug")'
Dépannage
Problèmes courants :
- Jeton API manquant : vérifiez que
MAILTRAP_API_TOKENest défini - Le sandbox ne fonctionne pas : fournissez
sandbox_iddans l'appel d'outil (ou l'ancientest_inbox_idpour les outils d'envoi/liste/affichage de messages), ou définissez la variable d'environnementMAILTRAP_SANDBOX_ID - Erreurs de délai d'expiration : vérifiez la connectivité réseau et l'état de l'API Mailtrap
- Erreurs de validation : vérifiez que tous les champs obligatoires sont renseignés
Contribution
Les rapports de bogues et les demandes de fusion sont les bienvenus sur GitHub. Ce projet vise à offrir un espace sûr et accueillant pour la collaboration ; les contributeurs sont tenus de respecter le code de conduite.
Licence
Ce package est disponible en open source selon les termes de la licence MIT.
Code de conduite
Toute personne participant aux bases de code, aux systèmes de suivi des problèmes, aux salons de discussion et aux listes de diffusion du projet Mailtrap est tenue de respecter le code de conduite.