AhaSend Email API & SMTP relay

chính thức

Gửi email, tìm hiểu lý do email gửi thất bại, thiết lập tên miền gửi và quản lý mẫu, liên hệ, danh sách và chiến dịch trong tài khoản AhaSend của bạn.

Bạn có thể làm gì với AhaSend Email API & SMTP Relay MCP?

  • Gửi email — Yêu cầu trợ lý gửi email một lần, email theo mẫu hoặc email hội thoại, và hủy một lần gửi đã lên lịch.
  • Chẩn đoán gửi thư — Tra cứu tin nhắn, tìm hiểu lý do email bị lỗi, và lấy số liệu thống kê về khả năng gửi đến, thư trả lại và thời gian gửi.
  • Quản lý tên miền — Liệt kê, thêm, cập nhật và xóa tên miền gửi, và kiểm tra bản ghi DNS của tên miền.
  • Xây dựng mẫu — Tạo, cập nhật, xuất bản và tạo phiên bản cho mẫu và mẫu chiến dịch, chỉnh sửa thiết kế Simple Editor dưới dạng đánh dấu AhaML.
  • Quản lý đối tượng — Tạo và cập nhật liên hệ, danh sách và phân khúc, thêm liên hệ vào danh sách, và xem trước một phân khúc.
  • Chạy chiến dịch — Tạo, nhân bản, kiểm thử, gửi và lên lịch chiến dịch, sau đó kiểm tra số liệu thống kê và người nhận của chiến dịch.

Máy chủ MCP được lưu trữ

npx add-mcp 'https://mcp.ahasend.com/mcp'

Cài vào Claude Code, Codex, Cursor và nhiều công cụ khác

Tài liệu

ahasend-mcp

Một module Go với các công cụ MCP cho AhaSend. Với các công cụ này, một tác nhân AI có thể gửi email, tìm hiểu lý do một email thất bại, và quản lý tên miền, mẫu, liên hệ, danh sách, chiến dịch, webhook, tuyến, danh sách chặn, thông tin đăng nhập SMTP và tài khoản con.

Mỗi công cụ gọi API AhaSend v2 thông qua ahasend-go. Phạm vi của khóa API quyết định những gì tác nhân có thể làm.

Module xây dựng một máy chủ với SDK MCP Go chính thức. Chương trình của bạn chọn cách phục vụ nó: stdio, HTTP, hoặc bất kỳ giao vận SDK nào khác.

go get github.com/AhaSend/ahasend-mcp

Ví dụ

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

Tùy chọn

TrườngChức năng
ClientClient ahasend-go, kèm khóa API. Bắt buộc.
AccountIDTài khoản mà các công cụ thao tác trên đó. Bắt buộc.
DashboardBaseURLURL bảng điều khiển AhaSend, dùng trong liên kết chiến dịch. Bắt buộc.
ConfirmationKeyMột bí mật ít nhất 32 byte để ký các câu hỏi gửi chiến dịch. Bắt buộc.
ScopesPhạm vi của khóa API. Chỉ những công cụ mà khóa có thể dùng mới được hiển thị. nil hiển thị mọi công cụ.
ToolsetsChỉ hiển thị các bộ công cụ này. nil hiển thị tất cả.
ReadOnlyChỉ hiển thị các công cụ không thay đổi gì.
StatelessĐặt thành true nếu bạn phục vụ qua HTTP không trạng thái.
MaxRecipientsPerSendSố người nhận tối đa cho một lần gửi. Mặc định 50.
ReadInboundCho phép các công cụ tin nhắn trả về email mà tài khoản đã nhận. Mặc định tắt.
BlockedNếu được đặt, mọi lời gọi công cụ trả về văn bản này như một lỗi và không làm gì cả.
RecorderNhận một bản ghi cho mỗi lời gọi công cụ: tên công cụ, thành công, loại lỗi và thời gian thực hiện. Không bao giờ ghi đầu vào hay kết quả.

Nếu bạn phục vụ nhiều người dùng, hãy xây dựng một máy chủ mới cho mỗi yêu cầu với khóa và phạm vi của người dùng đó. Việc này rẻ. Dùng cùng ConfirmationKey trên mọi phiên bản.

