AhaSend Email API & SMTP relay

offiziell

Senden 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

FeldWas es bewirkt
ClientDer ahasend-go-Client mit dem API-Schlüssel. Erforderlich.
AccountIDDas Konto, auf dem die Tools arbeiten. Erforderlich.
DashboardBaseURLDie URL des AhaSend-Dashboards, verwendet in Kampagnen-Links. Erforderlich.
ConfirmationKeyEin Secret von mindestens 32 Bytes, das die Versandabfragen für Kampagnen signiert. Erforderlich.
ScopesDie Scopes des API-Schlüssels. Es werden nur Tools angezeigt, die der Schlüssel verwenden kann. nil zeigt jedes Tool.
ToolsetsNur diese Toolsets anzeigen. nil zeigt alle.
ReadOnlyNur Tools anzeigen, die nichts verändern.
StatelessAuf true setzen, wenn Sie über zustandsloses HTTP bereitstellen.
MaxRecipientsPerSendDie maximale Empfängerzahl für einen Versand. Standard 50.
ReadInboundLässt die Nachrichten-Tools E-Mails zurückgeben, die das Konto empfangen hat. Standardmäßig aus.
BlockedWenn gesetzt, gibt jeder Tool-Aufruf diesen Text als Fehler zurück und tut nichts.
RecorderLiefert 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

ToolsetTools
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

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