Mailtrap

offiziell

Integriert mit der Mailtrap Email API.

Was kann man mit Mailtrap MCP machen?

  • Transaktions-E-Mails senden — Bitten Sie Ihren Assistenten, eine transaktionale E-Mail mit Inline-Inhalt oder einer Vorlage über send-email zu senden.
  • E-Mails in der Sandbox testen — Senden Sie Test-E-Mails an ein Sandbox-Postfach und prüfen Sie Inhalt, Spam-Scores und HTML-Analyse.
  • Zustellungsprotokolle überwachen — Durchsuchen Sie E-Mail-Protokolle und prüfen Sie den Ereignisverlauf, um Zustellungsprobleme mit list-email-logs zu debuggen.
  • E-Mail-Vorlagen verwalten — Erstellen, auflisten, aktualisieren oder löschen Sie Vorlagen mit Befehlen in natürlicher Sprache.
  • Sendestatistiken analysieren — Erhalten Sie Zustellungs-, Bounce-, Öffnungs- und Klickraten für beliebige Zeiträume mit get-sending-stats.
  • Absendedomänen verwalten — Listen Sie Absendedomänen auf, erstellen und konfigurieren Sie sie mit DNS-Verifizierung und Klick-Tracking.

Dokumentation

TypeScript test NPM

Offizieller Mailtrap MCP-Server

Der offizielle MCP-Server für Mailtrap – die E-Mail-Zustellungsplattform. Er verbindet dein Mailtrap-Konto mit Claude, Cursor, VS Code und anderen MCP-kompatiblen KI-Assistenten.

Sende transaktionale und Bulk-E-Mails, teste Nachrichten sicher in der Email Sandbox, verwalte Vorlagen, Kontakte, Sende-Domains und Webhooks, prüfe E-Mail-Logs und Zustellungsstatistiken, behebe Zustellbarkeitsprobleme und verwalte Kontoressourcen – alles über natürlichsprachliche Eingaben.

Funktionen

  • E-Mail-API und SMTP – Sende transaktionale und Bulk-E-Mails, einschließlich Batch- und vorlagenbasierter Nachrichten.
  • E-Mail-Tests – Teste Nachrichten in der Email Sandbox und prüfe Inhalte, Header, Anhänge, Spam-Scores und HTML-Client-Kompatibilität.
  • Zustellungsüberwachung – Durchsuche E-Mail-Logs, prüfe Ereignisverläufe und analysiere Zustellungs-, Bounce-, Öffnungs-, Klick- und Spam-Raten.
  • E-Mail-Infrastruktur – Verwalte Sende-Domains, DNS-Verifizierung, Webhooks und Suppressions.
  • Kontakte – Verwalte Kontakte, Listen, benutzerdefinierte Felder und Ereignisse, einschließlich Import und Export.
  • Kontoverwaltung – Prüfe die Abrechnungsnutzung und verwalte Zugriff, Berechtigungen, API-Tokens und Unterkonten.

Unterstützte MCP-Clients

Funktioniert mit Claude Desktop, Claude Code, Cursor, VS Code und jedem anderen MCP-kompatiblen Client. Einrichtungsanleitungen für jeden findest du unten.

Voraussetzungen

Bevor du diesen MCP-Server verwendest, musst du:

  1. Ein Mailtrap-Konto erstellen
  2. Deine Domain verifizieren
  3. Dein API-Token aus den Mailtrap-API-Einstellungen abrufen
  4. Deine 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-Logs, Sandbox-Listen/-Anzeigen, Sende-Domains und Suppressions. Optional nur für die Sende-Tools (send-email, send-sandbox-email und die batch-send-*-Tools), die E-Mail-Kampagnen-Tools, die Firmeninfo-Tools und die Tracking-Opt-out-Tools.

