Mailtrap

公式

Mailtrap Email APIと統合します。

Mailtrap MCPで何ができますか?

  • トランザクションメールの送信 — アシスタントに、インラインコンテンツまたはテンプレートを使用したトランザクションメールをsend-email経由で送信するよう依頼します。
  • サンドボックスでのメールテスト — サンドボックス受信トレイにテストメールを送信し、コンテンツ、スパムスコア、HTML分析を確認します。
  • 配信ログの監視 — メールログを検索し、イベント履歴を確認して、list-email-logsで配信の問題をデバッグします。
  • メールテンプレートの管理 — 自然言語コマンドを使用して、テンプレートの作成、一覧表示、更新、削除を行います。
  • 送信統計の分析 — get-sending-statsで任意の日付範囲の配信率、バウンス率、開封率、クリック率を取得します。
  • 送信ドメインの管理 — DNS検証とクリックトラッキングを使用して、送信ドメインの一覧表示、作成、設定を行います。

ドキュメント

TypeScript test NPM

公式 Mailtrap MCP サーバー

Mailtrap(メール配信プラットフォーム)向けの公式 MCP サーバーです。Mailtrap アカウントを Claude、Cursor、VS Code、その他の MCP 互換 AI アシスタントに接続します。

トランザクションメールや一括メールの送信、Email Sandbox での安全なメッセージテスト、テンプレート・連絡先・送信ドメイン・Webhook の管理、メールログや配信統計の確認、配信性のトラブルシューティング、アカウントリソースの管理など、すべて自然言語のプロンプトで実行できます。

機能

  • Email API および SMTP — バッチ送信やテンプレートベースのメッセージを含む、トランザクションメールと一括メールを送信します。
  • メールテスト — Email Sandbox でメッセージをテストし、コンテンツ、ヘッダー、添付ファイル、スパムスコア、HTML クライアント互換性を確認します。
  • 配信モニタリング — メールログを検索し、イベント履歴を確認し、配信率、バウンス率、開封率、クリック率、スパム率を分析します。
  • メールインフラ — 送信ドメイン、DNS 検証、Webhook、抑制リストを管理します。
  • 連絡先 — 連絡先、リスト、カスタムフィールド、イベントを管理し、インポートとエクスポートも行えます。
  • アカウント管理 — 請求使用量を確認し、アクセス権限、API トークン、サブアカウントを管理します。

対応 MCP クライアント

Claude Desktop、Claude Code、Cursor、VS Code、その他の 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-accounts、create-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.json と dist/ のビルド成果物を使用して 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 to our platform!』の『Welcome Email』という新しいメールテンプレートを作成して」
  • 「ID 12345 のテンプレートの件名を『Updated Welcome Message』に更新して」
  • 「ID 67890 のテンプレートを削除して」

送信ドメイン:

  • 「送信ドメインを一覧表示して」
  • 「ID 3938 の送信ドメインを取得して」
  • 「example.com の送信ドメインを作成して」
  • 「送信ドメイン 3938 のクリックトラッキングをオンにして」
  • 「送信ドメイン 3938 を削除して」
  • 「DNS 設定手順付きで送信ドメイン 3938 を取得して」
  • 「送信ドメイン 3938 の会社情報を表示して」
  • 「ドメイン 3938 の会社情報を Acme Inc、123 Main St、San Francisco、US、94105、https://acme.com に設定して」
  • 「ドメイン 3938 の会社情報の市区町村を New York に変更して」

抑制リスト:

  • 「bounced@example.com の抑制リストを一覧表示して」
  • 「ドメイン 3938 のトランザクションストリームで bounced@example.com を抑制して」
  • 「抑制されたすべてのメールアドレスを表示して」
  • 「user@example.com がメールを受信しないのはなぜ?」
  • 「user@example.com を抑制リストから削除して」

トラッキングオプトアウト:

  • 「ドメイン 3938 で privacy@example.com の開封とクリックのトラッキングを停止して」
  • 「トラッキングをオプトアウトした全員を一覧表示して」

