Mailtrap

公式

Mailtrap Email APIと統合します。

Mailtrap MCPで何ができますか?

  • トランザクションメールの送信send-email を使用して、インラインコンテンツまたはテンプレートでメールを送信するよう依頼します。CC/BCC やカスタム変数も含みます。
  • メールテンプレートの管理 — 再利用可能なメールデザインを管理するには、list-templatescreate-templateupdate-template、または delete-template を使用します。
  • 配信ログの検査list-email-logs を受信者、ステータス、日付などのフィルターで照会し、get-email-log-message で詳細を確認します。
  • サンドボックスでのメールテストsend-sandbox-email でテスト受信トレイに送信し、get-sandbox-messagesshow-sandbox-email-message でメッセージを確認します。
  • 送信パフォーマンスの分析get-sending-stats で配信率、バウンス率、エンゲージメント率を取得します。ドメインやカテゴリごとに分類することもできます。
  • 送信インフラストラクチャの設定list-sending-domains を管理し、ドメインの作成や削除、DNS 設定手順の取得を行います。

ドキュメント

TypeScript test NPM

MCP Mailtrap サーバー

Mailtrap を介してサンドボックスでの送信とテストを行うためのツールを提供する MCP サーバーです。

前提条件

この MCP サーバーを使用する前に、以下を行う必要があります:

  1. Mailtrap アカウントを作成する
  2. ドメインを検証する
  3. Mailtrap API 設定から API トークンを取得する
  4. Mailtrap アカウント管理からアカウント ID を取得する

必要な環境変数:

  • MAILTRAP_API_TOKEN - すべての機能に必須
  • MAILTRAP_ACCOUNT_ID - テンプレート、統計、メールログ、サンドボックスの一覧・詳細表示、送信ドメインに必須。送信ツール(send-email、send-sandbox-email、および batch-send-* ツール)では任意。

任意(ツールパラメータとして渡すことも可能):

  • DEFAULT_FROM_EMAIL - send-email、send-sandbox-email、または batch-send-* ツールに from が指定されていない場合のデフォルト送信者メールアドレス(base.from を埋めます)。from パラメータを使用して呼び出しごとに送信者を切り替えることができます。
  • MAILTRAP_SANDBOX_ID - sandbox_id が指定されていない場合のサンドボックスツール用デフォルトサンドボックス ID。sandbox_id パラメータを使用して呼び出しごとにサンドボックスを切り替えることができます。
  • MAILTRAP_TEST_INBOX_ID - test_inbox_id が指定されていない場合のサンドボックスツール用デフォルトテスト受信トレイ ID。test_inbox_id パラメータを使用して呼び出しごとに受信トレイを切り替えることができます。MAILTRAP_SANDBOX_ID のレガシーエイリアスであり、フォールバックとして引き続き有効です。
  • MAILTRAP_ORGANIZATION_ID - 組織ツール(list-sub-accountscreate-sub-account)に必須。
  • MAILTRAP_ORGANIZATION_API_TOKEN - 組織スコープの API トークン。組織ツールに必須(MAILTRAP_API_TOKEN とは別)。

クイックインストール

Install in Cursor

Install with Node in VS Code

Smithery CLI

Smithery は、すべての AI クライアントで動作する MCP サーバー用のレジストリインストーラー兼マネージャーです。

npx @smithery/cli install mailtrap

Smithery はクライアント設定を自動的に処理し、対話型のセットアッププロセスを提供します。ローカルで MCP サーバーを使い始める最も簡単な方法です。

セットアップ

Claude Desktop

MCPB を使用して Mailtrap サーバーをインストールします。これらのファイルは Releases にあります。
.MCPB ファイルをダウンロードして開きます。Claude Desktop をお使いの場合、ファイルが開き、設定を提案します。

Claude Desktop または Cursor

次の設定を追加します:

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

Node.js の管理に asdf を使用している場合は、実行ファイルへの絶対パスを使用する必要があります(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"
      }
    }
  }
}

Claude Desktop 設定ファイルの場所

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

Windows: %APPDATA%\Claude\claude_desktop_config.json

Cursor 設定ファイルの場所

Mac: ~/.cursor/mcp.json

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

VS Code

設定を手動で変更する

コマンドパレットで実行:Preferences: Open User Settings (JSON)

次に、設定ファイルに次の設定を追加します:

{
  "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] "env" セクションを変更した後は、MCP サーバーを再起動することを忘れないでください。

MCP バンドル(MCPB)

MCP バンドルをサポートするホストへの簡単なインストールのために、.mcpb バンドルファイルを配布できます。

# 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

これにより、リポジトリ manifest.jsondist/ のビルド成果物を使用して mailtrap-mcp.mcpb が作成されます。

使用方法

設定が完了すると、エージェントにメールの送信やテンプレートの管理を依頼できます。例:

メール送信操作:

  • john.doe@example.com に件名『Meeting Tomorrow』で、今度のミーティングについてのリマインダー付きメールを送信して」
  • sarah@example.com にプロジェクト更新についてメールし、team@example.com のチームを CC に入れて」
  • 「ウェルカムテンプレート(uuid b81aabcd-1a1e-41cf-91b6-eca0254b3d96)を new@example.com に変数 { name: 'Alex' } 付きで送信して」
  • test@example.com に件名『Test Template』のサンドボックスメールを送信して、ウェルカムメールの見た目をプレビューして」

メールログ(配信のデバッグ):

  • 「最近送信したメールログを一覧表示して」
  • user@example.com に送信したメールのログを表示して」
  • 「ID abc-123-uuid のメールログメッセージを取得して配信ステータスを確認して」

送信統計:

  • 「2025年1月の送信統計を取得して」
  • 「先月のドメイン別配信率を表示して」
  • 「2025-01-01 から 2025-01-31 までのカテゴリ別メール統計は?」

サンドボックス操作:

  • 「サンドボックスの受信トレイからすべてのメッセージを取得して」
  • 「サンドボックスメッセージの最初のページを表示して」
  • 「サンドボックスの受信トレイで『test』を含むメッセージを検索して」
  • 「ID 5159037506 のサンドボックスメッセージの詳細を表示して」

テンプレート操作:

  • 「Mailtrap アカウントのすべてのメールテンプレートを一覧表示して」
  • 「『Welcome Email』という件名『Welcome to our platform!』の新しいメールテンプレートを作成して」
  • 「ID 12345 のテンプレートを更新して、件名を『Updated Welcome Message』に変更して」
  • 「ID 67890 のテンプレートを削除して」

送信ドメイン:

  • 「送信ドメインを一覧表示して」
  • 「ID 3938 の送信ドメインを取得して」
  • 「example.com の送信ドメインを作成して」
  • 「送信ドメイン 3938 を削除して」
  • 「DNS 設定手順付きで送信ドメイン 3938 を取得して」

利用可能なツール

send-email

Mailtrap を通じてトランザクションメールを送信します。インラインコンテンツsubject + text/html)またはテンプレートベースtemplate_uuid)の、相互に排他的な 2 つのモードをサポートします。

