Mailtrap MCP Server

offiziell

Integriert mit der Mailtrap Email API.

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 beziehen
  4. Ihre Account-ID aus der Mailtrap-Kontoverwaltung beziehen

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 Sendedomains. Nur für send-email und send-sandbox-email optional.

Optional (können stattdessen als Werkzeugparameter übergeben werden):

  • DEFAULT_FROM_EMAIL – Standard-Absender-E-Mail, wenn from nicht an send-email oder send-sandbox-email übergeben wird. Ermöglicht den Wechsel des Absenders pro Aufruf über den Parameter from.
  • MAILTRAP_TEST_INBOX_ID – Standard-Test-Posteingangs-ID für Sandbox-Werkzeuge, wenn test_inbox_id nicht angegeben wird. Ermöglicht den Wechsel zwischen Posteingängen pro Aufruf über den Parameter test_inbox_id.
  • MAILTRAP_SANDBOX_ID – Standard-Sandbox-ID für Sandbox-Werkzeuge, wenn sandbox_id nicht angegeben wird. Ermöglicht den Wechsel zwischen Sandboxes pro Aufruf über den Parameter sandbox_id.
  • MAILTRAP_ORGANIZATION_ID – Erforderlich für Organisationswerkzeuge (list-sub-accounts, create-sub-account).
  • MAILTRAP_ORGANIZATION_API_TOKEN – Organisationsbezogenes API-Token. Erforderlich für Organisationswerkzeuge (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

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 es 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": "[email protected]",
        "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 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": "[email protected]",
        "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

In der Befehlspalette ausführen: 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": "[email protected]",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

[!TIP] Vergessen Sie nicht, Ihren MCP-Server nach dem Ändern des Abschnitts „env“ neu zu starten.

MCP Bundle (MCPB)

Für eine einfache 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

Sobald konfiguriert, können Sie den Agenten bitten, E-Mails zu senden und Vorlagen zu verwalten, zum Beispiel:

E-Mail-Sendeoperationen:

  • „Sende eine E-Mail an [email protected] mit dem Betreff ‚Meeting Morgen‘ und einer freundlichen Erinnerung an unser bevorstehendes Meeting.“
  • „E-Mail an [email protected] über das Projekt-Update, und CC an das Team unter [email protected]
  • „Sende die Willkommensvorlage (UUID b81aabcd-1a1e-41cf-91b6-eca0254b3d96) an [email protected] mit den Variablen { name: 'Alex' }
  • „Sende eine Sandbox-E-Mail an [email protected] mit dem Betreff ‚Testvorlage‘, um eine Vorschau unserer Willkommens-E-Mail zu sehen“

E-Mail-Protokolle (Zustellungsdebugging):

  • „Liste meine letzten gesendeten E-Mail-Protokolle auf“
  • „Zeige E-Mail-Protokolle für E-Mails, die an [email protected] gesendet wurden“
  • „Hole die E-Mail-Protokollnachricht für die ID abc-123-uuid, um den Zustellungsstatus zu überprüfen“

Sendestatistiken:

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

Sandbox-Operationen:

  • „Hole alle Nachrichten aus meinem Sandbox-Posteingang“
  • „Zeige mir die erste Seite der Sandbox-Nachrichten“
  • „Suche nach Nachrichten, die ‚test‘ in meinem Sandbox-Posteingang enthalten“
  • „Zeige mir die Details der Sandbox-Nachricht mit der ID 5159037506“

Vorlagenoperationen:

  • „Liste alle E-Mail-Vorlagen in meinem Mailtrap-Konto auf“
  • „Erstelle eine neue E-Mail-Vorlage namens ‚Willkommens-E-Mail‘ mit dem Betreff ‚Willkommen auf unserer Plattform!‘“
  • „Aktualisiere die Vorlage mit der ID 12345, um den Betreff in ‚Aktualisierte Willkommensnachricht‘ zu ändern“
  • „Lösche die Vorlage mit der ID 67890“

Sendedomains:

  • „Liste meine Sendedomains auf“
  • „Hole Sendedomain mit der 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 E-Mail-String oder { email, name? }. Wenn nicht angegeben, wird DEFAULT_FROM_EMAIL verwendet.
  • to (optional): Empfänger – eine einzelne E-Mail/{ email, name? } oder ein Array. Optional, wenn cc oder bcc angegeben ist; mindestens einer von to / cc / bcc muss einen Empfänger enthalten.
  • cc (optional): Array von CC-Empfängern (jeweils E-Mail-Strings oder { email, name? }).
  • bcc (optional): Array von BCC-Empfängern (jeweils E-Mail-Strings oder { email, name? }).
  • subject (bedingt): Betreffzeile der E-Mail. Erforderlich für Inline-Sendungen; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • text (bedingt): E-Mail-Textkörper. 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-Textkö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 Analyse. Muss weggelassen werden, wenn template_uuid gesetzt ist.
  • template_uuid (optional): Verwendet 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 durch template_uuid referenzierte Vorlage eingesetzt werden. 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 kommen auf base; empfängerbezogene Überschreibungen in requests[]. Jede Anfrage muss mindestens einen Empfänger über to, cc oder bcc enthalten. Gleicher gegenseitiger Ausschluss von Inline und Vorlage wie bei send-email — geprüft nach dem Zusammenführen der Basis mit jeder Anfrage.

Parameter:

  • base (optional): Objekt mit Feldern, die über den Stapel hinweg geteilt werden.
    • from (optional): Absender als E-Mail-String oder { email, name? }. Fällt zurück auf DEFAULT_FROM_EMAIL.
    • reply_to (optional): Antwort-an-Adresse.
    • subject / text / html / category (optional, Inline-Modus): Standardinhalt für jede Anfrage.
    • template_uuid / template_variables (optional, Vorlagenmodus): Standardvorlage + Variablen. Schließen sich gegenseitig mit den Inline-Feldern aus.
    • custom_variables (optional): Standard-Benutzervariablen (String-Werte).
    • headers (optional): Standard-Benutzer-Header.
  • requests (erforderlich): Nicht-leeres Array von empfängerbezogenen Nachrichten. Jeder Eintrag hat:
    • to (optional): Empfänger – String, { email, name? } oder ein Array. Optional, wenn cc oder bcc angegeben ist; mindestens einer 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-Vorlage-Regeln wie batch-send-transactional-email — der einzige Unterschied ist, dass dieses Werkzeug den Aufruf über den Bulk-Endpunkt anstelle des transaktionalen Endpunkts leitet. Siehe die Parameter oben.

list-email-logs

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

Parameter:

  • search_after (optional): Paginierungs-Cursor 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): Nach Absender-E-Mail filtern; verwenden mit from_operator (Standard: ci_equal)
  • to_email (optional): Nach Empfänger-E-Mail filtern; verwenden mit to_operator (Standard: ci_equal)
  • status (optional): Nach Zustellungsstatus filtern: delivered, not_delivered, enqueued, opted_out; verwenden mit status_operator (Standard: equal)
  • subject (optional): Nach E-Mail-Betreff filtern; verwenden mit subject_operator (Standard: ci_contain). Verwenden Sie subject_operator: empty/not_empty, um nach Vorhandensein eines Betreffs zu filtern.
  • sending_domain_id (optional): Nach Sendedomain-ID (Zahl) filtern; verwenden mit sending_domain_id_operator (Standard: equal)
  • sending_stream (optional): Nach Stream filtern: transactional oder bulk; verwenden mit sending_stream_operator (Standard: equal)
  • events (optional): Nach Ereignistyp(en) filtern: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; verwenden mit events_operator (include_event / not_include_event)
  • clicks_count / opens_count (optional): Nach Klick-/Öffnungsanzahl filtern; verwenden mit *_operator: equal, greater_than, less_than
  • client_ip / sending_ip (optional): Nach IP filtern; verwenden mit *_operator: equal, not_equal, contain, not_contain
  • email_service_provider_response (optional): Nach Provider-Antworttext filtern; verwenden mit *_operator (ci_contain, etc.)
  • email_service_provider (optional): Nach Provider (exakt) filtern; verwenden mit *_operator: equal, not_equal
  • recipient_mx (optional): Nach Empfänger-MX filtern; verwenden mit recipient_mx_operator (ci_contain, etc.)
  • category (optional): Nach E-Mail-Kategorie filtern; 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, Sendezeit, Status, Kategorie, Stream, Engagement, Zustellungskontext), dann detaillierte Ereignishistorie. Optional, mit include_content: true, können Sie 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 das rohe EML ab (falls raw_message_url verfügbar ist) und hängt geparste HTML- und Klartext-Abschnitte an, ähnlich wie bei show-sandbox-email-message.