連絡先とリスト:

  • 「john.doe@example.com をニュースレターの連絡先リストに追加して」
  • 「すべての連絡先リストを表示して」
  • 「連絡先の出所を追跡するための『signup_source』という連絡先フィールドを作成して」
  • 「連絡先 john.doe@example.com を更新して、プランを『pro』に設定して」
  • 「この CSV から連絡先をオンボーディングリストにインポートして」
  • 「ニュースレターリストからすべての連絡先をエクスポートして」
  • 「連絡先 john.doe@example.com に『trial_started』イベントを記録して」

Webhook:

  • 「アカウントに設定されているすべての Webhook を一覧表示して」
  • 「バウンスとスパムイベント用に https://example.com/hooks/mailtrap を指す Webhook を作成して」
  • 「Webhook 4821 を更新して、配信イベントも送信するようにして」
  • 「Webhook 4821 を削除して」

アカウントと請求:

  • 「今月の現在の請求使用量は?」
  • 「プランで残っているメール数は?」
  • 「この Mailtrap アカウントにアクセスできる全員を一覧表示して」
  • 「アカウントで利用可能な権限リソースを表示して」

API トークン:

  • 「アカウントのすべての API トークンを一覧表示して」
  • 「ステージング環境用の新しい API トークンを作成して」
  • 「ID 1234 の API トークンをリセットして」
  • 「未使用の API トークン 1234 を削除して」

組織とサブアカウント:

  • 「組織内のすべてのサブアカウントを一覧表示して」
  • 「クライアントプロジェクト『Acme Corp』用の新しいサブアカウントを作成して」

利用可能なツール

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[] に指定します。各リクエストには、to、cc、または 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つに受信者が含まれている必要があります。
    • cc, bcc, reply_to (オプション)。
    • インライン(subject/text/html/category)またはテンプレート(template_uuid/template_variables)のオーバーライド。省略されたフィールドは、対応する base の値にフォールバックします。
    • custom_variables, headers (オプション)。

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(送信レスポンスまたは list-email-logs から取得)。list-email-logs を使用してメッセージ ID を検索します。
  • include_content (オプション): true の場合、生の EML(raw_message_url が利用可能な場合)を取得し、show-sandbox-email-message と同様に、解析された HTML とプレーンテキストの本文セクションを追加します。

get-sending-stats

日付範囲のメール送信統計(配信、バウンス、オープン、クリック、スパム率)を取得します。オプションで、ドメイン、カテゴリ、メールサービスプロバイダー、または日付ごとに内訳を表示できます。エディタを離れずに配信率を確認できます。

パラメータ:

  • start_date (必須): 統計範囲の開始日(YYYY-MM-DD)
  • end_date (必須): 統計範囲の終了日(YYYY-MM-DD)
  • breakdown (オプション): 統計の内訳方法: aggregated(デフォルト)、by_domain、by_category、by_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 のテスト受信トレイにメールのバッチを送信します。base + requests[] の形状、検証、インライン対テンプレートのルールは batch-send-transactional-email と同じです。違いは、このツールが単一のテスト受信トレイ用にサンドボックスエンドポイントを介して呼び出しをルーティングすることです。

パラメータ:

  • 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スパムレポート(スコア、ルール、完全なレポート)を取得します。include_spam_report: true の show-sandbox-email-message に対するスタンドアロン代替手段です。

パラメータ:

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

get-sandbox-message-html-analysis

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

パラメータ:

  • 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_instructions を true に設定すると、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)

update-sending-domain

送信ドメインのトラッキング設定とインバウンド設定を更新します。

パラメータ:

  • sending_domain_id (必須): 送信ドメインID
  • open_tracking_enabled (任意): このドメインから送信されたメールの開封をトラッキングします
  • click_tracking_enabled (任意): このドメインから送信されたメール内のリンクのクリックをトラッキングします
  • tracking_opt_out_enabled (任意): トラッキング対象のメールにトラッキングオプトアウトリンクを追加します。開封またはクリックのトラッキングが必要です
  • auto_unsubscribe_link_enabled (任意): メールに購読解除リンクを自動的に追加します
  • inbound_enabled (任意): ドメインをキャッチオールとしてインバウンド受信トレイに接続できるようにします

