AhaSend Email API & SMTP relay
官方傳送電子郵件、找出電子郵件失敗的原因、設定寄送網域,並在您的 AhaSend 帳戶中管理範本、聯絡人、清單和行銷活動。
你可以用 AhaSend Email API & SMTP Relay MCP 做什麼?
- 傳送電子郵件 — 請助理傳送一次性電子郵件、範本電子郵件或對話電子郵件,並取消已排程的傳送。
- 診斷投遞 — 查詢訊息、找出電子郵件失敗的原因,並取得可投遞性、退信和投遞時間的統計資料。
- 管理網域 — 列出、新增、更新和刪除寄送網域,並檢查網域的 DNS 記錄。
- 建立範本 — 建立、更新、發佈和版本化範本與活動範本,並以 AhaML 標記編輯 Simple Editor 設計。
- 管理受眾 — 建立和更新聯絡人、清單和區隔,將聯絡人加入清單,並預覽區隔。
- 執行活動 — 建立、複製、測試、傳送和排程活動,然後檢查活動統計資料和收件人。
託管 MCP 伺服器
npx add-mcp 'https://mcp.ahasend.com/mcp'可安裝到 Claude Code、Codex、Cursor 等客戶端
文件
ahasend-mcp
一個 Go 模組,內含 AhaSend 的 MCP 工具。 透過這些工具,AI 代理可以寄送電子郵件、查明郵件寄送失敗的原因, 並管理網域、範本、聯絡人、清單、行銷活動、Webhook、路由、 抑制名單、SMTP 憑證與子帳戶。
每個工具都會透過 ahasend-go 呼叫 AhaSend v2 API。API 金鑰的範圍 決定代理能執行哪些操作。
此模組使用 官方 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 | ahasend-go 用戶端,內含 API 金鑰。必填。 |
AccountID | 工具運作所在的帳戶。必填。 |
DashboardBaseURL | AhaSend 儀表板 URL,用於行銷活動連結。必填。 |
ConfirmationKey | 至少 32 位元組的密鑰,用於簽署行銷活動寄送確認問題。必填。 |
Scopes | API 金鑰的範圍。只會顯示金鑰可使用的工具。nil 會顯示所有工具。 |
Toolsets | 只顯示這些工具集。nil 會顯示全部。 |
ReadOnly | 只顯示不會變更任何資料的工具。 |
Stateless | 若你透過無狀態 HTTP 提供服務,請設為 true。 |
MaxRecipientsPerSend | 單次寄送的收件者上限。預設為 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, get_published_template, create_template, update_template, delete_template, 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, list_segments, get_segment, create_segment, update_segment, delete_segment, preview_segment, list_segment_contacts, list_contact_segments |
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,以及
segments:read,才能寄送使用區段的行銷活動。行銷活動
範本工具還需要 campaigns:read。preview_segment、
list_segment_contacts 與 list_contact_segments 需要 contacts:read
以及 segments:read。
清單工具預設傳回 20 個項目,最多 100 個。傳入傳回的 游標即可取得下一頁。
沒有工具可建立 API 金鑰或 SMTP 憑證、變更帳戶 設定、帳務或團隊成員、移除所有抑制項目,或刪除或 停用子帳戶。
Simple Editor 設計與 AhaML
範本、行銷活動範本與行銷活動工具會以 AhaSend Markup(AhaML)——設計的 XML 形式——讀寫儀表板 Simple Editor 的設計,
存放於內容的 markup 欄位中。get_template 會傳回
範本的工作副本,也就是存在草稿時的草稿,讓代理編輯
它所讀取的內容;get_published_template 會傳回寄送時使用的副本。
伺服器有一個資源,ahasend://docs/ahaml:AhaML 參考,
包含每個標籤、屬性、限制與錯誤碼。它也位於
https://ahasend.com/docs/send-api/ahaml。此資源會列在每個
連線上,因此沒有網路存取權的代理也能讀取它。
安全規則
行銷活動寄送需要使用者同意。 send_campaign 與
schedule_campaign 會向使用者顯示表單,包含寄送時間、聯絡人
數量、行銷活動名稱、主旨、寄件者、清單與區段,以及
排除的清單與區段。只有在使用者回答是時才會寄送。若
提問後行銷活動有所變更,工具會再次詢問。若用戶端
無法顯示表單,工具不會寄送任何內容,並傳回儀表板中
行銷活動的連結。
單次寄送有收件者上限。 單次寄送給超過
MaxRecipientsPerSend 位收件者(預設 50)會被拒絕。大量電子郵件請使用
行銷活動。
收到的電子郵件預設為隱藏。 任何人都可以寄送電子郵件到
帳戶的收件地址,而該電子郵件可能包含試圖
誘騙代理的文字。除非開啟 ReadInbound,否則訊息工具不會傳回
收到的電子郵件。開啟時,收到的訊息會標示為
untrusted: true。
錯誤
當 API 拒絕呼叫時,工具會傳回錯誤,包含 API 的 訊息與後續處理方式。當 API 拒絕 AhaML 時,錯誤會列出 問題,最多前 100 個,每個都包含其代碼、行、欄、路徑與 提示;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
設定 AHASEND_BASE_URL 以使用預設以外的 API。
授權
MIT