get-sending-stats

Ruft E-Mail-Sendestatistiken (Zustellung, Bounce, Öffnung, Klick, Spam-Raten) für einen Datumsbereich ab. Optional aufschlüsselbar nach Domain, Kategorie, E-Mail-Dienstanbieter oder Datum. Überprüfen Sie die 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 Sendedomänen-IDs beschränken (Array von Ganzzahlen)
  • sending_streams (optional): Auf transactional und/oder bulk beschränken (Array von Zeichenketten)
  • categories (optional): Auf diese E-Mail-Kategorien beschränken (Array von Zeichenketten)
  • email_service_providers (optional): Auf diese Anbieter beschränken, z. B. Google, Yahoo, Outlook (Array von Zeichenketten)

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): Reintextversion 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-/Textkörper.

Parameter:

  • template_id (erforderlich): ID der abzurufenden Vorlage

update-template

Aktualisiert eine bestehende 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 Reintextversion 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 bestehende E-Mail-Vorlage.

Parameter:

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

send-sandbox-email

Sendet eine E-Mail an Ihren Mailtrap-Testposteingang zu Entwicklungs- und Testzwecken. Ideal, um E-Mail-Vorlagen zu testen, 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-Testposteingangs-ID. Erforderlich, sofern MAILTRAP_TEST_INBOX_ID nicht gesetzt ist; pro Aufruf übergeben, um einen bestimmten Posteingang anzusprechen.
  • from (optional): Absender als E-Mail-Zeichenkette oder { email, name? }. Falls nicht angegeben, wird DEFAULT_FROM_EMAIL verwendet.
  • to (optional): Empfänger als kommagetrennte Zeichenkette oder Array von E-Mail-Zeichenketten / { email, name? }-Objekten. Optional, wenn cc oder bcc angegeben ist; mindestens einer von to / cc / bcc muss einen Empfänger enthalten.
  • cc (optional): Array von CC-Empfängern (jeweils E-Mail-Zeichenketten oder { email, name? }).
  • bcc (optional): Array von BCC-Empfängern (jeweils E-Mail-Zeichenketten oder { email, name? }).
  • subject (bedingt): Betreffzeile der E-Mail. Erforderlich für Inline-Sendungen; muss weggelassen werden, wenn template_uuid gesetzt ist.
  • text (bedingt): E-Mail-Textkörper. 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 das Tracking. Muss weggelassen werden, wenn template_uuid gesetzt ist.
  • template_uuid (optional): Verwendet eine Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalt. Wenn gesetzt, müssen subject / text / html / category weggelassen werden.
  • template_variables (optional): Objekt mit Variablen, die in die durch template_uuid referenzierte Vorlage eingesetzt werden. Nur zusammen mit template_uuid erlaubt.