sending_domain_id 以外に少なくとも1つの設定を指定する必要があります。

delete-sending-domain

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

パラメータ:

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

send-sending-domain-setup-instructions

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

パラメータ:

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

get-company-info

ドメインのコンプライアンス検証に使用される、送信ドメインの会社情報を取得します。

パラメータ:

  • sending_domain_id (必須): 送信ドメインID

create-company-info

ドメインのコンプライアンス検証に必要な、送信ドメインの会社情報を設定します。

パラメータ:

  • sending_domain_id (必須): 送信ドメインID
  • name (必須): 会社名または個人名
  • address (必須): 住所
  • city (必須): 市区町村
  • country (必須): 国
  • zip_code (必須): 郵便番号
  • website_url (必須): 会社のウェブサイトURL
  • phone (任意): 電話番号
  • privacy_policy_url (任意): プライバシーポリシーページのURL
  • terms_of_service_url (任意): 利用規約ページのURL
  • info_level (任意): business または individual

update-company-info

送信ドメインの会社情報を更新します。

パラメータ:

  • sending_domain_id (必須): 送信ドメインID
  • create-company-infoのすべてのフィールド(すべて任意)。少なくとも1つを指定する必要があります。省略したフィールドは変更されません。

list-suppressions

抑制リスト(ハードバウンス、スパム苦情、購読解除、手動インポート)を一覧表示または検索します。1回の呼び出しで最大1000件の結果を返します。

パラメータ:

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

create-suppression

アカウントの抑制リストにメールアドレスを追加して、Mailtrapがそのアドレスへの配信を停止するようにします。

パラメータ:

  • email (必須): 抑制するメールアドレス
  • domain_id (必須): 抑制が適用される送信ドメインのID
  • sending_stream (必須): transactional または bulk
  • type (任意): hard bounce、spam complaint、unsubscription、または manual import。デフォルトは manual import

delete-suppression

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

パラメータ:

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

list-tracking-opt-outs

開封トラッキングとクリックトラッキングから除外されたメールアドレスを一覧表示します。1回の呼び出しで最大1000件のレコードを返します。

パラメータ:

  • email (任意): メールフィルター。このアドレスに一致するオプトアウトのみを返します
  • start_time (任意): この時刻以降に作成されたオプトアウトのみ(ISO 8601)
  • end_time (任意): この時刻以前に作成されたオプトアウトのみ(ISO 8601)
  • last_id (任意): ページネーションカーソル — 前回のレスポンスの last_id

create-tracking-opt-out

送信ドメインの開封トラッキングとクリックトラッキングからメールアドレスを除外します。

パラメータ:

  • email (必須): トラッキングをオプトアウトするメールアドレス
  • domain_id (必須): オプトアウトが適用される送信ドメインのID

delete-tracking-opt-out

トラッキングオプトアウトリストからメールアドレスを削除して、開封トラッキングとクリックトラッキングが再度適用されるようにします。

パラメータ:

  • tracking_opt_out_id (必須): 削除するトラッキングオプトアウトのID

list-webhooks

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

パラメータ:

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

get-webhook

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

パラメータ:

  • webhook_id (必須): 取得するウェブフックのID

create-webhook

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

パラメータ:

  • url (必須): Mailtrapがウェブフックイベントを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 のみ): delivery、soft_bounce、bounce、suspension、unsubscribe、open、spam_complaint、click、reject の配列
  • domain_id (任意、email_sending のみ): このウェブフックをスコープする送信ドメインID
  • inbound_inbox_id (任意、inbound_receiving のみ): ウェブフックがリンクされているインバウンド受信トレイのID。省略するとアカウント内のすべての受信トレイに適用されます