Optional (kann stattdessen als Tool-Parameter übergeben werden):

  • DEFAULT_FROM_EMAIL – Standard-Absender-E-Mail, wenn from nicht an send-email, send-sandbox-email oder die batch-send-*-Tools übergeben wird (dort füllt es base.from). Ermöglicht den Wechsel des Absenders pro Aufruf über den Parameter from.
  • MAILTRAP_SANDBOX_ID – Standard-Sandbox-ID für Sandbox-Tools, wenn sandbox_id nicht übergeben wird. Ermöglicht den Wechsel zwischen Sandboxes pro Aufruf über den Parameter sandbox_id.
  • MAILTRAP_TEST_INBOX_ID – Standard-Test-Postfach-ID für Sandbox-Tools, wenn test_inbox_id nicht übergeben wird. Ermöglicht den Wechsel zwischen Postfächern 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-Tools (list-sub-accounts, create-sub-account).
  • MAILTRAP_ORGANIZATION_API_TOKEN – Organisationsbezogenes API-Token. Erforderlich für Organisations-Tools (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 übernimmt automatisch die Client-Konfiguration und bietet einen interaktiven Einrichtungsprozess. Es ist der einfachste Weg, um lokal mit MCP-Servern zu starten.

Einrichtung

Claude Desktop

Verwende MCPB, um den Mailtrap-Server zu installieren. Diese Dateien findest du in den Releases.
Lade die .MCPB-Datei herunter und öffne sie. Wenn du Claude Desktop hast, wird sie geöffnet und die Konfiguration vorgeschlagen.

Claude Desktop oder Cursor

Füge 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 du asdf zur Verwaltung von Node.js verwendest, musst du den absoluten Pfad zur ausführbaren Datei angeben (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ühre in der Befehlspalette aus: Preferences: Open User Settings (JSON)

Füge 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] Vergiss nicht, deinen MCP-Server neu zu starten, nachdem du den Abschnitt „env" geändert hast.

MCP-Bundle (MCPB)

Für eine einfache Installation in Hosts, die MCP-Bundles unterstützen, kannst du 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 mithilfe des Repositorys manifest.json und der Build-Artefakte in dist/.

Verwendung

Nach der Konfiguration kannst du 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."
  • „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 unserer Willkommens-E-Mail zu sehen"

E-Mail-Logs (Zustellungs-Debugging):

  • „Liste meine kürzlich gesendeten E-Mail-Logs auf"
  • „Zeige E-Mail-Logs für E-Mails an user@example.com"
  • „Rufe die E-Mail-Log-Nachricht für ID abc-123-uuid ab, um den Zustellungsstatus zu prüfen"

Sendestatistiken:

  • „Hole Sendestatistiken für Januar 2025"
  • „Zeige Zustellungsraten aufgeschlüsselt nach Domain für den letzten Monat"
  • „Wie sind meine E-Mail-Statistiken nach Kategorie vom 01.01.2025 bis 31.01.2025?"

Sandbox-Operationen:

  • „Hole alle Nachrichten aus meinem Sandbox-Postfach"
  • „Zeige mir die erste Seite der Sandbox-Nachrichten"
  • „Suche nach Nachrichten mit ‚test' in meinem Sandbox-Postfach"
  • „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"

Sende-Domains:

  • „Liste meine Sende-Domains auf"
  • „Hole die Sende-Domain mit ID 3938"
  • „Erstelle eine Sende-Domain für example.com"
  • „Aktiviere Klick-Tracking für Sende-Domain 3938"
  • „Lösche Sende-Domain 3938"
  • „Hole Sende-Domain 3938 mit DNS-Einrichtungsanweisungen"
  • „Zeige die Firmeninfo für Sende-Domain 3938"
  • „Setze die Firmeninfo für Domain 3938 auf Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com"
  • „Ändere die Stadt der Firmeninfo für Domain 3938 auf New York"

Suppressions:

Tracking-Opt-outs:

  • „Stoppe das Tracking von Öffnungen und Klicks für privacy@example.com auf Domain 3938"
  • „Liste alle auf, die sich vom Tracking abgemeldet haben"

Kontakte und Listen:

  • „Füge john.doe@example.com zu meiner Newsletter-Kontaktliste hinzu"
  • „Zeige mir alle meine Kontaktlisten"
  • „Erstelle ein Kontaktfeld namens ‚signup_source', um zu verfolgen, woher Kontakte kommen"
  • „Aktualisiere den Kontakt john.doe@example.com, um ihren Plan auf ‚pro' zu setzen"
  • „Importiere Kontakte aus dieser CSV in meine Onboarding-Liste"
  • „Exportiere alle Kontakte aus meiner Newsletter-Liste"
  • „Erfasse ein ‚trial_started'-Ereignis für Kontakt john.doe@example.com"

Webhooks:

  • „Liste alle Webhooks auf, die in meinem Konto konfiguriert sind"
  • „Erstelle einen Webhook, der auf https://example.com/hooks/mailtrap für Bounce- und Spam-Ereignisse zeigt"
  • „Aktualisiere Webhook 4821, sodass er auch Zustellungsereignisse sendet"
  • „Lösche Webhook 4821"

Konto und Abrechnung:

  • „Wie hoch ist meine aktuelle Abrechnungsnutzung in diesem Monat?"
  • „Wie viele E-Mails habe ich noch in meinem Plan?"
  • „Liste alle auf, die Zugriff auf dieses Mailtrap-Konto haben"
  • „Zeige mir die verfügbaren Berechtigungsressourcen in meinem Konto"

API-Tokens:

  • „Liste alle API-Tokens in meinem Konto auf"
  • „Erstelle ein neues API-Token für die Staging-Umgebung"
  • „Setze das API-Token mit ID 1234 zurück"
  • „Lösche das ungenutzte API-Token 1234"

Organisation und Unterkonten:

  • „Liste alle Unterkonten in meiner Organisation auf"
  • „Erstelle ein neues Unterkonto für das Kundenprojekt ‚Acme Corp'"

Verfügbare Tools

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 reine 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 (reine 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 (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): 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 stattdessen von html) für Inline-Sendungen; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • html (bedingt): HTML-Version des E-Mail-Textkörpers. Erforderlich (zusammen mit oder stattdessen 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): Verwende eine Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalt. Wenn gesetzt, müssen subject / text / html / category weggelassen werden (gemäß Mailtrap-API).
  • template_variables (optional): Objekt mit Variablen, die in die Vorlage eingesetzt werden, auf die template_uuid verweist. Nur zusammen mit template_uuid zulässig.

batch-send-transactional-email

Sendet einen Batch transaktionaler E-Mails in einem einzigen Mailtrap-API-Aufruf (Standard-Sendestream). Gemeinsame Felder stehen in base; Überschreibungen pro Empfänger stehen 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 – geprüft nach dem Zusammenführen der Basis mit jeder Anfrage.

Parameter:

  • base (optional): Objekt mit Feldern, die für die gesamte Stapelverarbeitung gemeinsam genutzt werden.
    • 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 (Reply-to).
    • subject / text / html / category (optional, Inline-Modus): Standardinhalt für jede Anfrage.
    • template_uuid / template_variables (optional, Vorlagenmodus): Standardvorlage + Variablen. Schließt sich gegenseitig mit den Inline-Feldern aus.
    • custom_variables (optional): Standardmäßige benutzerdefinierte Variablen (mit Zeichenfolgenwerten).
    • headers (optional): Standardmäßige 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 Massen-E-Mails über die Bulk-Stream-API von Mailtrap. Gleiche base + requests[]-Struktur, Validierung und Inline-gegen-Vorlage-Regeln wie batch-send-transactional-email – der einzige Unterschied besteht darin, dass dieses Tool den Aufruf über den Bulk-Endpunkt statt über den transaktionalen Endpunkt leitet. Siehe die Parameter oben.

list-email-logs

Listet Protokolle gesendeter E-Mails (Zustellverlauf) mit optionaler Paginierung und Filtern auf. Verwenden Sie dies, um Zustellprobleme direkt aus der IDE zu debuggen.

Parameter:

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

Alle Parameter sind optional.

get-email-log-message

Ruft eine einzelne E-Mail-Protokollnachricht anhand der ID (UUID) ab: eine lesbare Zusammenfassung (Von, An, Betreff, Sendezeitpunkt, Status, Kategorie, Stream, Interaktion, Zustellkontext) und anschließend den detaillierten Ereignisverlauf. Optional können Sie mit include_content: true auch den Nachrichtentext (HTML und Klartext) laden und anzeigen, wenn Mailtrap eine Roh-Nachrichten-URL bereitstellt.

Parameter:

  • message_id (erforderlich): UUID der E-Mail-Protokollnachricht (aus der Sendeantwort oder list-email-logs). Verwenden Sie list-email-logs, um Nachrichten-IDs zu finden.
  • include_content (optional): Wenn true, ruft die rohe EML ab (falls raw_message_url verfügbar ist) und fügt geparste HTML- und Klartext-Abschnitte hinzu, ähnlich wie show-sandbox-email-message.

get-sending-stats

Ruft E-Mail-Versandstatistiken (Zustell-, Bounce-, Öffnungs-, Klick- und Spam-Raten) für einen Datumsbereich ab. Optional können Sie nach Domain, Kategorie, E-Mail-Dienstanbieter oder Datum aufschlüsseln. Prüfen Sie Zustellraten, 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 beschränken (Array von Ganzzahlen)
  • sending_streams (optional): Auf transactional und/oder bulk beschränken (Array von Zeichenfolgen)
  • categories (optional): Auf diese E-Mail-Kategorien beschränken (Array von Zeichenfolgen)
  • email_service_providers (optional): Auf diese Anbieter beschränken, 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): Betreffzeile der E-Mail
  • html (oder text ist erforderlich): HTML-Inhalt der Vorlage
  • text (oder html ist erforderlich): Klartextversion der Vorlage
  • category (optional): Vorlagenkategorie (Standard: „General")

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-Inhalt.

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 Betreffzeile der E-Mail
  • html (optional): Neuer HTML-Inhalt der Vorlage
  • text (optional): Neue Klartextversion der Vorlage
  • category (optional): Neue Kategorie für die Vorlage

[!NOTE] Mindestens ein aktualisierbares Feld (Name, Betreff, HTML, Text oder Kategorie) muss beim Aufruf von update-template 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. Dies ist ideal zum Testen von E-Mail-Vorlagen, ohne E-Mails an echte Empfänger zu senden. Unterstützt dieselben zwei Modi wie send-email – Inline-Inhalt oder vorlagenbasiert (template_uuid).

Parameter:

  • test_inbox_id (optional): Mailtrap-Testpostfach-ID. Erforderlich, sofern MAILTRAP_TEST_INBOX_ID nicht festgelegt ist; pro Aufruf übergeben, um ein bestimmtes Postfach anzusprechen.
  • 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 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 (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 festgelegt ist.
  • text (bedingt): Text der E-Mail. Erforderlich (zusammen mit oder anstelle von html) für Inline-Sendungen; muss weggelassen werden, wenn template_uuid festgelegt ist.
  • html (bedingt): HTML-Version des E-Mail-Texts. Erforderlich (zusammen mit oder anstelle von text) für Inline-Sendungen; muss weggelassen werden, wenn template_uuid festgelegt ist.
  • category (optional): E-Mail-Kategorie für die Nachverfolgung. Muss weggelassen werden, wenn template_uuid festgelegt ist.
  • template_uuid (optional): Verwenden Sie eine Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalt. Wenn festgelegt, 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 einzigen 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). Erforderlich, sofern MAILTRAP_SANDBOX_ID nicht festgelegt ist; pro Aufruf übergeben, um eine bestimmte Sandbox anzusprechen.
  • base (optional), requests (erforderlich): Siehe batch-send-transactional-email oben.

[!NOTE] Geben Sie für Sandbox-Tools test_inbox_id im Tool-Aufruf an oder legen Sie die Umgebungsvariable MAILTRAP_TEST_INBOX_ID fest. Sie können pro Aufruf zwischen Postfächern wechseln, indem Sie test_inbox_id übergeben. Tools, die sandbox_id akzeptieren, verwenden 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 Tests in Ihrer Sandbox empfangen wurden.

Parameter:

  • page (optional): Seitennummer für die Paginierung (Minimum: 1)
  • last_id (optional): Paginierung mithilfe 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 herkömmliche 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 an, einschließlich HTML- und Text-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 deren 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-Anzahl.

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 jede Sandbox auf, die für das API-Token über alle Projekte hinweg zugänglich ist.

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 die Aktion angewendet werden soll

reset-sandbox-credentials

Setze 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 eingewirkt werden soll

enable-sandbox-email-address

Aktiviere 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 eingewirkt werden soll

reset-sandbox-email-address

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

Parameter:

  • sandbox_id (erforderlich): ID der Sandbox, auf die eingewirkt werden soll

forward-sandbox-message

Leite eine Sandbox-Nachricht an eine externe E-Mail-Adresse weiter. Wird auf dein monatliches Weiterleitungslimit angerechnet.

Parameter:

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

update-sandbox-message

Markiere 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 Sandbox-Nachricht, die aktualisiert werden soll
  • is_read (erforderlich): true markiert als gelesen, false markiert als ungelesen

delete-sandbox-message

Lösche eine einzelne Sandbox-Nachricht.

Parameter:

  • sandbox_id (optional): Sandbox-ID. Fällt zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht, die gelöscht werden soll

get-sandbox-message-spam-score

Rufe 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

Rufe den HTML-Analysebericht für eine Sandbox-Nachricht ab (Client-Kompatibilitätsbewertungen, 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

Rufe die geparsten 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

Rufe 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

Rufe 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

Rufe 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

Rufe die Nachricht als EML-Datei-Payload ab (geeignet zum Anhängen an ein Ticket oder zum Importieren in einen anderen 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

Rufe die ungerenderte HTML-Quelle einer Sandbox-Nachricht ab (HTML vor jeglichen 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

Liste 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

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

Parameter:

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

list-sending-domains

Liste die Sende-Domains und ihren DNS-Verifizierungsstatus auf.

Parameter:

  • Keine Parameter erforderlich

get-sending-domain

Rufe eine Sende-Domain anhand der ID und ihren Verifizierungsstatus ab (einschließlich DNS-Einträgen). Optional können DNS-Einrichtungsanweisungen eingefügt werden, indem include_setup_instructions auf true gesetzt wird.

Parameter:

  • sending_domain_id (erforderlich): Sende-Domain-ID
  • include_setup_instructions (optional): Wenn true, füge DNS-Einrichtungsanweisungen zur Antwort hinzu. Standard: false

create-sending-domain

Erstelle eine neue Sende-Domain. Füge nach der Erstellung DNS-Einträge hinzu, 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)

update-sending-domain

Aktualisiere die Tracking- und Inbound-Einstellungen einer Sende-Domain.

Parameter:

  • sending_domain_id (erforderlich): Sende-Domain-ID
  • open_tracking_enabled (optional): Öffnungen bei E-Mails verfolgen, die von dieser Domain gesendet werden
  • click_tracking_enabled (optional): Klicks auf Links in E-Mails verfolgen, die von dieser Domain gesendet werden
  • tracking_opt_out_enabled (optional): Den Tracking-Opt-out-Link zu verfolgten E-Mails hinzufügen. Erfordert Öffnungs- oder Klick-Tracking
  • auto_unsubscribe_link_enabled (optional): Automatisch einen Abmelde-Link zu E-Mails hinzufügen
  • inbound_enabled (optional): Erlauben, dass die Domain als Catch-all an einen Inbound-Posteingang angehängt wird

Mindestens eine Einstellung außer sending_domain_id muss angegeben werden.

delete-sending-domain

Lösche eine Sende-Domain.

Parameter:

  • sending_domain_id (erforderlich): Sende-Domain-ID, die gelöscht werden soll

send-sending-domain-setup-instructions

Sende DNS-Einrichtungsanweisungen für eine Sende-Domain per E-Mail an eine bestimmte Adresse. Nützlich, um DNS-Einträge an einen DevOps-Kollegen weiterzuleiten.

Parameter:

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

get-company-info

Rufe die Firmeninformationen einer Sende-Domain ab, die für die Domain-Compliance-Verifizierung verwendet werden.

Parameter:

  • sending_domain_id (erforderlich): Sende-Domain-ID

create-company-info

Lege die Firmeninformationen einer Sende-Domain fest, die für die Domain-Compliance-Verifizierung erforderlich sind.

Parameter:

  • sending_domain_id (erforderlich): Sende-Domain-ID
  • name (erforderlich): Firmen- oder Personenname
  • address (erforderlich): Straßenadresse
  • city (erforderlich): Stadt
  • country (erforderlich): Land
  • zip_code (erforderlich): PLZ oder Postleitzahl
  • website_url (erforderlich): Website-URL des Unternehmens
  • phone (optional): Telefonnummer
  • privacy_policy_url (optional): URL der Datenschutzrichtlinien-Seite
  • terms_of_service_url (optional): URL der Nutzungsbedingungen-Seite
  • info_level (optional): business oder individual

update-company-info

Aktualisiere die Firmeninformationen einer Sende-Domain.

Parameter:

  • sending_domain_id (erforderlich): Sende-Domain-ID
  • Jedes Feld von create-company-info, alle optional. Mindestens eines muss angegeben werden; weggelassene Felder bleiben unverändert.

list-suppressions

Liste oder durchsuche Suppressions (Hard Bounces, Spam-Beschwerden, Abmeldungen, manuelle Importe). Gibt bis zu 1000 Ergebnisse pro Aufruf zurück.

Parameter:

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

create-suppression

Füge eine E-Mail-Adresse zur Suppression-Liste des Kontos hinzu, damit Mailtrap die Zustellung an sie stoppt.

Parameter:

  • email (erforderlich): E-Mail-Adresse, die unterdrückt werden soll
  • domain_id (erforderlich): ID der Sende-Domain, auf die sich die Suppression bezieht
  • sending_stream (erforderlich): transactional oder bulk
  • type (optional): hard bounce, spam complaint, unsubscription oder manual import. Standard ist manual import

delete-suppression

Lösche eine Suppression anhand der ID. Mailtrap nimmt die Zustellung an diese E-Mail wieder auf, sofern sie nicht erneut unterdrückt wird.

Parameter:

  • suppression_id (erforderlich): ID der Suppression, die gelöscht werden soll

list-tracking-opt-outs

Liste E-Mail-Adressen auf, die vom Öffnungs- und Klick-Tracking ausgeschlossen sind. Gibt bis zu 1000 Datensätze pro Aufruf zurück.

Parameter:

  • email (optional): E-Mail-Filter. Gibt nur Opt-outs zurück, die dieser Adresse entsprechen
  • start_time (optional): Nur Opt-outs, die zu oder nach diesem Zeitpunkt erstellt wurden (ISO 8601)
  • end_time (optional): Nur Opt-outs, die zu oder vor diesem Zeitpunkt erstellt wurden (ISO 8601)
  • last_id (optional): Paginierungs-Cursor — das last_id aus der vorherigen Antwort

create-tracking-opt-out

Schließe eine E-Mail-Adresse vom Öffnungs- und Klick-Tracking für eine Sende-Domain aus.

Parameter:

  • email (erforderlich): E-Mail-Adresse, die vom Tracking ausgeschlossen werden soll
  • domain_id (erforderlich): ID der Sende-Domain, auf die sich der Opt-out bezieht

delete-tracking-opt-out

Entferne eine E-Mail-Adresse von der Tracking-Opt-out-Liste, sodass Öffnungs- und Klick-Tracking wieder auf sie angewendet wird.

Parameter:

  • tracking_opt_out_id (erforderlich): ID des Tracking-Opt-outs, der gelöscht werden soll

list-webhooks

Liste 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

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

Parameter:

  • webhook_id (erforderlich): ID des Webhooks, der abgerufen werden soll

create-webhook

Erstelle einen Webhook. Die Antwort enthält ein signing_secret zur Verifizierung von Webhook-Payload-Signaturen — dieses Geheimnis wird nur bei der Erstellung zurückgegeben. Speichere es daher jetzt. Wenn 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): Standard ist true
  • payload_format (optional): "json" oder "jsonlines". Standard ist "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): Sende-Domain-ID, auf die dieser Webhook beschränkt werden soll
  • inbound_inbox_id (optional, nur inbound_receiving): ID des Inbound-Posteingangs, mit dem der Webhook verknüpft ist; weglassen, um auf alle Posteingänge im Konto anzuwenden

update-webhook

Aktualisiere die verä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 Webhooks, der aktualisiert werden soll
  • 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 Inbound-Posteingangs, mit dem der Webhook verknüpft ist

delete-webhook

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

Parameter:

  • webhook_id (erforderlich): ID des Webhooks, der gelöscht werden soll

get-contact

Einen Kontakt per ID oder E-Mail abrufen. Gibt den vollständigen Kontaktdatensatz zurück (Listenmitgliedschaften, Status, benutzerdefinierte Felder).

Parameter:

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

create-contact

Einen neuen Kontakt erstellen.

Parameter:

  • email (erforderlich): E-Mail-Adresse
  • fields (optional): Benutzerdefinierte Feldwerte, Schlüssel nach Merge-Tag (z. B. first_name). Zeichenfolgen-, Zahlen- oder boolesche Werte
  • list_ids (optional): IDs von Kontaktlisten, um diesen Kontakt zu abonnieren
  • unsubscribed (optional, boolesch): Kontakt im Status unsubscribed erstellen

update-contact

Einen vorhandenen Kontakt aktualisieren, der per 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): Benutzerdefinierte Feldwerte, Schlüssel nach Merge-Tag
  • list_ids (optional): Mitgliedschaftsmenge durch diese genaue 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

Einen Kontakt dauerhaft per ID oder E-Mail löschen. Gibt den gelöschten Kontaktdatensatz zurück, wenn die API mit einem antwortet; andernfalls wird eine Bestätigungsnutzlast zurückgegeben.

Parameter:

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

create-contact-event

Ein Kontaktereignis gegen einen Kontakt erfassen (per ID oder E-Mail). Wird verwendet, um Kontaktlisten-Automatisierungen auszulösen.

Parameter:

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

list-contact-lists

Alle Kontaktlisten für das Konto auflisten.

Parameter:

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

get-contact-list

Eine Kontaktliste per ID abrufen.

Parameter:

  • list_id (erforderlich): ID der abzurufenden Kontaktliste

create-contact-list

Eine neue Kontaktliste erstellen.

Parameter:

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

update-contact-list

Eine vorhandene Kontaktliste umbenennen.

Parameter:

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

delete-contact-list

Eine Kontaktliste dauerhaft per ID löschen.

Parameter:

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

list-contact-fields

Alle Kontaktfelddefinitionen für das Konto auflisten.

Parameter:

  • Keine Parameter erforderlich

get-contact-field

Eine Kontaktfelddefinition per ID abrufen.

Parameter:

  • field_id (erforderlich): ID des Kontaktfelds

create-contact-field

Eine neue Kontaktfelddefinition erstellen. 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

Eine Kontaktfelddefinition aktualisieren. 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

Eine Kontaktfelddefinition dauerhaft per ID löschen.

Parameter:

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

create-contact-import

Kontakte massenhaft importieren. Gibt einen Importauftragsdatensatz zurück; fragen Sie dessen Status mit get-contact-import ab.

Parameter:

  • contacts (erforderlich): Array von Kontakteinträgen. Jeder Eintrag benötigt:
    • email (erforderlich): E-Mail-Adresse des Kontakts
    • fields (optional): Benutzerdefinierte Feldwerte, Schlüssel nach Merge-Tag (Zeichenfolgen- 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

Den Status eines Kontaktimportauftrags abrufen (erstellt/gestartet/abgeschlossen/fehlgeschlagen) mit erstellt/aktualisiert/über Limit-Zählungen.

Parameter:

  • import_id (erforderlich): ID des Kontaktimportauftrags

create-contact-export

Kontakte exportieren, die einer Reihe von UND-kombinierten Filtern entsprechen. Gibt einen Exportauftragsdatensatz zurück; fragen Sie den Status mit get-contact-export ab, um die Download-URL abzurufen, sobald status finished ist.

Parameter:

  • filters (erforderlich): Array von Filterobjekten. Jedes hat:
    • name (erforderlich): Feld, nach dem gefiltert werden soll (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

Den Status eines Kontaktexportauftrags abrufen. Sobald status finished ist, enthält das Feld url den CSV-Download-Link.

Parameter:

  • export_id (erforderlich): ID des Kontaktexportauftrags

list-email-campaigns

Die E-Mail-Kampagnen des Kontos auflisten, neueste zuerst, mit Seiten-Token-Paginierung. Optional nach Name mit search filtern.

Parameter:

  • token (optional): Seitenzahl zum Abrufen (Seiten-Token-Paginierung). Standard ist 1
  • per_page (optional): Anzahl der Kampagnen pro Seite. Standard ist 50, Maximum 100
  • search (optional): Kampagnen nach Name filtern (Groß-/Kleinschreibung nicht beachtende Teilmengenübereinstimmung)

get-email-campaign

Eine E-Mail-Kampagne per ID abrufen.

Parameter:

  • email_campaign_id (erforderlich): ID der E-Mail-Kampagne

create-email-campaign

Eine neue E-Mail-Kampagne erstellen. Die Kampagne wird immer im Zustand draft erstellt; Planung und Start sind separate Tools (schedule-email-campaign, start-email-campaign).

Parameter:

  • name (erforderlich): Kampagnenname
  • domain_id (erforderlich): ID der verifizierten Absendedomain, die für die Kampagne verwendet wird, wie von den Absendedomain-Endpunkten zurückgegeben
  • from_local_part (erforderlich): Lokaler Teil (vor dem @) der Absenderadresse
  • template_attributes (erforderlich): Inline-E-Mail-Vorlage. Hat:
    • subject (erforderlich): E-Mail-Betreffzeile (max. 255 Zeichen). Unterstützt Merge-Tags, z. B. Hi {{first_name}}
    • body_html (optional): HTML-Body (das Design). Erforderlich, bevor die Kampagne geplant oder gestartet werden kann. Fügen Sie einen Abmeldelink über einen Anker ein, dessen href den Platzhalter __unsubscribe_url__ enthält
    • body_text (optional): Klartext-Alternative des E-Mail-Bodys
    • merge_tags (optional): Bloße Namen der Merge-Tags, auf die in Betreff/Body verwiesen wird, z. B. ["first_name"]
  • from_display_name (optional): Anzeigename, der im Von-Header angezeigt wird
  • reply_to (optional): Antwort-an-Adressenteile (display_name, local_part, domain)
  • delivery_mode (optional): rapid (so schnell wie möglich senden) oder gradual (auf delivery_options.emails_per_hour drosseln)
  • delivery_options (optional): Zustellungsdrosselungsoptionen (emails_per_hour)
  • contact_list_ids (optional): IDs von Kontaktlisten, an die gesendet werden soll (als vollständige Menge der enthaltenen Listen behandelt)
  • contact_segment_ids (optional): IDs von Kontaktsegmenten, an die gesendet werden soll (als vollständige Menge der enthaltenen Segmente behandelt)

update-email-campaign

Eine E-Mail-Kampagne im Zustand draft aktualisieren. Nur die bereitgestellten Felder ändern sich; die Vorlage wird an Ort und Stelle bearbeitet. Kampagnen in jedem anderen Zustand können nicht aktualisiert werden.

Parameter:

  • email_campaign_id (erforderlich): ID der zu aktualisierenden E-Mail-Kampagne
  • Alle anderen Parameter sind optional und identisch mit 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

Eine E-Mail-Kampagne per ID löschen. Nur eine Kampagne im Zustand draft kann gelöscht werden.

Parameter:

  • email_campaign_id (erforderlich): ID der zu löschenden E-Mail-Kampagne

start-email-campaign

Sofort mit dem Senden einer E-Mail-Kampagne im Zustand draft beginnen. Nur Kampagnen im Zustand draft können gestartet werden; die Vorlage muss ein Design body_html haben und die Zielgruppe sowie die verifizierte Absendedomain müssen festgelegt sein.

Parameter:

  • email_campaign_id (erforderlich): ID der zu startenden E-Mail-Kampagne

schedule-email-campaign

Eine E-Mail-Kampagne im Zustand draft planen, um zu einem zukünftigen Zeitpunkt mit dem Senden zu beginnen. Nur Kampagnen im Zustand draft können geplant werden.

Parameter:

  • email_campaign_id (erforderlich): ID der zu planenden E-Mail-Kampagne
  • datetime (erforderlich): Wann die Kampagne gesendet werden soll (ISO 8601). Muss in der Zukunft liegen und nicht mehr als 1 Monat voraus

cancel-email-campaign

Eine E-Mail-Kampagne im Zustand scheduled abbrechen und in den Zustand draft zurückversetzen. Nur Kampagnen im Zustand scheduled können abgebrochen werden.

Parameter:

  • email_campaign_id (erforderlich): ID der abzubrechenden E-Mail-Kampagne

terminate-email-campaign

Eine E-Mail-Kampagne beenden, die gerade sendet (started, queued oder paused), und den laufenden Sendevorgang abbrechen.

Parameter:

  • email_campaign_id (erforderlich): ID der zu beendenden E-Mail-Kampagne

reset-email-campaign

Eine E-Mail-Kampagne im Zustand scheduled zurück in den Zustand draft versetzen. Nur Kampagnen im Zustand scheduled können zurückgesetzt werden.

Parameter:

  • email_campaign_id (erforderlich): ID der zurückzusetzenden E-Mail-Kampagne

get-email-campaign-stats

Aggregierte Leistungsstatistiken für eine E-Mail-Kampagne abrufen (Zählungen und Raten für Zustellungen, Öffnungen, Klicks, Bounces, Spam-Beschwerden und Abmeldungen).

Parameter:

  • email_campaign_id (erforderlich): ID der E-Mail-Kampagne
  • start_date (optional): Beginn des Aggregationsfensters (einschließlich), YYYY-MM-DD. Standard ist der Tag, an dem die Kampagne zuletzt gestartet wurde
  • end_date (optional): Ende des Aggregationsfensters (einschließlich), YYYY-MM-DD. Standard ist das aktuelle Datum

list-accounts

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

Parameter:

  • Keine Parameter erforderlich

get-billing-usage

Die Nutzung des aktuellen Abrechnungszyklus für das Konto abrufen: Sende- und Testpläne, Limits und aktuelle Zählungen.

Parameter:

  • Keine Parameter erforderlich

list-account-accesses

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

Parameter:

  • domain_uuids (optional): Nach Absendedomain-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

Einen Kontozugriff per ID entfernen. Für User-Spezifizierer werden deren Berechtigungen widerrufen; für Invite- oder ApiToken-Spezifizierer wird der Spezifizierer vollständig entfernt. Erfordert Administrator/Eigentümer.

Parameter:

  • account_access_id (erforderlich): ID des zu entfernenden Zugriffsdatensatzes

get-permission-resources

Alle Ressourcen (Postfächer, Projekte, Domains, Abrechnung, Konto) abrufen, auf die das API-Token Administratorzugriff hat, hierarchisch verschachtelt.

Parameter:

  • Keine Parameter erforderlich

bulk-update-permissions

Massenhaft Berechtigungen für einen einzelnen Account-Zugriff erstellen, aktualisieren oder löschen. Vorhandene (resource_type, resource_id)-Paare werden aktualisiert; neue werden erstellt. Setzen Sie destroy: true bei einem Eintrag, um ihn zu entfernen.

Parameter:

  • account_access_id (erforderlich): Ziel-Account-Zugriffs-ID
  • permissions (erforderlich): Array von Berechtigungseinträgen. Jeder Eintrag 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, anstatt sie zu erstellen/aktualisieren

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
  • expires_at (optional): Ablauf des Tokens als ISO-8601-Datum/Uhrzeit. Weglassen für den Serverstandard (1 Jahr); übergeben Sie ein explizites null für ein Token, das nie abläuft. Vergangene Werte oder Werte, die mehr als 5 Jahre in der Zukunft liegen, werden abgelehnt
  • resources (optional): Array von Ressourcenberechtigungen, auf die das Token beschränkt werden soll. 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 von 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. Speichern Sie ihn daher sofort. Das vorherige Token wird ungültig.

Parameter:

  • api_token_id (erforderlich): ID des zurückzusetzenden API-Tokens
  • expires_at (optional): Ablauf für das neue Token als ISO-8601-Datum/Uhrzeit. Weglassen für den Serverstandard (1 Jahr); übergeben Sie ein explizites null für ein Token, das nie abläuft. Vergangene Werte oder Werte, die mehr als 5 Jahre in der Zukunft liegen, werden abgelehnt

delete-api-token

Ein API-Token anhand der ID dauerhaft löschen. Das Token kann nach dem Löschen 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 Umgebungsvariable MAILTRAP_ORGANIZATION_ID und Berechtigungen zur Verwaltung von Unterkonten.

Parameter:

  • Keine Parameter erforderlich

create-sub-account

Ein neues Unterkonto unter der Organisation erstellen. Erfordert die Umgebungsvariable MAILTRAP_ORGANIZATION_ID und Berechtigungen zur Verwaltung von Unterkonten.

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 zusammen mit allen seinen Posteingängen dauerhaft löschen.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners

list-inbound-inboxes

Alle Posteingänge in einem eingehenden Ordner auflisten. Gibt eine formatierte Zusammenfassung zurück.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners

get-inbound-inbox

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

Parameter:

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

create-inbound-inbox

Einen neuen eingehenden Posteingang in einem Ordner erstellen.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners
  • name (erforderlich): Der Posteingangsname
  • domain_id (optional): An eine benutzerdefinierte Sendedomain anhängen (Catch-all-Posteingang). Weglassen für einen von Mailtrap gehosteten Posteingang

update-inbound-inbox

Einen eingehenden Posteingang umbenennen.

Parameter:

  • folder_id (erforderlich): ID des eingehenden Ordners
  • inbox_id (erforderlich): ID des Posteingangs
  • name (erforderlich): Der neue Posteingangsname

delete-inbound-inbox

Einen eingehenden Posteingang dauerhaft löschen.

Parameter:

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

list-inbound-messages

Empfangene Nachrichten in einem eingehenden Posteingang auflisten (cursor-paginiert). 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 Posteingangs
  • last_id (optional): Paginierungscursor aus dem last_id einer vorherigen Antwort

get-inbound-message

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

Parameter:

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

delete-inbound-message

Eine eingehende Nachricht dauerhaft löschen.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • 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 einfache E-Mail-Zeichenkette oder { email, name? }.

Parameter:

  • inbox_id (erforderlich): ID des Posteingangs
  • message_id (erforderlich): ID der Nachricht, auf die geantwortet werden soll
  • text / html (mindestens eines empfohlen): Antworttext
  • from (optional): Absender. Für von Mailtrap gehostete Posteingänge abgelehnt; für Posteingänge mit benutzerdefinierter Domain 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 Posteingangs
  • message_id (erforderlich): ID der Nachricht, auf die geantwortet werden soll
  • Plus die gleichen optionalen Sendefelder wie 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 Posteingangs
  • message_id (erforderlich): ID der weiterzuleitenden Nachricht
  • to (erforderlich): Mindestens ein Empfänger (einfache E-Mail-Zeichenkette oder { email, name? }, oder ein Array)
  • Plus die gleichen optionalen Sendefelder wie reply-to-inbound-message

list-inbound-threads

Konversationsthreads in einem eingehenden Posteingang auflisten (cursor-paginiert). 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 Posteingangs
  • last_id (optional): Paginierungscursor aus dem last_id einer vorherigen Antwort

get-inbound-thread

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

Parameter:

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

delete-inbound-thread

Einen eingehenden Thread dauerhaft löschen.

Parameter:

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

Entwicklung

  1. Repository klonen:
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] Den Speicherort der Konfigurationsdatei finden Sie im Abschnitt Setup.

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 verwenden:

(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] Den Speicherort der Konfigurationsdatei finden Sie im Abschnitt Setup.

{
  "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"
        }
      }
    }
  }
}