[!NOTE] Geben Sie für Sandbox-Tools test_inbox_id im Tool-Aufruf an oder setzen Sie die Umgebungsvariable MAILTRAP_TEST_INBOX_ID. Sie können pro Aufruf zwischen Posteingängen wechseln, indem Sie test_inbox_id übergeben.

get-sandbox-messages

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

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): Suchanfrage zum Filtern von Nachrichten

[!NOTE] Alle Parameter sind optional. Wenn keine angegeben werden, wird die erste Seite der Nachrichten aus dem Posteingang zurückgegeben. Verwenden Sie page für traditionelle Paginierung, last_id für 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-Testposteingang an, einschließlich HTML- und Textkörperinhalt.

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 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 Posteingänge und E-Mail-Anzahlen.

Parameter:

  • project_id (erforderlich): ID des abzurufenden Projekts

update-sandbox-project

Benennt ein bestehendes 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 Sandboxen auf, auf die das API-Token projektübergreifend zugreifen kann.

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

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

Parameter:

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

enable-sandbox-email-address

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

Parameter:

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

reset-sandbox-email-address

Generiert eine neue Empfangs-E-Mail-Adresse für eine Sandbox.

Parameter:

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

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 (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

Ruft 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

Ruft den gerenderten HTML-Körper 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 Reintext-Körper 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 + Körper) 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-Datei-Nutzlast 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 unbearbeitete 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

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 zurück auf MAILTRAP_SANDBOX_ID.
  • message_id (erforderlich): ID der Sandbox-Nachricht, die den Anhang enthält
  • attachment_id (erforderlich): ID des abzurufenden Anhangs