update-webhook

ウェブフックの変更可能なフィールドを更新します。webhook_type、sending_stream、および domain_id は作成後に変更できません — これらを変更する必要がある場合はウェブフックを再作成してください。

パラメータ:

  • webhook_id (必須): 更新するウェブフックのID
  • url (任意): 新しいウェブフックURL
  • active (任意、ブール値): ウェブフックを有効または無効にします
  • payload_format (任意): "json" または "jsonlines"
  • event_types (任意、email_sending のみ): delivery、soft_bounce、bounce、suspension、unsubscribe、open、spam_complaint、click、reject の配列
  • inbound_inbox_id (任意、inbound_receiving のみ): ウェブフックがリンクされているインバウンド受信トレイのID

delete-webhook

IDでウェブフックを完全に削除します。削除されたウェブフックレコードを返します。

パラメータ:

  • webhook_id (必須): 削除するウェブフックの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 (必須): 表示名(例: "名")
  • merge_tag (必須): 一意のプレースホルダー名(例: first_name)
  • data_type (必須): text、number、boolean、dateのいずれか

update-contact-field

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

パラメータ:

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

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

連絡先インポートジョブのステータス(作成済み/開始済み/完了/失敗)を、作成/更新/超過制限のカウントとともに取得します。

パラメータ:

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

create-contact-export

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

パラメータ:

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

get-contact-export

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

パラメータ:

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

list-email-campaigns

アカウントのメールキャンペーンを新しい順に、ページトークンページネーション付きで一覧表示します。必要に応じてsearchで名前でフィルタリングします。

パラメータ:

  • token (任意): 取得するページ番号(ページトークンページネーション)。デフォルトは1
  • per_page (任意): 1ページあたりのキャンペーン数。デフォルトは50、最大100
  • search (任意): 名前でキャンペーンをフィルタリング(大文字と小文字を区別しない部分一致)

get-email-campaign

IDでメールキャンペーンを取得します。

パラメータ:

  • email_campaign_id (必須): メールキャンペーンのID

create-email-campaign

新しいメールキャンペーンを作成します。キャンペーンは常にdraft状態で作成されます。スケジュールと開始は別のツールです(schedule-email-campaign、start-email-campaign)。

パラメータ:

  • name (必須): キャンペーン名
  • domain_id (必須): キャンペーンに使用される検証済み送信ドメインのID(送信ドメインエンドポイントによって返されます)
  • from_local_part (必須): Fromアドレスのローカル部分(@の前)
  • template_attributes (必須): インラインのメールテンプレート。以下があります:
    • subject (必須): メールの件名(最大255文字)。マージタグをサポートします(例: Hi {{first_name}})
    • body_html (任意): HTML本文(デザイン)。キャンペーンをスケジュールまたは開始する前に必要です。hrefに__unsubscribe_url__プレースホルダーを含むアンカーを介して購読解除リンクを含めます
    • body_text (任意): メール本文のプレーンテキスト版
    • merge_tags (任意): 件名/本文で参照されるマージタグのベア名(例: ["first_name"])
  • from_display_name (任意): Fromヘッダーに表示される表示名
  • reply_to (任意): Reply-Toアドレスの部分(display_name、local_part、domain)
  • delivery_mode (任意): rapid(可能な限り高速に送信)またはgradual(delivery_options.emails_per_hourにスロットル)
  • delivery_options (任意): 配信スロットリングオプション(emails_per_hour)
  • contact_list_ids (任意): 送信先の連絡先リストのID(含まれるリストの完全なセットとして扱われます)
  • contact_segment_ids (任意): 送信先の連絡先セグメントのID(含まれるセグメントの完全なセットとして扱われます)

update-email-campaign

draftメールキャンペーンを更新します。指定されたフィールドのみが変更されます。テンプレートはその場で編集されます。他の状態のキャンペーンは更新できません。

