AhaSend Email API & SMTP relay
offiziellSenden Sie E-Mails, finden Sie heraus, warum eine E-Mail fehlgeschlagen ist, richten Sie Versanddomains ein und verwalten Sie Vorlagen, Kontakte, Listen und Kampagnen in Ihrem AhaSend-Konto.
Was kann man mit AhaSend Email API & SMTP Relay MCP machen?
- E-Mail senden — Bitten Sie den Assistenten, eine einmalige E-Mail, eine Vorlagen-E-Mail oder eine Konversations-E-Mail zu senden und einen geplanten Versand abzubrechen.
- Zustellung diagnostizieren — Nachrichten nachschlagen, herausfinden, warum eine E-Mail fehlgeschlagen ist, und Statistiken zu Zustellbarkeit, Bounces und Zustellzeiten abrufen.
- Domains verwalten — Versand-Domains auflisten, hinzufügen, aktualisieren und löschen sowie die DNS-Einträge einer Domain prüfen.
- Vorlagen erstellen — Vorlagen und Kampagnenvorlagen erstellen, aktualisieren, veröffentlichen und versionieren sowie Designs im Simple Editor als AhaML-Markup bearbeiten.
- Zielgruppe verwalten — Kontakte, Listen und Segmente erstellen und aktualisieren, Kontakte zu Listen hinzufügen und eine Vorschau eines Segments anzeigen.
- Kampagnen ausführen — Kampagnen erstellen, duplizieren, testen, senden und planen und anschließend Kampagnenstatistiken und Empfänger prüfen.
Gehosteter MCP-Server
npx add-mcp 'https://mcp.ahasend.com/mcp'Installiert in Claude Code, Codex, Cursor und mehr
Dokumentation
ahasend-mcp
Ein Go-Modul mit MCP-Tools für AhaSend. Mit diesen Tools kann ein KI-Agent E-Mails senden, herausfinden, warum eine E-Mail fehlgeschlagen ist, und Domains, Vorlagen, Kontakte, Listen, Kampagnen, Webhooks, Routen, Suppressions, SMTP-Zugangsdaten und Unterkonten verwalten.
Jedes Tool ruft die AhaSend-v2-API über ahasend-go auf. Die Scopes des API-Schlüssels entscheiden, was der Agent tun kann.
Das Modul baut einen Server mit dem offiziellen Go MCP SDK. Ihr Programm entscheidet, wie er bereitgestellt wird: stdio, HTTP oder ein beliebiger anderer SDK-Transport.
go get github.com/AhaSend/ahasend-mcp
Beispiel
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{})
Optionen
| Feld | Was es bewirkt |
|---|---|
Client | Der ahasend-go-Client mit dem API-Schlüssel. Erforderlich. |
AccountID | Das Konto, auf dem die Tools arbeiten. Erforderlich. |
DashboardBaseURL | Die URL des AhaSend-Dashboards, verwendet in Kampagnen-Links. Erforderlich. |
ConfirmationKey | Ein Secret von mindestens 32 Bytes, das die Versandabfragen für Kampagnen signiert. Erforderlich. |
Scopes | Die Scopes des API-Schlüssels. Es werden nur Tools angezeigt, die der Schlüssel verwenden kann. nil zeigt jedes Tool. |
Toolsets | Nur diese Toolsets anzeigen. nil zeigt alle. |
ReadOnly | Nur Tools anzeigen, die nichts verändern. |
Stateless | Auf true setzen, wenn Sie über zustandsloses HTTP bereitstellen. |
MaxRecipientsPerSend | Die maximale Empfängerzahl für einen Versand. Standard 50. |
ReadInbound | Lässt die Nachrichten-Tools E-Mails zurückgeben, die das Konto empfangen hat. Standardmäßig aus. |
Blocked | Wenn gesetzt, gibt jeder Tool-Aufruf diesen Text als Fehler zurück und tut nichts. |
Recorder | Liefert einen Datensatz pro Tool-Aufruf: Tool-Name, Erfolg, Fehlerart und benötigte Zeit. Niemals die Eingaben oder Ergebnisse. |
Wenn Sie für viele Benutzer bereitstellen, bauen Sie für jede Anfrage einen neuen Server mit dem
Schlüssel und den Scopes dieses Benutzers. Das ist günstig. Verwenden Sie denselben ConfirmationKey auf
jeder Instanz.
Catalogue() listet jedes Tool mit den benötigten Scopes auf.
OfferedScopes() listet jeden Scope auf, den die Tools verwenden, für eine Seite, auf der ein Benutzer
Scopes auswählt.
Tools
| Toolset | Tools |
|---|---|
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 |
Jedes Tool benötigt die Scopes, die sein API-Endpunkt benötigt. send_campaign und
schedule_campaign benötigen außerdem campaigns:read und lists:read sowie
segments:read, um eine Kampagne zu senden, die Segmente verwendet. Die Tools für Kampagnenvorlagen
benötigen außerdem campaigns:read. preview_segment,
list_segment_contacts und list_contact_segments benötigen contacts:read
sowie segments:read.
Listen-Tools geben standardmäßig 20 Einträge zurück und höchstens 100. Übergeben Sie den zurückgegebenen Cursor, um die nächste Seite zu erhalten.
Es gibt keine Tools zum Erstellen von API-Schlüsseln oder SMTP-Zugangsdaten, zum Ändern von Kontoeinstellungen, Abrechnung oder Teammitgliedern, zum Entfernen aller Suppressions oder zum Löschen oder Sperren von Unterkonten.
Simple-Editor-Designs und AhaML
Die Tools für Vorlagen, Kampagnenvorlagen und Kampagnen lesen und schreiben ein Design
des Simple Editors des Dashboards als AhaSend Markup (AhaML), eine XML-Form
des Designs, im Feld markup des Inhalts. get_template gibt die
Arbeitskopie einer Vorlage zurück, den Entwurf, solange einer existiert, sodass ein Agent das bearbeitet, was
er gelesen hat; get_published_template gibt die Kopie zurück, die ein Versand verwendet.
Der Server hat eine Ressource, ahasend://docs/ahaml: die AhaML-Referenz,
mit jedem Tag, Attribut, Limit und Fehlercode. Sie ist auch unter
https://ahasend.com/docs/send-api/ahaml zu finden. Die Ressource wird bei jeder
Verbindung aufgelistet, sodass ein Agent ohne Webzugriff sie lesen kann.
Sicherheitsregeln
Kampagnenversände benötigen die Zustimmung einer Person. send_campaign und
schedule_campaign zeigen dem Benutzer ein Formular mit der Versandzeit, der Anzahl der
Kontakte, dem Kampagnennamen, Betreff, Absender, Listen und Segmenten sowie den
ausgeschlossenen Listen und Segmenten. Sie senden nur, wenn der Benutzer mit Ja antwortet. Wenn
sich die Kampagne nach der Frage ändert, fragt das Tool erneut. Wenn der Client
kein Formular anzeigen kann, sendet das Tool nichts und gibt einen Link zur
Kampagne im Dashboard zurück.
Einmalige Versände haben ein Empfängerlimit. Ein einzelner Versand an mehr als
MaxRecipientsPerSend Empfänger (Standard 50) wird abgelehnt. Verwenden Sie eine Kampagne
für Massen-E-Mails.
Empfangene E-Mails sind standardmäßig verborgen. Jeder kann E-Mails an die
Inbound-Adressen eines Kontos senden, und diese E-Mails können Text enthalten, der versucht,
den Agenten zu täuschen. Sofern ReadInbound nicht aktiviert ist, geben die Nachrichten-Tools keine
empfangenen E-Mails zurück. Wenn es aktiviert ist, werden empfangene Nachrichten als
untrusted: true markiert.
Fehler
Wenn die API einen Aufruf ablehnt, gibt das Tool einen Fehler mit der Meldung der API und dem nächsten Schritt zurück. Wenn sie AhaML ablehnt, listet der Fehler die Probleme auf, bis zu den ersten 100, jeweils mit Code, Zeile, Spalte, Pfad und Hinweis; die Meldung der API gibt an, wie viele es sind.
Lokal ausprobieren
cmd/ahasend-mcp-dev stellt jedes Tool über stdio mit Ihrem eigenen API-Schlüssel bereit.
Es ist nur zum Testen gedacht.
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
Setzen Sie AHASEND_BASE_URL, um eine andere API als die Standard-API zu verwenden.
Lizenz
MIT