list-sending-domains

Listet Sendedomänen und deren DNS-Verifikationsstatus auf.

Parameter:

  • Keine Parameter erforderlich

get-sending-domain

Ruft eine Sendedomäne anhand der ID und deren Verifikationsstatus ab (einschließlich DNS-Einträge). Optional DNS-Einrichtungsanweisungen einschließen, indem include_setup_instructions auf true gesetzt wird.

Parameter:

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

create-sending-domain

Erstellt eine neue Sendedomäne. Fügen Sie nach der Erstellung DNS-Einträge hinzu, um die Domäne zu verifizieren (verwenden Sie get-sending-domain mit include_setup_instructions: true, um die Einträge einzusehen).

Parameter:

  • domain_name (erforderlich): Domänenname (z. B. example.com)

delete-sending-domain

Löscht eine Sendedomäne.

Parameter:

  • sending_domain_id (erforderlich): ID der zu löschenden Sendedomäne

send-sending-domain-setup-instructions

Sendet DNS-Einrichtungsanweisungen für eine Sendedomäne per E-Mail an eine angegebene Adresse. Nützlich, um DNS-Einträge an ein DevOps-Teammitglied weiterzuleiten.

Parameter:

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

list-suppressions

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

Parameter:

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

delete-suppression

Löscht eine Unterdrückung anhand der ID. Mailtrap wird die Zustellung an diese E-Mail fortsetzen, es sei denn, sie wird erneut unterdrückt.

Parameter:

  • suppression_id (erforderlich): ID der zu löschenden Unterdrückung

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 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 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, speichern Sie es daher jetzt. Wenn Sie es verlieren, erstellen Sie den Webhook neu.

Parameter:

  • url (erforderlich): URL, an die Mailtrap Webhook-Ereignisse sendet
  • webhook_type (erforderlich): "email_sending" oder "audit_log"
  • active (optional, boolean): Standardwert ist true
  • payload_format (optional): "json" oder "jsonlines". Standardwert 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

update-webhook

Aktualisiert die veränderbaren Felder eines Webhooks. webhook_type, sending_stream und domain_id können nach der Erstellung nicht geändert werden – erstellen Sie den Webhook neu, wenn Sie diese ändern müssen.

Parameter:

  • webhook_id (erforderlich): ID des zu aktualisierenden Webhooks
  • url (optional): Neue Webhook-URL
  • active (optional, boolean): 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

delete-webhook

