AhaSend Email API & SMTP relay
resmiKirim email, cari tahu mengapa email gagal, siapkan domain pengirim, dan kelola templat, kontak, daftar, serta kampanye di akun AhaSend Anda.
Apa yang bisa Anda lakukan dengan AhaSend Email API & SMTP Relay MCP?
- Kirim email — Minta asisten untuk mengirim email sekali kirim, email templat, atau email percakapan, dan batalkan pengiriman terjadwal.
- Diagnosis pengiriman — Cari pesan, cari tahu mengapa email gagal, dan tarik statistik keterkiriman, bounce, dan waktu pengiriman.
- Kelola domain — Daftar, tambah, perbarui, dan hapus domain pengirim, serta periksa catatan DNS domain.
- Buat templat — Buat, perbarui, terbitkan, dan versikan templat serta templat kampanye, edit desain Simple Editor sebagai markup AhaML.
- Kelola audiens — Buat dan perbarui kontak, daftar, dan segmen, tambahkan kontak ke daftar, dan pratinjau segmen.
- Jalankan kampanye — Buat, duplikasi, uji, kirim, dan jadwalkan kampanye, lalu periksa statistik kampanye dan penerima.
Server MCP Terhosting
npx add-mcp 'https://mcp.ahasend.com/mcp'Terpasang ke Claude Code, Codex, Cursor, dan lainnya
Dokumentasi
ahasend-mcp
Modul Go dengan alat MCP untuk AhaSend. Dengan alat-alat ini, agen AI dapat mengirim email, mencari tahu mengapa sebuah email gagal, dan mengelola domain, templat, kontak, daftar, kampanye, webhook, rute, penekanan (suppression), kredensial SMTP, dan sub-akun.
Setiap alat memanggil API AhaSend v2 melalui ahasend-go. Cakupan (scope) kunci API menentukan apa yang dapat dilakukan agen.
Modul ini membangun server dengan SDK MCP Go resmi. Program Anda memilih cara menyajikannya: stdio, HTTP, atau transport SDK lainnya.
go get github.com/AhaSend/ahasend-mcp
Contoh
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{})
Opsi
| Bidang | Fungsinya |
|---|---|
Client | Klien ahasend-go, beserta kunci API. Wajib. |
AccountID | Akun tempat alat-alat bekerja. Wajib. |
DashboardBaseURL | URL dasbor AhaSend, digunakan dalam tautan kampanye. Wajib. |
ConfirmationKey | Rahasia minimal 32 byte yang menandatangani pertanyaan pengiriman kampanye. Wajib. |
Scopes | Cakupan kunci API. Hanya alat yang dapat digunakan kunci tersebut yang ditampilkan. nil menampilkan semua alat. |
Toolsets | Tampilkan hanya toolset ini. nil menampilkan semua. |
ReadOnly | Tampilkan hanya alat yang tidak mengubah apa pun. |
Stateless | Atur ke true jika Anda menyajikan melalui HTTP stateless. |
MaxRecipientsPerSend | Jumlah penerima maksimum untuk satu pengiriman. Default 50. |
ReadInbound | Izinkan alat pesan mengembalikan email yang diterima akun. Nonaktif secara default. |
Blocked | Jika diatur, setiap panggilan alat mengembalikan teks ini sebagai error dan tidak melakukan apa pun. |
Recorder | Mendapatkan satu catatan per panggilan alat: nama alat, keberhasilan, jenis error, dan waktu yang dibutuhkan. Tidak pernah berisi input atau hasil. |
Jika Anda melayani banyak pengguna, bangun server baru untuk setiap permintaan dengan
kunci dan cakupan pengguna tersebut. Ini murah. Gunakan ConfirmationKey yang sama pada
setiap instans.
Catalogue() mencantumkan setiap alat beserta cakupan yang dibutuhkannya.
OfferedScopes() mencantumkan setiap cakupan yang digunakan alat-alat, untuk halaman tempat pengguna
memilih cakupan.
Alat
| Toolset | Alat |
|---|---|
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 |
Setiap alat membutuhkan cakupan yang dibutuhkan oleh endpoint API-nya. send_campaign dan
schedule_campaign juga membutuhkan campaigns:read dan lists:read, serta
segments:read untuk mengirim kampanye yang menggunakan segmen. Alat templat kampanye
juga membutuhkan campaigns:read. preview_segment,
list_segment_contacts, dan list_contact_segments membutuhkan contacts:read
serta segments:read.
Alat daftar mengembalikan 20 item secara default dan paling banyak 100. Berikan kursor yang dikembalikan untuk mendapatkan halaman berikutnya.
Tidak ada alat untuk membuat kunci API atau kredensial SMTP, mengubah pengaturan akun, penagihan atau anggota tim, menghapus semua penekanan, atau menghapus atau menangguhkan sub-akun.
Desain Simple Editor dan AhaML
Alat templat, templat kampanye, dan kampanye membaca dan menulis desain
Simple Editor dasbor sebagai AhaSend Markup (AhaML), bentuk XML dari
desain tersebut, di bidang markup konten. get_template mengembalikan
salinan kerja templat, yaitu draf selama masih ada, sehingga agen mengedit apa
yang dibacanya; get_published_template mengembalikan salinan yang digunakan untuk pengiriman.
Server memiliki satu resource, ahasend://docs/ahaml: referensi AhaML,
dengan setiap tag, atribut, batas, dan kode error. Resource ini juga ada di
https://ahasend.com/docs/send-api/ahaml. Resource ini tercantum pada setiap
koneksi, sehingga agen tanpa akses web dapat membacanya.
Aturan keselamatan
Pengiriman kampanye memerlukan persetujuan seseorang. send_campaign dan
schedule_campaign menampilkan formulir kepada pengguna dengan waktu pengiriman, jumlah
kontak, nama kampanye, subjek, pengirim, daftar dan segmen, serta
daftar dan segmen yang dikecualikan. Alat ini mengirim hanya jika pengguna menjawab ya. Jika
kampanye berubah setelah pertanyaan diajukan, alat akan bertanya lagi. Jika klien
tidak dapat menampilkan formulir, alat tidak mengirim apa pun dan mengembalikan tautan ke
kampanye di dasbor.
Pengiriman sekali jalan memiliki batas penerima. Pengiriman tunggal ke lebih dari
MaxRecipientsPerSend penerima (default 50) ditolak. Gunakan kampanye
untuk email massal.
Email yang diterima disembunyikan secara default. Siapa pun dapat mengirim email ke
alamat masuk akun, dan email tersebut dapat berisi teks yang mencoba
menipu agen. Kecuali ReadInbound aktif, alat pesan tidak mengembalikan
email yang diterima. Saat aktif, pesan yang diterima ditandai
untrusted: true.
Error
Ketika API menolak panggilan, alat mengembalikan error dengan pesan dari API dan langkah selanjutnya yang harus dilakukan. Ketika API menolak AhaML, error mencantumkan masalahnya, hingga 100 pertama, masing-masing dengan kode, baris, kolom, jalur, dan petunjuknya; pesan dari API memberikan berapa banyak masalah yang ada.
Mencobanya secara lokal
cmd/ahasend-mcp-dev menyajikan setiap alat melalui stdio dengan kunci API Anda sendiri.
Ini hanya untuk pengujian.
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
Atur AHASEND_BASE_URL untuk menggunakan API selain yang default.
Lisensi
MIT