AIエージェント向け
SendHQ MCPサーバー
59個の厳密に型付けされたツールを通じて、AIエージェントに1つのSendHQワークスペースを安全かつ完全に操作させられます。メールの送受信、ドメインの検証、テンプレートの公開、到達率の調査が可能です。エージェントを第一の読者として書かれていますが、人間の方もご活用ください。
curl -fsSL https://downloads.sendhq.cc/install.sh | sh
claude mcp add sendhq --env SENDHQ_API_KEY=re_your_key -- sendhq mcpこのサーバーについて
SendHQ MCPサーバーを使うと、AIエージェントがModel Context Protocolを通じて1つのSendHQワークスペースを操作できます。メールの送信(単一送信、一括送信、テンプレート送信、返信、添付ファイル、冪等な再試行)、送信済みメールと受信メール(件名、本文、添付ファイル名)とその配信イベントの読み取りと検索、自動振り分けルール付きのラベルによるメールの整理、下書きと非公開の添付ファイルの管理、ホスト型テンプレートの作成と公開、ドメインとそのDNSの追加と検証、メール受信と受信用アドレスの設定、到達率・バウンス・苦情・サプレッションの確認、アカウントの使用量・請求状態・分析・APIキーのメタデータの読み取りが可能です。
これはsendhq CLIバイナリに組み込まれたローカルのstdioサーバーです。MCPクライアントがsendhq mcpを子プロセスとして起動し、stdin/stdout上でJSON-RPCを使って通信します。各ツール呼び出しは、ワークスペースのAPIキーで認証されたhttps://sendhq.cc/api/v1のSendHQ REST APIへのドキュメント化されたリクエスト1件になります。そのため、MCPサーバーの権限はそのキーの権限とまったく同じで、それを超えることはありません。
- 8つのグループに分かれた59個のツールは、1つのカタログから生成されています。このカタログはtools.jsonとしても公開されています。
- 厳密なJSONスキーマ:不明な引数、誤った型、必須フィールドの欠落は、SendHQに届く前にローカルで拒否されます。
- 構造化されたエラー:安定した
code、HTTPのstatus、explanation(説明)、具体的なremedy(対処法)、再試行が有効かどうかを含みます。 - 実際にメールを送信するツールやデータを破棄するツールは、説明文の冒頭でその旨を示し、MCPの安全性アノテーションを持っています。
--read-onlyモードでは、送信や変更を行うツールがすべて非表示になります。- 何もログに記録されません。stdoutにはプロトコルメッセージのみが流れ、APIキーやメッセージの内容がログに残ることはありません。
https://sendhq.cc/api/mcpで読み取り専用の小さなドキュメント用MCPエンドポイントもホストしています(料金とドキュメントの参照のみで、アカウントへのアクセスはありません)。このページで説明するサーバーは、アカウント単位の完全なサーバーで、ローカルまたは以下のホスト型コネクタとして動作します。ClaudeとChatGPTでSendHQを使う
インストールは不要です。SendHQはこのサーバーを、同じツールを備えたホスト型コネクタとしてhttps://mcp.sendhq.cc/mcpでも提供しています。キーを貼り付ける代わりに、SendHQアカウントでログインします。
Claude
- Settings → Connectorsを開いてディレクトリからSendHQを探すか、Add custom connectorを選んで
https://mcp.sendhq.cc/mcpを貼り付けます。 - ConnectをクリックしてSendHQにログインし、アクセス内容を確認してAllowをクリックします。
- 受信トレイの確認、検証済みドメインからのメール送信、バウンスの説明などをClaudeに依頼できます。
ChatGPT
- Open Settings → Security and login and turn on Developer mode.
- Go to chatgpt.com/plugins, click Create MCP app, name it SendHQ and enter
https://mcp.sendhq.cc/mcp. - Sign in to SendHQ and click Allow, then pick SendHQ from the tools menu in a new chat.
Muse by Meta
In Muse, open Connectors and search for SendHQ. Click Connect, sign in to SendHQ and click Allow.
承認と接続解除
- The
request_featuretool sends a feature request to the SendHQ team with your account details, so we can follow up by email. - 実際にメールを送信するツールやデータを削除するツールには、その旨のラベルが付いています。アシスタントが事前に確認を求めるかどうかは、アシスタント側でツールごとに設定します。Claudeでは、Settings → Connectors → SendHQでそれらのツールにNeeds approvalを選択してください。
- コネクタには、アシスタントの名前が付いた専用のAPIキー(例:「Claude (AI connector)」)が発行されます。APIキーでこれを削除すると、即座に接続が解除されます。
- APIキーの作成や失効、請求の変更はできません。添付ファイルはbase64で送受信され、ローカルファイルへのアクセスはありません。
- 未払いのワークスペース(連携トライアル)は、アカウントのメールアドレスまたはAWS SESシミュレーターのアドレスにのみ配信できます。
お問い合わせ:postmaster@sendhq.cc。プライバシー:sendhq.cc/privacy。
インストール
sendhqバイナリをインストールします(Linux、macOS、Windows、x86-64およびarm64に対応)。インストーラーはリリースのチェックサムを検証し、デフォルトではバイナリを~/.local/binに配置します。
curl -fsSL https://downloads.sendhq.cc/install.sh | shirm https://downloads.sendhq.cc/install.ps1 | iexsendhq version
SENDHQ_API_KEY=re_your_key sendhq doctorダッシュボードのhttps://sendhq.cc/app#/keysでAPIキーを作成します。MCPサーバーはキーを作成できません。サーバーを起動するコマンドは次の1つだけです。
SENDHQ_API_KEY=re_your_key sendhq mcp通常、これを手動で実行することはありません。MCPクライアントが起動します。ターミナルで実行すると、stdinでJSON-RPCを待ち受けます。
クライアントを設定する
Claude Code
claude mcp add sendhq --env SENDHQ_API_KEY=re_your_key -- sendhq mcp
# read-only variant
claude mcp add sendhq-readonly --env SENDHQ_API_KEY=re_your_key -- sendhq mcp --read-only--scope userを追加するとすべてのプロジェクトで使えるようになり、--scope projectを追加するとプロジェクトの.mcp.jsonに書き込まれます。共有する.mcp.jsonでは、キーをコミットせずに環境変数から参照してください。Claude Codeは.mcp.json内の${VAR}を展開します。
{
"mcpServers": {
"sendhq": {
"command": "sendhq",
"args": [
"mcp"
],
"env": {
"SENDHQ_API_KEY": "${SENDHQ_API_KEY}"
}
}
}
}OpenAI Codex
[mcp_servers.sendhq]
command = "sendhq"
args = ["mcp"]
env = { SENDHQ_API_KEY = "re_your_key" }コマンドラインからも設定できます:codex mcp add sendhq --env SENDHQ_API_KEY=re_your_key -- sendhq mcp。
Claude Desktop
claude_desktop_config.json(macOS:~/Library/Application Support/Claude/、Windows:%APPDATA%\Claude\)を編集し、アプリを再起動します。デスクトップアプリはシェルのPATHを引き継がないため、バイナリの絶対パス(which sendhq)を使ってください。
{
"mcpServers": {
"sendhq": {
"command": "/Users/you/.local/bin/sendhq",
"args": [
"mcp"
],
"env": {
"SENDHQ_API_KEY": "re_your_key"
}
}
}
}その他のMCPクライアント
コマンドsendhq、引数["mcp"](必要に応じて"--read-only")、および以下の環境変数を指定してstdioサーバーを設定します。サーバーはMCPプロトコルバージョン2024-11-05、2025-03-26、2025-06-18、2025-11-25に対応し、initialize、ping、tools/list、tools/callを実装しています。ツールの結果には、JSONテキストブロックとstructuredContentの両方が含まれます。
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_service_health","arguments":{}}}アカウント単位のサーバーには、ホスト型のHTTPトランスポートはありません。書き込み可能なリモートMCPエンドポイントにはユーザーごとのOAuthが必要ですが、SendHQはこれを提供していません。ローカルのバイナリなら、キーをすでに保持しているマシン上に留めておけます。
環境変数とフラグ
| 変数またはフラグ | 必須 | 意味 |
|---|---|---|
SENDHQ_API_KEY | はい | ワークスペースのAPIキー(re_…)。get_service_health以外のすべてのツールで必要です。キーがなくてもサーバーは起動しますが、すべての呼び出しで修正方法を説明する構造化されたauth_errorが返されます。 |
SENDHQ_API_BASE_URL | いいえ | APIのベースURL。デフォルトはhttps://sendhq.cc/api/v1です。ローカル環境やステージング環境でのみ使用してください。旧エイリアスとしてSENDHQ_BASE_URLも使用できます。 |
SENDHQ_MCP_READ_ONLY | いいえ | 1、true、yesを指定すると--read-onlyと同じ動作になります。 |
--read-only | いいえ | メールの送信も状態の変更も行わないツールのみを公開します。非表示のツールは、名前を指定して呼び出されても拒否されます。 |
SENDHQ_PROFILE / --profile | いいえ | SENDHQ_API_KEYの代わりに、sendhq auth loginでOSのキーリングに保存したキーを使います。両方が存在する場合は環境変数が優先されます。 |
キーは、設定されたベースURLにAuthorization: Bearerヘッダーとしてのみ送信されます。出力、ログへの記録、エラーでの表示、ツールの結果への含有は一切ありません。
エージェント向けの安全モデル
- 実際にメールを送信します。
send_email、send_batch、send_template_testは実在する人にメールを配信し、配信クレジットを消費します。これらの説明文はSENDS REAL EMAILで始まります。ユーザーがその特定のメッセージの送信を明示的に依頼し、受信者、送信者、内容が確認済みの場合にのみ呼び出してください。 - 破壊的操作。
delete_email、delete_draft、delete_attachment、delete_domain、delete_inbox、remove_suppressionにはdestructiveHint: trueが付いており、説明文はDESTRUCTIVEで始まります。事前にユーザーに確認してください。remove_suppressionは安全のためのブロックを弱めるもので、アドレスが再び使えることを人間が確認した場合にのみ適切です。 - 状態を変更します。下書き、テンプレート、ドメイン、インボックスの作成や更新、テンプレートの公開、検証の開始はワークスペースを変更しますが、メールは送信しません。
- 読み取り専用。それ以外はすべて
readOnlyHint: trueで、自由に呼び出しても安全です。 - このサーバーがDNSを変更することはありません。
add_domainは人間が公開するためのレコードを返します。get_domain_connect_linkは、ユーザー本人が開いてDNSプロバイダー上で承認する必要がある同意URLを返します。 - このサーバーが請求を変更することはありません。
get_accountはプラン、使用量、サブスクリプションの状態を読み取るだけです。 - 未払いのワークスペース(連携トライアル)は、アカウント所有者のメールアドレス(
get_account→user.email)またはsuccess@simulator.amazonses.comなどのAWS SESシミュレーターのアドレスにのみ配信でき、添付ファイルは送信できません。 - 受け付けは配信ではありません。送信が成功するとIDが返されます。配信、バウンス、苦情の証拠は後から
list_email_eventsに届きます。受信トレイへの到達や、相手がメッセージを読んだことを主張してはいけません。 423の一時停止を回避するために別のFromアドレスに切り替えないでください。また、配信停止した受信者や苦情を報告した受信者を再び追加してはいけません。
APIキーは対象外
設計上、APIキーを作成、変更、ローテーション、失効、削除するツールはありません。エージェントが認証情報を発行したり破棄したりしてはいけません。list_api_keysが返すのは、名前、秘密でないプレフィックス、最終使用日時のみです。キーの管理は、ログインした人間がダッシュボードで行います。
ワークフロー
1. 最初の送信
get_service_healthでAPIに到達できることを確認します(キーなしで動作します)。get_accountで、プラン(access.tier)、残りのクォータ、user.emailを確認します。トライアル中は、このメールアドレスが唯一許可された実在の受信者です。list_sending_identitiesで使用できるFromアドレスを一覧表示します。空の場合は、先にドメインのワークフローを実行してください。- 送信者、受信者、件名、本文をユーザーに確認してから、
idempotency_keyを付けてsend_emailを呼び出します。 - 返された
idを指定してlist_email_eventsを呼び出すと、プロバイダーが報告した時点で(通常は数秒から数分)delivery、bounce、complaint、rejectが表示されます。
{
"name": "send_email",
"arguments": {
"from": "Acme <hello@example.com>",
"to": [
"owner@example.com"
],
"subject": "SendHQ is connected",
"text": "It works.",
"idempotency_key": "first-send-2026-09-26"
}
}2. ドメイン検証の一連の流れ
name: "example.com"を指定してadd_domainを呼び出します。結果にはDNSレコード(DKIMのCNAME、SES検証、SPF、推奨されるDMARC)が含まれます。domain_idを指定してget_dns_providerを呼び出すと、権威DNSプロバイダーが検出され、そのプロバイダーで各レコードに入力すべき正確な相対ホストが返されます。providers.domainConnect.availableがtrueの場合、get_domain_connect_linkが同意URLを返します。これを人間に渡してください。プロバイダー上で承認されるまで何も変更されません。それ以外の場合は、公開すべきレコードを人間に伝えてください。SPFレコードを2つ公開してはいけません。既存のv=spf1の値にinclude:amazonses.comを統合してください。verify_domainはDNSとSESを再チェックします。ステータスはpending、checking、propagatingを経てverifiedになります。verify_domainまたはget_domainを30〜60秒ごとにポーリングしてください。DNSの反映には数分から数時間かかることがあります。statusがverifiedになると、そのドメインのアドレスがlist_sending_identitiesに表示されます。
3. バウンス、苦情、サプレッション
list_blocked_recipientsは、ブロックされたすべてのアドレスをその理由(bounce、complaint、unsubscribe)と件数のサマリーとともに返します。list_suppressionsはハードバウンスと苦情によるサプレッションを返します。deliverability_statsは過去30日間の配信率、バウンス率、苦情率を返します。list_sender_reputationは、どのFromアドレスがスロットリングまたは一時停止されているかを示します。- サプレッション対象の受信者を含む送信は
422 recipient_suppressedで失敗します。その受信者を除外して再送してください。 - バウンスしたメールボックスが現在は使えることを人間が確認した場合にのみ、
remove_suppressionを呼び出してください。苦情によるサプレッションは恒久的です(409 complaint_suppression_locked)。
4. メールを受信する
- ドメイン(多くの場合
inbound.example.comのようなサブドメイン)が検証済みである必要があります。 setup_inboundは受信を準備し、MXレコードを1つ返します。これを人間が公開します。statusがreadyになるまでverify_inboundを呼び出します。domain_idとlocal_part(例:support)を指定してcreate_inboxを呼び出すと、support@inbound.example.comが作成されます。direction: "in"とunread: true(必要に応じてinbox_idも)を指定してlist_emailsをポーリングします。メッセージはget_emailで、その会話はget_threadで、添付ファイルはdownload_attachmentで読み取り、mark_email(read: true)で処理済みにします。send_emailとreply_to_email_idでスレッド内に返信します。SendHQがIn-Reply-To、References、スレッドを設定します。
5. Webhookとイベント通知
SendHQは現在、顧客が設定できるWebhookを提供していないため、Webhook用のツールはありません。プロバイダーからの通知はSendHQ内部で処理され、読み取り操作を通じて公開されます。代わりにポーリングしてください。1通のメッセージの結果にはlist_email_events、最近の変化にはstatus(例:bounced)またはafterを指定したlist_emails、新着の受信メールにはdirection: "in"とunread: trueを指定したlist_emails、新しいサプレッションにはlist_blocked_recipientsを使います。ポーリングは、1つの問い合わせにつき1分に1回程度までにしてください。
6. 配信失敗を診断する
- メッセージを探します。
direction: "out"とtoまたはqueryを指定してlist_emailsを呼び出すか、IDがわかっている場合はget_emailを使います。status: failedは、SendHQまたはプロバイダーが送信時に拒否したことを意味します。メールのエラーにその理由が記載されています。 list_email_events:bounce(恒久的または一時的、プロバイダーの診断情報付き)、complaint、reject、delivery。イベントがまだない場合は、プロバイダーがまだ報告していないということです。しばらく待ってから再確認してください。- 送信呼び出し自体が失敗した場合は、エラーの
codeを確認します。sender_domain_unverified→ ドメイン検証を完了する。recipient_suppressed→ そのアドレスは以前にハードバウンスしたか苦情を報告している。sender_paused→list_sender_reputationを確認し、リストの入手元を修正する。trial_recipient_restricted→ トライアルの制限。quota_exhausted→get_accountで使用量を確認する。 get_domainでDKIM、SPF、DMARCが引き続き公開されていることを確認します。deliverability_statsで、問題が1通のメッセージだけか、傾向なのかがわかります。- 証拠が示す内容を報告してください。
deliveryイベントは受信者側のサーバーがメッセージを受け付けたことを意味し、受信トレイに届いたことや読まれたことを意味するわけではありません。
7. タスク用バケットを管理する(ラベル)
name(例:Agent/Orders)とskip_inbox: trueを指定してcreate_labelを呼び出します。これでラベルがバケットになります。このラベルが付いた受信メールはアーカイブされ、人間の受信トレイには表示されずラベル内にのみ表示されます。send_email(またはsend_batch)とlabels: ["Agent/Orders"]でタスク用のメールを送信します。その会話への返信は自動的にラベルを引き継ぎ、受信トレイをスキップします。- 自分の会話以外から始まるメールには、振り分けルールを追加します。
inbox_id(orders@…のような専用アドレス)、from、to、subjectのいずれかを指定してcreate_label_ruleを呼び出します。受信済みのメールも振り分けるにはapply_to_existing: trueを渡します。 - バケットを処理します。
label: "Agent/Orders"、direction: "in"、unread: trueを指定してlist_emailsを呼び出し、get_emailまたはget_threadで読み、send_emailとreply_to_email_idで返信し、処理したらmark_emailでread: trueにします。 - 紛れ込んだメッセージの出し入れには
label_email(add/remove)を使います。受信メッセージにバケットのラベルを追加すると、そのメッセージはアーカイブもされます。 - 必要に応じて
set_inbox_forwardingを使うと、受信アドレスに届いたすべてのメールのコピーを別のメールボックスに送信できます(転送先は先にメールで確認を行います)。
{
"name": "send_email",
"arguments": {
"from": "Orders <orders@example.com>",
"to": [
"customer@example.net"
],
"subject": "Order 1042: confirm delivery window",
"text": "Reply with a time that works.",
"labels": [
"Agent/Orders"
],
"idempotency_key": "order-1042-window"
}
}8. 添付ファイルとテンプレート
有料プランでは、send_emailのattachmentsで最大10個のファイルを添付できます(それぞれcontent_base64またはローカルのfile_pathが必要です。filenameのデフォルトはファイルのベース名です)。ホスト型テンプレートの場合:create_template → update_template_draft → render_templateでサンプルデータを使ってプレビュー → send_template_test(実際のテストを1通送信) → publish_templateの順に進め、その後template: {key, data}とちょうど1人のto受信者を指定してsend_emailまたはsend_batchで送信します。
結果、ページネーション、エラー
呼び出しが成功すると、APIのJSONオブジェクトがstructuredContentとJSONテキストブロックとして返されます。すべてのlist_*ツールはlimit(1〜200、デフォルト50)とoffsetを受け付け、paginationオブジェクトを付加します。has_moreがtrueの間は、offset: pagination.next_offsetを指定して呼び出しを続けてください。
{
"data": [
"…"
],
"count": 50,
"pagination": {
"offset": 0,
"limit": 50,
"returned": 50,
"total": 180,
"has_more": true,
"next_offset": 50
}
}呼び出しが失敗すると、構造化されたエラーとともにisError: trueが返されます。むやみに再試行せず、remedyに従ってください。再試行するのはretryableがtrueの場合だけにしてください。
{
"error": {
"code": "trial_recipient_restricted",
"status": 402,
"message": "The integration trial can deliver only to your account email or an AWS SES simulator address",
"retryable": false,
"explanation": "This workspace is on the unpaid integration trial. Trial sends can be delivered only to the account owner's email address or an AWS SES simulator address.",
"remedy": "Send to the account email (get_account -> user.email) or a simulator address such as success@simulator.amazonses.com to test. To email anyone else, the account owner must activate a paid plan in the dashboard (Profile & Billing). Do not retry the same recipients."
}
}任意のエラーフィールド:request_id(サポートへの問い合わせ時に伝えてください)、retry_after_seconds、problems(invalid_argumentsの場合のスキーマ違反のリスト)、idempotent_replayed(「冪等性」を参照)。
冪等性
send_emailとsend_batchはidempotency_key(最大200文字)を受け付け、Idempotency-Keyヘッダーとして送信します。論理的なメッセージごとに一定のキーを1つ生成してください(例:invoice-4812-receipt)。
- 再試行では、同じキーと同一のリクエストボディの両方を再利用する必要があります。同じキーで何かを変更すると(受信者、件名、本文、ヘッダー、テンプレートデータ、さらには引数の値でも)、
409 idempotency_conflictが返されます。 - 同じキー、同じボディで、元のリクエストが完了している場合:SendHQは再送せずに保存済みの結果を返します。これが、タイムアウトや
network_errorの後に安全に再試行する方法です。 - 元のリクエストがまだ実行中に同じキーを使った場合:
409 idempotency_in_progressが返されます。少し待ってから再試行できます。 - 新しい論理的なメッセージには新しいキーが必要です。
- 保存された失敗も再生されます。最初の試行が失敗した場合、同じキーで再試行すると、同じ失敗が
idempotent_replayed: trueとretryable: false付きで返されます。list_emails(direction: out)で何も送信されていないことを確認し、原因を修正してから、新しいキーで送信してください。 - サーバーがPOSTを自動で再試行することはありません。自動的に再試行されるのは読み取り専用のGET呼び出しだけです(ネットワークエラー、429、5xxの場合に最大3回)。
- インラインの
attachmentsを指定したsend_emailは複数のリクエストを実行するため、idempotency_keyを受け付けません。再試行しても安全な添付ファイル付きの送信には、create_draft→upload_attachment→draft_idとidempotency_keyを指定したsend_emailの順に使ってください。
{
"name": "send_email",
"arguments": {
"from": "Acme <billing@example.com>",
"to": [
"owner@example.com"
],
"subject": "Receipt #4812",
"text": "Thanks for your payment.",
"idempotency_key": "receipt-4812"
}
}レート制限とクォータ
SendHQは、APIについて1秒あたりのリクエスト数の固定上限を公表していません。エージェントが実際に直面する制限は使用量の上限で、429として返されます。
- プランごとの月間受信者配信数。To、Cc、Bccの各アドレスがそれぞれ1配信としてカウントされます。
get_account→usage.recipientDeliveriesとusage.emailQuotaMonthを比較してください。 - Fromアドレスごとの1日あたりの受信者数。その送信者のレピュテーションの状態によって決まります(
list_sender_reputation→dailyLimit、有料プランのデフォルトは2,000)。 - 連携トライアル:合計100受信者まで。アカウントのメールアドレスまたはSESシミュレーターのアドレスにのみ送信できます。
- 添付ファイル:1メッセージあたり最大10ファイル、10 MBまで。有料プランでは、受信者数で重み付けした添付ファイルの転送量が月10 GBまで。
- リクエストごと:To + Cc + Bccで最大100アドレス。
send_batchは最大100メッセージ。 - レピュテーションのサーキットブレーカー:直近7日間のローリングウィンドウで、バウンスや苦情がしきい値を超えると、該当するFromアドレスがスロットリングまたは一時停止されます(
423 sender_paused)。率が下がれば自動的に回復します。
quota_exhaustedは、期間がリセットされるかプランが変更されるまで再試行できません。rate_limitedはretry_after_secondsの経過後に再試行できます。送信の場合は、同じidempotency_keyと同一のボディで再試行してください。
エラー一覧
codeは安定しています。messageではなく、こちらで分岐してください。
| code | HTTP | 再試行 | 意味と対処法 |
|---|---|---|---|
invalid_arguments | — | いいえ | 引数がツールのJSONスキーマのローカル検証に失敗しました。SendHQには何も届いていません。problemsに記載されたフィールドを修正してください。 |
auth_error | 401 | いいえ | APIキーがない、失効している、または誤っています。サーバープロセスにSENDHQ_API_KEYを設定してください。キーは人間がダッシュボードで作成します。 |
trial_recipient_restricted | 402 | いいえ | 連携トライアルでは、アカウントのメールアドレスまたはSESシミュレーターのアドレスにのみ配信できます。そこに送信するか、所有者が有料プランを有効にしてください。 |
payment_required | 402 | いいえ | この機能(添付ファイルなど)には有料プランが必要です。その機能を使わずに送信するか、アップグレードしてください。 |
sender_domain_not_owned | 403 | いいえ | Fromのドメインがこのワークスペースにありません。list_sending_identitiesまたはadd_domainを使ってください。 |
sender_domain_unverified | 403 | いいえ | Fromのドメインがまだ検証されていません。get_domainで確認し、不足しているレコードを公開して、verify_domainを実行してください。 |
domain_limit_reached | 403 | いいえ | プランのドメイン数の上限に達しました。使っていないドメインを(承認を得て)削除するか、アップグレードしてください。 |
marketing_not_enabled | 403 | いいえ | このドメインまたはプランではマーケティングクラスが有効になっていません。メッセージが本当にトランザクションメールである場合にのみtransactionalを使ってください。 |
forbidden | 403 | いいえ | ポリシーによりこの操作は許可されていません。リクエストを調整してください。 |
not_found | 404 | いいえ | IDがこのワークスペースにありません。リソースを一覧表示して正しいIDを確認してください。アーカイブ済みのテンプレートは先に復元してください。 |
idempotency_conflict | 409 | いいえ | キーが異なるボディで再利用されました。元のリクエストをまったく同じ内容で再送するか、新しいメッセージには新しいキーを使ってください。 |
idempotency_in_progress | 409 | はい | 元のリクエストがまだ実行中です。待ってから、同じキーとボディで再試行してください。 |
revision_conflict | 409 | いいえ | 読み取った後にテンプレートの下書きが変更されました。get_templateで取得し、変更をマージして、再度保存してください。 |
complaint_suppression_locked | 409 | いいえ | 受信者が苦情を報告しています。今後そのアドレスには絶対にメールを送らないでください。 |
inbound_not_ready | 409 | いいえ | メール受信の準備ができていません。setup_inboundを実行し、MXを公開して、verify_inboundを実行してください。 |
conflict | 409 | いいえ | リソースがすでに存在するか、状態が正しくありません。リソースを読み取って調整してください。 |
attachments_too_large | 413 | いいえ | 10ファイルまたは10 MBを超えています。添付ファイルを削除するか小さくしてください。 |
recipient_suppressed | 422 | いいえ | 受信者が以前にハードバウンスしたか苦情を報告しています。その受信者を除外してください。list_blocked_recipientsを参照してください。 |
recipient_unsubscribed | 422 | いいえ | 受信者がマーケティングメールの配信を停止しています。その受信者を恒久的に除外してください。 |
validation_failed | 422 | いいえ | 内容が拒否されました(変数の仕様に違反するテンプレートデータなど)。入力を修正してください。 |
sender_paused | 423 | いいえ | このFromアドレスは、7日間のバウンス・苦情のサーキットブレーカーによって一時停止されています。送信を停止し、リストを修正して、自動回復を待ってください。 |
quota_exhausted | 429 | いいえ | 月間、送信者ごとの1日あたり、添付ファイル、またはトライアルの上限に達しました。get_accountを確認し、リセットを待つかアップグレードしてください。 |
rate_limited | 429 | はい | ペースを落としてください。retry_after_secondsだけ待ちます。送信の場合は同じキー、同じボディを使います。 |
server_error | 5xx | はい | SendHQまたはプロバイダーの一時的な障害です。間隔を空けて再試行してください。送信の場合は同じキーとボディを使います。idempotent_replayedがtrueの場合は、何も送信されていないことを確認してから新しいキーを使ってください。 |
network_error | — | はい | リクエストまたはレスポンスが失われました。再試行してください。送信の場合は、同じidempotency_keyを使えば安全に再試行できます。 |
invalid_request | 400 | いいえ | リクエストの形式が不正です。messageを読んで修正してください。 |
tool_error | — | いいえ | MCPサーバー内部でのローカルな失敗です(読み取れないfile_pathなど)。messageを確認してください。 |
ツールリファレンス
すべてのツールについて、安全性の分類、呼び出すRESTエンドポイント、パラメータ、戻り値の形式、tools/callのparamsオブジェクトの例を記載しています。パラメータは厳密で、記載されていないものはすべてサーバーに拒否されます。
メールとスレッド:send_email、send_batch、list_emails、get_email、mark_email、delete_email、list_email_events、get_thread
ラベルと自動振り分けルール:list_labels、get_label、create_label、update_label、delete_label、create_label_rule、delete_label_rule、label_email
下書き、添付ファイル、送信者ID:list_sending_identities、create_draft、list_drafts、get_draft、update_draft、delete_draft、upload_attachment、download_attachment、delete_attachment
ホスト型テンプレート:list_templates、create_template、get_template、update_template_draft、create_template_draft、render_template、send_template_test、publish_template、archive_template、restore_template
ドメインとDNS:list_domains、get_domain、add_domain、verify_domain、delete_domain、get_dns_provider、get_domain_connect_link
メール受信:setup_inbound、verify_inbound、list_inboxes、get_inbox、create_inbox、update_inbox、set_inbox_forwarding、delete_inbox
到達率、バウンス、サプレッション:deliverability_stats、list_sender_reputation、list_suppressions、remove_suppression、list_blocked_recipients
アカウント、使用量、分析、キー:get_account、get_analytics、list_api_keys、get_service_health
この条件に一致するツールはありません。
メールとスレッド
send_emailメールを1通送信する
SENDS REAL EMAIL。検証済みドメインから1通のメッセージを送信します。直接指定したhtml/text、公開済みのホスト型テンプレート、既存スレッドへの返信、添付ファイル付きのメッセージに対応します。再試行で二重送信されないようidempotency_keyを渡してください。再試行では同じキーと同一のリクエストの両方を再利用する必要があり、そうでない場合SendHQは409を返します。attachmentsは、下書きを作成し、各ファイルをアップロードして、その下書きで送信する便利機能です。idempotency_keyやdraft_idとは併用できません(再試行しても安全な添付ファイル付き送信には、create_draft + upload_attachment + draft_idを指定したsend_emailを使ってください)。未払いのワークスペース(連携トライアル)は、アカウントのメールアドレスまたはAWS SESシミュレーターのアドレスにのみ配信でき、添付ファイルは送信できません。
html、text、templateのうち少なくとも1つを指定してください。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
from | string | はい | 送信者。例:Acme <hello@example.com>。ドメインがこのワークスペースで検証済みである必要があります(list_sending_identitiesを参照)。(最大998文字) |
to | string[] | はい | 受信者。各エントリーはアドレスで、表示名を付けることもできます。to+cc+bccの合計は最大100件で、宛先ごとに配信クレジットを1つ消費します。(1〜100件) |
cc | string[] | いいえ | Ccの受信者。(0〜100件) |
bcc | string[] | いいえ | Bccの受信者。(0〜100件) |
subject | string | いいえ | 件名。テンプレートを送信する場合は省略します。(最大998文字) |
text | string | いいえ | プレーンテキストの本文。text、html、templateのいずれかを指定してください。 |
html | string | いいえ | HTMLの本文。SendHQがサニタイズし、textが省略された場合はテキスト版を生成します。 |
reply_to | string | いいえ | Reply-Toアドレス。 |
headers | object | いいえ | 追加の安全なカスタムヘッダー(値は文字列)。例:{"X-Entity-Ref-ID": "123"}。From/To/Message-IDなどのルーティングヘッダーはSendHQが制御します。 |
message_class | string | いいえ | transactional(デフォルト)またはmarketing。マーケティングには、マーケティングが有効なプランまたはドメインが必要で、配信停止の処理が追加されます。(transactional、marketingのいずれか) |
reply_to_email_id | string | いいえ | 既存の会話の中で返信します。返信先のメッセージのem_… IDを指定します。SendHQがIn-Reply-To/Referencesとスレッドを設定します。 |
thread_id | string | いいえ | メッセージを振り分ける明示的なスレッドID。 |
draft_id | string | いいえ | 保存済みの下書き(dr_…)の添付ファイルをこのメッセージで送信します。送信が成功すると下書きは削除されます。 |
template | object | いいえ | 直接指定したhtml/textの代わりに、公開済みのホスト型テンプレートを送信します。to受信者がちょうど1人で、cc/bccがないことが必要です。件名はテンプレートが提供します。id、keyのうち少なくとも1つを指定してください。 |
template.id | string | いいえ | テンプレートID(tmpl_…)。idまたはkeyを指定してください。 |
template.key | string | いいえ | account-welcomeなどのテンプレートキー。idまたはkeyを指定してください。 |
template.version_id | string | いいえ | 任意の公開済みリリースID(tmplv_…)。デフォルトは現在の公開済みリリースです。 |
template.data | object | いいえ | テンプレートの型付き変数に渡す値。 |
labels | string[] | いいえ | このメッセージを振り分けるラベル名またはlbl_… ID。存在しない名前は作成されます。会話内の返信はラベルを引き継ぎ、バケットのラベル(skip_inbox)はそれらの返信を受信トレイに入れません。最大10個。(0〜10件) |
idempotency_key | string | いいえ | Idempotency-Keyヘッダー(最大200文字)。このリクエストをまったく同じ内容で再試行する場合にのみ再利用してください。(最大200文字) |
attachments | object[] | いいえ | 添付するファイル(最大10ファイル、合計10 MB)。それぞれcontent_base64(とfilename)またはローカルのfile_pathが必要です。(0〜10件)content_base64、file_pathのうち少なくとも1つを指定してください。 |
attachments[].filename | string | いいえ | 受信者に表示されるファイル名。content_base64を使う場合は必須です。デフォルトはfile_pathのベース名です。(最大255文字) |
attachments[].content_type | string | いいえ | MIMEタイプ。例:application/pdf。デフォルトはapplication/octet-streamです。 |
attachments[].content_base64 | string | いいえ | 標準のbase64でエンコードしたファイルの内容。 |
attachments[].file_path | string | いいえ | MCPサーバーのプロセスが読み取れるローカルファイルの絶対パス。 |
{
"name": "send_email",
"arguments": {
"from": "Acme <hello@example.com>",
"to": [
"owner@example.com"
],
"subject": "Your export is ready",
"text": "Download it from your dashboard.",
"idempotency_key": "export-ready-42"
}
}send_batch個別化したメールを一括送信する
SENDS REAL EMAIL。1回のリクエストで1〜100通の独立したメッセージを送信します(受信者ごとにテンプレートを個別化する場合はこれを使います)。各項目はsend_emailと同じ形式です(attachments/idempotency_keyを除く)。項目ごとに個別に成功または失敗します。HTTP 207は一部成功を意味するため、各data[i].okとdata[i].errorを確認してください。1つのidempotency_keyがバッチのボディ全体に適用されます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
emails | object[] | はい | 送信するメッセージ。(1〜100件)html、text、templateのうち少なくとも1つを指定してください。 |
idempotency_key | string | いいえ | バッチ全体に対するIdempotency-Key(最大200文字)。(最大200文字) |
{
"name": "send_batch",
"arguments": {
"emails": [
{
"from": "Acme <hello@example.com>",
"to": [
"owner@example.com"
],
"template": {
"key": "account-welcome",
"data": {
"first_name": "Asha"
}
}
}
],
"idempotency_key": "welcome-batch-2026-09-26"
}
}list_emailsメールを一覧表示・検索する
送信済みメール(direction: out)と受信メール(direction: in)を、フィルター付きで新しい順に一覧表示します。受信メールは分類されています。人間の受信トレイを読むにはdirection: in、archived: false、category: primaryを指定し、優先度の判断にはimportant: trueを使います。迷惑メールは、category: spamまたはinclude_spam: trueを指定しない限り非表示です。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
direction | string | いいえ | 受信メールはin、送信済みメールはout。(in、outのいずれか) |
status | string | いいえ | ステータスによるフィルター。例:queued、sent、delivered、bounced、complained、failed。 |
domain | string | いいえ | このドメイン、またはカンマ区切りのドメインのリスト(いずれかに一致)のメッセージのみ。 |
inbox_id | string | いいえ | このインボックス(inb_…)が受信したメッセージのみ。 |
label | string | いいえ | このラベルが付いたメッセージのみ。ラベルID lbl_…または正確な名前、あるいはカンマ区切りのリスト(いずれかに一致)を指定します。フォルダを確認するにはlist_labelsを使ってください。 |
archived | boolean | いいえ | false = 受信トレイビュー(アーカイブされていない受信メール)、true = アーカイブ済みのみ。すべてのメールを対象にする場合は省略します。 |
category | string | いいえ | primary(人からのメール)、updates(ニュースレター、一斉送信メール、自動送信メール)、spam、またはカンマ区切りのリスト。迷惑メールは指定しない限り非表示です。 |
important | boolean | いいえ | true = 重要フラグが付いたメッセージのみ(自分が開始した会話への返信と、重要とマークされた送信者からのメール)。 |
include_spam | boolean | いいえ | 結果に迷惑メールを含めます(すべてのフォルダを横断して検索する場合)。 |
from | string | いいえ | 送信者アドレスにこの値を含むもの。 |
to | string | いいえ | 受信者アドレスにこの値を含むもの。 |
unread | boolean | いいえ | true = 未読のみ、false = 既読のみ。 |
after | string | いいえ | ISO-8601形式のタイムスタンプ。この日時より後に作成されたメッセージのみ。(date-time) |
before | string | いいえ | ISO-8601形式のタイムスタンプ。この日時より前に作成されたメッセージのみ。(date-time) |
query | string | いいえ | 件名、本文、送信者/受信者のアドレス、添付ファイル名を対象としたフリーテキスト検索。(最大200文字) |
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_emails",
"arguments": {
"direction": "in",
"unread": true,
"limit": 25
}
}get_emailメールを1通取得する
ヘッダー、html/textの本文、ステータス、スレッドのメタデータ、添付ファイルのメタデータを含むメッセージを1通取得します(バイトデータはdownload_attachmentでダウンロードします)。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
email_id | string | はい | メールID(em_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "get_email",
"arguments": {
"email_id": "em_123"
}
}mark_email既読、アーカイブ、迷惑メール、重要としてマークする
1通のメッセージを更新します:read、archived、category(primary、updates、spam。受信メールのみ)、important。迷惑メールとして報告したり重要とマークしたりすると、SendHQはその送信者について学習し、今後のメールに反映します。このメッセージだけを変更するにはlearn: falseを渡します。少なくとも1つのフィールドを渡してください。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
email_id | string | はい | メールID(em_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
read | boolean | いいえ | true = 既読、false = 未読。 |
archived | boolean | いいえ | true = アーカイブ(受信トレイをスキップ)、false = 受信トレイに戻す。 |
category | string | いいえ | 受信メッセージをprimary、updates、spamのいずれかに移動します。(primary、updates、spamのいずれか) |
important | boolean | いいえ | メッセージに重要フラグを付ける、または外します。 |
learn | boolean | いいえ | false = この判定を送信者に対して記憶しない(デフォルトはtrue)。 |
{
"name": "mark_email",
"arguments": {
"email_id": "em_123",
"read": true
}
}delete_emailメールを削除する
DESTRUCTIVE:保持されているメッセージとその保存済み添付ファイルをSendHQから完全に削除します。すでに配信されたメッセージを取り消すものではありません。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
email_id | string | はい | メールID(em_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "delete_email",
"arguments": {
"email_id": "em_123"
}
}list_email_eventsメールの配信イベントを一覧表示する
送信済みメッセージ1通に対するプロバイダーのイベント:delivery、bounce、complaint、reject、open、click。これが、メッセージが配信されたかどうか、または失敗した理由を示す証拠です。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
email_id | string | はい | メールID(em_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_email_events",
"arguments": {
"email_id": "em_123"
}
}get_thread会話を取得する
会話内のすべてのメッセージ(送信・受信とも)を、それぞれの添付ファイルのメタデータとともに時系列順に取得します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
thread_id | string | はい | スレッドID(通常は最初のメッセージのem_… ID。任意のメールのthreadIdを参照)。(最大128文字) |
{
"name": "get_thread",
"arguments": {
"thread_id": "em_123"
}
}ラベルと自動振り分けルール
list_labelsラベルを一覧表示する
ワークスペースのラベル(フォルダ)を、合計数、未読数、自動振り分けルールとともに一覧表示します。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_labels",
"arguments": {}
}get_labelラベルを取得する
件数と自動振り分けルールを含むラベルを1つ取得します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
label_id | string | はい | ラベルID(lbl_で始まる)または正確なラベル名。(最大128文字) |
{
"name": "get_label",
"arguments": {
"label_id": "Billing"
}
}create_labelラベルを作成する
フォルダ型のラベルを作成します。skip_inbox: trueを設定すると、エージェントが管理するバケットになります。labels: [name]を指定して送信すると、返信はそのラベルに振り分けられ、受信トレイには入りません。任意の自動振り分けルールで、新しい送信メールや受信メールを振り分けられます(ルールのすべての条件に一致する必要があります)。保持済みのメールも振り分けるにはapply_to_existingを設定します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | はい | ラベル名。例:Billing、Clients/Acme。ワークスペース内で一意(大文字と小文字を区別しない)。(最大64文字) |
color | string | いいえ | #1a73e8のような16進数のカラーコード。任意。 |
skip_inbox | boolean | いいえ | バケットモード:このラベルが付いた受信メール(ルールによるもの、このラベル付きで送信した会話への返信、手動で付けたもの)はアーカイブされ、受信トレイではなくラベル内にのみ表示されます。 |
rules | object[] | いいえ | 任意の自動振り分けルール(最大20個)。それぞれinbox_id、from、to、subjectのうち少なくとも1つが必要です。(0〜20件) |
rules[].direction | string | いいえ | in(受信)またはout(送信)のメールのみ。両方を対象にする場合は省略します。(in、outのいずれか) |
rules[].inbox_id | string | いいえ | このインボックス(inb_…)が受信したメールのみ。受信アドレスごとに専用のフォルダへ振り分けられます。 |
rules[].from | string | いいえ | 送信者にこのテキストを含むもの(大文字と小文字を区別しない)。例:@stripe.com。(最大200文字) |
rules[].to | string | いいえ | To/Ccにこのテキストを含むもの(大文字と小文字を区別しない)。(最大200文字) |
rules[].subject | string | いいえ | 件名にこのテキストを含むもの(大文字と小文字を区別しない)。(最大200文字) |
rules[].skip_inbox | boolean | いいえ | 一致した受信メールをアーカイブし、受信トレイではなくラベルのフォルダにのみ表示します。 |
apply_to_existing | boolean | いいえ | ルールに一致する保持済みのメールも振り分けます。 |
{
"name": "create_label",
"arguments": {
"name": "Agent/Orders",
"skip_inbox": true,
"rules": [
{
"from": "@stripe.com"
}
]
}
}update_labelラベルの名前や色を変更する、またはバケットにする
ラベルの名前や色を変更したり、バケットモード(skip_inbox)を切り替えたりします。バケットモードを有効にすると、すでにそのラベルが付いている受信メールがアーカイブされます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
label_id | string | はい | ラベルID(lbl_で始まる)または正確なラベル名。(最大128文字) |
name | string | いいえ | 新しい名前。(最大64文字) |
color | string | いいえ | 新しい16進数のカラーコード。 |
skip_inbox | boolean | いいえ | バケットモード:このラベルが付いた受信メール(ルールによるもの、このラベル付きで送信した会話への返信、手動で付けたもの)はアーカイブされ、受信トレイではなくラベル内にのみ表示されます。 |
{
"name": "update_label",
"arguments": {
"label_id": "lbl_123",
"name": "Finance/Billing"
}
}delete_labelラベルを削除する
DESTRUCTIVE:ラベルとそのルールを削除します。メール自体は保持され、このラベルが外れるだけです。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
label_id | string | はい | ラベルID(lbl_で始まる)または正確なラベル名。(最大128文字) |
{
"name": "delete_label",
"arguments": {
"label_id": "lbl_123"
}
}create_label_rule自動振り分けルールを追加する
ラベルにルールを追加し、一致する新着メールを自動的に振り分けます。設定したすべての条件に一致する必要があります。受信アドレスごとに専用のフォルダを持たせるにはinbox_idを使い、受信トレイに入れないようにするにはskip_inboxを追加します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
label_id | string | はい | ラベルID(lbl_で始まる)または正確なラベル名。(最大128文字) |
direction | string | いいえ | in(受信)またはout(送信)のメールのみ。両方を対象にする場合は省略します。(in、outのいずれか) |
inbox_id | string | いいえ | このインボックス(inb_…)が受信したメールのみ。受信アドレスごとに専用のフォルダへ振り分けられます。 |
from | string | いいえ | 送信者にこのテキストを含むもの(大文字と小文字を区別しない)。例:@stripe.com。(最大200文字) |
to | string | いいえ | To/Ccにこのテキストを含むもの(大文字と小文字を区別しない)。(最大200文字) |
subject | string | いいえ | 件名にこのテキストを含むもの(大文字と小文字を区別しない)。(最大200文字) |
skip_inbox | boolean | いいえ | 一致した受信メールをアーカイブし、受信トレイではなくラベルのフォルダにのみ表示します。 |
apply_to_existing | boolean | いいえ | 一致する保持済みのメールも振り分けます。 |
{
"name": "create_label_rule",
"arguments": {
"label_id": "Billing",
"inbox_id": "inb_123",
"skip_inbox": true
}
}delete_label_rule自動振り分けルールを削除する
DESTRUCTIVE:自動振り分けルールを1つ削除します。すでに振り分けられたメールのラベルはそのまま残ります。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
label_id | string | はい | ラベルID(lbl_で始まる)または正確なラベル名。(最大128文字) |
rule_id | string | はい | ルールID(lrule_で始まる)。get_labelで取得します。(最大128文字) |
{
"name": "delete_label_rule",
"arguments": {
"label_id": "lbl_123",
"rule_id": "lrule_123"
}
}label_emailメールのラベルを追加・削除する
メッセージをフォルダ間で移動します。名前またはlbl_… IDでラベルを追加・削除します。addに存在しない名前を指定すると、createがfalseでない限りラベルが作成されます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
email_id | string | はい | メールID(em_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
add | string[] | いいえ | 追加するラベル。(0〜10件) |
remove | string[] | いいえ | 削除するラベル。(0〜10件) |
create | boolean | いいえ | addに存在しないラベルを作成します(デフォルトはtrue)。 |
{
"name": "label_email",
"arguments": {
"email_id": "em_123",
"add": [
"Billing"
],
"remove": [
"Support"
]
}
}下書き、添付ファイル、送信者ID
list_sending_identities検証済みの送信者IDを一覧表示する
このワークスペースが現在送信に使えるアドレスとドメイン(検証済みドメイン、そのデフォルトのFrom、有効なインボックスのアドレス)。有効なfromを選ぶため、send_emailの前に呼び出してください。
パラメータはありません。
{
"name": "list_sending_identities",
"arguments": {}
}create_draft下書きを作成する
作成画面用の下書きを作成します。下書きには添付ファイルを保持できます。下書きを作成し、upload_attachmentを実行してから、draft_idを指定してsend_emailを呼び出します。これ自体は何も送信しません。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
from | string | いいえ | 検証済みドメイン上の送信元アドレス(下書き中は空でもかまいません)。 |
to | string[] | いいえ | 受信者。(0〜100件) |
cc | string[] | いいえ | Ccの受信者。(0〜100件) |
bcc | string[] | いいえ | Bccの受信者。(0〜100件) |
subject | string | いいえ | 件名。(最大998文字) |
html | string | いいえ | HTMLの本文。 |
text | string | いいえ | プレーンテキストの本文。 |
reply_to_email_id | string | いいえ | この下書きが返信する対象のメールID。 |
thread_id | string | いいえ | この下書きが属するスレッドID。 |
{
"name": "create_draft",
"arguments": {
"from": "hello@example.com",
"to": [
"owner@example.com"
],
"subject": "Invoice"
}
}list_drafts下書きを一覧表示する
作成画面用の下書きを、更新日時の新しい順に一覧表示します。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_drafts",
"arguments": {}
}get_draft下書きを取得する
添付ファイルのメタデータを含む下書きを1つ取得します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
draft_id | string | はい | 下書きID(dr_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "get_draft",
"arguments": {
"draft_id": "dr_123"
}
}update_draft下書きの内容を置き換える
下書きの内容と受信者を置き換えます。これは完全な置き換えで、省略したフィールドはクリアされます。そのため、先にget_draftで読み取り、残したいフィールドをすべて送信してください。添付ファイルには影響しません。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
draft_id | string | はい | 下書きID(dr_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
from | string | いいえ | 検証済みドメイン上の送信元アドレス(下書き中は空でもかまいません)。 |
to | string[] | いいえ | 受信者。(0〜100件) |
cc | string[] | いいえ | Ccの受信者。(0〜100件) |
bcc | string[] | いいえ | Bccの受信者。(0〜100件) |
subject | string | いいえ | 件名。(最大998文字) |
html | string | いいえ | HTMLの本文。 |
text | string | いいえ | プレーンテキストの本文。 |
reply_to_email_id | string | いいえ | この下書きが返信する対象のメールID。 |
thread_id | string | いいえ | この下書きが属するスレッドID。 |
{
"name": "update_draft",
"arguments": {
"draft_id": "dr_123",
"from": "hello@example.com",
"to": [
"owner@example.com"
],
"subject": "Invoice (updated)",
"text": "Attached."
}
}delete_draft下書きを破棄する
DESTRUCTIVE:下書きを破棄し、その保存済み添付ファイルを完全に削除します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
draft_id | string | はい | 下書きID(dr_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "delete_draft",
"arguments": {
"draft_id": "dr_123"
}
}upload_attachment下書きに添付ファイルをアップロードする
下書きにファイルを1つアップロードします(1メッセージあたり最大10ファイル、合計10 MB)。content_base64またはローカルのfile_pathを指定してください。送信時に添付ファイルを使うには有料プランが必要です。
content_base64、file_pathのうち少なくとも1つを指定してください。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
draft_id | string | はい | 下書きID(dr_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
filename | string | いいえ | 受信者に表示されるファイル名。デフォルトはfile_pathのベース名です。(最大255文字) |
content_type | string | いいえ | MIMEタイプ。例:application/pdf。デフォルトはapplication/octet-streamです。 |
content_base64 | string | いいえ | 標準のbase64でエンコードしたファイルの内容。 |
file_path | string | いいえ | MCPサーバーのプロセスが読み取れるローカルファイルの絶対パス。 |
{
"name": "upload_attachment",
"arguments": {
"draft_id": "dr_123",
"filename": "invoice.pdf",
"content_type": "application/pdf",
"file_path": "/tmp/invoice.pdf"
}
}download_attachment添付ファイルをダウンロードする
非公開の添付ファイル(送信、受信、下書き)をダウンロードします。base64の内容を返すか、save_to_pathが設定されている場合はファイルを書き込みます(overwriteがtrueでない限り上書きは拒否されます)。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
attachment_id | string | はい | 添付ファイルID(att_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
save_to_path | string | いいえ | base64を返す代わりにファイルを書き込む、任意のローカルの絶対パス。 |
overwrite | boolean | いいえ | save_to_pathにある既存ファイルの置き換えを許可します。デフォルトはfalseです。 |
{
"name": "download_attachment",
"arguments": {
"attachment_id": "att_123",
"save_to_path": "/tmp/invoice.pdf"
}
}delete_attachment添付ファイルを削除する
DESTRUCTIVE:保存済みの添付ファイルを完全に削除します(例:送信前に下書きからファイルを取り除く)。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
attachment_id | string | はい | 添付ファイルID(att_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "delete_attachment",
"arguments": {
"attachment_id": "att_123"
}
}ホスト型テンプレート
list_templatesホスト型テンプレートを一覧表示する
ホスト型メールテンプレートを、公開状態と使用状況とともに一覧表示します。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
lifecycle | string | いいえ | active(デフォルト)、archived、all。(active、archived、allのいずれか) |
query | string | いいえ | 名前またはキーで検索します。(最大120文字) |
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_templates",
"arguments": {
"lifecycle": "active"
}
}create_templateホスト型テンプレートを作成する
編集可能な下書き付きのテンプレートを作成します。スターター(welcome、reset、receipt、blank)から作成することもできます。キーで送信する前に公開してください。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | はい | 人が読める名前。(最大120文字) |
key | string | いいえ | 送信用の固定キー:小文字、数字、ハイフンで構成され、英字で始まる(2〜64文字)。省略した場合は名前から生成されます。 |
starter | string | いいえ | スターターの内容。(blank、welcome、reset、receiptのいずれか) |
{
"name": "create_template",
"arguments": {
"name": "Account welcome",
"key": "account-welcome",
"starter": "welcome"
}
}get_templateテンプレートを取得する
テンプレートの現在の下書き(revision付き)、有効な公開済みリリース、リリース履歴、使用状況を取得します。IDまたはキーを指定できます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
template_id | string | はい | テンプレートID(tmpl_…)またはキー。(最大128文字) |
{
"name": "get_template",
"arguments": {
"template_id": "account-welcome"
}
}update_template_draftテンプレートの下書きを保存する
楽観的同時実行制御を使って、テンプレートの編集可能な下書きを保存します。get_templateで取得した現在のrevisionを渡してください(409は他の誰かが先に保存したことを意味します。再度読み取ってから再試行してください)。これは下書きの内容の完全な置き換えで、省略したフィールドはクリアされるため、残したいフィールドをすべて送信してください。プレースホルダーには{{variable}}を使います。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
template_id | string | はい | テンプレートIDまたはキー。(最大128文字) |
revision | integer | はい | get_templateで取得した現在の下書きのリビジョン。(1〜…) |
name | string | いいえ | テンプレート名。(最大120文字) |
subject_template | string | いいえ | プレースホルダーを含む件名。(最大998文字) |
preheader_template | string | いいえ | プレビューテキスト。(最大240文字) |
html_template | string | いいえ | プレースホルダーを含むHTMLの本文。 |
text_template | string | いいえ | プレースホルダーを含むプレーンテキストの本文。 |
from | string | いいえ | このテンプレートで送信する際のデフォルトの送信者。 |
reply_to | string | いいえ | デフォルトのReply-To。 |
variables | object[] | いいえ | 型付き変数の仕様。各項目:{key(小文字/アンダースコア), label, type: text|number|url|boolean, required(デフォルトはtrue), fallback, description}。 |
variables[].key | string | はい | |
variables[].label | string | いいえ | |
variables[].type | string | いいえ | (text、number、url、booleanのいずれか) |
variables[].required | boolean | いいえ | |
variables[].fallback | any | いいえ | |
variables[].description | string | いいえ | |
sample_data | object | いいえ | プレビューとテストに使うサンプル値。 |
{
"name": "update_template_draft",
"arguments": {
"template_id": "account-welcome",
"revision": 3,
"name": "Account welcome",
"subject_template": "Welcome, {{first_name}}",
"text_template": "Hi {{first_name}}",
"variables": [
{
"key": "first_name",
"type": "text",
"required": true
}
],
"sample_data": {
"first_name": "Asha"
}
}
}create_template_draft公開済みリリースから新しい下書きを開始する
現在の公開済みリリースをコピーして、編集可能な新しい下書きを作成します(下書きがすでに存在する場合や、何も公開されていない場合は409)。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
template_id | string | はい | テンプレートIDまたはキー。(最大128文字) |
{
"name": "create_template_draft",
"arguments": {
"template_id": "account-welcome"
}
}render_templateテンプレートのプレビューをレンダリングする
下書き、公開済みリリース、または特定のバージョンについて、指定したデータでサーバーの実際の出力(subject、html、text)をレンダリングします。送信は行いません。データが変数の仕様に違反している場合は、findingsとともに422を返します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
template_id | string | はい | テンプレートIDまたはキー。(最大128文字) |
version_id | string | いいえ | 任意のバージョンID。デフォルトは下書き、次に公開済みリリースです。 |
data | object | いいえ | 変数の値。デフォルトはそのバージョンのサンプルデータです。 |
{
"name": "render_template",
"arguments": {
"template_id": "account-welcome",
"data": {
"first_name": "Asha"
}
}
}send_template_testテンプレートのテストメールを送信する
SENDS REAL EMAIL。下書き(または指定したバージョン)の[Test]プレフィックス付きスナップショットを、指定した受信者に送信します。使用量にカウントされます。トライアル中のワークスペースは、アカウントのメールアドレスまたはSESシミュレーターのアドレスにのみ送信できます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
template_id | string | はい | テンプレートIDまたはキー。(最大128文字) |
to | string[] | はい | テストの受信者。(1〜100件) |
from | string | いいえ | 検証済みドメイン上の送信者。デフォルトはテンプレートのFromです。 |
version_id | string | いいえ | 任意のバージョンID。 |
data | object | いいえ | 変数の値。デフォルトはサンプルデータです。 |
{
"name": "send_template_test",
"arguments": {
"template_id": "account-welcome",
"to": [
"owner@example.com"
]
}
}publish_templateテンプレートのリリースを公開する
現在の下書きを、template.keyを指定したsend_emailが使用する変更不可のリリースとして公開します。バリデーションエラーがある場合は422とfindingsで失敗し、本番環境ですでに使われているテンプレートの現行の変数仕様を壊す場合は409で失敗します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
template_id | string | はい | テンプレートIDまたはキー。(最大128文字) |
{
"name": "publish_template",
"arguments": {
"template_id": "account-welcome"
}
}archive_templateテンプレートをアーカイブする
このテンプレートを使った新規送信を停止します(履歴は保持され、restore_templateで元に戻せます)。このキーで送信している連携はすべて404で失敗するようになります。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
template_id | string | はい | テンプレートIDまたはキー。(最大128文字) |
{
"name": "archive_template",
"arguments": {
"template_id": "account-welcome"
}
}restore_templateアーカイブしたテンプレートを復元する
アーカイブしたテンプレートを再び有効にします。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
template_id | string | はい | テンプレートIDまたはキー。(最大128文字) |
{
"name": "restore_template",
"arguments": {
"template_id": "account-welcome"
}
}ドメインとDNS
list_domainsドメインを一覧表示する
送信ドメインを、集約されたsetup_status(verified | checking | pending)、レコードごとのDNS状態、受信のステータスとともに一覧表示します。未検証のドメインはその場で再チェックされるため、時間がかかる場合があります。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_domains",
"arguments": {}
}get_domainドメインの設定詳細を取得する
1つのドメインについて、公開すべき正確なDNSレコード(type、name、value)、2つの公開リゾルバーから見た各レコードの現在の状態、修正方法付きのdns_issues、受信のステータスを取得します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | string | はい | ドメインID(dom_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "get_domain",
"arguments": {
"domain_id": "dom_123"
}
}add_domain送信ドメインを追加する
管理しているドメインを送信用に登録します。所有者が公開する必要のあるDNSレコード(SES Easy DKIMのCNAME)を返します。DNS自体は変更しません。プランのドメイン数の上限にカウントされます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | はい | ドメイン名のみ。例:example.com、mail.example.com。(最大253文字) |
default_from | string | いいえ | このドメインの任意のデフォルト送信元アドレス。 |
{
"name": "add_domain",
"arguments": {
"name": "example.com"
}
}verify_domainドメインを検証する
SES/DNSの検証チェックを今すぐ実行します。繰り返し実行しても安全です。DNSの変更後は30〜60秒ごとにポーリングしてください(反映には数分から数時間かかることがあります)。ステータスがverifiedになると送信できます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | string | はい | ドメインID(dom_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "verify_domain",
"arguments": {
"domain_id": "dom_123"
}
}delete_domainドメインを削除する
DESTRUCTIVE:受信のルーティングを含め、ドメインをワークスペースから削除します。その直後から、このドメインからの送信は失敗します。DNSプロバイダー上のDNSレコードは削除されません。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | string | はい | ドメインID(dom_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "delete_domain",
"arguments": {
"domain_id": "dom_123"
}
}get_dns_providerDNSプロバイダーとレコードのホストを検出する
ドメインの権威DNSプロバイダーを検出し、各レコードについてそのプロバイダーに入力する相対ホスト、推奨されるDMARCレコード、受信用MXのガイダンス、ワンクリック設定(Domain Connect)が利用可能かどうかを返します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | string | はい | ドメインID(dom_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "get_dns_provider",
"arguments": {
"domain_id": "dom_123"
}
}get_domain_connect_linkワンクリックDNS設定のリンクを取得する
get_dns_providerがproviders.domainConnect.availableを報告した場合に、署名付きの同意URLを作成します。これを人間に渡してください。本人がURLを開き、プロバイダー上でDNSの変更を承認します。承認されるまで何も変更されません。非対応の場合は409。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | string | はい | ドメインID(dom_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "get_domain_connect_link",
"arguments": {
"domain_id": "dom_123"
}
}メール受信
setup_inboundドメインのメール受信を有効にする
検証済みドメインでSESのメール受信を準備します。ルートドメインに競合するMXがない場合はルートドメインを使い、ある場合はinbound.<domain>を使います。所有者が公開する必要のあるMXレコードを返します。DNSは編集しません。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | string | はい | ドメインID(dom_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "setup_inbound",
"arguments": {
"domain_id": "dom_123"
}
}verify_inbound受信用MXを検証する
受信用MXレコードを再チェックします。両方の公開リゾルバーから確認できると、ステータスがreadyになります。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | string | はい | ドメインID(dom_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "verify_inbound",
"arguments": {
"domain_id": "dom_123"
}
}list_inboxes受信用アドレスを一覧表示する
受信用アドレスを一覧表示します。1つのドメインに絞り込むこともできます。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | string | いいえ | 任意のドメインIDによるフィルター。 |
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_inboxes",
"arguments": {
"domain_id": "dom_123"
}
}get_inboxインボックスを取得する
受信用アドレスを1つ取得します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
inbox_id | string | はい | インボックスID(inb_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "get_inbox",
"arguments": {
"inbox_id": "inb_123"
}
}create_inbox受信用アドレスを作成する
受信のステータスがreadyのドメイン上に、support@<receiving domain>のようなアドレスを作成します(先にsetup_inboundとverify_inboundを実行してください)。受信したメールは、direction inとしてlist_emailsに表示されます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | string | はい | ドメインID(dom_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
local_part | string | はい | @より前の部分。例:support。(最大64文字) |
name | string | いいえ | 任意の表示名。 |
{
"name": "create_inbox",
"arguments": {
"domain_id": "dom_123",
"local_part": "support",
"name": "Support"
}
}update_inboxインボックスの名前を変更する、有効化する、無効化する
インボックスの名前を変更するか、ステータスをactive / disabledに設定します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
inbox_id | string | はい | インボックスID(inb_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
name | string | いいえ | 新しい表示名。 |
status | string | いいえ | 新しいステータス。(active、disabledのいずれか) |
{
"name": "update_inbox",
"arguments": {
"inbox_id": "inb_123",
"status": "disabled"
}
}set_inbox_forwardingインボックスを別のアドレスに転送する
アカウント所有者以外に転送する場合はSENDS REAL EMAIL。インボックスが受信したメールの転送先を設定します。所有者自身のアドレスは即座に有効になります。それ以外のアドレスには確認メールが届き、転送先で誰かが確認するまで転送はpendingのままです。転送を無効にするにはforward_to: nullを渡します。転送されたコピーはインボックスのアドレスから送信され、元の送信者がReply-Toに設定されます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
inbox_id | string | はい | インボックスID(inb_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
forward_to | string,null | はい | 転送先のメールアドレス。転送を無効にする場合はnull。(最大254文字) |
{
"name": "set_inbox_forwarding",
"arguments": {
"inbox_id": "inb_123",
"forward_to": "team@example.net"
}
}delete_inboxインボックスを削除する
DESTRUCTIVE:受信用アドレスを削除します。受信済みのメールは保持されますが、このアドレス宛ての新着メールはここに振り分けられなくなります。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
inbox_id | string | はい | インボックスID(inb_で始まる)。一覧取得ツールや作成ツールから返されたもの。(最大128文字) |
{
"name": "delete_inbox",
"arguments": {
"inbox_id": "inb_123"
}
}到達率、バウンス、サプレッション
deliverability_stats過去30日間の配信統計を取得する
ワークスペース全体の過去30日間の合計:sent、delivery、bounce、complaint、reject、open、click、deliveryRate(%)。
パラメータはありません。
{
"name": "deliverability_stats",
"arguments": {}
}list_sender_reputation送信者レピュテーションを一覧表示する
Fromアドレスごとのレピュテーションの状態:active、throttled(1日あたりの上限が低い)、paused(送信すると423が返る)と、その理由および1日あたりの上限。送信が423や429で失敗した場合に確認してください。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_sender_reputation",
"arguments": {}
}list_suppressionsサプレッションを一覧表示する
ワークスペースのサプレッションリスト:恒久的なバウンスまたは迷惑メール報告の後にブロックされた受信者です。これらの受信者への送信は422で失敗します。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_suppressions",
"arguments": {}
}remove_suppressionバウンスのサプレッションを解除する
DESTRUCTIVE(安全のためのブロックを弱めます):バウンスのサプレッションを解除し、そのアドレスに再びメールを送れるようにします。アドレスが現在は有効であることを人間が確認した場合にのみ実行してください。苦情によるサプレッションは解除できません(409)。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | はい | サプレッション対象の受信者アドレス。(最大320文字) |
{
"name": "remove_suppression",
"arguments": {
"email": "fixed-mailbox@example.net"
}
}list_blocked_recipientsブロックされた受信者を一覧表示する
SendHQが送信を拒否するすべての受信者(バウンス、苦情、ドメイン単位のマーケティングの配信停止)を、種類別のサマリーとともに返します。最新の500件まで読み取ります。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_blocked_recipients",
"arguments": {}
}アカウント、使用量、分析、キー
get_accountアカウント、使用量、請求情報を取得する
アカウント所有者のメールアドレス、プラン/アクセスティア、当期の受信者配信数の使用量とクォータ、ドメインの使用数と上限、添付ファイルの転送量、レピュテーションのサマリー、サブスクリプションの状態、公開されているプラン、ワークスペースの各種件数。残りのクォータや、トライアルで配信できる相手(アカウントのメールアドレス)の確認に使います。
パラメータはありません。
{
"name": "get_account",
"arguments": {}
}get_analytics送信の分析データを取得する
過去7日、30日、90日間のダッシュボード分析:sent/received/delivered/bounced/blocked/opened/clicked/complaintの合計、日別のタイムライン、送信数の多いドメイン、件名の上位。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
days | integer | いいえ | 日数単位の期間:7、30(デフォルト)、90。(7、30、90のいずれか) |
{
"name": "get_analytics",
"arguments": {
"days": 30
}
}list_api_keysAPIキーのメタデータを一覧表示する
APIキーの名前、秘密でないプレフィックス、最終使用日時を一覧表示します。読み取り専用:このMCPサーバーはキーの作成、ローテーション、失効ができません。それらは人間がダッシュボードで行います。ページネーションあり:結果にはpagination {offset, limit, returned, total?, has_more, next_offset}が含まれます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | いいえ | ページサイズ。デフォルトは50です。(デフォルト50、1〜200) |
offset | integer | いいえ | スキップするレコード数。前のページのpagination.next_offsetを使います。(デフォルト0、0〜…) |
{
"name": "list_api_keys",
"arguments": {}
}get_service_healthSendHQサービスの稼働状況を確認する
SendHQ APIが稼働しているかどうかと、どのメールプロバイダーが有効かを確認します。有効なAPIキーは不要です。
パラメータはありません。
{
"name": "get_service_health",
"arguments": {}
}APIカバレッジ一覧
公開APIのすべての操作と、それに対応するツールです。ダッシュボードでできる操作のうちAPIがあるものはすべてカバーしています。以下の除外は意図的なものです。
| エンドポイント | ツール | 備考 |
|---|---|---|
| POST /emails | send_email | メールを1通送信する |
| POST /emails/batch | send_batch | 個別化したメッセージを最大100通送信する |
| GET /emails | list_emails | 送信済みメールと受信メールを一覧表示する |
| GET /emails/:id | get_email | メールとその添付ファイルを取得する |
| PATCH /emails/:id | mark_email | 既読、アーカイブ、迷惑メール、カテゴリ、重要度を更新する |
| POST /emails/:id/labels | label_email | メールのラベルを追加・削除する |
| DELETE /emails/:id | delete_email | 保持されているメールを削除する |
| GET /emails/:id/events | list_email_events | メールの配信イベントを一覧表示する |
| GET /threads/:id | get_thread | 会話を時系列順に取得する |
| GET /labels | list_labels | メッセージ数と振り分けルールを含めてラベルを一覧表示する |
| POST /labels | create_label | ラベルを作成する(自動振り分けルールも指定可能) |
| GET /labels/:id | get_label | IDまたは名前でラベルを取得する |
| PATCH /labels/:id | update_label | ラベルの名前や色を変更する、またはバケットにする |
| DELETE /labels/:id | delete_label | メールを削除せずにラベルを削除する |
| POST /labels/:id/rules | create_label_rule | ラベルに自動振り分けルールを追加する |
| DELETE /labels/:id/rules/:rule_id | delete_label_rule | 自動振り分けルールを削除する |
| POST /drafts | create_draft | 作成画面用の下書きを作成する |
| GET /drafts | list_drafts | 作成画面用の下書きを一覧表示する |
| GET /drafts/:id | get_draft | 下書きと添付ファイルを取得する |
| PUT /drafts/:id | update_draft | 下書きの内容を置き換える |
| DELETE /drafts/:id | delete_draft | 下書きを破棄する |
| POST /drafts/:id/attachments | upload_attachment | 下書きに添付ファイルをアップロードする |
| GET /attachments/:id | download_attachment | 非公開の添付ファイルをダウンロードする |
| DELETE /attachments/:id | delete_attachment | 非公開の添付ファイルを削除する |
| GET /sending-identities | list_sending_identities | 検証済みの送信者IDを一覧表示する |
| GET /templates | list_templates | ホスト型テンプレートを一覧表示する |
| POST /templates | create_template | ホスト型テンプレートを作成する |
| GET /templates/:id | get_template | 下書き、リリース、使用状況を取得する |
| PUT /templates/:id/draft | update_template_draft | テンプレートの下書きを自動保存する |
| POST /templates/:id/draft | create_template_draft | 公開済みリリースから新しい下書きを作成する |
| POST /templates/:id/render | render_template | サーバーの出力をそのままレンダリングする |
| POST /templates/:id/test | send_template_test | テスト用スナップショットを送信する |
| POST /templates/:id/publish | publish_template | 変更不可のテンプレートリリースを公開する |
| POST /templates/:id/archive | archive_template | テンプレートをアーカイブする |
| POST /templates/:id/restore | restore_template | アーカイブしたテンプレートを復元する |
| POST /domains | add_domain | 送信ドメインを追加する |
| GET /domains | list_domains | ドメインとキャッシュ済みのDNS状態を一覧表示する |
| GET /domains/:id | get_domain | ドメインの設定詳細を取得する |
| POST /domains/:id/verify | verify_domain | SESとDNSの検証を更新する |
| POST /domains/:id/inbound/setup | setup_inbound | SESのメール受信を準備する |
| POST /domains/:id/inbound/verify | verify_inbound | 受信用MXのルーティングを検証する |
| DELETE /domains/:id | delete_domain | ドメインを削除する |
| GET /dns/provider | get_dns_provider | 権威DNSプロバイダーとレコードの相対ホストを検出する |
| GET /dns/domain-connect/connect | get_domain_connect_link | ワンクリックDNS設定用のDomain Connect同意リンクを作成する |
| POST /inboxes | create_inbox | 受信用アドレスを作成する |
| GET /inboxes | list_inboxes | 受信用アドレスを一覧表示する |
| GET /inboxes/:id | get_inbox | 受信用アドレスを取得する |
| PATCH /inboxes/:id | update_inbox | インボックスの名前を変更する、有効化する、無効化する |
| PUT /inboxes/:id/forwarding | set_inbox_forwarding | インボックスの受信メールを別のアドレスに転送する |
| DELETE /inboxes/:id | delete_inbox | メッセージを保持したままインボックスを削除する |
| GET /deliverability/stats | deliverability_stats | 過去30日間の配信統計を取得する |
| GET /deliverability/reputation | list_sender_reputation | 送信者IDごとのレピュテーションの状態を一覧表示する |
| GET /suppressions | list_suppressions | ワークスペースのサプレッションを一覧表示する |
| DELETE /suppressions/:email | remove_suppression | 削除可能なバウンスのサプレッションを解除する |
| GET /blocked-recipients | list_blocked_recipients | バウンス、苦情、配信停止を一覧表示する |
| GET /account | get_account | APIキーを使って、アカウント、使用量、請求状態、ワークスペースの各種件数を取得する |
| GET /analytics | get_analytics | 過去7日、30日、90日間のダッシュボードの送信分析を取得する |
| GET /profile | get_account | GET /accountのセッション専用版です。MCPサーバーはAPIキー用のルートを読み取ります。 |
| POST /billing/checkout | 公開していません | 請求の変更は設計上セッション専用で、アカウント所有者がダッシュボードで行う必要があります。請求状態はget_accountで読み取れます。 |
| POST /billing/cancel | 公開していません | 請求の変更は設計上セッション専用で、アカウント所有者がダッシュボードで行う必要があります。請求状態はget_accountで読み取れます。 |
| POST /keys | 公開していません | 意図的に除外しています。エージェントが認証情報を発行したり破棄したりしてはいけません。キーは人間がダッシュボードで管理します。 |
| GET /keys | list_api_keys | APIキーのメタデータを一覧表示する |
| DELETE /keys/:id | 公開していません | 意図的に除外しています。エージェントが認証情報を発行したり破棄したりしてはいけません。キーは人間がダッシュボードで管理します。 |
意図的に提供していない機能
| 機能 | エンドポイント | 理由 |
|---|---|---|
| APIキーの作成、ローテーション、失効、削除 | POST /keys, DELETE /keys/:id | 意図的に除外しています。エージェントが認証情報を発行したり破棄したりしてはいけません。キーは人間がダッシュボードで管理します。 |
| チェックアウトの開始またはサブスクリプションのキャンセル | POST /billing/checkout, POST /billing/cancel | 請求の変更は設計上セッション専用で、アカウント所有者がダッシュボードで行う必要があります。請求状態はget_accountで読み取れます。 |
| CloudflareのワンクリックDNS設定(OAuth) | GET /api/dns/cloudflare/connect | 対話的なブラウザセッションとCloudflareのOAuth同意が必要です。代わりに、get_domainのレコード、get_dns_providerのホスト、またはget_domain_connect_linkを使ってください。 |
| サインアップ、ログイン、ログアウト、Googleアカウントの連携 | /api/auth/* | 人間によるブラウザ認証です。MCPサーバーはAPIキーで認証します。 |
| サポートへのお問い合わせフォーム | POST /api/contact | 人間向けの公開マーケティングサイトのフォームで、ワークスペースの操作ではありません。 |
機械可読なカタログ:/docs/mcp/tools.json(スキーマ、アノテーション、エンドポイントの対応、除外項目)。このページのMarkdown版:/docs/mcp.md。CLIをインストールしていれば、sendhq commands --format jsonで同じカタログを出力できます。