AhaSend Email API & SMTP relay
resmiE-posta gönderin, bir e-postanın neden başarısız olduğunu öğrenin, gönderim alan adları kurun ve AhaSend hesabınızda şablonları, kişileri, listeleri ve kampanyaları yönetin.
AhaSend Email API & SMTP Relay MCP ile neler yapabilirsiniz?
- E-posta gönder — Asistandan tek seferlik bir e-posta, şablon e-posta veya konuşma e-postası göndermesini isteyin ve planlanmış bir gönderimi iptal edin.
- Teslimatı teşhis et — Mesajları arayın, bir e-postanın neden başarısız olduğunu öğrenin ve teslim edilebilirlik, geri dönme ve teslimat süresi istatistiklerini alın.
- Alan adlarını yönet — Gönderim alan adlarını listeleyin, ekleyin, güncelleyin ve silin, ayrıca bir alan adının DNS kayıtlarını kontrol edin.
- Şablonlar oluştur — Şablonları ve kampanya şablonlarını oluşturun, güncelleyin, yayınlayın ve sürümleyin; Simple Editor tasarımlarını AhaML işaretlemesi olarak düzenleyin.
- Hedef kitleyi yönet — Kişiler, listeler ve segmentler oluşturun ve güncelleyin, kişileri listelere ekleyin ve bir segmenti önizleyin.
- Kampanyaları çalıştır — Kampanyalar oluşturun, çoğaltın, test edin, gönderin ve planlayın, ardından kampanya istatistiklerini ve alıcıları kontrol edin.
Barındırılan MCP Sunucusu
npx add-mcp 'https://mcp.ahasend.com/mcp'Claude Code, Codex, Cursor ve daha fazlasına kurulur
Dokümantasyon
ahasend-mcp
AhaSend için MCP araçları içeren bir Go modülü. Bu araçlarla bir yapay zekâ ajanı e-posta gönderebilir, bir e-postanın neden başarısız olduğunu öğrenebilir ve alan adlarını, şablonları, kişileri, listeleri, kampanyaları, webhook'ları, rotaları, bastırmaları, SMTP kimlik bilgilerini ve alt hesapları yönetebilir.
Her araç, AhaSend v2 API'sini ahasend-go üzerinden çağırır. API anahtarının kapsamları ajanın neler yapabileceğine karar verir.
Modül, sunucuyu resmî Go MCP SDK'sı ile oluşturur. Programınız sunucunun nasıl sunulacağını seçer: stdio, HTTP veya başka herhangi bir SDK taşıyıcısı.
go get github.com/AhaSend/ahasend-mcp
Örnek
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{})
Seçenekler
| Alan | Ne yapar |
|---|---|
Client | API anahtarını içeren ahasend-go istemcisi. Zorunlu. |
AccountID | Araçların üzerinde çalıştığı hesap. Zorunlu. |
DashboardBaseURL | Kampanya bağlantılarında kullanılan AhaSend kontrol paneli URL'si. Zorunlu. |
ConfirmationKey | Kampanya gönderim sorularını imzalayan, en az 32 baytlık bir sır. Zorunlu. |
Scopes | API anahtarının kapsamları. Yalnızca anahtarın kullanabileceği araçlar gösterilir. nil tüm araçları gösterir. |
Toolsets | Yalnızca bu araç kümelerini göster. nil hepsini gösterir. |
ReadOnly | Yalnızca hiçbir şeyi değiştirmeyen araçları göster. |
Stateless | Durumsuz HTTP üzerinden sunuyorsanız true olarak ayarlayın. |
MaxRecipientsPerSend | Tek bir gönderim için en fazla alıcı sayısı. Varsayılan 50. |
ReadInbound | Mesaj araçlarının hesabın aldığı e-postayı döndürmesine izin ver. Varsayılan olarak kapalı. |
Blocked | Ayarlanırsa, her araç çağrısı bu metni hata olarak döndürür ve hiçbir şey yapmaz. |
Recorder | Her araç çağrısı için bir kayıt alır: araç adı, başarı, hata türü ve geçen süre. Girdiler veya sonuçlar asla. |
Çok sayıda kullanıcıya hizmet veriyorsanız, her istek için o kullanıcının
anahtarı ve kapsamlarıyla yeni bir sunucu oluşturun. Bu ucuzdur. Her örnekte
aynı ConfirmationKey kullanın.
Catalogue() her aracı ihtiyaç duyduğu kapsamlarla listeler.
OfferedScopes() araçların kullandığı her kapsamı listeler; kullanıcının
kapsam seçtiği bir sayfa için.
Araçlar
| Araç kümesi | Araçlar |
|---|---|
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 |
Her araç, API uç noktasının ihtiyaç duyduğu kapsamlara ihtiyaç duyar. send_campaign ve
schedule_campaign ayrıca campaigns:read ve lists:read kapsamlarına, ve
segment kullanan bir kampanya göndermek için segments:read kapsamına ihtiyaç duyar. Kampanya
şablonu araçları ayrıca campaigns:read kapsamına ihtiyaç duyar. preview_segment,
list_segment_contacts ve list_contact_segments, segments:read yanı sıra
contacts:read kapsamına ihtiyaç duyar.
Liste araçları varsayılan olarak 20 öğe döndürür ve en fazla 100. Sonraki sayfayı almak için döndürülen imleci geçin.
API anahtarları veya SMTP kimlik bilgileri oluşturmak, hesap ayarlarını, faturalandırmayı veya ekip üyelerini değiştirmek, tüm bastırmaları kaldırmak ya da alt hesapları silmek veya askıya almak için araç yoktur.
Simple Editor tasarımları ve AhaML
Şablon, kampanya şablonu ve kampanya araçları, kontrol panelinin Simple Editor
tasarımını AhaSend Markup (AhaML) olarak, yani tasarımın bir XML biçimi olarak,
içeriğin markup alanında okur ve yazar. get_template bir
şablonun çalışma kopyasını, yani bir taslak varken taslağı döndürür, böylece bir ajan
okuduğunu düzenler; get_published_template ise bir gönderimin kullandığı kopyayı döndürür.
Sunucunun tek bir kaynağı vardır, ahasend://docs/ahaml: her etiket, öznitelik, sınır ve hata koduyla
AhaML referansı. Ayrıca
https://ahasend.com/docs/send-api/ahaml adresinde de bulunur. Kaynak her
bağlantıda listelenir, böylece web erişimi olmayan bir ajan da onu okuyabilir.
Güvenlik kuralları
Kampanya gönderimleri bir kişinin evet demesini gerektirir. send_campaign ve
schedule_campaign kullanıcıya gönderim zamanı, kişi sayısı, kampanya adı,
konu, gönderen, listeler ve segmentler ile hariç tutulan listeler ve segmentleri içeren bir form gösterir.
Yalnızca kullanıcı evet yanıtı verirse gönderirler. Sorudan sonra kampanya
değişirse, araç yeniden sorar. İstemci bir form gösteremiyorsa, araç hiçbir şey
göndermez ve kontrol panelindeki kampanyaya bir bağlantı döndürür.
Tek seferlik gönderimlerin bir alıcı sınırı vardır. MaxRecipientsPerSend alıcıdan fazlasına
(varsayılan 50) tek bir gönderim reddedilir. Toplu e-posta için bir kampanya
kullanın.
Alınan e-posta varsayılan olarak gizlidir. Herkes bir hesabın gelen
adreslerine e-posta gönderebilir ve bu e-posta ajanı kandırmaya çalışan metin
içerebilir. ReadInbound açık değilse, mesaj araçları
alınan e-postayı döndürmez. Açıkken, alınan mesajlar
untrusted: true olarak işaretlenir.
Hatalar
API bir çağrıyı reddettiğinde, araç API'nin mesajı ve bundan sonra ne yapılacağıyla birlikte bir hata döndürür. AhaML'yi reddettiğinde, hata sorunları, ilk 100'e kadar, her biri kodu, satırı, sütunu, yolu ve ipucuyla listeler; API'nin mesajı kaç tane olduğunu verir.
Yerel olarak deneme
cmd/ahasend-mcp-dev tüm araçları kendi API anahtarınızla stdio üzerinden sunar.
Yalnızca test içindir.
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
Varsayılan dışında bir API kullanmak için AHASEND_BASE_URL ayarlayın.
Lisans
MIT