コンテンツにスキップ

MCP サーバー

SpacePost は Model Context Protocol に対応しているため、AI アシスタントがユーザーに代わってメールを送信し、ドメイン、API キー、Webhook、オーディエンス、コンタクト、一斉配信、送信停止リスト、テナントを管理できます。

API リファレンスのすべてのエンドポイントが MCP ツールです。 ツールはリファレンスと同じ OpenAPI ドキュメントから生成されるため、API に機能が追加されると、MCP サーバーでも自動的に使えるようになります。別のリストを管理したり、対応を待ったりする必要はありません。

接続方法は 2 つあります。

  • ホスト型(推奨): https://api.spacepost.dev/mcp。Streamable HTTP で、API キーで認証します。インストールは不要です。
  • ローカル: npx -y @spacepost/mcp。お使いのマシンから API を呼び出す stdio サーバーです。ツールの定義はパッケージに同梱されているため、オフラインでも起動します。

API キーを Bearer トークンとして送信します: Authorization: Bearer sp_live_...。

ターミナルウィンドウ
claude mcp add --transport http spacepost https://api.spacepost.dev/mcp \
--header "Authorization: Bearer sp_live_YOUR_API_KEY"

claude mcp list で確認できます。

URL のクエリパラメーターでツールを絞り込めます。例: https://api.spacepost.dev/mcp?read_only=true&toolsets=emails,domains

ホスト型サーバーはステートレスです。各リクエストは独立しているため、/mcp への GET と DELETE は 405 を返し、再開するセッションはありません。

ローカルでサーバーを実行する

Section titled “ローカルでサーバーを実行する”
変数 必須 説明
SPACEPOST_API_KEY はい API キー
SPACEPOST_BASE_URL いいえ 別の API の URL。既定値は https://api.spacepost.dev
SPACEPOST_DEFAULT_FROM いいえ アシスタントが from なしで send_email を呼び出したときに使う送信者。例: Acme <hello@acme.com>
SPACEPOST_READ_ONLY いいえ true は --read-only と同じです
SPACEPOST_TOOLSETS いいえ --toolsets と同じです。例: emails,domains
SPACEPOST_PERMISSION いいえ --permission と同じです。キーが送信専用の場合は sending_access を設定します
ターミナルウィンドウ
claude mcp add spacepost -e SPACEPOST_API_KEY=sp_live_YOUR_API_KEY -- npx -y @spacepost/mcp

既定の送信者を設定するには -e SPACEPOST_DEFAULT_FROM="Acme <hello@acme.com>" を追加します。パッケージ名の後にフラグを付けることもできます(例: npx -y @spacepost/mcp --read-only)。

npx -y @spacepost/mcp --help でオプションを一覧でき、--list-tools でその設定で公開されるツールを表示できます。

ローカルのフラグ ホスト型のクエリ 効果
--read-only read_only=true GET エンドポイントのツールのみ(list_*、get_*、get_broadcast_readiness)
--permission sending_access キーから自動判定 sending_access キーで使えるツールのみ
--toolsets emails,domains toolsets=emails,domains 指定した API 領域のツールのみ: emails、domains、apikeys、webhooks、audiences、contacts、broadcasts、suppressions、tenants(リファレンスのセクションです。大文字と小文字、スペース、ダッシュは無視されるため、api-keys も使えます)

両方を組み合わせることもできます。

  • エンドポイントごとに 1 つのツールがあり、エンドポイントの operationId をスネークケースにした名前が付きます。sendEmail は send_email、getBroadcastReadiness は get_broadcast_readiness、pauseTenant は pause_tenant になります。すべてのフィールドは API リファレンスに記載されています。
  • 引数は 1 つのフラットなオブジェクトです。パスパラメーター(スネークケース。例: id、audience_id、ref)、クエリパラメーター(limit、after、before)、JSON ボディのフィールド(from、to、subject など)を含みます。ボディのフィールドがパラメーターと同じ名前の場合は、body_<field> という名前になります。send_batch_emails の配列のように、オブジェクトではないボディは body として渡します。
  • send_email と send_batch_emails の idempotency_key は Idempotency-Key ヘッダーを設定するため、再試行しても二重に送信されません。
  • 結果は API の JSON レスポンスで、構造化コンテンツとしても返されます。エラーは、isError: true と、REST API と同じ { "statusCode", "name", "message" } のボディに、次に行うべきことのヒントを加えて返されます。
  • 注釈は、ツールが何をするかをクライアントに伝えます。読み取りツールは readOnlyHint、削除、cancel_email、pause_tenant は destructiveHint、メールを送信するツール(send_email、send_batch_emails、send_broadcast)は openWorldHint です。クライアントはこれを使って、ツールの実行前に確認を求めるかどうかを判断します。
  • 「onboarding@test.spacepost.dev から delivered@test.spacepost.dev に、挨拶のテストメールを送って。」
  • 「ドメイン acme.com を追加して、作成すべき DNS レコードを教えて。」
  • 「昨日 ada@example.com に送ったメールは配信された?」
  • 「ベータ版リスト宛てのスケジュール済みメールをキャンセルして。」
  • 「バウンスと苦情を https://acme.com/hooks に送る Webhook を作成して。」
  • 「Newsletter オーディエンス宛ての一斉配信を下書きして、到達率の問題がないか確認して。ただし、まだ送信はしないで。」
  • 「一時停止中のテナントはどれ? その理由も教えて。」