Mailtrap MCP Server
offiziellIntegriert mit der Mailtrap Email API.
Dokumentation
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:
- Ein Mailtrap-Konto erstellen
- Ihre Domain verifizieren
- Ihr API-Token aus den Mailtrap API-Einstellungen beziehen
- Ihre Account-ID aus der Mailtrap-Kontoverwaltung beziehen
Erforderliche Umgebungsvariablen:
MAILTRAP_API_TOKEN– Erforderlich für alle FunktionenMAILTRAP_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, wennfromnicht an send-email oder send-sandbox-email übergeben wird. Ermöglicht den Wechsel des Absenders pro Aufruf über den Parameterfrom.MAILTRAP_TEST_INBOX_ID– Standard-Test-Posteingangs-ID für Sandbox-Werkzeuge, wenntest_inbox_idnicht angegeben wird. Ermöglicht den Wechsel zwischen Posteingängen pro Aufruf über den Parametertest_inbox_id.MAILTRAP_SANDBOX_ID– Standard-Sandbox-ID für Sandbox-Werkzeuge, wennsandbox_idnicht angegeben wird. Ermöglicht den Wechsel zwischen Sandboxes pro Aufruf über den Parametersandbox_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 vonMAILTRAP_API_TOKEN).
Schnellinstallation
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, wirdDEFAULT_FROM_EMAILverwendet.to(optional): Empfänger – eine einzelne E-Mail/{ email, name? }oder ein Array. Optional, wennccoderbccangegeben ist; mindestens einer vonto/cc/bccmuss 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, wenntemplate_uuidgesetzt ist.text(bedingt): E-Mail-Textkörper. Erforderlich (zusammen mit oder anstelle vonhtml) für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.html(bedingt): HTML-Version des E-Mail-Textkörpers. Erforderlich (zusammen mit oder anstelle vontext) für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.category(optional): E-Mail-Kategorie für Tracking und Analyse. Muss weggelassen werden, wenntemplate_uuidgesetzt ist.template_uuid(optional): Verwendet eine Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalt. Wenn gesetzt, müssensubject/text/html/categoryweggelassen werden (gemäß Mailtrap-API).template_variables(optional): Objekt mit Variablen, die in die durchtemplate_uuidreferenzierte Vorlage eingesetzt werden. Nur zusammen mittemplate_uuiderlaubt.
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 aufDEFAULT_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, wennccoderbccangegeben ist; mindestens einer vonto/cc/bccmuss 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 entsprechendenbase-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 demnext_page_cursorder vorherigen Antwortsent_after(optional): ISO 8601 Datum/Uhrzeit; nur Protokolle, die nach diesem Zeitpunkt gesendet wurdensent_before(optional): ISO 8601 Datum/Uhrzeit; nur Protokolle, die vor diesem Zeitpunkt gesendet wurdenfrom_email(optional): Nach Absender-E-Mail filtern; verwenden mitfrom_operator(Standard: ci_equal)to_email(optional): Nach Empfänger-E-Mail filtern; verwenden mitto_operator(Standard: ci_equal)status(optional): Nach Zustellungsstatus filtern: delivered, not_delivered, enqueued, opted_out; verwenden mitstatus_operator(Standard: equal)subject(optional): Nach E-Mail-Betreff filtern; verwenden mitsubject_operator(Standard: ci_contain). Verwenden Siesubject_operator: empty/not_empty, um nach Vorhandensein eines Betreffs zu filtern.sending_domain_id(optional): Nach Sendedomain-ID (Zahl) filtern; verwenden mitsending_domain_id_operator(Standard: equal)sending_stream(optional): Nach Stream filtern: transactional oder bulk; verwenden mitsending_stream_operator(Standard: equal)events(optional): Nach Ereignistyp(en) filtern: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; verwenden mitevents_operator(include_event / not_include_event)clicks_count/opens_count(optional): Nach Klick-/Öffnungsanzahl filtern; verwenden mit*_operator: equal, greater_than, less_thanclient_ip/sending_ip(optional): Nach IP filtern; verwenden mit*_operator: equal, not_equal, contain, not_containemail_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_equalrecipient_mx(optional): Nach Empfänger-MX filtern; verwenden mitrecipient_mx_operator(ci_contain, etc.)category(optional): Nach E-Mail-Kategorie filtern; verwenden mitcategory_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 Sielist-email-logs, um Nachrichten-IDs zu finden.include_content(optional): Wenntrue, ruft das rohe EML ab (fallsraw_message_urlverfü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_provideroderby_datesending_domain_ids(optional): Ergebnisse auf diese Sendedomänen-IDs beschränken (Array von Ganzzahlen)sending_streams(optional): Auftransactionalund/oderbulkbeschrä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 Vorlagesubject(erforderlich): Betreffzeile der E-Mailhtml(odertextist erforderlich): HTML-Inhalt der Vorlagetext(oderhtmlist erforderlich): Reintextversion der Vorlagecategory(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 Vorlagename(optional): Neuer Name für die Vorlagesubject(optional): Neue Betreffzeile der E-Mailhtml(optional): Neuer HTML-Inhalt der Vorlagetext(optional): Neue Reintextversion der Vorlagecategory(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-email – Inline-Inhalt oder vorlagenbasiert (template_uuid).
Parameter:
test_inbox_id(optional): Mailtrap-Testposteingangs-ID. Erforderlich, sofernMAILTRAP_TEST_INBOX_IDnicht gesetzt ist; pro Aufruf übergeben, um einen bestimmten Posteingang anzusprechen.from(optional): Absender als E-Mail-Zeichenkette oder{ email, name? }. Falls nicht angegeben, wirdDEFAULT_FROM_EMAILverwendet.to(optional): Empfänger als kommagetrennte Zeichenkette oder Array von E-Mail-Zeichenketten /{ email, name? }-Objekten. Optional, wennccoderbccangegeben ist; mindestens einer vonto/cc/bccmuss 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, wenntemplate_uuidgesetzt ist.text(bedingt): E-Mail-Textkörper. Erforderlich (zusammen mit oder anstelle vonhtml) für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.html(bedingt): HTML-Version des E-Mail-Körpers. Erforderlich (zusammen mit oder anstelle vontext) für Inline-Sendungen; muss weggelassen werden, wenntemplate_uuidgesetzt ist.category(optional): E-Mail-Kategorie für das Tracking. Muss weggelassen werden, wenntemplate_uuidgesetzt ist.template_uuid(optional): Verwendet eine Mailtrap-E-Mail-Vorlage anstelle von Inline-Inhalt. Wenn gesetzt, müssensubject/text/html/categoryweggelassen werden.template_variables(optional): Objekt mit Variablen, die in die durchtemplate_uuidreferenzierte Vorlage eingesetzt werden. Nur zusammen mittemplate_uuiderlaubt.
[!NOTE] Geben Sie für Sandbox-Tools
test_inbox_idim Tool-Aufruf an oder setzen Sie die UmgebungsvariableMAILTRAP_TEST_INBOX_ID. Sie können pro Aufruf zwischen Posteingängen wechseln, indem Sietest_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 Projektsname(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 aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der weiterzuleitenden Sandbox-Nachrichtemail(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 aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der zu aktualisierenden Sandbox-Nachrichtis_read(erforderlich):truemarkiert als gelesen,falsemarkiert als ungelesen
delete-sandbox-message
Löscht eine einzelne Sandbox-Nachricht.
Parameter:
sandbox_id(optional): Sandbox-ID. Fällt zurück aufMAILTRAP_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 aufMAILTRAP_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 aufMAILTRAP_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 aufMAILTRAP_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 aufMAILTRAP_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 aufMAILTRAP_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 aufMAILTRAP_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 aufMAILTRAP_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 aufMAILTRAP_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 aufMAILTRAP_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 aufMAILTRAP_SANDBOX_ID.message_id(erforderlich): ID der Sandbox-Nachricht, die den Anhang enthältattachment_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-IDinclude_setup_instructions(optional): Wenntrue, 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-IDemail(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 sendetwebhook_type(erforderlich):"email_sending"oder"audit_log"active(optional, boolean): Standardwert isttruepayload_format(optional):"json"oder"jsonlines". Standardwert ist"json"sending_stream(optional, nuremail_sending):"transactional"oder"bulk"event_types(optional, nuremail_sending): Array vondelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(optional, nuremail_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 Webhooksurl(optional): Neue Webhook-URLactive(optional, boolean): Webhook aktivieren oder deaktivierenpayload_format(optional):"json"oder"jsonlines"event_types(optional, nuremail_sending): Array vondelivery,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-Adressefields(optional): Benutzerdefinierte Feldwerte, verschlüsselt nach Merge-Tag (z. B.first_name). Zeichenfolgen-, Zahlen- oder boolesche Wertelist_ids(optional): IDs von Kontaktlisten, für die dieser Kontakt angemeldet werden sollunsubscribed(optional, boolean): Kontakt im Statusunsubscribederstellen
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-Mailemail(optional): Neue E-Mail-Adressefields(optional): Benutzerdefinierte Feldwerte, verschlüsselt nach Merge-Taglist_ids(optional): Mitgliedschaftssatz durch diese exakte Liste ersetzenlist_ids_included(optional): Hinzuzufügende Listen-IDs (additiv)list_ids_excluded(optional): Zu entfernende Listen-IDsunsubscribed(optional, boolean): Aufunsubscribed(true) odersubscribed(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-Mailname(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 Kontaktlistename(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 vontext,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 Kontaktfeldsname(optional): Neuer Anzeigenamemerge_tag(optional): Neues Merge-Tag (muss eindeutig bleiben)data_type(optional): Einer vontext,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 Kontaktsfields(optional): Benutzerdefinierte Feldwerte, verschlüsselt nach Merge-Tag (Zeichenfolgen- oder Zahlenwerte)list_ids_included(optional): Listen-IDs, zu denen der Kontakt hinzugefügt werden solllist_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,emailusw.)operator(erforderlich): Einer vonequal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(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-IDpermissions(erforderlich): Array von Berechtigungseinträgen. Jeder hat:resource_id(erforderlich): Ressourcen-ID (Zahl oder Zeichenfolge)resource_type(erforderlich): Einer vonaccount,project,inbox,domain,billingaccess_level(optional):admin/100oderviewer/10destroy(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 Tokenresources(optional): Array von Ressourcenberechtigungen, auf die das Token beschränkt werden soll. Jeder Eintrag hat:resource_type(erforderlich): Einer vonaccount,project,inbox,domain,billingresource_id(erforderlich): ID der Ressourceaccess_level(erforderlich):100(Admin) oder10(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
- Repository klonen:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- 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 EingabevalidierungCONFIGURATION_ERROR: Fehlende oder ungültige KonfigurationEXECUTION_ERROR: Laufzeitfehler bei der AusführungTIMEOUT: 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:
- Fehlendes API-Token: Stellen Sie sicher, dass
MAILTRAP_API_TOKENgesetzt ist - Sandbox funktioniert nicht: Geben Sie
test_inbox_idim Werkzeugaufruf an oder setzen Sie die UmgebungsvariableMAILTRAP_TEST_INBOX_ID - Zeitüberschreitungsfehler: Überprüfen Sie die Netzwerkverbindung und den Status der Mailtrap-API
- 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.