Qu’est-ce que le serveur MCP Emailit ?

Le serveur MCP Emailit est un serveur Model Context Protocol open source qui connecte directement les assistants IA à Emailit.

Il vous permet d’envoyer des emails, de gérer vos contacts, domaines, modèles et bien plus encore en langage naturel — directement depuis Claude, Cursor, ou tout autre client compatible MCP.

Prérequis

Modes de transport

Le serveur prend en charge deux modes de transport :

Stdio (par défaut)

Le client MCP démarre le serveur en tant que sous-processus et communique via l’entrée/sortie standard. La clé API est transmise via une variable d’environnement ou un argument CLI. C’est l’option la plus simple qui fonctionne avec tous les clients principaux.

HTTP (Streamable HTTP)

Pour les intégrations distantes ou web, le serveur s’exécute en tant que serveur HTTP utilisant le transport Streamable HTTP. Les clients s’authentifient par session en transmettant leur clé API comme token Bearer dans l’en-tête Authorization. Le point de terminaison est exposé à /mcp.

Installation et configuration

Claude Code (Stdio)

claude mcp add emailit \
  -e EMAILIT_API_KEY=votre_cle_api \
  -- npx -y @emailit/emailit-mcp

Claude Code (HTTP)

Démarrez d’abord le serveur :

npx -y @emailit/emailit-mcp --http --port 3000

Puis enregistrez-le :

claude mcp add emailit \
  --transport http http://127.0.0.1:3000/mcp \
  --header "Authorization: Bearer votre_cle_api"

Cursor (Stdio)

Ouvrez la palette de commandes et choisissez Cursor Settings → MCP → Add new global MCP server, puis collez :

{
  "mcpServers": {
    "emailit": {
      "command": "npx",
      "args": ["-y", "@emailit/emailit-mcp"],
      "env": {
        "EMAILIT_API_KEY": "votre_cle_api"
      }
    }
  }
}

Cursor (HTTP)

Démarrez le serveur, puis ajoutez :

{
  "mcpServers": {
    "emailit": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer votre_cle_api"
      }
    }
  }
}

Claude Desktop (Stdio)

Ouvrez Paramètres Claude Desktop → onglet Développeur → Modifier la config, puis collez :

{
  "mcpServers": {
    "emailit": {
      "command": "npx",
      "args": ["-y", "@emailit/emailit-mcp"],
      "env": {
        "EMAILIT_API_KEY": "votre_cle_api"
      }
    }
  }
}

Options CLI

OptionDescription
--key <clé>Clé API (stdio uniquement ; HTTP utilise un token Bearer)
--sender <email>Expéditeur par défaut depuis un domaine vérifié
--reply-to <email>Répondre à par défaut (peut être répété)
--httpUtiliser le transport HTTP au lieu de stdio
--port <port>Port HTTP (par défaut : 3000)
-h, --helpAfficher le message d’aide

Variables d’environnement

VariableDescription
EMAILIT_API_KEYClé API (obligatoire pour stdio)
SENDER_EMAIL_ADDRESSExpéditeur par défaut depuis un domaine vérifié
REPLY_TO_EMAIL_ADDRESSESAdresses de réponse séparées par des virgules
MCP_PORTPort HTTP (par défaut : 3000)

Astuce : Si vous ne fournissez pas d’adresse email d’expéditeur, le serveur MCP vous en demandera une à chaque envoi d’email.

Outils disponibles

Le serveur expose 47 outils répartis en 8 catégories.

Emails (10 outils)

OutilDescription
send-emailEnvoyer un email (HTML, texte, modèles, pièces jointes, programmation)
list-emailsLister les emails avec pagination et filtrage optionnel
get-emailRécupérer un email unique par ID
get-email-rawObtenir le message MIME brut complet
get-email-bodyObtenir le contenu du corps analysé (texte et HTML)
get-email-attachmentsObtenir les pièces jointes avec contenu base64
get-email-metaObtenir les métadonnées de l’email
update-emailMettre à jour l’heure d’envoi d’un email programmé
cancel-emailAnnuler un email programmé ou en attente
retry-emailRéessayer un email échoué, en erreur ou bloqué

Domaines (6 outils)

OutilDescription
create-domainCréer un domaine et obtenir les enregistrements DNS
get-domainObtenir les infos du domaine et le statut de vérification
list-domainsLister tous les domaines
update-domainMettre à jour les paramètres de suivi
delete-domainSupprimer un domaine (irréversible)
verify-domainDéclencher la vérification DNS

Clés API (5 outils)

OutilDescription
create-api-keyCréer une nouvelle clé API (affichée une seule fois)
get-api-keyRécupérer les infos de la clé API
list-api-keysLister toutes les clés API
update-api-keyMettre à jour le nom d’une clé API
delete-api-keySupprimer une clé API (irréversible)

Audiences (5 outils)

OutilDescription
create-audienceCréer une audience pour les campagnes
get-audienceObtenir les détails d’une audience
list-audiencesLister toutes les audiences
update-audienceMettre à jour le nom d’une audience
delete-audienceSupprimer une audience et tous ses abonnés

Contacts (5 outils)

OutilDescription
create-contactCréer un contact avec abonnements aux audiences
get-contactObtenir un contact par ID ou adresse email
list-contactsLister tous les contacts
update-contactMettre à jour les détails d’un contact
delete-contactSupprimer un contact et ses enregistrements d’abonné