パラメータ:

  • from(任意):{ email, name? } としての送信者(実行時には素のメール文字列も受け付けます)。指定しない場合は DEFAULT_FROM_EMAIL が使用されます。
  • to(任意):{ email, name? } オブジェクトとしての受信者の配列(実行時には素のメール文字列や、配列でない単一のアドレスも受け付けます)。cc または bcc が指定されている場合は任意。to / cc / bcc の少なくとも 1 つに受信者が含まれている必要があります。
  • cc(任意):{ email, name? } オブジェクトとしての CC 受信者の配列(実行時には素のメール文字列も受け付けます)。
  • bcc(任意):{ email, name? } オブジェクトとしての BCC 受信者の配列(実行時には素のメール文字列も受け付けます)。
  • subject(条件付き):メールの件名。インライン送信には必須。template_uuid が設定されている場合は省略する必要があります。
  • text(条件付き):メール本文のテキスト。インライン送信には(html と併用またはその代わりに)必須。template_uuid が設定されている場合は省略する必要があります。
  • html(条件付き):メール本文の HTML バージョン。インライン送信には(text と併用またはその代わりに)必須。template_uuid が設定されている場合は省略する必要があります。
  • category(任意):トラッキングと分析用のメールカテゴリ。template_uuid が設定されている場合は省略する必要があります。
  • template_uuid(任意):インラインコンテンツの代わりに Mailtrap メールテンプレートを使用します。設定した場合、subject / text / html / category は省略する必要があります(Mailtrap API による)。
  • template_variables(任意):template_uuid が参照するテンプレートに代入される変数のオブジェクト。template_uuid と一緒の場合のみ許可されます。

batch-send-transactional-email

1 回の Mailtrap API 呼び出しでトランザクションメールのバッチを送信します(デフォルトの送信ストリーム)。共有フィールドは base に、受信者ごとの上書きは requests[] に指定します。各リクエストには、tocc、または bcc を介して少なくとも 1 人の受信者を含める必要があります。インラインとテンプレートの相互排他ルールは send-email と同じで、ベースと各リクエストをマージした後にチェックされます。

パラメータ:

  • base(任意):バッチ全体で共有されるフィールドを持つオブジェクト。
    • from(任意):{ email, name? } としての送信者(実行時には素のメール文字列も受け付けます)。DEFAULT_FROM_EMAIL にフォールバックします。
    • reply_to(任意):返信先アドレス。
    • subject / text / html / category(任意、インラインモード):すべてのリクエストのデフォルトコンテンツ。
    • template_uuid / template_variables(任意、テンプレートモード):デフォルトのテンプレートと変数。インラインフィールドとは相互に排他的です。
    • custom_variables(任意):デフォルトのカスタム変数(文字列値)。
    • headers(任意):デフォルトのカスタムヘッダー。
  • requests(必須):受信者ごとのメッセージの空でない配列。各エントリには:
    • to(任意):{ email, name? } オブジェクトとしての受信者の配列(実行時には素のメール文字列や、配列でない単一のアドレスも受け付けます)。cc または bcc が指定されている場合は任意。to / cc / bcc の少なくとも 1 つに受信者が含まれている必要があります。
    • ccbccreply_to(任意)。
    • インライン(subject/text/html/category)またはテンプレート(template_uuid/template_variables)の上書き。省略されたフィールドは、対応する base の値にフォールバックします。
    • custom_variablesheaders(任意)。

batch-send-bulk-email

Mailtrap のバルクストリーム API を通じてバルクメールのバッチを送信します。base + requests[] の構造、検証、およびインラインとテンプレートのルールは batch-send-transactional-email と同じです。唯一の違いは、このツールがトランザクションエンドポイントではなくバルクエンドポイントを介して呼び出しをルーティングすることです。上記のパラメータを参照してください。

list-email-logs

オプションのページネーションとフィルター付きで送信メールログ(配信履歴)を一覧表示します。IDE から配信の問題をデバッグするために使用します。

