AhaSend について
AhaSend は、AhaSend でメール業務を管理するチーム向けの Go 製 MCP サーバーモジュールです。送信、診断、ドメイン、キャンペーン、連絡先、アカウント管理のツールを備え、API キーのスコープで操作権限を制御します。
主な機能
- 01メールの送信と予約
- 02配信失敗やバウンスの診断
- 03ドメインとテンプレートの管理
- 04連絡先、リスト、キャンペーンの管理
- 05Webhook とアカウントリソースの設定
活用シーン
- 01単発メールやテンプレートメールの送信
- 02送信に失敗したメールの調査
- 03キャンペーンと宛先の管理
- 04ドメイン、連絡先、Webhook の更新
MCP 対応
公式 Go MCP SDK を使って MCP サーバーを構築します。ホストアプリケーションは stdio、HTTP、または SDK の別のトランスポートで提供でき、利用可能なツールと権限は API キーのスコープに応じて決まります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.ahasend.com/mcpclaude mcp add --transport http com-ahasend https://mcp.ahasend.com/mcp{"mcpServers":{"com-ahasend":{"type":"http","url":"https://mcp.ahasend.com/mcp"}}}Cursor で開く{"servers":{"com-ahasend":{"type":"http","url":"https://mcp.ahasend.com/mcp"}}}VS Code で開く{"mcpServers":{"com-ahasend":{"type":"http","url":"https://mcp.ahasend.com/mcp"}}}{"mcpServers":{"com-ahasend":{"serverUrl":"https://mcp.ahasend.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
ahasend-mcp
AhaSend 用の MCP ツールを備えた Go モジュールです。 これらのツールを使うと、AI エージェントはメールの送信、メールが失敗した理由の確認、ドメイン、テンプレート、連絡先、リスト、キャンペーン、Webhook、ルート、抑制リスト、SMTP 認証情報、サブアカウントの管理を行えます。
各ツールは ahasend-go を介して AhaSend v2 API を呼び出します。エージェントが実行できる操作は、API キーのスコープによって決まります。
このモジュールは、official Go MCP SDK を使ってサーバーを構築します。stdio、HTTP、その他の SDK トランスポートなど、どの方法でサーバーを提供するかはプログラム側で選択できます。
go get github.com/AhaSend/ahasend-mcp
例
server, err := ahasendmcp.NewServer(
&mcp.Implementation{Name: "my-app", Version: "1.0.0"},
ahasendmcp.Options{
Client: api.NewAPIClient(api.WithAPIKey(apiKey)),
AccountID: accountID,
DashboardBaseURL: "https://dash.ahasend.com",
ConfirmationKey: key, // at least 32 random bytes
},
)
if err != nil {
return err
}
return server.Run(ctx, &mcp.StdioTransport{})
オプション
| フィールド | 説明 |
|---|---|
Client | API キーを設定した ahasend-go クライアントです。必須です。 |
AccountID | ツールが操作するアカウントです。必須です。 |
DashboardBaseURL | キャンペーンリンクに使用する AhaSend ダッシュボードの URL です。必須です。 |
ConfirmationKey | キャンペーン送信の確認内容に署名する、32 バイト以上のシークレットです。必須です。 |
Scopes | API キーのスコープです。キーで使用できるツールのみが表示されます。nil の場合はすべてのツールが表示されます。 |
Toolsets | これらのツールセットのみを表示します。nil の場合はすべて表示されます。 |
ReadOnly | 何も変更しないツールのみを表示します。 |
Stateless | ステートレス HTTP で提供する場合は true に設定します。 |
MaxRecipientsPerSend | 1 回の送信で指定できる宛先の最大数です。デフォルトは 50 です。 |
ReadInbound | メッセージツールがアカウントで受信したメールを返せるようにします。デフォルトではオフです。 |
Blocked | 設定すると、すべてのツール呼び出しがこのテキストをエラーとして返し、何も実行しません。 |
Recorder | ツール呼び出しごとに、ツール名、成功の有無、エラーの種類、所要時間を記録します。入力や結果は記録しません。 |
複数のユーザーにサービスを提供する場合は、各リクエストについて、そのユーザーのキーとスコープを使って新しいサーバーを構築してください。負荷は軽微です。すべてのインスタンスで同じ ConfirmationKey を使用してください。
Catalogue() は、必要なスコープとともにすべてのツールを一覧表示します。
OfferedScopes() は、ユーザーがスコープを選択するページ向けに、ツールで使用されるすべてのスコープを一覧表示します。
ツール
| ツールセット | ツール |
|---|---|
sending | send_email, send_conversation_email, send_template_email, cancel_scheduled_email |
diagnostics | list_messages, get_message, diagnose_message, get_deliverability_stats, get_bounce_stats, get_delivery_time_stats |
domains | list_domains, get_domain, add_domain, check_domain_dns, update_domain, delete_domain |
templates | list_templates, get_template, create_template, update_template, delete_template, get_template_draft, discard_template_draft, publish_template, list_template_versions, get_template_version, restore_template_version, list_campaign_templates, get_campaign_template, create_campaign_template, update_campaign_template, delete_campaign_template |
audience | list_contacts, get_contact, create_contact, upsert_contacts, update_contact, delete_contact, list_contact_lists, list_lists, get_list, create_list, update_list, delete_list, list_list_contacts, add_contacts_to_list, upsert_list_contact, remove_contact_from_list |
campaigns | list_campaigns, get_campaign, create_campaign, update_campaign, delete_campaign, duplicate_campaign, send_campaign_test, send_campaign, schedule_campaign, unschedule_campaign, get_campaign_stats, list_campaign_recipients |
management | get_account, list_webhooks, get_webhook, create_webhook, update_webhook, delete_webhook, list_routes, get_route, create_route, update_route, delete_route, list_suppressions, add_suppression, remove_suppression, list_smtp_credentials, get_smtp_credential, delete_smtp_credential, list_sub_accounts, get_sub_account, create_sub_account, update_sub_account, get_sub_account_usage |
各ツールには、対応する API エンドポイントが必要とするスコープが必要です。send_campaign と
schedule_campaign には、campaigns:read と lists:read も必要です。キャンペーンテンプレートのツールにも
campaigns:read が必要です。
一覧取得ツールはデフォルトで 20 件、最大 100 件を返します。次のページを取得するには、返された カーソルを渡してください。
API キーや SMTP 認証情報の作成、アカウント設定、請求、チームメンバーの変更、すべての抑制項目の削除、 サブアカウントの削除や一時停止を行うツールはありません。
安全ルール
キャンペーンの送信にはユーザーの承認が必要です。 send_campaign と
schedule_campaign は、送信時刻、連絡先の数、キャンペーン名、件名、送信者、リストを記載したフォームをユーザーに表示します。ユーザーが「はい」と回答した場合にのみ送信します。質問後にキャンペーンが変更された場合、ツールは再度確認します。クライアントでフォームを表示できない場合、ツールは何も送信せず、ダッシュボード内のキャンペーンへのリンクを返します。
1 回限りの送信には宛先数の上限があります。 MaxRecipientsPerSend(デフォルトは 50)を超える宛先への一括送信は拒否されます。一括メールにはキャンペーンを使用してください。
受信メールはデフォルトで非表示です。 アカウントの受信用アドレスには誰でもメールを送信でき、そのメールにはエージェントをだまそうとするテキストが含まれている可能性があります。ReadInbound が有効でない限り、メッセージツールは受信メールを返しません。有効な場合、受信メッセージには untrusted: true のマークが付けられます。
エラー
API が呼び出しを拒否すると、ツールは API のメッセージと次に行うべきことを含むエラーを返します。
ローカルで試す
cmd/ahasend-mcp-dev は、独自の API キーを使ってすべてのツールを stdio 経由で提供します。
テスト専用です。
go build -o ahasend-mcp-dev ./cmd/ahasend-mcp-dev
claude mcp add ahasend \
-e AHASEND_API_KEY=... -e AHASEND_ACCOUNT_ID=... \
-- ./ahasend-mcp-dev
デフォルト以外の API を使用するには、AHASEND_BASE_URL を設定します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。