NetSendo

MCP-Integration

Model Context Protocol für KI-Assistenten

Model Context Protocol (MCP) ist ein offener Standard von Anthropic, der KI-Assistenten (wie Claude, Cursor, VS Code Copilot) die Integration mit externen Tools und Datenquellen ermöglicht.

Fragen stellen: 'Wie viele Abonnenten habe ich?'
Abonnenten mit natürlicher Sprache verwalten
Nachrichten senden: 'E-Mail an jan@example.com senden'
Statistiken abrufen: 'Analysiere meine Listenqualität'

So funktioniert es

Der KI-Assistent kommuniziert mit dem MCP-Server über das STDIO-Protokoll, und der MCP-Server führt Operationen auf NetSendo über die REST API v1 aus.

┌─────────────────┐     STDIO      ┌─────────────────┐     HTTP/S     ┌─────────────────┐
│  Claude/Cursor  │ ◄──────────► │   MCP Server    │ ◄───────────► │    NetSendo     │
│   (AI Client)   │               │   (Docker/npx)  │               │  (Your inst.)   │
└─────────────────┘               └─────────────────┘               └─────────────────┘

Installation

Remote-Installation (npx)
Empfohlen
Ideal für NetSendo auf einem Server (z.B. https://app.meine-firma.de)

Voraussetzungen

  • Node.js 18+
  • API-Schlüssel von NetSendo

Schritte

  1. API-Schlüssel generieren: Einstellungen → API-Schlüssel
  2. Node.js von nodejs.org installieren
  3. KI-Tool mit der folgenden Konfiguration einrichten

Claude Desktop und Cursor

{
  "mcpServers": {
    "netsendo": {
      "command": "npx",
      "args": [
        "-y",
        "@netsendo/mcp-client",
        "--url",
        "https://your-domain.com",
        "--api-key",
        "YOUR_API_KEY"
      ]
    }
  }
}

VS Code .vscode/mcp.json

VS Code liest MCP-Server aus .vscode/mcp.json im Workspace (oder aus deinem Benutzerprofil über den Befehl "MCP: Open User Configuration"). Diese Datei verwendet den Schlüssel "servers" auf oberster Ebene statt "mcpServers".

{
  "servers": {
    "netsendo": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@netsendo/mcp-client",
        "--url",
        "https://your-domain.com",
        "--api-key",
        "YOUR_API_KEY"
      ]
    }
  }
}

Ersetze https://your-domain.com durch deine NetSendo-URL und YOUR_API_KEY durch deinen API-Schlüssel.

Lokale Installation (Docker)
Ideal für lokal laufendes NetSendo in Docker

Voraussetzungen

  • Docker installiert und gestartet
  • Zugriff auf die docker-compose.yml von NetSendo

Schritte

  1. API-Schlüssel generieren: Einstellungen → API-Schlüssel
  2. API-Schlüssel für MCP in den Einstellungen markieren
  3. Schlüssel zur .env-Datei hinzufügen: MCP_API_KEY=your-api-key
  4. MCP-Container bauen: docker compose build mcp
  5. KI-Tool mit der folgenden Konfiguration einrichten

Claude Desktop und Cursor

{
  "mcpServers": {
    "netsendo": {
      "command": "docker",
      "args": [
        "compose",
        "-f",
        "/path/to/NetSendo/docker-compose.yml",
        "run",
        "--rm",
        "-i",
        "mcp"
      ]
    }
  }
}

Ersetze /path/to/NetSendo durch den vollständigen Pfad zu deinem NetSendo-Verzeichnis.

Trage in VS Code denselben Eintrag "netsendo" unter dem Schlüssel "servers" auf oberster Ebene in .vscode/mcp.json ein und ergänze "type": "stdio".

Speicherorte der Konfigurationsdateien

ClientDateipfad
Claude Desktop (macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows)%APPDATA%\Claude\claude_desktop_config.json
Cursor IDEEinstellungen → MCP → Server hinzufügen
VS Code.vscode/mcp.json

Unterstützte KI-Clients

🤖
Claude Desktop

Offizielle Claude Desktop-App von Anthropic

💻
Cursor IDE

IDE mit integrierter KI für Entwickler

📝
VS Code