パラメータ:

  • search_after(任意):前回のレスポンスの next_page_cursor からのページネーションカーソル
  • sent_after(任意):ISO 8601 の日時。この時間以降に送信されたログのみ
  • sent_before(任意):ISO 8601 の日時。この時間より前に送信されたログのみ
  • from_email(任意):送信者メールでフィルタリング。from_operator と併用(デフォルト:ci_equal)
  • to_email(任意):受信者メールでフィルタリング。to_operator と併用(デフォルト:ci_equal)
  • status(任意):配信ステータスでフィルタリング:delivered、not_delivered、enqueued、opted_out。status_operator と併用(デフォルト:equal)
  • subject(任意):メールの件名でフィルタリング。subject_operator と併用(デフォルト:ci_contain)。件名の有無でフィルタリングするには subject_operator:empty/not_empty を使用します。
  • sending_domain_id(任意):送信ドメイン ID(数値)でフィルタリング。sending_domain_id_operator と併用(デフォルト:equal)
  • sending_stream(任意):ストリームでフィルタリング:transactional または bulk。sending_stream_operator と併用(デフォルト:equal)
  • events(任意):イベントタイプでフィルタリング:delivery、open、click、bounce、spam、unsubscribe、soft_bounce、reject、suspension。events_operator と併用(include_event / not_include_event)
  • clicks_count / opens_count(任意):クリック/オペン数でフィルタリング。*_operator と併用:equal、greater_than、less_than
  • client_ip / sending_ip(任意):IP でフィルタリング。*_operator と併用:equal、not_equal、contain、not_contain
  • email_service_provider_response(任意):プロバイダーのレスポンステキストでフィルタリング。*_operator と併用(ci_contain など)
  • email_service_provider(任意):プロバイダー(完全一致)でフィルタリング。*_operator と併用:equal、not_equal
  • recipient_mx(任意):受信者 MX でフィルタリング。recipient_mx_operator と併用(ci_contain など)
  • category(任意):メールカテゴリでフィルタリング。category_operator と併用:equal、not_equal

すべてのパラメータは任意です。

get-email-log-message

ID(UUID)で単一のメールログメッセージを取得します:読みやすい要約(送信元、送信先、件名、送信時刻、ステータス、カテゴリ、ストリーム、エンゲージメント、配信コンテキスト)、その後の詳細なイベント履歴。オプションで、include_content: true を使用すると、Mailtrap が生のメッセージ URL を公開している場合に、メッセージ本文(HTML とプレーンテキスト)も読み込んで表示できます。

パラメータ:

  • message_id (必須): メールログメッセージのUUID(送信レスポンスまたはメールログ一覧から取得)。メッセージIDの検索には list-email-logs を使用します。
  • include_content (任意): true の場合、生のEML(raw_message_url が利用可能な場合)を取得し、解析済みのHTMLおよびプレーンテキスト本文セクションを追加します。show-sandbox-email-message と同様です。

get-sending-stats

日付範囲に対するメール送信統計(配信率、バウンス率、開封率、クリック率、スパム率)を取得します。オプションでドメイン、カテゴリ、メールサービスプロバイダー、または日付ごとに分類できます。エディタから離れることなく配信率を確認できます。

パラメータ:

  • start_date (必須): 統計範囲の開始日(YYYY-MM-DD)
  • end_date (必須): 統計範囲の終了日(YYYY-MM-DD)
  • breakdown (任意): 統計の分類方法: aggregated(デフォルト)、by_domainby_categoryby_email_service_provider、または by_date
  • sending_domain_ids (任意): 結果をこれらの送信ドメインIDに制限(整数の配列)
  • sending_streams (任意): transactional および/または bulk に制限(文字列の配列)
  • categories (任意): これらのメールカテゴリに制限(文字列の配列)
  • email_service_providers (任意): これらのプロバイダーに制限(例: Google、Yahoo、Outlook)(文字列の配列)

create-template

Mailtrapアカウントに新しいメールテンプレートを作成します。

パラメータ:

  • name (必須): テンプレートの名前
  • subject (必須): メールの件名
  • html (または text が必須): テンプレートのHTMLコンテンツ
  • text (または html が必須): テンプレートのプレーンテキスト版
  • category (任意): テンプレートのカテゴリ(デフォルトは「General」)

list-templates

Mailtrapアカウント内のすべてのメールテンプレートを一覧表示します。

パラメータ:

  • パラメータは不要です

get-template

IDを指定して、件名、カテゴリ、HTML/テキスト本文を含む単一のメールテンプレートを取得します。

パラメータ:

  • template_id (必須): 取得するテンプレートのID

update-template

既存のメールテンプレートを更新します。

パラメータ:

  • template_id (必須): 更新するテンプレートのID
  • name (任意): テンプレートの新しい名前
  • subject (任意): 新しいメール件名
  • html (任意): テンプレートの新しいHTMLコンテンツ
  • text (任意): テンプレートの新しいプレーンテキスト版
  • category (任意): テンプレートの新しいカテゴリ

[!NOTE] update-template を呼び出して更新を実行するには、更新可能なフィールド(name、subject、html、text、または category)を少なくとも1つ指定する必要があります。

delete-template

既存のメールテンプレートを削除します。

パラメータ:

  • template_id (必須): 削除するテンプレートのID

send-sandbox-email

開発およびテスト目的でMailtrapテスト受信トレイにメールを送信します。実際の受信者にメールを送信せずにメールテンプレートをテストするのに最適です。send-email と同じ2つのモード(インラインコンテンツ または テンプレートベースtemplate_uuid))をサポートします。

パラメータ:

  • test_inbox_id (任意): Mailtrapテスト受信トレイID。MAILTRAP_TEST_INBOX_ID が設定されていない限り必須です。特定の受信トレイを対象にするには呼び出しごとに指定します。
  • from (任意): 送信者を { email, name? } として指定(実行時には素のメール文字列も受け付けられます)。指定しない場合、DEFAULT_FROM_EMAIL が使用されます。
  • to (任意): 受信者の配列を { email, name? } オブジェクトとして指定(配列内の素のメール文字列、またはカンマ区切りのプレーンなメール文字列も実行時に受け付けられます)。cc または bcc が指定されている場合は任意です。to / cc / bcc の少なくとも1つに受信者が含まれている必要があります。
  • cc (任意): CC受信者の配列を { email, name? } オブジェクトとして指定(実行時には素のメール文字列も受け付けられます)。
  • bcc (任意): BCC受信者の配列を { email, name? } オブジェクトとして指定(実行時には素のメール文字列も受け付けられます)。
  • subject (条件付き): メールの件名。インライン送信には必須です。template_uuid が設定されている場合は省略する必要があります。
  • text (条件付き): メール本文テキスト。インライン送信には(html と併用またはその代わりとして)必須です。template_uuid が設定されている場合は省略する必要があります。
  • html (条件付き): メール本文のHTML版。インライン送信には(text と併用またはその代わりとして)必須です。template_uuid が設定されている場合は省略する必要があります。
  • category (任意): 追跡用のメールカテゴリ。template_uuid が設定されている場合は省略する必要があります。
  • template_uuid (任意): インラインコンテンツの代わりにMailtrapメールテンプレートを使用します。設定した場合、subject / text / html / category は省略する必要があります。
  • template_variables (任意): template_uuid で参照されるテンプレートに置換される変数のオブジェクト。template_uuid と一緒にのみ許可されます。