Testen

Tools gegen echtes 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 interaktive Erkundung oder deren 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 Panel darunter.

CLI

Für einmalige Aufrufe ohne Oberfläche verwenden Sie npm run mcp:cli. Übergeben Sie die CLI-Flags des Inspectors nach --, 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: Laufzeitausführungsfehler
  • TIMEOUT: Zeitüberschreitung des Vorgangs (Standard: 30 Sekunden)

Fehler enthalten umsetzbare Meldungen und werden in strukturierter Form protokolliert.

Sicherheit

  • Eingaben über Zod-Schemas validiert
  • Umgebungsvariablen werden sicher behandelt
  • Zeitüberschreitungsschutz für Vorgänge (30 Sekunden)
  • Sensible Details werden in der Fehlerausgabe bereinigt

Protokollierung

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

Aktivieren Sie die Debug-Protokollierung, indem Sie DEBUG=true setzen.

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

Wichtig: Der Server schreibt Protokolle nach stderr, sodass stdout für JSON-RPC-Frames reserviert bleibt. Dies verhindert, dass Hosts aufgrund von verschachtelten Protokollen JSON-Parsing-Fehler erhalten.

Beispiel für die Protokollanalyse 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. Zeitüberschreitungsfehler: Überprüfen Sie die Netzwerkverbindung und den Status der Mailtrap-API
  4. Validierungsfehler: Stellen Sie sicher, dass alle erforderlichen Felder angegeben sind

Mitwirken

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

Lizenz

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

Verhaltenskodex

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