AhaSend Email API & SMTP relay
chính thứcGử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ường | Chức năng |
|---|---|
Client | Client ahasend-go, kèm khóa API. Bắt buộc. |
AccountID | Tài khoản mà các công cụ thao tác trên đó. Bắt buộc. |
DashboardBaseURL | URL bảng điều khiển AhaSend, dùng trong liên kết chiến dịch. Bắt buộc. |
ConfirmationKey | Mộ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. |
Scopes | Phạ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ụ. |
Toolsets | Chỉ hiển thị các bộ công cụ này. nil hiển thị tất cả. |
ReadOnly | Chỉ 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. |
MaxRecipientsPerSend | Số người nhận tối đa cho một lần gửi. Mặc định 50. |
ReadInbound | Cho 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. |
Blocked | Nế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ả. |
Recorder | Nhậ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ụ |
|---|---|
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 |
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