batch-send-sandbox-email

1回のAPI呼び出しで、実際の受信者に配信せずにMailtrapテスト受信トレイへメールのバッチを送信します。batch-send-transactional-email と同じ base + requests[] の構造、検証、およびインライン/テンプレートのルールに従います。違いは、このツールが単一のテスト受信トレイ向けにサンドボックスエンドポイントを経由して呼び出しをルーティングする点です。

パラメータ:

  • sandbox_id (任意): Mailtrapサンドボックス(テスト受信トレイ)ID。MAILTRAP_SANDBOX_ID が設定されていない限り必須です。特定のサンドボックスを対象にするには呼び出しごとに指定します。
  • base (任意)、requests (必須): 上記の batch-send-transactional-email を参照してください。

[!NOTE] サンドボックスツールでは、ツール呼び出しで test_inbox_id を指定するか、MAILTRAP_TEST_INBOX_ID 環境変数を設定してください。test_inbox_id を渡すことで呼び出しごとに受信トレイを切り替えられます。sandbox_id を受け取るツールは、最初に MAILTRAP_SANDBOX_ID を使用します。

get-sandbox-messages

Mailtrapテスト受信トレイからメッセージの一覧を取得します。テスト中にサンドボックスで受信したメールを確認するのに便利です。

パラメータ:

  • page (任意): ページネーションのページ番号(最小: 1)
  • last_id (任意): 最後のメッセージIDを使用したページネーション。指定されたメッセージIDより後のメッセージを返します(最小: 1)
  • search (任意): メッセージをフィルタリングする検索クエリ

[!NOTE] すべてのパラメータは任意です。何も指定しない場合、受信トレイのメッセージの最初のページが返されます。従来のページネーションには page を、カーソルベースのページネーションには last_id を、コンテンツによるメッセージのフィルタリングには search を使用してください。

show-sandbox-email-message

Mailtrapテスト受信トレイから特定のメールメッセージの詳細情報とコンテンツ(HTMLおよびテキスト本文を含む)を表示します。

パラメータ:

  • message_id (必須): 取得するサンドボックスメールメッセージのID

[!NOTE] 最初に get-sandbox-messages を使用してメッセージの一覧とそのIDを取得し、その後このツールを使用して特定のメッセージの全コンテンツを表示してください。

get-sandbox-project

IDを指定して、受信トレイとメール数を含むサンドボックスプロジェクトを取得します。

パラメータ:

  • project_id (必須): 取得するプロジェクトのID

update-sandbox-project

既存のサンドボックスプロジェクトの名前を変更します。

パラメータ:

  • project_id (必須): 更新するプロジェクトのID
  • name (必須): プロジェクトの新しい名前(2〜100文字)

list-sandboxes

すべてのプロジェクトにわたってAPIトークンがアクセスできるすべてのサンドボックスを一覧表示します。

パラメータ:

  • パラメータは不要です

mark-sandbox-as-read

サンドボックス内のすべてのメッセージを既読にします。

パラメータ:

  • sandbox_id (必須): 操作対象のサンドボックスのID

reset-sandbox-credentials

サンドボックスのSMTP認証情報をリセットします。新しいユーザー名/パスワードを返します。

パラメータ:

  • sandbox_id (必須): 操作対象のサンドボックスのID

enable-sandbox-email-address

サンドボックスのメール受信用アドレスを有効にします(SMTP経由でメッセージをサンドボックスに配信するMailtrapアドレスをオンにします)。

パラメータ:

  • sandbox_id (必須): 操作対象のサンドボックスのID

reset-sandbox-email-address

サンドボックス用の新しいメール受信アドレスを生成します。

パラメータ:

  • sandbox_id (必須): 操作対象のサンドボックスのID

forward-sandbox-message

サンドボックスメッセージを外部メールアドレスに転送します。月間転送枠に対してカウントされます。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): 転送するサンドボックスメッセージのID
  • email (必須): メッセージの転送先メールアドレス

update-sandbox-message

サンドボックスメッセージを既読または未読に設定します。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): 更新するサンドボックスメッセージのID
  • is_read (必須): true は既読に、false は未読に設定します

delete-sandbox-message

単一のサンドボックスメッセージを削除します。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): 削除するサンドボックスメッセージのID

get-sandbox-message-spam-score

サンドボックスメッセージのSpamAssassinスパムレポート(スコア、ルール、完全なレポート)を取得します。show-sandbox-email-message 上の include_spam_report: true に代わる単独の代替手段です。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): サンドボックスメッセージのID

get-sandbox-message-html-analysis

サンドボックスメッセージのHTML分析レポート(クライアント互換性スコア、問題のある要素)を取得します。show-sandbox-email-message 上の include_html_analysis: true に代わる単独の代替手段です。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): サンドボックスメッセージのID

get-sandbox-message-headers

サンドボックスメッセージの解析済みメールヘッダーを取得します。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): サンドボックスメッセージのID

get-sandbox-message-html

サンドボックスメッセージのレンダリング済みHTML本文を取得します。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): サンドボックスメッセージのID

get-sandbox-message-text

サンドボックスメッセージのプレーンテキスト本文を取得します。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): サンドボックスメッセージのID

get-sandbox-message-raw

サンドボックスメッセージの生のMIME形式メッセージ(ヘッダー+本文)を取得します。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): サンドボックスメッセージのID