Catalogue() liệt kê mọi công cụ cùng các phạm vi mà nó cần. OfferedScopes() liệt kê mọi phạm vi mà các công cụ sử dụng, cho một trang nơi người dùng chọn phạm vi.

Công cụ

Bộ công cụCông cụ
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

Mỗi công cụ cần các phạm vi mà điểm cuối API của nó cần. send_campaign và schedule_campaign cũng cần campaigns:read và lists:read, và segments:read để gửi một chiến dịch sử dụng phân khúc. Các công cụ mẫu chiến dịch cũng cần campaigns:read. preview_segment, list_segment_contacts và list_contact_segments cần contacts:read cũng như segments:read.

Các công cụ liệt kê trả về 20 mục theo mặc định và tối đa 100. Truyền con trỏ được trả về để lấy trang tiếp theo.

Không có công cụ nào để tạo khóa API hay thông tin đăng nhập SMTP, thay đổi cài đặt tài khoản, thanh toán hay thành viên nhóm, xóa toàn bộ danh sách chặn, hoặc xóa hay tạm ngưng tài khoản con.

Thiết kế Simple Editor và AhaML

Các công cụ mẫu, mẫu chiến dịch và chiến dịch đọc và ghi một thiết kế của Simple Editor trong bảng điều khiển dưới dạng AhaSend Markup (AhaML), một dạng XML của thiết kế, trong trường markup của nội dung. get_template trả về bản sao làm việc của một mẫu, tức bản nháp khi nó tồn tại, để tác nhân chỉnh sửa đúng thứ nó đã đọc; get_published_template trả về bản sao mà một lần gửi sử dụng.

Máy chủ có một tài nguyên, ahasend://docs/ahaml: tài liệu tham chiếu AhaML, với mọi thẻ, thuộc tính, giới hạn và mã lỗi. Nó cũng có tại https://ahasend.com/docs/send-api/ahaml. Tài nguyên được liệt kê trên mọi kết nối, nên một tác nhân không có truy cập web vẫn có thể đọc nó.

Quy tắc an toàn

Gửi chiến dịch cần sự đồng ý của một người. send_campaign và schedule_campaign hiển thị cho người dùng một biểu mẫu với thời gian gửi, số lượng liên hệ, tên chiến dịch, tiêu đề, người gửi, danh sách và phân khúc, cùng các danh sách và phân khúc bị loại trừ. Chúng chỉ gửi nếu người dùng trả lời có. Nếu chiến dịch thay đổi sau câu hỏi, công cụ sẽ hỏi lại. Nếu client không thể hiển thị biểu mẫu, công cụ không gửi gì và trả về một liên kết đến chiến dịch trong bảng điều khiển.

Gửi một lần có giới hạn người nhận. Một lần gửi đến hơn MaxRecipientsPerSend người nhận (mặc định 50) sẽ bị từ chối. Dùng một chiến dịch cho email hàng loạt.

Email nhận được bị ẩn theo mặc định. Bất kỳ ai cũng có thể gửi email đến các địa chỉ nhận thư của một tài khoản, và email đó có thể chứa văn bản nhằm đánh lừa tác nhân. Trừ khi ReadInbound được bật, các công cụ tin nhắn không trả về email đã nhận. Khi nó được bật, các tin nhắn đã nhận được đánh dấu untrusted: true.

Lỗi

Khi API từ chối một lời gọi, công cụ trả về một lỗi kèm thông điệp của API và việc cần làm tiếp theo. Khi nó từ chối AhaML, lỗi liệt kê các vấn đề, tối đa 100 vấn đề đầu tiên, mỗi vấn đề kèm mã, dòng, cột, đường dẫn và gợi ý; thông điệp của API cho biết có bao nhiêu vấn đề.

Dùng thử cục bộ

cmd/ahasend-mcp-dev phục vụ mọi công cụ qua stdio với khóa API của chính bạn. Nó chỉ dành cho việc kiểm thử.

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

Đặt AHASEND_BASE_URL để dùng một API khác với mặc định.

Giấy phép

MIT