Visual Studio Code mit GitHub Copilot (Agentenmodus)

Verfügbare Funktionen

Abonnenten

Kontakte verwalten – hinzufügen, bearbeiten, löschen

Kontaktlisten

Mailinglisten durchsuchen und organisieren

E-Mail-Nachrichten

Personalisierte E-Mails versenden

SMS-Nachrichten

SMS an Kontakte senden

Tags

Abonnenten mit Tags kategorisieren

Statistiken

Konto- und Zustellstatistiken prüfen

Verfügbare Tools

Version 1.6.0 von @netsendo/mcp-client bietet 140 Tools in 21 Gruppen.

Abonnenten (6)

ToolBeschreibung
list_subscribersAbonnenten mit Filter und Pagination auflisten
get_subscriberAbonnenten per ID oder E-Mail-Adresse abrufen
create_subscriberAbonnenten anlegen, optional mit Listen und Tags
update_subscriberAbonnentendaten aktualisieren
delete_subscriberAbonnenten endgültig löschen
sync_subscriber_tagsAlle Tags eines Abonnenten ersetzen

Kontaktlisten und Listeneinstellungen (11)

ToolBeschreibung
list_contact_listsAlle Kontaktlisten mit Abonnentenzahl und Standardpostfach abrufen
get_contact_listVollständige Konfiguration einer Liste abrufen: Einstellungen, Tags, Co-Registrierung, Limits und Webhook
get_list_subscribersAbonnenten einer Kontaktliste abrufen
get_list_statsListenüberblick: Mitglieder nach Status, Engagement, Wachstum (30 Tage) und Versandeinstellungen
create_contact_listE-Mail- oder SMS-Liste mit allen Einstellungen des Listeneditors anlegen
update_contact_listListeneinstellungen ändern (nur übergebene Felder)
get_list_cron_settingsVersandplan einer Liste abrufen: Wochenfenster, Limit pro Minute und ob sie den globalen CRON-Einstellungen folgt
update_list_cron_settingsFestlegen, wann und wie schnell die Nachrichten einer Liste versendet werden, oder zu den globalen Einstellungen zurückkehren
get_list_defaultsKontoweite Listenvorgaben und die instanzweiten CRON-Einstellungen abrufen
update_list_defaultsKontoweite Listenvorgaben ändern (nur übergebene Schlüssel)
delete_contact_listKontaktliste löschen; die Kontakte bleiben im Konto

Tags und benutzerdefinierte Felder (9)

ToolBeschreibung
list_tagsTags des Kontos mit Name, Farbe und Beschreibung abrufen
list_custom_fieldsBenutzerdefinierte Felder des Kontos mit Platzhalter und Geltungsbereich abrufen
create_tagTag anlegen (Namen sind pro Konto eindeutig)
update_tagTag umbenennen oder Farbe und Beschreibung ändern
delete_tagTag löschen und von Abonnenten, Listen und Nachrichten entfernen
get_custom_fieldEin benutzerdefiniertes Feld mit allen Einstellungen abrufen
create_custom_fieldGlobales oder listenspezifisches Feld anlegen; sein Name wird zum Platzhalter
update_custom_fieldBezeichnung, Typ, Optionen oder Namen eines Felds ändern (der Geltungsbereich bleibt)
delete_custom_fieldBenutzerdefiniertes Feld samt allen gespeicherten Werten löschen

Import (2)

ToolBeschreibung
preview_list_importImport testen: Spaltenzuordnung, ungültige Adressen und Duplikate, ohne zu speichern
import_subscribersKontakte aus CSV, TSV, JSON oder einer Adressliste in eine Liste importieren

Export (3)

ToolBeschreibung
export_listListenmitglieder direkt als JSON, CSV oder NDJSON exportieren, mit Filtern
get_export_fieldsExportierbare Spalten inkl. benutzerdefinierter Felder anzeigen
queue_list_exportVollständigen CSV-Export einreihen; der Kontoinhaber erhält einen Download-Link

Listenhygiene (5)