get-sandbox-message-eml

メッセージをEMLファイルペイロードとしてレンダリングして取得します(チケットへの添付や別のメールクライアントへのインポートに適しています)。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): サンドボックスメッセージのID

get-sandbox-message-html-source

サンドボックスメッセージの未レンダリングのHTMLソースを取得します(CIDリンクの書き換えなどのMailtrap側の変換が行われる前のHTML)。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): サンドボックスメッセージのID

list-sandbox-attachments

サンドボックスメッセージのすべての添付ファイルを一覧表示します(ファイル名、コンテンツタイプ、サイズ、ダウンロードパス)。

パラメータ:

  • sandbox_id (任意): サンドボックスID。MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): サンドボックスメッセージのID

get-sandbox-attachment

単一の添付ファイルのメタデータとダウンロードURLを取得します。

パラメータ:

  • sandbox_id (任意): サンドボックスID。指定がない場合は MAILTRAP_SANDBOX_ID にフォールバックします。
  • message_id (必須): 添付ファイルを含むサンドボースメッセージのID
  • attachment_id (必須): 取得する添付ファイルのID

list-sending-domains

送信ドメインとそのDNS検証ステータスの一覧を表示します。

パラメータ:

  • パラメータは不要です

get-sending-domain

IDを指定して送信ドメインとその検証ステータス(DNSレコードを含む)を取得します。include_setup_instructionstrue に設定すると、DNS設定手順をオプションで含めることができます。

パラメータ:

  • sending_domain_id (必須): 送信ドメインID
  • include_setup_instructions (任意): true の場合、DNS設定手順をレスポンスに追加します。デフォルト: false

create-sending-domain

新しい送信ドメインを作成します。作成後、DNSレコードを追加してドメインを検証します(レコードを確認するには include_setup_instructions: true を指定して get-sending-domain を使用します)。

パラメータ:

  • domain_name (必須): ドメイン名(例: example.com)

delete-sending-domain

送信ドメインを削除します。

パラメータ:

  • sending_domain_id (必須): 削除する送信ドメインID

send-sending-domain-setup-instructions

送信ドメインのDNS設定手順を指定したアドレスにメールで送信します。DNSレコードをDevOpsチームのメンバーに転送するのに便利です。

パラメータ:

  • sending_domain_id (必須): 送信ドメインID
  • email (必須): DNS設定手順の送信先メールアドレス

list-suppressions

抑制(サプレッション)の一覧表示または検索を行います(ハードバウンス、スパム報告、配信停止、手動インポート)。1回の呼び出しで最大1000件の結果を返します。

パラメータ:

  • email (任意): メールフィルター。このアドレスに一致する抑制のみを返します。

delete-suppression

IDを指定して抑制を削除します。再度抑制されない限り、Mailtrap はこのメールアドレスへの配信を再開します。

パラメータ:

  • suppression_id (必須): 削除する抑制のID

list-webhooks

アカウントに設定されているすべてのWebhookを一覧表示します。完全なWebhookレコードをJSONとして返します。

パラメータ:

  • パラメータは不要です

get-webhook

IDを指定して単一のWebhookを取得します。完全なWebhookレコードをJSONとして返します。注: signing_secret はここでは返されません — これは create-webhook のレスポンスでのみ利用可能です。

パラメータ:

  • webhook_id (必須): 取得するWebhookのID

create-webhook

Webhookを作成します。レスポンスにはWebhookペイロード署名を検証するための signing_secret が含まれます — このシークレットは作成時のみ返されるため、今すぐ保存してください。紛失した場合はWebhookを再作成してください。

パラメータ:

  • url (必須): Mailtrap がWebhookイベントをPOSTするURL
  • webhook_type (必須): "email_sending""audit_log"、または "inbound_receiving"
  • active (任意、ブール値): デフォルトは true
  • payload_format (任意): "json" または "jsonlines"。デフォルトは "json"
  • sending_stream (任意、email_sending のみ): "transactional" または "bulk"
  • event_types (任意、email_sending のみ): deliverysoft_bouncebouncesuspensionunsubscribeopenspam_complaintclickreject の配列
  • domain_id (任意、email_sending のみ): このWebhookの適用範囲を限定する送信ドメインID
  • inbound_inbox_id (任意、inbound_receiving のみ): Webhookがリンクされているインバウンド受信ボックスのID。省略するとアカウント内のすべての受信ボックスに適用されます

update-webhook

Webhookの変更可能なフィールドを更新します。webhook_typesending_streamdomain_id は作成後に変更できません — これらを変更する必要がある場合はWebhookを再作成してください。

パラメータ:

  • webhook_id (必須): 更新するWebhookのID
  • url (任意): 新しいWebhook URL
  • active (任意、ブール値): Webhookを有効または無効にします
  • payload_format (任意): "json" または "jsonlines"
  • event_types (任意、email_sending のみ): deliverysoft_bouncebouncesuspensionunsubscribeopenspam_complaintclickreject の配列
  • inbound_inbox_id (任意、inbound_receiving のみ): Webhookがリンクされているインバウンド受信ボックスのID

delete-webhook

IDを指定してWebhookを完全に削除します。削除されたWebhookレコードを返します。

パラメータ:

  • webhook_id (必須): 削除するWebhookのID

get-contact

IDまたはメールアドレスで連絡先(コンタクト)を取得します。完全な連絡先レコード(リストメンバーシップ、ステータス、カスタムフィールド)を返します。

パラメータ:

  • contact_identifier (必須): 連絡先IDまたはメールアドレス

create-contact

新しい連絡先を作成します。

パラメータ:

  • email (必須): メールアドレス
  • fields (任意): マージタグをキーとするカスタムフィールド値(例: first_name)。文字列、数値、またはブール値
  • list_ids (任意): この連絡先を登録する連絡先リストのID
  • unsubscribed (任意、ブール値): 連絡先を unsubscribed ステータスで作成します

update-contact

