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{})

選項

欄位作用
Clientahasend-go 用戶端,內含 API 金鑰。必填。
AccountID工具運作所在的帳戶。必填。
DashboardBaseURLAhaSend 儀表板 URL,用於行銷活動連結。必填。
ConfirmationKey至少 32 位元組的密鑰,用於簽署行銷活動寄送確認問題。必填。
ScopesAPI 金鑰的範圍。只會顯示金鑰可使用的工具。nil 會顯示所有工具。
Toolsets只顯示這些工具集。nil 會顯示全部。
ReadOnly只顯示不會變更任何資料的工具。
Stateless若你透過無狀態 HTTP 提供服務,請設為 true。
MaxRecipientsPerSend單次寄送的收件者上限。預設為 50。
ReadInbound允許訊息工具傳回帳戶收到的電子郵件。預設為關閉。
Blocked若設定,每次工具呼叫都會以這段文字作為錯誤傳回,且不執行任何操作。
Recorder每次工具呼叫取得一筆記錄:工具名稱、是否成功、錯誤類型與耗時。絕不包含輸入或結果。

若你要服務多位使用者,請為每個請求以該 使用者的金鑰與範圍建立新的伺服器。這樣做成本很低。請在 每個執行個體上使用相同的 ConfirmationKey。

Catalogue() 會列出每個工具及其所需的範圍。 OfferedScopes() 會列出工具使用的所有範圍,供使用者 挑選範圍的頁面使用。

工具

工具集工具
sendingsend_email, send_conversation_email, send_template_email, cancel_scheduled_email
diagnosticslist_messages, get_message, diagnose_message, get_deliverability_stats, get_bounce_stats, get_delivery_time_stats
domainslist_domains, get_domain, add_domain, check_domain_dns, update_domain, delete_domain
templateslist_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
audiencelist_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
campaignslist_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
managementget_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