ToolBeschreibung
analyze_list_healthHygienebericht (nur lesend) mit Score von 0–100 und Empfehlungen
clean_listAktion auf Mitglieder ausgewählter Problemkategorien anwenden (standardmäßig Probelauf)
dedupe_listDoppelte Adressen zusammenführen, auch Gmail-Aliase mit Punkt und +Tag
verify_list_emailsZustellbarkeit prüfen: Syntax, Wegwerf- und Rollenadressen, Tippfehler-Domains, MX-Einträge
get_hygiene_optionsVon clean_list akzeptierte Kategorien und Aktionen zurückgeben

Listenmitglieder (6)

ToolBeschreibung
add_list_membersBestehende Kontakte einer Liste hinzufügen
remove_list_membersKontakte von einer Liste entfernen und geplante Nachrichten abbrechen
set_member_statusMitgliedsstatus ändern: aktiv, inaktiv, abgemeldet oder gebounct
copy_list_membersKontakte in eine andere Liste desselben Kanals kopieren
move_list_membersKontakte in eine andere Liste desselben Kanals verschieben
tag_list_membersTags für ein Segment einer Liste hinzufügen oder entfernen

Aktivität und Engagement (3)

ToolBeschreibung
get_list_activityEreignis-Feed einer Liste: Anmeldungen, Abmeldungen, Bounces, Versand, Öffnungen, Klicks
get_list_engagementListen-Performance: Wachstum, Abwanderung, Öffnungs- und Klickraten, Top-Nachrichten und -Links
get_subscriber_activityGesamte Historie eines Kontakts: Listen, Tags, geplante Nachrichten und Zeitachse

Sperrliste (3)

ToolBeschreibung
list_suppressionsKontoweite Sperrliste mit Grund und Datum anzeigen
suppress_emailsAdressen sperren und von allen Listen abmelden
unsuppress_emailsSperre für Adressen aufheben (meldet niemanden wieder an)

Benachrichtigungen (2)

ToolBeschreibung
send_notificationBenachrichtigung an das Benachrichtigungscenter des Kontoinhabers senden
list_notificationsLetzte Benachrichtigungen des Inhabers und Anzahl ungelesener abrufen

E-Mail- und SMS-Nachrichten (6)

ToolBeschreibung
list_mailboxesVerfügbare Absender-Postfächer abrufen
send_emailEinzelne E-Mail an einen Abonnenten senden
get_email_statusE-Mail-Zustellstatus prüfen
list_sms_providersVerfügbare SMS-Anbieter abrufen
send_smsEinzelne SMS an einen Abonnenten oder eine Telefonnummer senden
get_sms_statusSMS-Zustellstatus prüfen

Kampagnen (17)

ToolBeschreibung
list_campaignsE-Mail- und SMS-Kampagnen mit Filter auflisten
get_campaignAlle bearbeitbaren Felder einer Kampagne abrufen, inkl. Listen, Auslöser und Übersetzungen
create_campaignE-Mail- oder SMS-Kampagne anlegen (als Entwurf)
update_campaignEntwurf oder geplante Kampagne aktualisieren
set_campaign_listsEmpfängerlisten einer Kampagne festlegen
set_campaign_exclusionsAusschlusslisten festlegen, deren Abonnenten die Kampagne nicht erhalten
schedule_campaignKampagne für später planen, mit Zeitzonen-Unterstützung
send_campaignKampagne sofort senden oder Autoresponder aktivieren
get_campaign_statsVersandstatistiken einer Kampagne abrufen
delete_campaignEntwurf oder geplante Kampagne löschen
send_campaign_testTestversand einer Kampagne an bis zu 5 Adressen; nichts wird eingereiht
preview_campaignKampagne so rendern, wie ein Empfänger sie sieht, mit aufgelösten Platzhaltern
duplicate_campaignKampagne als neuen Entwurf kopieren
set_campaign_activeAutoresponder aktivieren oder pausieren
get_campaign_recipient_countZählen, wen eine Kampagne jetzt erreichen würde, nach Ausschlüssen und Filtern
resend_campaign_failedEmpfänger mit fehlgeschlagener Zustellung erneut einreihen (mit Bestätigung)
send_campaign_to_missedAktiven Autoresponder jetzt an Abonnenten senden, die ihn verpasst haben (mit Bestätigung)

A/B-Tests (7)