パラメータ:

  • email_campaign_id (必須): 更新するメールキャンペーンのID
  • 他のすべてのパラメータは任意で、create-email-campaignと同じです(name、domain_id、from_local_part、from_display_name、reply_to、template_attributes、delivery_mode、delivery_options、contact_list_ids、contact_segment_ids)

delete-email-campaign

IDでメールキャンペーンを削除します。draft状態のキャンペーンのみ削除できます。

パラメータ:

  • email_campaign_id (必須): 削除するメールキャンペーンのID

start-email-campaign

draftメールキャンペーンの送信をすぐに開始します。draftキャンペーンのみ開始できます。テンプレートにはbody_htmlデザインが必要で、オーディエンスと検証済み送信ドメインが設定されている必要があります。

パラメータ:

  • email_campaign_id (必須): 開始するメールキャンペーンのID

schedule-email-campaign

draftメールキャンペーンを将来の時間に送信を開始するようにスケジュールします。draftキャンペーンのみスケジュールできます。

パラメータ:

  • email_campaign_id (必須): スケジュールするメールキャンペーンのID
  • datetime (必須): キャンペーンを送信する日時(ISO 8601)。将来である必要があり、1か月以内である必要があります

cancel-email-campaign

scheduledメールキャンペーンをキャンセルし、draftに戻します。scheduledキャンペーンのみキャンセルできます。

パラメータ:

  • email_campaign_id (必須): キャンセルするメールキャンペーンのID

terminate-email-campaign

現在送信中のメールキャンペーン(started、queued、またはpaused)を終了し、進行中の送信を中止します。

パラメータ:

  • email_campaign_id (必須): 終了するメールキャンペーンのID

reset-email-campaign

scheduledメールキャンペーンをdraftにリセットします。scheduledキャンペーンのみリセットできます。

パラメータ:

  • email_campaign_id (必須): リセットするメールキャンペーンのID

get-email-campaign-stats

メールキャンペーンの集計パフォーマンス統計(配信、開封、クリック、バウンス、スパム苦情、購読解除のカウントと率)を取得します。

パラメータ:

  • email_campaign_id (必須): メールキャンペーンのID
  • start_date (任意): 集計ウィンドウの開始(包括的)、YYYY-MM-DD。デフォルトはキャンペーンが最後に開始された日
  • end_date (任意): 集計ウィンドウの終了(包括的)、YYYY-MM-DD。デフォルトは現在の日付

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 (必須): account、project、inbox、domain、billing のいずれか
    • access_level (任意): admin/100 または viewer/10
    • destroy (任意、ブール値): trueの場合、この権限を作成/更新する代わりに削除します

list-api-tokens

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

パラメータ:

  • パラメータは不要です

create-api-token

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

パラメータ:

  • name (必須): トークンの表示名
  • expires_at (任意): ISO 8601 日時形式のトークン有効期限。省略するとサーバーのデフォルト(1年)が適用されます。期限なしのトークンには明示的に null を渡します。過去の日時や5年以上先の日時は拒否されます
  • resources (任意): トークンをスコープするリソース権限の配列。各エントリには以下が含まれます:
    • resource_type (必須): account、project、inbox、domain、billing のいずれか
    • 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
  • expires_at (任意): 新しいトークンの有効期限(ISO 8601 日時形式)。省略するとサーバーのデフォルト(1年)が適用されます。期限なしのトークンには明示的に null を渡します。過去の日時や5年以上先の日時は拒否されます

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] 設定ファイルの場所については、セットアップ セクションを参照してください。

次の設定を追加します:

{
  "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] 設定ファイルの場所については、セットアップ セクションを参照してください。

{
  "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アカウントに対してツールをエンドツーエンドで実行するには、2つの方法があります: 対話的な探索用の MCP Inspector ブラウザUI、またはシェルからのワンショット呼び出し用のCLIモードです。

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

npm run build

そして、シェルで MAILTRAP_API_TOKEN と MAILTRAP_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ライセンス の条件に基づいてオープンソースとして利用できます。

行動規範

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