IDまたはメールアドレスで既存の連絡先を更新します。list_ids は連絡先の完全なメンバーシップセットを置き換えます。list_ids_included/list_ids_excluded は他の部分に影響を与えずに追加/削除します。

パラメータ:

  • contact_identifier (必須): 連絡先IDまたはメールアドレス
  • email (任意): 新しいメールアドレス
  • fields (任意): マージタグをキーとするカスタムフィールド値
  • list_ids (任意): メンバーシップセットをこの正確なリストに置き換えます
  • list_ids_included (任意): 追加するリストID(加算的)
  • list_ids_excluded (任意): 削除するリストID
  • unsubscribed (任意、ブール値): unsubscribed (true) または subscribed (false) に設定します

delete-contact

IDまたはメールアドレスで連絡先を完全に削除します。APIがレスポンスを返す場合は削除された連絡先レコードを返し、それ以外の場合は確認ペイロードを返します。

パラメータ:

  • contact_identifier (必須): 連絡先IDまたはメールアドレス

create-contact-event

連絡先(IDまたはメールアドレスで指定)に対して連絡先イベントを記録します。連絡先リストの自動化をトリガーするために使用します。

パラメータ:

  • contact_identifier (必須): 連絡先IDまたはメールアドレス
  • name (必須): イベント名(自動化トリガーと一致)
  • params (必須): 任意のキー/値ペアのオブジェクト。値は文字列、数値、ブール値、または null にできます

list-contact-lists

アカウントのすべての連絡先リストを一覧表示します。

パラメータ:

  • search (任意): 連絡先リストを名前でフィルタリングします(大文字小文字を区別しない一致)。例: news

get-contact-list

IDを指定して連絡先リストを取得します。

パラメータ:

  • list_id (必須): 取得する連絡先リストのID

create-contact-list

新しい連絡先リストを作成します。

パラメータ:

  • name (必須): 新しいリストの名前

update-contact-list

既存の連絡先リストの名前を変更します。

パラメータ:

  • list_id (必須): 連絡先リストのID
  • name (必須): リストの新しい名前

delete-contact-list

IDを指定して連絡先リストを完全に削除します。

パラメータ:

  • list_id (必須): 削除する連絡先リストのID

list-contact-fields

アカウントのすべての連絡先フィールド定義を一覧表示します。

パラメータ:

  • パラメータは不要です

get-contact-field

IDを指定して連絡先フィールド定義を取得します。

パラメータ:

  • field_id (必須): 連絡先フィールドのID

create-contact-field

新しい連絡先フィールド定義を作成します。merge_tag はアカウント内で一意である必要があり、テンプレート変数のプレースホルダー名として使用されます。

パラメータ:

  • name (必須): 表示名(例: "First Name")
  • merge_tag (必須): 一意のプレースホルダー名(例: first_name
  • data_type (必須): textnumberbooleandate のいずれか

update-contact-field

連絡先フィールド定義を更新します。namemerge_tagdata_type の任意の組み合わせを変更できます。

パラメータ:

  • field_id (必須): 連絡先フィールドのID
  • name (任意): 新しい表示名
  • merge_tag (任意): 新しいマージタグ(一意である必要があります)
  • data_type (任意): textnumberbooleandate のいずれか

delete-contact-field

IDを指定して連絡先フィールド定義を完全に削除します。

パラメータ:

  • field_id (必須): 削除する連絡先フィールドのID

create-contact-import

連絡先を一括インポートします。インポートジョブレコードを返します。get-contact-import でステータスをポーリングします。

パラメータ:

  • contacts (必須): 連絡先エントリの配列。各エントリには以下が必要です:
    • email (必須): 連絡先のメールアドレス
    • fields (任意): マージタグをキーとするカスタムフィールド値(文字列または数値)
    • list_ids_included (任意): 連絡先を追加するリストID
    • list_ids_excluded (任意): 連絡先を削除するリストID

get-contact-import

連絡先インポートジョブのステータス(created/started/finished/failed)を、作成数/更新数/上限超過数のカウントとともに取得します。

パラメータ:

  • import_id (必須): 連絡先インポートジョブのID

create-contact-export

AND結合されたフィルターのセットに一致する連絡先をエクスポートします。エクスポートジョブレコードを返します。get-contact-export でステータスをポーリングして、statusfinished になったらダウンロードURLを取得します。

パラメータ:

  • filters (必須): フィルターオブジェクトの配列。各オブジェクトには以下があります:
    • name (必須): フィルタリングするフィールド(list_idsubscription_statusemail など)
    • operator (必須): equalnot_equalcontainsnot_containsis_emptyis_not_empty のいずれか
    • value (必須): 比較値(文字列、数値、ブール値、または配列)

get-contact-export

連絡先エクスポートジョブのステータスを取得します。statusfinished になると、url フィールドにCSVダウンロードリンクが格納されます。

パラメータ:

  • export_id (必須): 連絡先エクスポートジョブのID

list-accounts

現在のAPIトークンがアクセスできるMailtrapアカウントを、各アカウントのアクセスレベルとともに一覧表示します。

パラメータ:

  • パラメータは不要です

get-billing-usage

アカウントの現在の請求サイクルの使用状況を取得します: 送信プランとテストプラン、制限、現在のカウント。

パラメータ:

  • パラメータは不要です

list-account-accesses

アカウントのアクセス(ユーザー、招待、APIトークン)を一覧表示します。オプションのフィルターで結果を特定のリソースに絞り込めます。アカウントの管理者/所有者権限が必要です。

パラメータ:

  • domain_uuids (任意): 送信ドメインUUIDでフィルタリング(文字列の配列)
  • inbox_ids (任意): サンドボックス受信ボックスIDでフィルタリング(文字列の配列)
  • project_ids (任意): サンドボックスプロジェクトIDでフィルタリング(文字列の配列)

remove-account-access

IDを指定してアカウントアクセスを削除します。User 指定子の場合は権限を取り消し、Invite または ApiToken 指定子の場合は指定子自体を完全に削除します。管理者/所有者が必要です。

パラメータ:

  • account_access_id (必須): 削除するアクセスレコードのID

get-permission-resources

APIトークンが管理者アクセス権を持つすべてのリソース(受信ボックス、プロジェクト、ドメイン、請求、アカウント)を階層ごとにネストして取得します。

パラメータ:

  • パラメータは不要です

bulk-update-permissions

単一のアカウントアクセスに対する権限を一括作成、更新、または削除します。既存の (resource_type, resource_id) ペアは更新され、新しいものは作成されます。エントリに destroy: true を設定すると削除されます。

パラメータ:

  • account_access_id (必須): ターゲットアカウントのアクセスID
  • permissions (必須): 権限エントリの配列。各エントリは以下を持ちます:
    • resource_id (必須): リソースID(数値または文字列)
    • resource_type (必須): accountprojectinboxdomainbilling のいずれか
    • access_level (任意): admin/100 または viewer/10
    • destroy (任意、ブール値): trueの場合、この権限を新規作成・更新する代わりに削除します

list-api-tokens

アカウントのすべてのAPIトークンを一覧表示します。

パラメータ:

  • 必要なパラメータはありません

create-api-token

新しいAPIトークンを作成します。レスポンスにはシークレットの token 値が含まれます。これは完全なトークンが返される唯一の機会なので、すぐに保存してください。失くした場合は、トークンを再作成してください。

パラメータ:

  • name (必須): トークンの表示名
  • resources (任意): トークンのスコープを制限するリソース権限の配列。各エントリは以下を持ちます:
    • resource_type (必須): accountprojectinboxdomainbilling のいずれか
    • resource_id (必須): リソースのID
    • access_level (必須): 100(管理者)または 10(閲覧者)

get-api-token

IDでAPIトークンを取得します。メタデータのみが返されます。シークレットのトークン値はここでは返されませんcreate-api-token / reset-api-token でのみ返されます)。