ToolBeschreibung
list_ab_testsA/B-Tests auflisten, gefiltert nach Status oder Kampagne
create_ab_testA/B-Test für eine Kampagne anlegen
add_ab_variantVariante zu einem A/B-Test hinzufügen
start_ab_testA/B-Test starten (mindestens 2 Varianten)
end_ab_testLaufenden Test beenden und optional den Gewinner wählen
get_ab_test_resultsDetaillierte Ergebnisse und Statistiken eines Tests abrufen
delete_ab_testNicht laufenden A/B-Test löschen

Funnels (Automatisierung) (12)

ToolBeschreibung
list_funnelsAutomatisierungs-Funnels auflisten
get_funnelFunnel mit allen Schritten und Statistiken abrufen
create_funnelAutomatisierungs-Funnel anlegen
update_funnelFunnel umbenennen oder Auslöser ändern
add_funnel_stepSchritt zu einem Funnel hinzufügen und verbinden
update_funnel_stepEinstellungen und Verbindungen eines Schritts ändern
delete_funnel_stepSchritt löschen und den Funnel darum herum neu verbinden
enroll_subscriber_in_funnelAbonnenten sofort in einen aktiven Funnel aufnehmen
activate_funnelFunnel für neue Abonnenten aktivieren
pause_funnelFunnel pausieren
get_funnel_statsFunnel-Statistiken abrufen: Abonnentenzahlen und Abschlussraten
delete_funnelFunnel löschen (vorher pausieren)

Personalisierung (1)

ToolBeschreibung
list_placeholdersPlatzhalter zur Personalisierung von E-Mail- und SMS-Inhalten abrufen

Webhooks (8)

ToolBeschreibung
list_webhook_eventsEreignisnamen auflisten, die ein Webhook abonnieren kann
list_webhooksWebhooks des Kontos mit Status, Fehlerzähler und letzter Zustellung auflisten
get_webhookEinstellungen eines Webhooks abrufen (ohne Secret)
create_webhookWebhook für ausgewählte Ereignisse registrieren; das Signatur-Secret wird nur einmal angezeigt
update_webhookName, URL, Ereignisse oder Aktivstatus eines Webhooks ändern
delete_webhookWebhook dauerhaft löschen
test_webhookTestzustellung senden und prüfen, ob der Endpunkt mit 2xx antwortet
regenerate_webhook_secretNeues Signatur-Secret erzeugen; das alte ist sofort ungültig

E-Mail-Vorlagen (13)

ToolBeschreibung
list_templatesEigene E-Mail-Vorlagen und die System-Startvorlagen auflisten
get_templateVorlage mit HTML, MJML, Builder-Blöcken und Einstellungen abrufen
create_templateE-Mail-Vorlage aus HTML oder aus Builder-Blöcken anlegen
update_templateEigene Vorlage aktualisieren (nur übergebene Felder)
delete_templateEigene Vorlage löschen; daraus erstellte Kampagnen behalten ihren Inhalt
duplicate_templateEigene oder System-Vorlage zum Bearbeiten ins Konto kopieren
preview_templatePlatzhalter einer Vorlage für einen Abonnenten oder Beispieldaten auflösen; nichts wird gesendet
list_template_categoriesSystem- und eigene Vorlagenkategorien auflisten
list_template_block_typesBuilder-Blocktypen mit Standardinhalt und -einstellungen auflisten
list_template_blocksGespeicherte Builder-Blöcke auflisten, eigene und globale
create_template_blockWiederverwendbaren Builder-Block speichern, etwa Kopfzeile, Fußzeile oder Button
update_template_blockEigenen gespeicherten Block ändern
delete_template_blockEigenen gespeicherten Block löschen; Vorlagen, die ihn enthalten, bleiben unverändert

System-E-Mails und -Seiten (9)

ToolBeschreibung
list_system_emailsAutomatische System-E-Mails (Double-Opt-in, Willkommen, Abmeldung…) einer Liste oder global auflisten
get_system_emailEine System-E-Mail mit Betreff, HTML und verfügbaren Platzhaltern abrufen
update_system_emailBetreff, Inhalt oder Aktivstatus einer System-E-Mail für eine Liste oder global ändern
set_system_email_activeEine System-E-Mail für eine Liste ein- oder ausschalten
reset_system_emailListeneigene Version entfernen, damit wieder die globale System-E-Mail gilt
list_system_pagesSystemseiten auflisten, die nach Anmeldung, Aktivierung, Abmeldung und Präferenzänderung erscheinen
get_system_pageEine Systemseite mit Titel, HTML, Zugriff und Platzhaltern abrufen
update_system_pageTitel, Inhalt oder Zugriff einer Systemseite für eine Liste oder global ändern
reset_system_pageListeneigene Version entfernen, damit wieder die globale Systemseite gilt