Löscht einen Webhook dauerhaft anhand der 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 der 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): Benutzerdefinierte Feldwerte, verschlüsselt nach Merge-Tag (z. B. first_name). Zeichenfolgen-, Zahlen- oder boolesche Werte
  • list_ids (optional): IDs von Kontaktlisten, für die dieser Kontakt angemeldet werden soll
  • unsubscribed (optional, boolean): Kontakt im Status unsubscribed erstellen

update-contact

Aktualisiert einen bestehenden Kontakt, identifiziert durch ID oder E-Mail. list_ids ersetzt den gesamten Mitgliedschaftssatz des Kontakts; list_ids_included/list_ids_excluded fügen hinzu/entfernen, ohne den Rest zu beeinträchtigen.

Parameter:

  • contact_identifier (erforderlich): Kontakt-ID oder E-Mail
  • email (optional): Neue E-Mail-Adresse
  • fields (optional): Benutzerdefinierte Feldwerte, verschlüsselt nach Merge-Tag
  • list_ids (optional): Mitgliedschaftssatz durch diese exakte Liste ersetzen
  • list_ids_included (optional): Hinzuzufügende Listen-IDs (additiv)
  • list_ids_excluded (optional): Zu entfernende Listen-IDs
  • unsubscribed (optional, boolean): Auf unsubscribed (true) oder subscribed (false) setzen

delete-contact

Löscht einen Kontakt dauerhaft anhand der ID oder E-Mail. Gibt den gelöschten Kontaktdatensatz zurück, wenn die API mit einem solchen antwortet; andernfalls wird eine Bestätigungsnutzlast zurückgegeben.

Parameter:

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

create-contact-event

Zeichnet ein Kontaktereignis für einen Kontakt auf (anhand der 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 mit 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:

  • Keine Parameter erforderlich

get-contact-list

Ruft eine Kontaktliste anhand der 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 bestehende 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 der ID.

Parameter:

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

list-contact-fields

Listet alle Kontaktfelddefinitionen für das Konto auf.

Parameter:

  • Keine Parameter erforderlich

get-contact-field

Ruft eine Kontaktfelddefinition anhand der 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 der ID.

Parameter:

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

create-contact-import

Massenimport von Kontakten. Gibt einen Import-Job-Datensatz zurück; überwachen Sie 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): Benutzerdefinierte Feldwerte, verschlüsselt 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

Ruft den Status eines Kontaktimport-Jobs ab (erstellt/gestartet/beendet/fehlgeschlagen) mit Anzahl der erstellten/aktualisierten/über dem Limit liegenden Kontakte.

Parameter:

  • import_id (erforderlich): ID des Kontaktimport-Jobs

create-contact-export

Exportiert Kontakte, die einer Reihe von UND-verknüpften Filtern entsprechen. Gibt einen Export-Job-Datensatz zurück; überwachen Sie 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 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

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

Parameter:

  • export_id (erforderlich): ID des Kontaktexport-Jobs

list-accounts

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

Parameter:

  • Keine Parameter erforderlich

get-billing-usage

Ruft die aktuelle Abrechnungszyklus-Nutzung für das Konto ab: Sende- und Testpläne, Limits und aktuelle Zählerstände.

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 Konto-Admin-/Besitzerberechtigungen.

Parameter:

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

remove-account-access

Entfernt einen Kontozugriff anhand der ID. Für User-Spezifizierer werden deren Berechtigungen widerrufen; für Invite- oder ApiToken-Spezifizierer wird der Spezifizierer vollständig entfernt. Erfordert Admin/Besitzer.

Parameter:

  • account_access_id (erforderlich): ID des zu entfernenden Zugriffsdatensatzes

get-permission-resources

Ruft alle Ressourcen (Posteingänge, Projekte, Domains, Abrechnung, Konto) ab, auf die das API-Token Admin-Zugriff hat, verschachtelt nach Hierarchie.

Parameter:

  • Keine Parameter erforderlich

bulk-update-permissions