パラメータ:

  • api_token_id (必須): APIトークンのID

reset-api-token

IDでAPIトークンをリセット(ローテーション)します。レスポンスには新しいシークレットの token 値が含まれます。これはこの呼び出しでのみ返されるため、すぐに保存してください。以前のトークンは無効になります。

パラメータ:

  • api_token_id (必須): リセットするAPIトークンのID

delete-api-token

IDでAPIトークンを完全に削除します。削除後、そのトークンは認証に使用できなくなります。

パラメータ:

  • api_token_id (必須): 削除するAPIトークンのID

list-sub-accounts

組織内のサブアカウントを一覧表示します。MAILTRAP_ORGANIZATION_ID 環境変数とサブアカウント管理権限が必要です。

パラメータ:

  • 必要なパラメータはありません

create-sub-account

組織の下に新しいサブアカウントを作成します。MAILTRAP_ORGANIZATION_ID 環境変数とサブアカウント管理権限が必要です。

パラメータ:

  • name (必須): 新しいサブアカウントの表示名

list-inbound-folders

アカウント内のすべてのインバウンドフォルダを一覧表示します。整形されたサマリーを返します。

パラメータ:

  • 必要なパラメータはありません

get-inbound-folder

IDで単一のインバウンドフォルダを取得します。フォルダの完全なレコードをJSONとして返します。

パラメータ:

  • folder_id (必須): インバウンドフォルダのID

create-inbound-folder

新しいインバウンドフォルダを作成します。

パラメータ:

  • name (必須): フォルダ名

update-inbound-folder

インバウンドフォルダの名前を変更します。

パラメータ:

  • folder_id (必須): インバウンドフォルダのID
  • name (必須): 新しいフォルダ名

delete-inbound-folder

インバウンドフォルダを、その中のすべてのインボックスとともに完全に削除します。

パラメータ:

  • folder_id (必須): インバウンドフォルダのID

list-inbound-inboxes

インバウンドフォルダ内のすべてのインボックスを一覧表示します。整形されたサマリーを返します。

パラメータ:

  • folder_id (必須): インバウンドフォルダのID

get-inbound-inbox

IDで単一のインバウンドインボックスを取得します。インボックスの完全なレコードをJSONとして返します。

パラメータ:

  • folder_id (必須): インバウンドフォルダのID
  • inbox_id (必須): インボックスのID

create-inbound-inbox

フォルダ内に新しいインバウンドインボックスを作成します。

パラメータ:

  • folder_id (必須): インバウンドフォルダのID
  • name (必須): インボックス名
  • domain_id (任意): カスタム送信ドメインに接続します(キャッチオールインボックス)。Mailtrapホスト型インボックスの場合は省略します

update-inbound-inbox

インバウンドインボックスの名前を変更します。

パラメータ:

  • folder_id (必須): インバウンドフォルダのID
  • inbox_id (必須): インボックスのID
  • name (必須): 新しいインボックス名

delete-inbound-inbox

インバウンドインボックスを完全に削除します。

パラメータ:

  • folder_id (必須): インバウンドフォルダのID
  • inbox_id (必須): インボックスのID

list-inbound-messages

インバウンドインボックスの受信メッセージを一覧表示します(カーソルページング対応)。さらに結果がある場合は、次のページへのヒント付きの整形されたサマリーを返します。

パラメータ:

  • inbox_id (必須): インボックスのID
  • last_id (任意): 前回のレスポンスの last_id からのページネーションカーソル

get-inbound-message

単一のインバウンドメッセージを、完全な本文と添付ファイルのダウンロードURL付きで取得します。メッセージの完全なレコードをJSONとして返します。

パラメータ:

  • inbox_id (必須): インボックスのID
  • message_id (必須): メッセージのID

delete-inbound-message

インバウンドメッセージを完全に削除します。

パラメータ:

  • inbox_id (必須): インボックスのID
  • message_id (必須): メッセージのID

reply-to-inbound-message