Modèles (6 outils)

OutilDescription
create-templateCréer un modèle d’email
get-templateObtenir un modèle par ID avec toutes les versions
list-templatesLister les modèles publiés avec filtrage
update-templateMettre à jour un modèle
delete-templateSupprimer définitivement un modèle
publish-templatePublier une version de modèle

Suppressions (5 outils)

OutilDescription
create-suppressionAjouter une adresse email à la liste de suppression
get-suppressionObtenir une suppression par ID ou email
list-suppressionsLister toutes les suppressions
update-suppressionMettre à jour une suppression
delete-suppressionSupprimer une suppression

Webhooks (5 outils)

OutilDescription
create-webhookCréer un webhook avec abonnements aux événements
get-webhookObtenir les infos du webhook
list-webhooksLister tous les webhooks
update-webhookMettre à jour un webhook
delete-webhookSupprimer un webhook

Exemples d’utilisation

Envoyer un email simple

Demandez à votre assistant IA :

“Envoie un email de bienvenue à john@example.com avec le sujet ‘Bienvenue !’”

L’IA appelle send-email avec :

{
  "from": "hello@mondomaine.com",
  "to": "john@example.com",
  "subject": "Bienvenue !",
  "html": "<h1>Bienvenue !</h1><p>Merci de vous être inscrit.</p>"
}

Envoyer avec un modèle et des variables

“Envoie le modèle welcome-email à sarah@example.com avec son prénom Sarah.”

{
  "from": "hello@mondomaine.com",
  "to": "sarah@example.com",
  "template": "welcome-email",
  "variables": { "name": "Sarah" }
}

Programmer un email

“Programme un email de rappel à equipe@entreprise.com pour demain à 9h.”

{
  "from": "rappels@mondomaine.com",
  "to": "equipe@entreprise.com",
  "subject": "Rappel Daily Standup",
  "text": "N'oubliez pas le standup à 9h30 !",
  "scheduled_at": "demain à 9h"
}

Envoyer avec des pièces jointes

“Envoie un email à comptabilite@entreprise.com avec le PDF de facture en pièce jointe.”

{
  "from": "facturation@mondomaine.com",
  "to": "comptabilite@entreprise.com",
  "subject": "Facture mensuelle",
  "html": "<p>Veuillez trouver la facture en pièce jointe.</p>",
  "attachments": [
    {
      "filename": "facture-2026-05.pdf",
      "url": "https://example.com/factures/2026-05.pdf"
    }
  ]
}

Gérer les domaines

“Ajoute mon domaine mail.example.com et montre-moi les enregistrements DNS.”

L’IA appelle create-domain et affiche les enregistrements DNS requis que vous devez configurer chez votre fournisseur DNS.

“Vérifie mon domaine.”

L’IA appelle verify-domain pour vérifier la propagation DNS et vous rapporte le statut de vérification.

Gérer les contacts

“Ajoute Jane Smith (jane@example.com) à l’audience aud_abc123.”

{
  "email": "jane@example.com",
  "first_name": "Jane",
  "last_name": "Smith",
  "audiences": ["aud_abc123"]
}

Gérer les modèles

“Crée un modèle de newsletter avec l’alias newsletter-mensuelle.”

{
  "name": "Newsletter mensuelle",
  "alias": "newsletter-mensuelle",
  "subject": "Actualités {{mois}}",
  "html": "<h1>Actualités {{mois}}</h1>..."
}

Gérer les suppressions

“Supprime bounced@example.com pour trop de rebonds définitifs.”

{
  "email": "bounced@example.com",
  "type": "bounce",
  "reason": "trop de rebonds définitifs"
}

Configurer des webhooks

“Crée un webhook qui envoie les événements de livraison et de rebond à mon endpoint.”

{
  "name": "Suivi de livraison",
  "url": "https://monapp.com/webhooks/email",
  "events": ["email.delivered", "email.bounced"]
}

Notes de sécurité

  • Les clés API ne doivent jamais être commitées dans le contrôle de version.
  • En mode stdio, la clé API est stockée dans la configuration du client MCP.
  • En mode HTTP, les clients transmettent la clé API par session via un token Bearer.
  • Les URLs de webhook sont validées contre les attaques SSRF avant création.
  • Les opérations de suppression demandent à l’IA de confirmer avec vous d’abord.

Dépannage

“Clé API requise pour le mode stdio” Définissez la variable d’environnement EMAILIT_API_KEY ou passez --key.

Domaine non vérifié Configurez les enregistrements DNS depuis la sortie de create-domain, puis appelez verify-domain.

Email rejeté / ne s’envoie pas Assurez-vous que le domaine est vérifié et que l’adresse expéditeur utilise ce domaine.

L’email programmé ne peut pas être annulé Doit être au moins 3 minutes avant l’heure programmée.

La nouvelle tentative échoue Seuls les emails définitivement échoués, en erreur, bloqués ou supprimés peuvent être retentés.

Développement local

git clone https://github.com/emailit/emailit-mcp.git
cd emailit-mcp
npm install

# Exécuter en mode stdio
EMAILIT_API_KEY=votre_cle node src/index.js

# Exécuter en mode HTTP
node src/index.js --http --port 3000

Pour plus de détails, consultez le dépôt GitHub.

Localisé par IA