Erstellt, aktualisiert oder löscht Berechtigungen für einen einzelnen Kontozugriff in großen Mengen. Bestehende (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-Kontozugriffs-ID
  • permissions (erforderlich): Array von Berechtigungseinträgen. Jeder hat:
    • resource_id (erforderlich): Ressourcen-ID (Zahl oder Zeichenfolge)
    • resource_type (erforderlich): Einer von account, project, inbox, domain, billing
    • access_level (optional): admin/100 oder viewer/10
    • destroy (optional, boolean): Wenn true, wird diese Berechtigung entfernt, anstatt sie zu erstellen/aktualisieren

list-api-tokens

Listet alle API-Token für das Konto auf.

Parameter:

  • Keine Parameter erforderlich

create-api-token

Erstellt ein neues API-Token. Die Antwort enthält den geheimen token-Wert – dies ist das einzige Mal, dass das vollständige Token zurückgegeben wird, speichern Sie es daher sofort. Wenn Sie es verlieren, erstellen Sie das Token neu.

Parameter:

  • name (erforderlich): Anzeigename für das Token
  • 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 (Admin) oder 10 (Betrachter)

get-api-token

Ruft ein API-Token anhand der ID ab. 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

Setzt ein API-Token anhand der ID zurück (rotiert es). 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

delete-api-token

Löscht ein API-Token dauerhaft anhand der ID. Das Token kann nach dem Löschen nicht mehr authentifizieren.

Parameter:

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

list-sub-accounts

Listet Unterkonten in der Organisation auf. Erfordert die Umgebungsvariable MAILTRAP_ORGANIZATION_ID und Unterkontoverwaltungsberechtigungen.

Parameter:

  • Keine Parameter erforderlich

create-sub-account

Erstellen Sie ein neues Unterkonto innerhalb der Organisation. Erfordert die Umgebungsvariable MAILTRAP_ORGANIZATION_ID und Berechtigungen zur Verwaltung von Unterkonten.

Parameter:

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

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": "[email protected]",
        "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": "[email protected]",
        "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": "[email protected]",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

Testen

Werkzeuge gegen echtes Mailtrap ausführen

Es gibt zwei Möglichkeiten, ein Werkzeug Ende-zu-Ende gegen ein echtes Mailtrap-Konto zu testen: die Browser-UI des MCP Inspector für interaktive Erkundung oder dessen CLI-Modus für einmalige Aufrufe aus der Shell.

Beide erfordern, dass das Bundle zuerst gebaut wird:

npm run build

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

Browser-UI

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 Werkzeug (z. B. get-template), füllen Sie die Parameter als JSON aus und klicken Sie auf Run. Die Mailtrap-Antwort erscheint im unteren Bereich.

CLI

Für einmalige Aufrufe ohne UI 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 protected]

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, die sich an den MCP-Konventionen orientiert:

  • VALIDATION_ERROR: Fehler bei der Eingabevalidierung
  • CONFIGURATION_ERROR: Fehlende oder ungültige Konfiguration
  • EXECUTION_ERROR: Laufzeitfehler bei der Ausführung
  • TIMEOUT: Zeitüberschreitung der Operation (Standard: 30 Sekunden)

Fehler enthalten umsetzbare Meldungen und werden in strukturierter Form protokolliert.

Sicherheit

  • Eingabevalidierung über Zod-Schemas
  • Umgebungsvariablen werden sicher behandelt
  • Zeitüberschreitungsschutz für Operationen (30 Sekunden)
  • Sensible Details werden in Fehlerausgaben bereinigt

Protokollierung

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

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

# 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 eingestreuten Protokollen JSON-Parsing-Fehler erhalten.

Beispiel für eine 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 Werkzeugaufruf 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 von Mitwirkenden wird erwartet, dass sie sich an den Verhaltenskodex halten.

Lizenz

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

Verhaltenskodex

Von allen, die in den Codebasen, Issue-Trackern, Chaträumen und Mailinglisten des Mailtrap-Projekts interagieren, wird erwartet, dass sie den Verhaltenskodex befolgen.