Anmeldeformulare (6)

ToolBeschreibung
list_formsAnmeldeformulare mit Status, Liste, Anzahl der Einsendungen und gehosteter URL auflisten
get_formKonfiguration eines Formulars samt gehosteter URL und Einbettungscode für HTML, JS und iframe abrufen
create_formAnmeldeformular für eine E-Mail-Liste anlegen (startet als Entwurf)
update_formFormular ändern, veröffentlichen oder Anmeldungen stoppen
delete_formFormular löschen; Seiten, die es einbetten, funktionieren nicht mehr, Abonnenten bleiben
duplicate_formFormular als neuen Entwurf mit neuem Einbettungscode kopieren

Automatisierungsregeln (9)

ToolBeschreibung
get_automation_optionsKatalog der Auslöser, Bedingungen und Aktionen zum Erstellen von Regeln abrufen
list_automationsAutomatisierungsregeln mit Auslöser, Aktionen, Status und Ausführungszahlen auflisten
get_automationEine Regel vollständig abrufen, mit Statistik der letzten 7 Tage
create_automationRegel anlegen: Tritt ein Ereignis ein und sind die Bedingungen erfüllt, werden die Aktionen ausgeführt
update_automationRegel ändern (nur übergebene Felder)
set_automation_activeRegel aktivieren, deaktivieren oder umschalten
duplicate_automationRegel kopieren; die Kopie ist zunächst inaktiv
delete_automationRegel samt Ausführungsprotokoll dauerhaft löschen
get_automation_logsAusführungsprotokoll einer Regel abrufen: Status, Abonnent und Ergebnis jeder Aktion

Konto (2)

ToolBeschreibung
test_connectionAPI-Verbindung und Zugangsdaten testen
get_account_infoInformationen zum verbundenen Konto abrufen

Neben den Tools stellt der Client 5 vorgefertigte Prompts (analyze_subscribers, send_newsletter, cleanup_list, import_contacts, list_report) und 3 Ressourcen (netsendo://info, netsendo://stats, netsendo://lists) bereit.

Beispielanfragen

"Zeige meine Mailinglisten"
"Wie viele Abonnenten habe ich?"
"Füge jan@example.com zur Newsletter-Liste hinzu"
"Sende eine Willkommensnachricht an anna@example.com"
"Analysiere die Qualität meiner Mailingliste"

Sicherheit

🔐 API-Schlüssel werden nie geloggt oder offengelegt
🔒 Alle API-Aufrufe respektieren NetSendo-Berechtigungen
⚡ Rate Limiting: 60 Anfragen/Minute
🚫 Sensible Daten (Passwörter, Zahlungen) werden nie zurückgegeben
📝 Alle Operationen werden im Aktivitätsprotokoll protokolliert

Fehlerbehebung

Verbindung fehlgeschlagen
  • Stelle sicher, dass NetSendo läuft und erreichbar ist
  • Prüfe, ob der API-Schlüssel gültig ist
  • Überprüfe die URL (inkl. https://)
Tools werden nicht angezeigt

Starte dein KI-Tool nach Konfigurationsänderungen neu.

npx-Befehl nicht gefunden

Installiere Node.js von nodejs.org (enthält npm/npx).

Mehrere NetSendo-Instanzen

Du kannst dich mit mehreren NetSendo-Instanzen verbinden, indem du verschiedene Servernamen verwendest:

{
  "mcpServers": {
    "netsendo-production": {
      "command": "npx",
      "args": ["-y", "@netsendo/mcp-client", "--url", "https://app.company.com", "--api-key", "prod-key"]
    },
    "netsendo-staging": {
      "command": "npx",
      "args": ["-y", "@netsendo/mcp-client", "--url", "https://staging.company.com", "--api-key", "staging-key"]
    }
  }
}