インバウンドメッセージに返信します(元の送信者に送信されます)。実際のメールを送信します。アドレスは、メールアドレス文字列または { email, name? } をそのまま受け付けます。

パラメータ:

  • inbox_id (必須): インボックスのID
  • message_id (必須): 返信先のメッセージのID
  • text / html (少なくとも1つ推奨): 返信本文
  • from (任意): 送信者。Mailtrapホスト型インボックスの場合は拒否されます。カスタムドメインのインボックスの場合は必須です
  • cc / bcc / reply_to (任意): 追加のアドレス
  • category (任意): メッセージカテゴリ
  • attachments (任意): { content (base64), filename, type?, disposition?, content_id? } の配列
  • headers / custom_variables (任意): 文字列値のオブジェクト

reply-all-to-inbound-message

インバウンドメッセージに返信し、元のメールの他の受信者にもコピーを送信します。実際のメールを送信します。パラメータは reply-to-inbound-message と同じです。

パラメータ:

  • inbox_id (必須): インボックスのID
  • message_id (必須): 返信先のメッセージのID
  • さらに、reply-to-inbound-message と同じ任意の送信フィールド

forward-inbound-message

インバウンドメッセージを新しい受信者に転送します。実際のメールを送信します。

パラメータ:

  • inbox_id (必須): インボックスのID
  • message_id (必須): 転送するメッセージのID
  • to (必須): 少なくとも1人の受信者(メールアドレス文字列または { email, name? }、あるいは配列)
  • さらに、reply-to-inbound-message と同じ任意の送信フィールド

list-inbound-threads

インバウンドインボックスの会話スレッドを一覧表示します(カーソルページング対応)。さらに結果がある場合は、次のページへのヒント付きの整形されたサマリーを返します。

パラメータ:

  • inbox_id (必須): インボックスのID
  • last_id (任意): 前回のレスポンスの last_id からのページネーションカーソル

get-inbound-thread

単一のインバウンドスレッドを、埋め込まれたメッセージ付きで取得します(古い順)。スレッドの完全なレコードをJSONとして返します。

パラメータ:

  • inbox_id (必須): インボックスのID
  • thread_id (必須): スレッドのID

delete-inbound-thread

インバウンドスレッドを完全に削除します。

パラメータ:

  • inbox_id (必須): インボックスのID
  • thread_id (必須): スレッドのID

開発

  1. リポジトリをクローン:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
  1. 依存関係をインストール:
npm install

Claude Desktop または Cursor での設定

[!TIP] 設定ファイルの場所は Setup セクションを参照してください。

以下の設定を追加します:

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

Node.jsの管理に asdf を使用している場合は、実行ファイルへの絶対パスを使用する必要があります:

(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] 設定ファイルの場所は 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"
        }
      }
    }
  }
}

テスト

実際のMailtrapに対してツールを実行する

実際のMailtrapアカウントに対してツールをエンドツーエンドで実行するには、対話的な探索用の MCP Inspector ブラウザUIと、シェルからのワンショット呼び出し用のCLIモードの2つの方法があります。

どちらの場合も、最初にバンドルをビルドする必要があります:

npm run build

また、シェルで MAILTRAP_API_TOKENMAILTRAP_ACCOUNT_ID をエクスポートする必要があります(mcp:cli スクリプトは両方を起動したサーバーに転送します)。

ブラウザUI

npm run dev

Inspectorは http://localhost:6274 のようなURLを出力します。それを開き、Tools タブに切り替えて、ツール(例: get-template)を選択し、JSONとしてパラメータを入力して Run をクリックします。Mailtrapのレスポンスが下のパネルに表示されます。

CLI

UIを使わずにワンショット呼び出しを行うには、npm run mcp:cli を使用します。InspectorのCLIフラグを -- の後に渡すと、npmがそのまま転送します:

# 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

MCPBサーバーの実行

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

# Or use the provided binary
mailtrap-mcpb-server

[!TIP] MCP Inspectorでの開発用:

npm run dev:mcpb

エラーハンドリング

このサーバーは、MCPの規約に沿った構造化エラーハンドリングを使用します:

  • VALIDATION_ERROR: 入力検証の失敗
  • CONFIGURATION_ERROR: 設定の欠落または無効
  • EXECUTION_ERROR: 実行時エラー
  • TIMEOUT: 操作のタイムアウト(デフォルト30秒)

エラーには実用的なメッセージが含まれ、構造化された形式でログに記録されます。

セキュリティ

  • Zodスキーマによる入力検証
  • 環境変数の安全な処理
  • 操作のタイムアウト保護(30秒)
  • エラー出力における機密情報のサニタイズ

ロギング

INFO、WARN、ERROR、DEBUGのレベルを持つ構造化JSONログ。

DEBUG=true を設定することでデバッグロギングを有効にできます。

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

重要: サーバーはログをstderrに書き込むため、stdoutはJSON-RPCフレーム用に確保されます。これにより、ログの混在によるJSON解析エラーがホストで発生するのを防ぎます。

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")'

トラブルシューティング

一般的な問題:

  1. APIトークンの欠落: MAILTRAP_API_TOKEN が設定されていることを確認してください
  2. サンドボックスが動作しない: ツール呼び出しで test_inbox_id を指定するか、MAILTRAP_TEST_INBOX_ID 環境変数を設定してください
  3. タイムアウトエラー: ネットワーク接続とMailtrap APIのステータスを確認してください
  4. 検証エラー: すべての必須フィールドが指定されていることを確認してください

コントリビューション

バグ報告とプルリクエストは GitHub で歓迎します。このプロジェクトは安全で歓迎的なコラボレーションの場となることを目的としており、コントリビューターは 行動規範 を遵守することが期待されています。

ライセンス

このパッケージは MIT License の条件に基づいてオープンソースとして利用可能です。

行動規範

Mailtrapプロジェクトのコードベース、イシュートラッカー、チャットルーム、メーリングリストで交流するすべての人は、行動規範 に従うことが期待されています。