Mailtrap

offiziell

Integriert mit der Mailtrap Email API.

Was kann man mit Mailtrap MCP machen?

  • Transaktions-E-Mails senden — Senden Sie eine E-Mail über send-email mit Inline-Inhalt oder einer Vorlage, einschließlich CC/BCC und benutzerdefinierten Variablen.
  • E-Mail-Vorlagen verwalten — Verwenden Sie list-templates, create-template, update-template oder delete-template, um wiederverwendbare E-Mail-Designs zu pflegen.
  • Zustellungsprotokolle prüfen — Fragen Sie list-email-logs mit Filtern wie Empfänger, Status oder Datum ab und rufen Sie dann Details mit get-email-log-message ab.
  • E-Mails in der Sandbox testen — Senden Sie an ein Testpostfach über send-sandbox-email und prüfen Sie dann Nachrichten mit get-sandbox-messages und show-sandbox-email-message.
  • Sendeleistung analysieren — Erhalten Sie Zustellungs-, Bounce- und Engagement-Raten über get-sending-stats, optional aufgeschlüsselt nach Domain oder Kategorie.
  • Sendeinfrastruktur konfigurieren — Verwalten Sie list-sending-domains, erstellen oder löschen Sie Domains und rufen Sie DNS-Einrichtungsanweisungen ab.

Dokumentation

TypeScript test NPM

MCP Mailtrap Server

Ein MCP-Server, der Werkzeuge zum Senden und Testen in der Sandbox über Mailtrap bereitstellt.

Voraussetzungen

Bevor Sie diesen MCP-Server verwenden, müssen Sie:

  1. Ein Mailtrap-Konto erstellen
  2. Ihre Domain verifizieren
  3. Ihr API-Token aus den Mailtrap-API-Einstellungen abrufen
  4. Ihre Kontonummer aus der Mailtrap-Kontoverwaltung abrufen

Erforderliche Umgebungsvariablen:

  • MAILTRAP_API_TOKEN – Erforderlich für alle Funktionen
  • MAILTRAP_ACCOUNT_ID – Erforderlich für Vorlagen, Statistiken, E-Mail-Protokolle, Sandbox-Liste/-Anzeige und sendende Domains. Nur optional für die Sende-Werkzeuge (send-email, send-sandbox-email und die batch-send-* Werkzeuge).

Optional (können stattdessen als Tool-Parameter übergeben werden):

  • DEFAULT_FROM_EMAIL – Standard-Absender-E-Mail, wenn from nicht für send-email, send-sandbox-email oder die batch-send-* Werkzeuge bereitgestellt wird (dort füllt es base.from). Ermöglicht das Wechseln des Absenders pro Aufruf über den Parameter from.
  • MAILTRAP_SANDBOX_ID – Standard-Sandbox-ID für Sandbox-Werkzeuge, wenn sandbox_id nicht bereitgestellt wird. Ermöglicht das Wechseln zwischen Sandboxes pro Aufruf über den Parameter sandbox_id.
  • MAILTRAP_TEST_INBOX_ID – Standard-Testinbox-ID für Sandbox-Werkzeuge, wenn test_inbox_id nicht bereitgestellt wird. Ermöglicht das Wechseln zwischen Inboxes pro Aufruf über den Parameter test_inbox_id. Legacy-Alias für MAILTRAP_SANDBOX_ID, wird weiterhin als Fallback berücksichtigt.
  • MAILTRAP_ORGANIZATION_ID – Erforderlich für Organisations-Werkzeuge (list-sub-accounts, create-sub-account).
  • MAILTRAP_ORGANIZATION_API_TOKEN – Organisationsbezogenes API-Token. Erforderlich für Organisations-Werkzeuge (getrennt von MAILTRAP_API_TOKEN).

Schnellinstallation

Install in Cursor

Install with Node in VS Code

Smithery CLI

Smithery ist ein Registry-Installer und Manager für MCP-Server, der mit allen KI-Clients funktioniert.

npx @smithery/cli install mailtrap

Smithery verwaltet automatisch die Client-Konfiguration und bietet einen interaktiven Einrichtungsprozess. Das ist der einfachste Weg, um mit MCP-Servern zu starten.

Einrichtung

Claude Desktop

Verwenden Sie MCPB, um den Mailtrap-Server zu installieren. Sie finden diese Dateien in den Releases.
Laden Sie die .MCPB-Datei herunter und öffnen Sie sie. Wenn Sie Claude Desktop haben, wird sie geöffnet und die Konfiguration vorgeschlagen.

Claude Desktop oder Cursor

Fügen Sie die folgende Konfiguration hinzu:

