Was ist der Emailit MCP Server?
Der Emailit MCP Server ist ein Open-Source-Model Context Protocol-Server, der KI-Assistenten direkt mit Emailit verbindet.
Er ermöglicht es Ihnen, E-Mails zu versenden, Kontakte, Domains, Vorlagen und mehr über natürliche Sprache zu verwalten — direkt aus Claude, Cursor oder jedem MCP-kompatiblen Client heraus.
- Paket:
@emailit/emailit-mcp - Laufzeitumgebung: Node.js 18+
- Lizenz: MIT
- Repository: github.com/emailit/emailit-mcp
Voraussetzungen
- Ein Emailit-Konto
- Ein API-Schlüssel
- Eine verifizierte Versand-Domain
- Node.js 18 oder neuer
Übertragungsmodi
Der Server unterstützt zwei Übertragungsmodi:
Stdio (Standard)
Der MCP-Client startet den Server als Unterprozess und kommuniziert über Standard-Ein-/Ausgabe. Der API-Schlüssel wird über eine Umgebungsvariable oder CLI-Argument übergeben. Dies ist die einfachste Option und funktioniert mit allen wichtigen Clients.
HTTP (Streamable HTTP)
Für Remote- oder webbasierte Integrationen läuft der Server als HTTP-Server mit Streamable HTTP-Transport. Clients authentifizieren sich pro Session, indem sie ihren API-Schlüssel als Bearer-Token im Authorization-Header übergeben. Der Endpunkt ist unter /mcp verfügbar.
Installation & Konfiguration
Claude Code (Stdio)
claude mcp add emailit \
-e EMAILIT_API_KEY=ihr_api_schluessel \
-- npx -y @emailit/emailit-mcp
Claude Code (HTTP)
Starten Sie zuerst den Server:
npx -y @emailit/emailit-mcp --http --port 3000
Dann registrieren Sie ihn:
claude mcp add emailit \
--transport http http://127.0.0.1:3000/mcp \
--header "Authorization: Bearer ihr_api_schluessel"
Cursor (Stdio)
Öffnen Sie die Befehlspalette und wählen Sie Cursor Settings → MCP → Add new global MCP server, dann fügen Sie ein:
{
"mcpServers": {
"emailit": {
"command": "npx",
"args": ["-y", "@emailit/emailit-mcp"],
"env": {
"EMAILIT_API_KEY": "ihr_api_schluessel"
}
}
}
}
Cursor (HTTP)
Starten Sie den Server, dann fügen Sie hinzu:
{
"mcpServers": {
"emailit": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer ihr_api_schluessel"
}
}
}
}
Claude Desktop (Stdio)
Öffnen Sie Claude Desktop-Einstellungen → Developer-Tab → Config bearbeiten, dann fügen Sie ein:
{
"mcpServers": {
"emailit": {
"command": "npx",
"args": ["-y", "@emailit/emailit-mcp"],
"env": {
"EMAILIT_API_KEY": "ihr_api_schluessel"
}
}
}
}
CLI-Optionen
| Option | Beschreibung |
|---|---|
--key <schluessel> | API-Schlüssel (nur stdio; HTTP verwendet Bearer-Token) |
--sender <email> | Standard-Absender von einer verifizierten Domain |
--reply-to <email> | Standard-Antwort-an (kann wiederholt werden) |
--http | HTTP-Transport anstelle von stdio verwenden |
--port <port> | HTTP-Port (Standard: 3000) |
-h, --help | Hilfenachricht anzeigen |
Umgebungsvariablen
| Variable | Beschreibung |
|---|---|
EMAILIT_API_KEY | API-Schlüssel (erforderlich für stdio) |
SENDER_EMAIL_ADDRESS | Standard-Absender von einer verifizierten Domain |
REPLY_TO_EMAIL_ADDRESSES | Kommagetrennte Antwort-an-Adressen |
MCP_PORT | HTTP-Port (Standard: 3000) |
Tipp: Wenn Sie keine Absender-E-Mail-Adresse angeben, fragt der MCP-Server bei jedem E-Mail-Versand danach.
Verfügbare Tools
Der Server stellt 47 Tools in 8 Kategorien zur Verfügung.
E-Mails (10 Tools)
| Tool | Beschreibung |
|---|---|
send-email | E-Mail senden (HTML, Text, Vorlagen, Anhänge, Terminierung) |
list-emails | E-Mails mit Paginierung und optionaler Filterung auflisten |
get-email | Einzelne E-Mail per ID abrufen |
get-email-raw | Vollständige rohe MIME-Nachricht abrufen |
get-email-body | Geparsten Nachrichteninhalt abrufen (Text und HTML) |
get-email-attachments | Anhänge mit base64-Inhalt abrufen |
get-email-meta | E-Mail-Metadaten abrufen |
update-email | Versandzeit einer terminierten E-Mail aktualisieren |
cancel-email | Terminierte oder ausstehende E-Mail stornieren |
retry-email | Fehlgeschlagene, fehlerhafte oder zurückgehaltene E-Mail erneut versuchen |
Domains (6 Tools)
| Tool | Beschreibung |
|---|---|
create-domain | Domain erstellen und DNS-Einträge erhalten |
get-domain | Domain-Informationen und Verifizierungsstatus abrufen |
list-domains | Alle Domains auflisten |
update-domain | Tracking-Einstellungen aktualisieren |
delete-domain | Domain löschen (unwiderruflich) |
verify-domain | DNS-Verifizierung auslösen |
API-Schlüssel (5 Tools)
| Tool | Beschreibung |
|---|---|
create-api-key | Neuen API-Schlüssel erstellen (nur einmal angezeigt) |
get-api-key | API-Schlüssel-Informationen abrufen |
list-api-keys | Alle API-Schlüssel auflisten |
update-api-key | Namen eines API-Schlüssels aktualisieren |
delete-api-key | API-Schlüssel löschen (unwiderruflich) |
Zielgruppen (5 Tools)
| Tool | Beschreibung |
|---|---|
create-audience | Zielgruppe für Kampagnen erstellen |
get-audience | Zielgruppen-Details abrufen |
list-audiences | Alle Zielgruppen auflisten |
update-audience | Namen einer Zielgruppe aktualisieren |
delete-audience | Zielgruppe und alle ihre Abonnenten löschen |
Kontakte (5 Tools)
| Tool | Beschreibung |
|---|---|
create-contact | Kontakt mit Zielgruppen-Abonnements erstellen |
get-contact | Kontakt per ID oder E-Mail-Adresse abrufen |
list-contacts | Alle Kontakte auflisten |
update-contact | Kontaktdaten aktualisieren |
delete-contact | Kontakt und seine Abonnenten-Einträge löschen |
Vorlagen (6 Tools)
| Tool | Beschreibung |
|---|---|
create-template | E-Mail-Vorlage erstellen |
get-template | Vorlage per ID mit allen Versionen abrufen |
list-templates | Veröffentlichte Vorlagen mit Filterung auflisten |
update-template | Vorlage aktualisieren |
delete-template | Vorlage dauerhaft löschen |
publish-template | Vorlagen-Version veröffentlichen |
Unterdrückungen (5 Tools)
| Tool | Beschreibung |
|---|---|
create-suppression | E-Mail-Adresse zur Unterdrückungsliste hinzufügen |
get-suppression | Unterdrückung per ID oder E-Mail abrufen |
list-suppressions | Alle Unterdrückungen auflisten |
update-suppression | Unterdrückung aktualisieren |
delete-suppression | Unterdrückung entfernen |
Webhooks (5 Tools)
| Tool | Beschreibung |
|---|---|
create-webhook | Webhook mit Event-Abonnements erstellen |
get-webhook | Webhook-Informationen abrufen |
list-webhooks | Alle Webhooks auflisten |
update-webhook | Webhook aktualisieren |
delete-webhook | Webhook löschen |
Anwendungsbeispiele
Einfache E-Mail senden
Fragen Sie Ihren KI-Assistenten:
“Sende eine Willkommens-E-Mail an john@example.com mit dem Betreff ‘Willkommen!’”
Die KI ruft send-email auf mit:
{
"from": "hallo@meinedomain.com",
"to": "john@example.com",
"subject": "Willkommen!",
"html": "<h1>Willkommen!</h1><p>Vielen Dank für Ihre Anmeldung.</p>"
}
Mit Vorlage und Variablen senden
“Sende die welcome-email-Vorlage an sarah@example.com mit ihrem Namen als Sarah.”
{
"from": "hallo@meinedomain.com",
"to": "sarah@example.com",
"template": "welcome-email",
"variables": { "name": "Sarah" }
}
E-Mail terminieren
“Plane eine Erinnerungs-E-Mail an team@firma.com für morgen um 9 Uhr.”
{
"from": "erinnerungen@meinedomain.com",
"to": "team@firma.com",
"subject": "Tägliche Standup-Erinnerung",
"text": "Vergesst nicht das Standup um 9:30!",
"scheduled_at": "morgen um 9 Uhr"
}
Mit Anhängen senden
“Sende eine E-Mail an buchhaltung@firma.com mit der angehängten Rechnungs-PDF.”
{
"from": "abrechnung@meinedomain.com",
"to": "buchhaltung@firma.com",
"subject": "Monatsrechnung",
"html": "<p>Die Rechnung finden Sie im Anhang.</p>",
"attachments": [
{
"filename": "rechnung-2026-05.pdf",
"url": "https://example.com/rechnungen/2026-05.pdf"
}
]
}
Domains verwalten
“Füge meine Domain mail.example.com hinzu und zeige mir die DNS-Einträge.”
Die KI ruft create-domain auf und zeigt die erforderlichen DNS-Einträge an, die Sie bei Ihrem DNS-Anbieter konfigurieren müssen.
“Verifiziere meine Domain.”
Die KI ruft verify-domain auf, um die DNS-Propagation zu prüfen und meldet den Verifizierungsstatus zurück.
Kontakte verwalten
“Füge Jane Smith (jane@example.com) zur Zielgruppe aud_abc123 hinzu.”
{
"email": "jane@example.com",
"first_name": "Jane",
"last_name": "Smith",
"audiences": ["aud_abc123"]
}
Vorlagen verwalten
“Erstelle eine Newsletter-Vorlage mit dem Alias monthly-newsletter.”
{
"name": "Monatlicher Newsletter",
"alias": "monthly-newsletter",
"subject": "Monatliches Update {{monat}}",
"html": "<h1>{{monat}} Update</h1>..."
}
Unterdrückungen verwalten
“Unterdrücke bounced@example.com wegen zu vieler Hard-Bounces.”
{
"email": "bounced@example.com",
"type": "bounce",
"reason": "zu viele Hard-Bounces"
}
Webhooks einrichten
“Erstelle einen Webhook, der Zustellungs- und Bounce-Events an meinen Endpunkt sendet.”
{
"name": "Zustellungs-Tracker",
"url": "https://meineapp.com/webhooks/email",
"events": ["email.delivered", "email.bounced"]
}
Sicherheitshinweise
- API-Schlüssel sollten niemals in die Versionskontrolle eingecheckt werden.
- Im stdio-Modus wird der API-Schlüssel in der Konfiguration des MCP-Clients gespeichert.
- Im HTTP-Modus übergeben Clients den API-Schlüssel pro Session über Bearer-Token.
- Webhook-URLs werden vor der Erstellung gegen SSRF validiert.
- Löschvorgänge veranlassen die KI, zuerst bei Ihnen nachzufragen.
Fehlerbehebung
“API-Schlüssel für stdio-Modus erforderlich”
Setzen Sie die Umgebungsvariable EMAILIT_API_KEY oder übergeben Sie --key.
Domain nicht verifiziert
Konfigurieren Sie DNS-Einträge aus der create-domain-Ausgabe, dann rufen Sie verify-domain auf.
E-Mail abgelehnt / wird nicht gesendet Stellen Sie sicher, dass die Domain verifiziert ist und die Absenderadresse diese Domain verwendet.
Terminierte E-Mail kann nicht storniert werden Muss mindestens 3 Minuten vor der geplanten Zeit sein.
Wiederholung schlägt fehl Nur hart fehlgeschlagene, fehlerhafte, zurückgehaltene oder unterdrückte E-Mails können wiederholt werden.
Lokale Entwicklung
git clone https://github.com/emailit/emailit-mcp.git
cd emailit-mcp
npm install
# Im stdio-Modus ausführen
EMAILIT_API_KEY=ihr_schluessel node src/index.js
# Im HTTP-Modus ausführen
node src/index.js --http --port 3000
Weitere Details finden Sie im GitHub-Repository.