{
  "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_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Wenn Sie asdf zur Verwaltung von Node.js verwenden, müssen Sie den absoluten Pfad zur ausführbaren Datei verwenden (Beispiel für 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": "20.6.1",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Speicherort der Claude-Desktop-Konfigurationsdatei

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Speicherort der Cursor-Konfigurationsdatei

Mac: ~/.cursor/mcp.json

Windows: %USERPROFILE%\.cursor\mcp.json

VS Code

Manuelles Ändern der Konfiguration

Führen Sie in der Befehlspalette aus: Preferences: Open User Settings (JSON)

Fügen Sie dann in der Einstellungsdatei die folgende Konfiguration hinzu:

{
  "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_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

[!TIP] Vergessen Sie nicht, Ihren MCP-Server neu zu starten, nachdem Sie den Abschnitt "env" geändert haben.

MCP Bundle (MCPB)

Zur einfachen Installation in Hosts, die MCP-Bundles unterstützen, können Sie eine .mcpb-Bundle-Datei verteilen.

# 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

Dies erstellt mailtrap-mcp.mcpb unter Verwendung des Repositorys manifest.json und der Build-Artefakte in dist/.

Verwendung

Nach der Konfiguration können Sie den Agenten bitten, E-Mails zu senden und Vorlagen zu verwalten, zum Beispiel:

E-Mail-Sendeoperationen:

  • "Sende eine E-Mail an john.doe@example.com mit dem Betreff 'Meeting Tomorrow' und einer freundlichen Erinnerung an unser bevorstehendes Meeting."
  • "Sende eine E-Mail an sarah@example.com über das Projekt-Update und setze das Team unter team@example.com in CC."
  • "Sende die Willkommensvorlage (UUID b81aabcd-1a1e-41cf-91b6-eca0254b3d96) an new@example.com mit den Variablen { name: 'Alex' }."
  • "Sende eine Sandbox-E-Mail an test@example.com mit dem Betreff 'Test Template', um eine Vorschau zu erhalten, wie unsere Willkommens-E-Mail aussieht."

E-Mail-Protokolle (Zustellung debuggen):

  • "Liste meine letzten gesendeten E-Mail-Protokolle auf."
  • "Zeige E-Mail-Protokolle für E-Mails, die an user@example.com gesendet wurden."
  • "Hole die E-Mail-Protokollnachricht für ID abc-123-uuid, um den Zustellungsstatus zu prüfen."

Sendestatistiken:

  • "Hole Sendestatistiken für Januar 2025."
  • "Zeige Zustellungsraten aufgeschlüsselt nach Domain für den letzten Monat."
  • "Was sind meine E-Mail-Statistiken nach Kategorie von 2025-01-01 bis 2025-01-31?"

Sandbox-Operationen:

  • "Hole alle Nachrichten aus meiner Sandbox-Inbox."
  • "Zeige mir die erste Seite der Sandbox-Nachrichten."
  • "Suche nach Nachrichten, die 'test' in meiner Sandbox-Inbox enthalten."
  • "Zeige mir die Details der Sandbox-Nachricht mit ID 5159037506."

Vorlagenoperationen:

  • "Liste alle E-Mail-Vorlagen in meinem Mailtrap-Konto auf."
  • "Erstelle eine neue E-Mail-Vorlage namens 'Welcome Email' mit dem Betreff 'Welcome to our platform!'"
  • "Aktualisiere die Vorlage mit ID 12345, um den Betreff in 'Updated Welcome Message' zu ändern."
  • "Lösche die Vorlage mit ID 67890."

Sendedomains:

  • "Liste meine Sendedomains auf."
  • "Hole die Sendedomain mit ID 3938."
  • "Erstelle eine Sendedomain für example.com."
  • "Lösche Sendedomain 3938."
  • "Hole Sendedomain 3938 mit DNS-Einrichtungsanweisungen."

Verfügbare Werkzeuge

send-email

Sendet eine transaktionale E-Mail über Mailtrap. Unterstützt zwei sich gegenseitig ausschließende Modi – Inline-Inhalt (subject + text/html) oder vorlagenbasiert (template_uuid).

Parameter:

  • from (optional): Absender als { email, name? } (eine einfache E-Mail-Zeichenfolge wird zur Laufzeit ebenfalls akzeptiert). Wenn nicht angegeben, wird DEFAULT_FROM_EMAIL verwendet.
  • to (optional): Array von Empfängern als { email, name? }-Objekte (einfache E-Mail-Zeichenfolgen oder eine einzelne Nicht-Array-Adresse werden zur Laufzeit ebenfalls akzeptiert). Optional, wenn cc oder bcc angegeben ist; mindestens eines von to / cc / bcc muss einen Empfänger enthalten.
  • cc (optional): Array von CC-Empfängern als { email, name? }-Objekte (einfache E-Mail-Zeichenfolgen werden zur Laufzeit ebenfalls akzeptiert).
  • bcc (optional): Array von BCC-Empfängern als { email, name? }-Objekte (einfache E-Mail-Zeichenfolgen werden zur Laufzeit ebenfalls akzeptiert).
  • subject (bedingt): Betreffzeile der E-Mail. Erforderlich für Inline-Sendungen; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • text (bedingt): Textkörper der E-Mail. Erforderlich (zusammen mit oder anstelle von html) für Inline-Sendungen; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • html (bedingt): HTML-Version des E-Mail-Körpers. Erforderlich (zusammen mit oder anstelle von text) für Inline-Sendungen; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • category (optional): E-Mail-Kategorie für Tracking und Analysen. Muss weggelassen werden, wenn template_uuid gesetzt ist.
  • template_uuid (optional): Verwendung einer Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalt. Wenn gesetzt, müssen subject / text / html / category weggelassen werden (laut Mailtrap-API).
  • template_variables (optional): Objekt von Variablen, die in die Vorlage eingesetzt werden, auf die template_uuid verweist. Nur zusammen mit template_uuid erlaubt.

batch-send-transactional-email

Sendet einen Stapel transaktionaler E-Mails in einem Mailtrap-API-Aufruf (Standard-Sendestream). Gemeinsame Felder gehen auf base; Überschreibungen pro Empfänger gehen in requests[]. Jede Anfrage muss mindestens einen Empfänger über to, cc oder bcc enthalten. Gleiche Inline-vs.-Vorlagen-Ausschließlichkeit wie bei send-email – nach dem Zusammenführen von Basis- und Einzelanfrage geprüft.

Parameter:

  • base (optional): Objekt mit Feldern, die über den Stapel hinweg gemeinsam sind.
    • from (optional): Absender als { email, name? } (eine einfache E-Mail-Zeichenfolge wird zur Laufzeit ebenfalls akzeptiert). Fällt auf DEFAULT_FROM_EMAIL zurück.
    • reply_to (optional): Antwortadresse.
    • subject / text / html / category (optional, Inline-Modus): Standardinhalt für jede Anfrage.
    • template_uuid / template_variables (optional, Vorlagenmodus): Standardvorlage + Variablen. Gegenseitig ausschließend mit den Inline-Feldern.
    • custom_variables (optional): Standard-Benutzerdefinierte Variablen (Zeichenfolgenwerte).
    • headers (optional): Standard-Benutzerdefinierte Header.
  • requests (erforderlich): Nicht-leeres Array von Nachrichten pro Empfänger. Jeder Eintrag hat:
    • to (optional): Array von Empfängern als { email, name? }-Objekte (einfache E-Mail-Zeichenfolgen oder eine einzelne Nicht-Array-Adresse werden zur Laufzeit ebenfalls akzeptiert). Optional, wenn cc oder bcc angegeben ist; mindestens eines von to / cc / bcc muss einen Empfänger enthalten.
    • cc, bcc, reply_to (optional).
    • Inline- (subject/text/html/category) oder Vorlagen- (template_uuid/template_variables) Überschreibungen; jedes weggelassene Feld fällt auf den entsprechenden base-Wert zurück.
    • custom_variables, headers (optional).

batch-send-bulk-email

Sendet einen Stapel von Bulk-E-Mails über die Bulk-Stream-API von Mailtrap. Gleiche base + requests[]-Form, Validierung und Inline-vs.-Vorlagen-Regeln wie bei batch-send-transactional-email – der einzige Unterschied besteht darin, dass dieses Werkzeug den Aufruf über den Bulk-Endpunkt anstelle des transaktionalen Endpunkts leitet. Siehe die obigen Parameter.

list-email-logs

Listet gesendete E-Mail-Protokolle (Zustellungsverlauf) mit optionaler Paginierung und Filtern auf. Verwenden Sie dies, um Zustellungsprobleme aus der IDE zu debuggen.

Parameter:

  • search_after (optional): Paginierungscursor aus der vorherigen Antwort next_page_cursor
  • sent_after (optional): ISO-8601-Datum/-Uhrzeit; nur Protokolle, die nach dieser Zeit gesendet wurden
  • sent_before (optional): ISO-8601-Datum/-Uhrzeit; nur Protokolle, die vor dieser Zeit gesendet wurden
  • from_email (optional): Nach Absender-E-Mail filtern; mit from_operator verwenden (Standard: ci_equal)
  • to_email (optional): Nach Empfänger-E-Mail filtern; mit to_operator verwenden (Standard: ci_equal)
  • status (optional): Nach Zustellungsstatus filtern: delivered, not_delivered, enqueued, opted_out; mit status_operator verwenden (Standard: equal)
  • subject (optional): Nach E-Mail-Betreff filtern; mit subject_operator verwenden (Standard: ci_contain). Verwenden Sie subject_operator: empty/not_empty, um nach Vorhandensein des Betreffs zu filtern.
  • sending_domain_id (optional): Nach Sendedomain-ID (Zahl) filtern; mit sending_domain_id_operator verwenden (Standard: equal)
  • sending_stream (optional): Nach Stream filtern: transactional oder bulk; mit sending_stream_operator verwenden (Standard: equal)
  • events (optional): Nach Ereignistyp(en) filtern: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; mit events_operator verwenden (include_event / not_include_event)
  • clicks_count / opens_count (optional): Nach Klick-/Öffnungsanzahl filtern; mit *_operator verwenden: equal, greater_than, less_than
  • client_ip / sending_ip (optional): Nach IP filtern; mit *_operator verwenden: equal, not_equal, contain, not_contain
  • email_service_provider_response (optional): Nach Anbieterantworttext filtern; mit *_operator verwenden (ci_contain usw.)
  • email_service_provider (optional): Nach Anbieter (exakt) filtern; mit *_operator verwenden: equal, not_equal
  • recipient_mx (optional): Nach Empfänger-MX filtern; mit recipient_mx_operator verwenden (ci_contain usw.)
  • category (optional): Nach E-Mail-Kategorie filtern; mit category_operator verwenden: equal, not_equal

Alle Parameter sind optional.

get-email-log-message

Ruft eine einzelne E-Mail-Protokollnachricht per ID (UUID) ab: eine lesbare Zusammenfassung (Von, An, Betreff, Sendezeitpunkt, Status, Kategorie, Stream, Engagement, Zustellungskontext), gefolgt von der detaillierten Ereignishistorie. Optional können Sie mit include_content: true auch den Nachrichtentext (HTML und Klartext) laden und anzeigen, wenn Mailtrap eine rohe Nachrichten-URL bereitstellt.

Parameter:

  • message_id (erforderlich): UUID der E-Mail-Logmeldung (aus der Sendeantwort oder list-email-logs). Verwenden Sie list-email-logs, um Nachrichten-IDs zu finden.
  • include_content (optional): Wenn true, wird die rohe EML abgerufen (falls raw_message_url verfügbar ist) und geparste HTML- und Klartext-Body-Abschnitte angehängt, ähnlich wie bei show-sandbox-email-message.

get-sending-stats

E-Mail-Versandstatistiken abrufen (Zustellung, Bounce, Öffnungen, Klicks, Spam-Raten) für einen Datumsbereich. Optional nach Domain, Kategorie, E-Mail-Dienstanbieter oder Datum aufschlüsseln. Zustellraten prüfen, ohne den Editor zu verlassen.

Parameter:

  • start_date (erforderlich): Startdatum für den Statistikzeitraum (JJJJ-MM-TT)
  • end_date (erforderlich): Enddatum für den Statistikzeitraum (JJJJ-MM-TT)
  • breakdown (optional): Aufschlüsselung der Statistiken: aggregated (Standard), by_domain, by_category, by_email_service_provider oder by_date
  • sending_domain_ids (optional): Ergebnisse auf diese Sende-Domain-IDs begrenzen (Array von Ganzzahlen)
  • sending_streams (optional): Auf transactional und/oder bulk begrenzen (Array von Zeichenfolgen)
  • categories (optional): Auf diese E-Mail-Kategorien begrenzen (Array von Zeichenfolgen)
  • email_service_providers (optional): Auf diese Anbieter begrenzen, z. B. Google, Yahoo, Outlook (Array von Zeichenfolgen)

create-template

Erstellt eine neue E-Mail-Vorlage in Ihrem Mailtrap-Konto.

Parameter:

  • name (erforderlich): Name der Vorlage
  • subject (erforderlich): E-Mail-Betreffzeile
  • html (oder text ist erforderlich): HTML-Inhalt der Vorlage
  • text (oder html ist erforderlich): Klartextversion der Vorlage
  • category (optional): Vorlagenkategorie (Standard: „Allgemein")

list-templates

Listet alle E-Mail-Vorlagen in Ihrem Mailtrap-Konto auf.

Parameter:

  • Keine Parameter erforderlich

get-template

Ruft eine einzelne E-Mail-Vorlage anhand der ID ab, einschließlich Betreff, Kategorie und HTML/Text-Body.

Parameter:

  • template_id (erforderlich): ID der abzurufenden Vorlage

update-template

Aktualisiert eine vorhandene E-Mail-Vorlage.

Parameter:

  • template_id (erforderlich): ID der zu aktualisierenden Vorlage
  • name (optional): Neuer Name für die Vorlage
  • subject (optional): Neue E-Mail-Betreffzeile
  • html (optional): Neuer HTML-Inhalt der Vorlage
  • text (optional): Neue Klartextversion der Vorlage
  • category (optional): Neue Kategorie für die Vorlage

[!NOTE] Beim Aufruf von update-template muss mindestens ein aktualisierbares Feld (Name, Betreff, HTML, Text oder Kategorie) angegeben werden, um eine Aktualisierung durchzuführen.

delete-template

Löscht eine vorhandene E-Mail-Vorlage.

Parameter:

  • template_id (erforderlich): ID der zu löschenden Vorlage

send-sandbox-email

Sendet eine E-Mail an Ihr Mailtrap-Testpostfach für Entwicklungs- und Testzwecke. Ideal zum Testen von E-Mail-Vorlagen, ohne E-Mails an echte Empfänger zu senden. Unterstützt dieselben zwei Modi wie send-emailInline-Inhalt oder vorlagenbasiert (template_uuid).

Parameter:

  • test_inbox_id (optional): Mailtrap-Testpostfach-ID. Erforderlich, sofern MAILTRAP_TEST_INBOX_ID nicht gesetzt ist; pro Aufruf übergeben, um ein bestimmtes Postfach anzusprechen.
  • from (optional): Absender als { email, name? } (eine reine E-Mail-Zeichenfolge wird zur Laufzeit ebenfalls akzeptiert). Falls nicht angegeben, wird DEFAULT_FROM_EMAIL verwendet.
  • to (optional): Array von Empfängern als { email, name? }-Objekte (reine E-Mail-Zeichenfolgen im Array oder eine durch Kommas getrennte Zeichenfolge mit einfachen E-Mails werden zur Laufzeit ebenfalls akzeptiert). Optional, wenn cc oder bcc angegeben ist; mindestens eines von to / cc / bcc muss einen Empfänger enthalten.
  • cc (optional): Array von CC-Empfängern als { email, name? }-Objekte (reine E-Mail-Zeichenfolgen werden zur Laufzeit ebenfalls akzeptiert).
  • bcc (optional): Array von BCC-Empfängern als { email, name? }-Objekte (reine E-Mail-Zeichenfolgen werden zur Laufzeit ebenfalls akzeptiert).
  • subject (bedingt): E-Mail-Betreffzeile. Erforderlich für Inline-Sendungen; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • text (bedingt): E-Mail-Textinhalt. Erforderlich (zusammen mit oder anstelle von html) für Inline-Sendungen; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • html (bedingt): HTML-Version des E-Mail-Bodys. Erforderlich (zusammen mit oder anstelle von text) für Inline-Sendungen; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • category (optional): E-Mail-Kategorie für die Verfolgung. Muss weggelassen werden, wenn template_uuid gesetzt ist.
  • template_uuid (optional): Eine Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalt verwenden. Wenn gesetzt, müssen subject / text / html / category weggelassen werden.
  • template_variables (optional): Objekt mit Variablen, die in die von template_uuid referenzierte Vorlage eingesetzt werden. Nur zusammen mit template_uuid zulässig.

batch-send-sandbox-email

Sendet einen Stapel von E-Mails in einem API-Aufruf an Ihr Mailtrap-Testpostfach, ohne sie an echte Empfänger zuzustellen. Gleiche base + requests[]-Struktur, Validierung und Inline-gegen-Vorlage-Regeln wie batch-send-transactional-email — der Unterschied besteht darin, dass dieses Tool den Aufruf über den Sandbox-Endpunkt für ein einzelnes Testpostfach leitet.

Parameter:

  • sandbox_id (optional): Mailtrap-Sandbox-ID (Testpostfach-ID). Erforderlich, sofern MAILTRAP_SANDBOX_ID nicht gesetzt ist; pro Aufruf übergeben, um eine bestimmte Sandbox anzusprechen.
  • base (optional), requests (erforderlich): Siehe batch-send-transactional-email oben.

[!NOTE] Für Sandbox-Tools geben Sie test_inbox_id im Tool-Aufruf an oder setzen Sie die Umgebungsvariable MAILTRAP_TEST_INBOX_ID. Sie können pro Aufruf zwischen Postfächern wechseln, indem Sie test_inbox_id übergeben. Tools, die sandbox_id verwenden, nutzen zuerst MAILTRAP_SANDBOX_ID.

get-sandbox-messages

Ruft eine Liste von Nachrichten aus Ihrem Mailtrap-Testpostfach ab. Nützlich, um zu prüfen, welche E-Mails während des Testens in Ihrer Sandbox empfangen wurden.

Parameter:

  • page (optional): Seitennummer für die Paginierung (Minimum: 1)
  • last_id (optional): Paginierung anhand der letzten Nachrichten-ID. Gibt Nachrichten nach der angegebenen Nachrichten-ID zurück (Minimum: 1)
  • search (optional): Suchabfrage zum Filtern von Nachrichten

[!NOTE] Alle Parameter sind optional. Wenn keine angegeben werden, wird die erste Seite der Nachrichten aus dem Postfach zurückgegeben. Verwenden Sie page für die klassische Paginierung, last_id für die cursor-basierte Paginierung oder search, um Nachrichten nach Inhalt zu filtern.

show-sandbox-email-message

Zeigt detaillierte Informationen und den Inhalt einer bestimmten E-Mail-Nachricht aus Ihrem Mailtrap-Testpostfach, einschließlich HTML- und Text-Body-Inhalt.

Parameter:

  • message_id (erforderlich): ID der abzurufenden Sandbox-E-Mail-Nachricht

[!NOTE] Verwenden Sie zuerst get-sandbox-messages, um die Liste der Nachrichten und ihre IDs zu erhalten, und verwenden Sie dann dieses Tool, um den vollständigen Inhalt einer bestimmten Nachricht anzuzeigen.

get-sandbox-project

Ruft ein Sandbox-Projekt anhand der ID ab, einschließlich seiner Postfächer und E-Mail-Anzahlen.

Parameter:

  • project_id (erforderlich): ID des abzurufenden Projekts

update-sandbox-project

Benennt ein vorhandenes Sandbox-Projekt um.

Parameter:

  • project_id (erforderlich): ID des zu aktualisierenden Projekts
  • name (erforderlich): Neuer Name für das Projekt (2–100 Zeichen)

list-sandboxes

Listet alle Sandboxes auf, die für das API-Token über alle Projekte hinweg zugänglich sind.

Parameter:

  • Keine Parameter erforderlich

mark-sandbox-as-read

Markiert alle Nachrichten in einer Sandbox als gelesen.

Parameter:

  • sandbox_id (erforderlich): ID der Sandbox, auf die sich die Aktion bezieht

reset-sandbox-credentials

Setzt die SMTP-Anmeldedaten für eine Sandbox zurück. Gibt den neuen Benutzernamen/das neue Passwort zurück.

Parameter:

  • sandbox_id (erforderlich): ID der Sandbox, auf die sich die Aktion bezieht

enable-sandbox-email-address

Aktiviert die E-Mail-Empfangsadresse für eine Sandbox (aktiviert die Mailtrap-Adresse, die Nachrichten per SMTP an die Sandbox zustellt).

Parameter:

  • sandbox_id (erforderlich): ID der Sandbox, auf die sich die Aktion bezieht

reset-sandbox-email-address

Generiert eine neue E-Mail-Empfangsadresse für eine Sandbox.

Parameter:

  • sandbox_id (erforderlich): ID der Sandbox, auf die sich die Aktion bezieht

forward-sandbox-message

Leitet eine Sandbox-Nachricht an eine externe E-Mail-Adresse weiter. Wird auf Ihr monatliches Weiterleitungskontingent angerechnet.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der weiterzuleitenden Sandbox-Nachricht
  • email (erforderlich): E-Mail-Adresse, an die die Nachricht weitergeleitet werden soll

update-sandbox-message

Markiert eine Sandbox-Nachricht als gelesen oder ungelesen.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der zu aktualisierenden Sandbox-Nachricht
  • is_read (erforderlich): true markiert als gelesen, false markiert als ungelesen

delete-sandbox-message

Löscht eine einzelne Sandbox-Nachricht.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der zu löschenden Sandbox-Nachricht

get-sandbox-message-spam-score

Ruft den SpamAssassin-Spam-Bericht für eine Sandbox-Nachricht ab (Punktzahl, Regeln, vollständiger Bericht). Eigenständige Alternative zu include_spam_report: true auf show-sandbox-email-message.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht

get-sandbox-message-html-analysis

Ruft den HTML-Analysebericht für eine Sandbox-Nachricht ab (Kompatibilitätsbewertungen für Clients, problematische Elemente). Eigenständige Alternative zu include_html_analysis: true auf show-sandbox-email-message.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht

get-sandbox-message-headers

Ruft die geparsten E-Mail-Header für eine Sandbox-Nachricht ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht

get-sandbox-message-html

Ruft den gerenderten HTML-Body einer Sandbox-Nachricht ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht

get-sandbox-message-text

Ruft den Klartext-Body einer Sandbox-Nachricht ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht

get-sandbox-message-raw

Ruft die rohe, MIME-formatierte Nachricht (Header + Body) für eine Sandbox-Nachricht ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht

get-sandbox-message-eml

Ruft die Nachricht als EML-Dateipayload ab (geeignet zum Anhängen an ein Ticket oder zum Importieren in einen anderen E-Mail-Client).

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht

get-sandbox-message-html-source

Ruft die ungerenderte HTML-Quelle einer Sandbox-Nachricht ab (HTML vor Mailtrap-seitigen Transformationen wie CID-Link-Umschreibungen).

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht

list-sandbox-attachments

Listet alle Anhänge einer Sandbox-Nachricht auf (Dateiname, Inhaltstyp, Größe, Download-Pfad).

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht

get-sandbox-attachment

Ruft Metadaten und Download-URL für einen einzelnen Anhang ab.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt auf MAILTRAP_SANDBOX_ID zurück.
  • message_id (erforderlich): ID der Sandbox-Nachricht, die den Anhang enthält
  • attachment_id (erforderlich): ID des abzurufenden Anhangs

list-sending-domains

Listet sendende Domains und deren DNS-Verifizierungsstatus auf.

Parameter:

  • Keine Parameter erforderlich

get-sending-domain

Ruft eine sendende Domain anhand ihrer ID ab und deren Verifizierungsstatus (einschließlich DNS-Einträgen). Optional DNS-Einrichtungsanweisungen einschließen, indem include_setup_instructions auf true gesetzt wird.

Parameter:

  • sending_domain_id (erforderlich): ID der sendenden Domain
  • include_setup_instructions (optional): Wenn true, DNS-Einrichtungsanweisungen an die Antwort anhängen. Standard: false

create-sending-domain

Erstellt eine neue sendende Domain. Nach der Erstellung DNS-Einträge hinzufügen, um die Domain zu verifizieren (verwende get-sending-domain mit include_setup_instructions: true, um die Einträge zu sehen).

Parameter:

  • domain_name (erforderlich): Domain-Name (z. B. example.com)

delete-sending-domain

Löscht eine sendende Domain.

Parameter:

  • sending_domain_id (erforderlich): ID der zu löschenden sendenden Domain

send-sending-domain-setup-instructions

Sendet DNS-Einrichtungsanweisungen für eine sendende Domain an eine angegebene Adresse. Nützlich, um DNS-Einträge an einen DevOps-Kollegen weiterzuleiten.

Parameter:

  • sending_domain_id (erforderlich): ID der sendenden Domain
  • email (erforderlich): E-Mail-Adresse, an die DNS-Einrichtungsanweisungen gesendet werden sollen

list-suppressions

Listet oder durchsucht Sperrungen (Hard Bounces, Spam-Beschwerden, Abmeldungen, manuelle Importe). Gibt bis zu 1000 Ergebnisse pro Aufruf zurück.

Parameter:

  • email (optional): E-Mail-Filter. Gibt nur Sperrungen zurück, die dieser Adresse entsprechen.

delete-suppression

Löscht eine Sperrung anhand ihrer ID. Mailtrap nimmt die Zustellung an diese E-Mail wieder auf, sofern sie nicht erneut gesperrt wird.

Parameter:

  • suppression_id (erforderlich): ID der zu löschenden Sperrung

list-webhooks

Listet alle für das Konto konfigurierten Webhooks auf. Gibt die vollständigen Webhook-Datensätze als JSON zurück.

Parameter:

  • Keine Parameter erforderlich

get-webhook

Ruft einen einzelnen Webhook anhand seiner ID ab. Gibt den vollständigen Webhook-Datensatz als JSON zurück. Hinweis: signing_secret wird hier nicht zurückgegeben – sie ist nur in der Antwort von create-webhook verfügbar.

Parameter:

  • webhook_id (erforderlich): ID des abzurufenden Webhooks

create-webhook

Erstellt einen Webhook. Die Antwort enthält ein signing_secret zur Überprüfung von Webhook-Payload-Signaturen – dieses Geheimnis wird nur bei der Erstellung zurückgegeben, also speichere es jetzt. Falls du es verlierst, erstelle den Webhook neu.

Parameter:

  • url (erforderlich): URL, an die Mailtrap Webhook-Ereignisse per POST sendet
  • webhook_type (erforderlich): "email_sending", "audit_log" oder "inbound_receiving"
  • active (optional, boolesch): Standardmäßig true
  • payload_format (optional): "json" oder "jsonlines". Standardmäßig "json"
  • sending_stream (optional, nur email_sending): "transactional" oder "bulk"
  • event_types (optional, nur email_sending): Array von delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject
  • domain_id (optional, nur email_sending): ID der sendenden Domain, auf die dieser Webhook begrenzt werden soll
  • inbound_inbox_id (optional, nur inbound_receiving): ID des eingehenden Postfachs, mit dem der Webhook verknüpft ist; weglassen, um auf alle Postfächer im Konto anzuwenden

update-webhook

Aktualisiert die änderbaren Felder eines Webhooks. webhook_type, sending_stream und domain_id können nach der Erstellung nicht geändert werden – erstelle den Webhook neu, wenn du diese ändern musst.

Parameter:

  • webhook_id (erforderlich): ID des zu aktualisierenden Webhooks
  • url (optional): Neue Webhook-URL
  • active (optional, boolesch): Webhook aktivieren oder deaktivieren
  • payload_format (optional): "json" oder "jsonlines"
  • event_types (optional, nur email_sending): Array von delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject
  • inbound_inbox_id (optional, nur inbound_receiving): ID des eingehenden Postfachs, mit dem der Webhook verknüpft ist

delete-webhook

Löscht einen Webhook dauerhaft anhand seiner ID. Gibt den gelöschten Webhook-Datensatz zurück.

Parameter:

  • webhook_id (erforderlich): ID des zu löschenden Webhooks

get-contact

Ruft einen Kontakt anhand seiner ID oder E-Mail ab. Gibt den vollständigen Kontaktdatensatz zurück (Listenmitgliedschaften, Status, benutzerdefinierte Felder).

Parameter:

  • contact_identifier (erforderlich): Kontakt-ID oder E-Mail-Adresse

create-contact

Erstellt einen neuen Kontakt.

Parameter:

  • email (erforderlich): E-Mail-Adresse
  • fields (optional): Werte benutzerdefinierter Felder, Schlüssel nach Merge-Tag (z. B. first_name). Zeichenfolge, Zahl oder boolesche Werte
  • list_ids (optional): IDs von Kontaktlisten, denen dieser Kontakt abonniert werden soll
  • unsubscribed (optional, boolesch): Kontakt im Status unsubscribed erstellen

update-contact

Aktualisiert einen vorhandenen Kontakt, der anhand von ID oder E-Mail identifiziert wird. list_ids ersetzt die vollständige Mitgliedschaftsmenge des Kontakts; list_ids_included/list_ids_excluded fügen hinzu/entfernen, ohne den Rest zu stören.

Parameter:

  • contact_identifier (erforderlich): Kontakt-ID oder E-Mail
  • email (optional): Neue E-Mail-Adresse
  • fields (optional): Werte benutzerdefinierter Felder, Schlüssel nach Merge-Tag
  • list_ids (optional): Mitgliedschaftsmenge mit dieser exakten Liste ersetzen
  • list_ids_included (optional): Listen-IDs zum Hinzufügen (additiv)
  • list_ids_excluded (optional): Listen-IDs zum Entfernen
  • unsubscribed (optional, boolesch): Auf unsubscribed (true) oder subscribed (false) setzen

delete-contact

Löscht einen Kontakt dauerhaft anhand von ID oder E-Mail. Gibt den gelöschten Kontaktdatensatz zurück, wenn die API einen solchen antwortet; andernfalls ein Bestätigungs-Payload.

Parameter:

  • contact_identifier (erforderlich): Kontakt-ID oder E-Mail

create-contact-event

Zeichnet ein Kontaktereignis für einen Kontakt auf (per ID oder E-Mail). Wird verwendet, um Automatisierungen für Kontaktlisten auszulösen.

Parameter:

  • contact_identifier (erforderlich): Kontakt-ID oder E-Mail
  • name (erforderlich): Ereignisname (entspricht Automatisierungsauslösern)
  • params (erforderlich): Objekt aus beliebigen Schlüssel/Wert-Paaren. Werte können Zeichenfolge, Zahl, boolesch oder null sein

list-contact-lists

Listet alle Kontaktlisten für das Konto auf.

Parameter:

  • search (optional): Kontaktlisten nach Name filtern (Groß-/Kleinschreibung nicht beachtet), z. B. news

get-contact-list

Ruft eine Kontaktliste anhand ihrer ID ab.

Parameter:

  • list_id (erforderlich): ID der abzurufenden Kontaktliste

create-contact-list

Erstellt eine neue Kontaktliste.

Parameter:

  • name (erforderlich): Name für die neue Liste

update-contact-list

Benennt eine vorhandene Kontaktliste um.

Parameter:

  • list_id (erforderlich): ID der Kontaktliste
  • name (erforderlich): Neuer Name für die Liste

delete-contact-list

Löscht eine Kontaktliste dauerhaft anhand ihrer ID.

Parameter:

  • list_id (erforderlich): ID der zu löschenden Kontaktliste

list-contact-fields

Listet alle Definitionen von Kontaktfeldern für das Konto auf.

Parameter:

  • Keine Parameter erforderlich

get-contact-field

Ruft eine Kontaktfelddefinition anhand ihrer ID ab.

Parameter:

  • field_id (erforderlich): ID des Kontaktfelds

create-contact-field

Erstellt eine neue Kontaktfelddefinition. merge_tag muss innerhalb des Kontos eindeutig sein und wird als Platzhaltername in Vorlagenvariablen verwendet.

Parameter:

  • name (erforderlich): Anzeigename (z. B. „Vorname“)
  • merge_tag (erforderlich): Eindeutiger Platzhaltername (z. B. first_name)
  • data_type (erforderlich): Einer von text, number, boolean, date

update-contact-field

Aktualisiert eine Kontaktfelddefinition. Jede Kombination aus name, merge_tag und data_type kann geändert werden.

Parameter:

  • field_id (erforderlich): ID des Kontaktfelds
  • name (optional): Neuer Anzeigename
  • merge_tag (optional): Neues Merge-Tag (muss eindeutig bleiben)
  • data_type (optional): Einer von text, number, boolean, date

delete-contact-field

Löscht eine Kontaktfelddefinition dauerhaft anhand ihrer ID.

Parameter:

  • field_id (erforderlich): ID des zu löschenden Kontaktfelds

create-contact-import

Massimport von Kontakten. Gibt einen Importjob-Datensatz zurück; überwache seinen Status mit get-contact-import.

Parameter:

  • contacts (erforderlich): Array von Kontakteinträgen. Jeder Eintrag benötigt:
    • email (erforderlich): E-Mail-Adresse des Kontakts
    • fields (optional): Werte benutzerdefinierter Felder, Schlüssel nach Merge-Tag (Zeichenfolge- oder Zahlenwerte)
    • list_ids_included (optional): Listen-IDs, zu denen der Kontakt hinzugefügt werden soll
    • list_ids_excluded (optional): Listen-IDs, aus denen der Kontakt entfernt werden soll

get-contact-import

Ruft den Status eines Kontaktimportjobs ab (created/started/finished/failed) mit created/updated/over-limit-Zählungen.

Parameter:

  • import_id (erforderlich): ID des Kontaktimportjobs

create-contact-export

Exportiert Kontakte, die einer Menge von UND-verknüpften Filtern entsprechen. Gibt einen Exportjob-Datensatz zurück; überwache den Status mit get-contact-export, um die Download-URL abzurufen, sobald status finished ist.

Parameter:

  • filters (erforderlich): Array von Filterobjekten. Jedes hat:
    • name (erforderlich): Feld, nach dem gefiltert wird (list_id, subscription_status, email, usw.)
    • operator (erforderlich): Einer von equal, not_equal, contains, not_contains, is_empty, is_not_empty
    • value (erforderlich): Vergleichswert (Zeichenfolge, Zahl, boolesch oder Array)

get-contact-export

Ruft den Status eines Kontaktexportjobs ab. Sobald status finished ist, enthält das Feld url den CSV-Download-Link.

Parameter:

  • export_id (erforderlich): ID des Kontaktexportjobs

list-accounts

Listet Mailtrap-Konten auf, auf die das aktuelle API-Token zugreifen kann, mit den Zugriffsrechten jedes Kontos.

Parameter:

  • Keine Parameter erforderlich

get-billing-usage

Ruft die Nutzung des aktuellen Abrechnungszeitraums für das Konto ab: Sende- und Testpläne, Limits und aktuelle Zähler.

Parameter:

  • Keine Parameter erforderlich

list-account-accesses

Listet Kontozugriffe (Benutzer, Einladungen, API-Token) für das Konto auf. Optionale Filter grenzen das Ergebnis auf bestimmte Ressourcen ein. Erfordert Administrator-/Eigentümerrechte für das Konto.

Parameter:

  • domain_uuids (optional): Nach sendenden Domain-UUIDs filtern (Array von Zeichenfolgen)
  • inbox_ids (optional): Nach Sandbox-Postfach-IDs filtern (Array von Zeichenfolgen)
  • project_ids (optional): Nach Sandbox-Projekt-IDs filtern (Array von Zeichenfolgen)

remove-account-access

Entfernt einen Kontozugriff anhand seiner ID. Für User-Angaben entzieht dies ihre Berechtigungen; für Invite- oder ApiToken-Angaben entfernt es die Angabe vollständig. Erfordert Administrator/Eigentümer.

Parameter:

  • account_access_id (erforderlich): ID des zu entfernenden Zugriffsdatensatzes

get-permission-resources

Ruft alle Ressourcen (Postfächer, Projekte, Domains, Abrechnung, Konto) ab, für die das API-Token Administratorzugriff hat, hierarchisch verschachtelt.

Parameter:

  • Keine Parameter erforderlich

bulk-update-permissions

Massenhaft Erstellen, Aktualisieren oder Löschen von Berechtigungen für einen einzelnen Kontozugriff. Vorhandene (resource_type, resource_id)-Paare werden aktualisiert; neue werden erstellt. Setze destroy: true für einen Eintrag, um ihn zu entfernen.

Parameter:

  • account_access_id (erforderlich): Zugangs-ID des Zielkontos
  • permissions (erforderlich): Array von Berechtigungseinträgen. Jeder hat:
    • resource_id (erforderlich): Ressourcen-ID (Zahl oder Zeichenkette)
    • resource_type (erforderlich): Einer von account, project, inbox, domain, billing
    • access_level (optional): admin/100 oder viewer/10
    • destroy (optional, boolesch): Wenn true, wird diese Berechtigung entfernt statt erstellt oder aktualisiert

list-api-tokens

Alle API-Tokens für das Konto auflisten.

Parameter:

  • Keine Parameter erforderlich

create-api-token

Ein neues API-Token erstellen. Die Antwort enthält den geheimen token-Wert — dies ist der einzige Zeitpunkt, an dem das vollständige Token zurückgegeben wird. Speichern Sie es daher sofort. Wenn Sie es verlieren, müssen Sie das Token neu erstellen.

Parameter:

  • name (erforderlich): Anzeigename für das Token
  • resources (optional): Array von Ressourcenberechtigungen, um das Token einzuschränken. Jeder Eintrag hat:
    • resource_type (erforderlich): Einer von account, project, inbox, domain, billing
    • resource_id (erforderlich): ID der Ressource
    • access_level (erforderlich): 100 (administrator) oder 10 (betrachter)

get-api-token

Ein API-Token anhand der ID abrufen. Gibt nur Metadaten zurück — der geheime Token-Wert wird hier nicht zurückgegeben (nur über create-api-token / reset-api-token).

Parameter:

  • api_token_id (erforderlich): ID des API-Tokens

reset-api-token

Ein API-Token anhand der ID zurücksetzen (rotieren). Die Antwort enthält den neuen geheimen token-Wert — wird nur bei diesem Aufruf zurückgegeben, also sofort speichern. Das vorherige Token wird ungültig.

Parameter:

  • api_token_id (erforderlich): ID des zurückzusetzenden API-Tokens

delete-api-token

Ein API-Token anhand der ID dauerhaft löschen. Nach dem Löschen kann das Token nicht mehr zur Authentifizierung verwendet werden.

Parameter:

  • api_token_id (erforderlich): ID des zu löschenden API-Tokens

list-sub-accounts

Unterkonten in der Organisation auflisten. Erfordert die MAILTRAP_ORGANIZATION_ID-Umgebungsvariable und Berechtigungen für die Unterkontenverwaltung.

Parameter:

  • Keine Parameter erforderlich

create-sub-account

Ein neues Unterkonto unter der Organisation erstellen. Erfordert die MAILTRAP_ORGANIZATION_ID-Umgebungsvariable und Berechtigungen für die Unterkontenverwaltung.

Parameter:

  • name (erforderlich): Anzeigename für das neue Unterkonto

list-inbound-folders

Alle eingehenden Ordner im Konto auflisten. Gibt eine formatierte Zusammenfassung zurück.

Parameter:

  • Keine Parameter erforderlich

get-inbound-folder

Einen einzelnen eingehenden Ordner anhand der ID abrufen. Gibt den vollständigen Ordnerdatensatz als JSON zurück.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners

create-inbound-folder

Einen neuen eingehenden Ordner erstellen.

Parameter:

  • name (erforderlich): Der Ordnername

update-inbound-folder

Einen eingehenden Ordner umbenennen.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners
  • name (erforderlich): Der neue Ordnername

delete-inbound-folder

Einen eingehenden Ordner dauerhaft löschen, einschließlich aller seiner Postfächer.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners

list-inbound-inboxes

Alle Postfächer in einem eingehenden Ordner auflisten. Gibt eine formatierte Zusammenfassung zurück.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners

get-inbound-inbox

Ein einzelnes eingehendes Postfach anhand der ID abrufen. Gibt den vollständigen Postfachdatensatz als JSON zurück.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners
  • inbox_id (erforderlich): ID des Postfachs

create-inbound-inbox

Ein neues eingehendes Postfach in einem Ordner erstellen.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners
  • name (erforderlich): Der Postfachname
  • domain_id (optional): An eine benutzerdefinierte Sendung-Domain anhängen (Catch-All-Postfach). Für ein von Mailtrap gehostetes Postfach weglassen

update-inbound-inbox

Ein eingehendes Postfach umbenennen.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners
  • inbox_id (erforderlich): ID des Postfachs
  • name (erforderlich): Der neue Postfachname

delete-inbound-inbox

Ein eingehendes Postfach dauerhaft löschen.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners
  • inbox_id (erforderlich): ID des Postfachs

list-inbound-messages

Empfangene Nachrichten in einem eingehenden Postfach auflisten (seitenweise). Gibt eine formatierte Zusammenfassung mit einem Hinweis auf die nächste Seite zurück, wenn weitere Ergebnisse vorhanden sind.

Parameter:

  • inbox_id (erforderlich): ID des Postfachs
  • last_id (optional): Paginierungscursor aus dem last_id einer vorherigen Antwort

get-inbound-message

Eine einzelne eingehende Nachricht mit ihrem vollständigen Inhalt und den Download-URLs für Anhänge abrufen. Gibt den vollständigen Nachrichtendatensatz als JSON zurück.

Parameter:

  • inbox_id (erforderlich): ID des Postfachs
  • message_id (erforderlich): ID der Nachricht

delete-inbound-message

Eine eingehende Nachricht dauerhaft löschen.

Parameter:

  • inbox_id (erforderlich): ID des Postfachs
  • message_id (erforderlich): ID der Nachricht

reply-to-inbound-message

Auf eine eingehende Nachricht antworten (sendet an den ursprünglichen Absender). Sendet eine echte E-Mail. Adressen akzeptieren eine reine E-Mail-Zeichenkette oder { email, name? }.

Parameter:

  • inbox_id (erforderlich): ID des Postfachs
  • message_id (erforderlich): ID der Nachricht, auf die geantwortet wird
  • text / html (mindestens eines empfohlen): Antworttext
  • from (optional): Absender. Für von Mailtrap gehostete Postfächer abgelehnt; für benutzerdefinierte Domain-Postfächer erforderlich
  • cc / bcc / reply_to (optional): Zusätzliche Adressen
  • category (optional): Nachrichtenkategorie
  • attachments (optional): Array von { content (base64), filename, type?, disposition?, content_id? }
  • headers / custom_variables (optional): Objekte mit Zeichenkettenwerten

reply-all-to-inbound-message

Auf eine eingehende Nachricht antworten und die anderen Empfänger des Originals in Kopie setzen. Sendet eine echte E-Mail. Gleiche Parameter wie reply-to-inbound-message.

Parameter:

  • inbox_id (erforderlich): ID des Postfachs
  • message_id (erforderlich): ID der Nachricht, auf die geantwortet wird
  • Zusätzlich die gleichen optionalen Sendefelder wie bei reply-to-inbound-message

forward-inbound-message

Eine eingehende Nachricht an neue Empfänger weiterleiten. Sendet eine echte E-Mail.

Parameter:

  • inbox_id (erforderlich): ID des Postfachs
  • message_id (erforderlich): ID der weiterzuleitenden Nachricht
  • to (erforderlich): Mindestens ein Empfänger (reine E-Mail-Zeichenkette oder { email, name? }, oder ein Array)
  • Zusätzlich die gleichen optionalen Sendefelder wie bei reply-to-inbound-message

list-inbound-threads

Unterhaltungsthreads in einem eingehenden Postfach auflisten (seitenweise). Gibt eine formatierte Zusammenfassung mit einem Hinweis auf die nächste Seite zurück, wenn weitere Ergebnisse vorhanden sind.

Parameter:

  • inbox_id (erforderlich): ID des Postfachs
  • last_id (optional): Paginierungscursor aus dem last_id einer vorherigen Antwort

get-inbound-thread

Einen einzelnen eingehenden Thread mit seinen eingebetteten Nachrichten (älteste zuerst) abrufen. Gibt den vollständigen Thread-Datensatz als JSON zurück.

Parameter:

  • inbox_id (erforderlich): ID des Postfachs
  • thread_id (erforderlich): ID des Threads

delete-inbound-thread

Einen eingehenden Thread dauerhaft löschen.

Parameter:

  • inbox_id (erforderlich): ID des Postfachs
  • thread_id (erforderlich): ID des Threads

Entwicklung

  1. Klonen Sie das Repository:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
  1. Abhängigkeiten installieren:
npm install

Konfiguration mit Claude Desktop oder Cursor

[!TIP] Informationen zum Speicherort der Konfigurationsdatei finden Sie im Abschnitt Einrichtung.

Fügen Sie die folgende Konfiguration hinzu:

{
  "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_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Wenn Sie asdf zur Verwaltung von Node.js verwenden, sollten Sie den absoluten Pfad zur ausführbaren Datei angeben:

(Beispiel für 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": "20.6.1",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

VS Code

[!TIP] Informationen zum Speicherort der Konfigurationsdatei finden Sie im Abschnitt Einrichtung.

{
  "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_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

Tests

Tools gegen echte Mailtrap ausführen

Es gibt zwei Möglichkeiten, ein Tool Ende-zu-Ende gegen ein echtes Mailtrap-Konto zu testen: die MCP Inspector-Browseroberfläche für interaktives Erkunden oder ihre CLI-Modus für einmalige Aufrufe aus der Shell.

Beide erfordern, dass das Bundle zuerst erstellt wird:

npm run build

und MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID in Ihrer Shell exportiert werden (das mcp:cli-Skript leitet beide an den gestarteten Server weiter).

Browseroberfläche

npm run dev

Der Inspector gibt eine URL wie http://localhost:6274 aus. Öffnen Sie diese, wechseln Sie zum Tab Tools, wählen Sie ein Tool (z. B. get-template), füllen Sie die Parameter als JSON aus und klicken Sie auf Run. Die Mailtrap-Antwort erscheint im darunterliegenden Panel.

CLI

Für einmalige Aufrufe ohne die Oberfläche verwenden Sie npm run mcp:cli. Geben Sie die CLI-Flags des Inspectors nach -- an, damit npm sie unverändert weiterleitet:

# 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-sending-domain-setup-instructions \
  --tool-arg sending_domain_id=3938 \
  --tool-arg email=devops@example.com

Den MCPB-Server ausführen

# Run the MCPB server directly
node dist/mcpb-server.js

# Or use the provided binary
mailtrap-mcpb-server

[!TIP] Für die Entwicklung mit dem MCP Inspector:

npm run dev:mcpb

Fehlerbehandlung

Dieser Server verwendet eine strukturierte Fehlerbehandlung gemäß den MCP-Konventionen:

  • VALIDATION_ERROR: Eingabevalidierungsfehler
  • CONFIGURATION_ERROR: Fehlende oder ungültige Konfiguration
  • EXECUTION_ERROR: Laufzeitfehler
  • TIMEOUT: Zeitüberschreitung bei Vorgängen (Standard: 30 Sekunden)

Fehler enthalten umsetzbare Meldungen und werden in strukturierter Form protokolliert.

Sicherheit

  • Eingaben über Zod-Schemas validiert
  • Umgebungsvariablen sicher verarbeitet
  • Timeout-Schutz für Vorgänge (30 Sekunden)
  • Sensible Details in Fehlerausgaben bereinigt

Protokollierung

Strukturierte JSON-Logs mit Ebenen: INFO, WARN, ERROR, DEBUG.

Aktivieren Sie Debug-Protokollierung durch Setzen von DEBUG=true.

# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js

Wichtig: Der Server schreibt Logs nach stderr, damit stdout für JSON-RPC-Frames reserviert bleibt. Dies verhindert, dass Hosts aufgrund verschachtelter Logs JSON-Parsing-Fehler erhalten.

Beispiel für eine Log-Analyse mit 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")'

Fehlerbehebung

Häufige Probleme:

  1. Fehlendes API-Token: Stellen Sie sicher, dass MAILTRAP_API_TOKEN gesetzt ist
  2. Sandbox funktioniert nicht: Geben Sie test_inbox_id im Tool-Aufruf an oder setzen Sie die Umgebungsvariable MAILTRAP_TEST_INBOX_ID
  3. Timeout-Fehler: Überprüfen Sie die Netzwerkverbindung und den Status der Mailtrap-API
  4. Validierungsfehler: Stellen Sie sicher, dass alle erforderlichen Felder angegeben sind

Beitragen

Fehlerberichte und Pull Requests sind auf GitHub willkommen. Dieses Projekt soll ein sicherer, einladender Raum für Zusammenarbeit sein, und Mitwirkende werden gebeten, sich an den Verhaltenskodex zu halten.

Lizenz

Das Paket ist als Open Source unter den Bedingungen der MIT-Lizenz verfügbar.

Verhaltenskodex

Alle Personen, die mit den Codebasen, Issue-Trackern, Chatrooms und Mailinglisten des Mailtrap-Projekts interagieren, werden gebeten, den Verhaltenskodex zu befolgen.