NetSendo

Integracja MCP

Model Context Protocol dla asystentów AI

Model Context Protocol (MCP) to otwarty standard wprowadzony przez Anthropic, który pozwala asystentom AI (takim jak Claude, Cursor, VS Code Copilot) na integrację z zewnętrznymi narzędziami i źródłami danych.

Zadawaj pytania: 'Ilu mam subskrybentów?'
Zarządzaj subskrybentami za pomocą języka naturalnego
Wysyłaj wiadomości: 'Wyślij e-maila do jan@example.com'
Uzyskuj statystyki: 'Przeanalizuj jakość mojej listy'

Jak to działa

Asystent AI komunikuje się z serwerem MCP przez protokół STDIO, a serwer MCP wykonuje operacje na NetSendo za pomocą API REST v1.

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

Instalacja

Zdalna instalacja (npx)
Zalecane
Najlepsza dla NetSendo hostowanego na serwerze (np. https://app.moja-firma.pl)

Wymagania

  • Node.js 18+
  • Klucz API z NetSendo

Kroki

  1. Wygeneruj klucz API: Ustawienia → Klucze API
  2. Zainstaluj Node.js ze strony nodejs.org
  3. Skonfiguruj narzędzie AI używając poniższej konfiguracji

Claude Desktop i 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 odczytuje serwery MCP z pliku .vscode/mcp.json w projekcie (lub z profilu użytkownika – polecenie "MCP: Open User Configuration"). Ten plik używa klucza głównego "servers" zamiast "mcpServers".

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

Zamień https://your-domain.com na adres URL Twojej instancji NetSendo oraz YOUR_API_KEY na wygenerowany klucz API.

Lokalna instalacja (Docker)
Najlepsza dla NetSendo uruchomionego lokalnie na komputerze użytkownika w Docker

Wymagania

  • Docker zainstalowany i uruchomiony
  • Dostęp do pliku docker-compose.yml projektu NetSendo

Kroki

  1. Wygeneruj klucz API: Ustawienia → Klucze API
  2. Oznacz klucz API dla MCP w ustawieniach
  3. Dodaj klucz do pliku .env: MCP_API_KEY=your-api-key
  4. Zbuduj kontener MCP: docker compose build mcp
  5. Skonfiguruj narzędzie AI używając poniższej konfiguracji

Claude Desktop i Cursor

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

Zamień /path/to/NetSendo na pełną ścieżkę do katalogu z instalacją NetSendo.

W VS Code umieść ten sam wpis "netsendo" pod kluczem głównym "servers" w pliku .vscode/mcp.json i dodaj "type": "stdio".

Lokalizacje plików konfiguracyjnych

KlientLokalizacja pliku
Claude Desktop (macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows)%APPDATA%\Claude\claude_desktop_config.json
Cursor IDEUstawienia → MCP → Dodaj serwer
VS Code.vscode/mcp.json

Wspierani klienci AI

🤖
Claude Desktop

Oficjalna aplikacja desktopowa Claude od Anthropic

💻
Cursor IDE

IDE z wbudowanym AI dla programistów

📝
VS Code

Visual Studio Code z GitHub Copilot (tryb agenta)

Dostępne funkcje

Subskrybenci

Zarządzaj kontaktami – dodawaj, edytuj, usuwaj

Listy kontaktów

Przeglądaj i organizuj listy mailingowe

Wiadomości Email

Wysyłaj spersonalizowane wiadomości e-mail

Wiadomości SMS

Wysyłaj wiadomości SMS do kontaktów

Tagi

Kategoryzuj subskrybentów za pomocą tagów

Statystyki

Sprawdzaj statystyki konta i dostarczalności

Dostępne narzędzia

Wersja 1.6.0 pakietu @netsendo/mcp-client udostępnia 140 narzędzi w 21 grupach.

Subskrybenci (6)

NarzędzieOpis
list_subscribersLista subskrybentów z filtrowaniem i paginacją
get_subscriberPobierz subskrybenta po ID lub adresie e-mail
create_subscriberUtwórz subskrybenta, opcjonalnie z listami i tagami
update_subscriberZaktualizuj dane subskrybenta
delete_subscriberTrwale usuń subskrybenta
sync_subscriber_tagsZastąp wszystkie tagi przypisane do subskrybenta

Listy kontaktów i ich ustawienia (11)

NarzędzieOpis
list_contact_listsPobierz wszystkie listy z liczbą subskrybentów i domyślną skrzynką
get_contact_listPobierz pełną konfigurację listy: ustawienia, tagi, współrejestrację, limity i webhook
get_list_subscribersPobierz subskrybentów z listy
get_list_statsStan listy: członkowie wg statusu, zaangażowanie, przyrost z 30 dni i ustawienia wysyłki
create_contact_listUtwórz listę e-mail lub SMS z dowolnymi ustawieniami edytora listy
update_contact_listZmień ustawienia listy (tylko przekazane pola)
get_list_cron_settingsPobierz harmonogram wysyłki listy: okna tygodniowe, limit na minutę i to, czy używa globalnych ustawień CRON
update_list_cron_settingsUstaw, kiedy i jak szybko wychodzą wiadomości z kolejki listy, albo przywróć ustawienia globalne
get_list_defaultsPobierz domyślne ustawienia list na koncie i globalne ustawienia CRON instancji
update_list_defaultsZmień domyślne ustawienia list na koncie (tylko przekazane klucze)
delete_contact_listUsuń listę; kontakty zostają na koncie

Tagi i pola własne (9)

NarzędzieOpis
list_tagsPobierz tagi konta z nazwą, kolorem i opisem
list_custom_fieldsPobierz pola własne konta z ich wstawkami i zakresem
create_tagUtwórz tag (nazwy są unikalne w obrębie konta)
update_tagZmień nazwę, kolor lub opis tagu
delete_tagUsuń tag i odepnij go od subskrybentów, list i wiadomości
get_custom_fieldPobierz pole własne ze wszystkimi ustawieniami
create_custom_fieldUtwórz pole własne globalne lub dla jednej listy; jego nazwa staje się wstawką
update_custom_fieldZmień etykietę, typ, opcje lub nazwę pola własnego (zakres się nie zmienia)
delete_custom_fieldUsuń pole własne razem ze wszystkimi zapisanymi wartościami

Import (2)

NarzędzieOpis
preview_list_importPróbny import: mapowanie kolumn, błędne adresy i duplikaty, bez zapisu
import_subscribersZaimportuj kontakty na listę z CSV, TSV, JSON lub listy adresów

Eksport (3)

NarzędzieOpis
export_listEksportuj członków listy od razu jako JSON, CSV lub NDJSON, z filtrami
get_export_fieldsPokaż kolumny dostępne w eksporcie, w tym pola własne
queue_list_exportZleć pełny eksport CSV; właściciel konta dostanie link do pobrania

Higiena listy (5)

NarzędzieOpis
analyze_list_healthRaport higieny (tylko odczyt) z oceną 0–100 i rekomendacjami
clean_listWykonaj akcję na członkach z wybranych kategorii problemów (domyślnie na próbę)
dedupe_listScal zduplikowane adresy, także aliasy Gmaila z kropkami i +tagiem
verify_list_emailsSprawdź dostarczalność: składnia, adresy jednorazowe i funkcyjne, literówki w domenach, rekordy MX
get_hygiene_optionsZwróć kategorie i akcje akceptowane przez clean_list

Członkowie list (6)

NarzędzieOpis
add_list_membersDodaj istniejące kontakty do listy
remove_list_membersOdłącz kontakty od listy i anuluj ich zaplanowane wiadomości
set_member_statusZmień status na liście: aktywny, nieaktywny, wypisany lub odbity
copy_list_membersSkopiuj kontakty na inną listę tego samego kanału
move_list_membersPrzenieś kontakty na inną listę tego samego kanału
tag_list_membersDodaj lub usuń tagi w wybranym segmencie listy

Aktywność i zaangażowanie (3)

NarzędzieOpis
get_list_activityKronika zdarzeń listy: zapisy, wypisy, odbicia, wysyłki, otwarcia i kliknięcia
get_list_engagementWyniki listy: przyrost, odpływ, wskaźniki otwarć i kliknięć, najlepsze wiadomości i linki
get_subscriber_activityPełna historia kontaktu: listy, tagi, zaplanowane wiadomości i oś czasu

Lista blokad (3)

NarzędzieOpis
list_suppressionsPokaż kontową listę adresów, do których nie wolno wysyłać, z powodem i datą
suppress_emailsDodaj adresy do listy blokad i wypisz je ze wszystkich list
unsuppress_emailsZdejmij blokadę z adresów (nikogo nie zapisuje ponownie)

Powiadomienia (2)

NarzędzieOpis
send_notificationWyślij powiadomienie do centrum powiadomień właściciela konta
list_notificationsOdczytaj ostatnie powiadomienia właściciela i liczbę nieprzeczytanych

Wiadomości e-mail i SMS (6)

NarzędzieOpis
list_mailboxesPobierz dostępne skrzynki nadawcze
send_emailWyślij pojedynczy e-mail do subskrybenta
get_email_statusSprawdź status dostarczenia e-maila
list_sms_providersPobierz dostępnych dostawców SMS
send_smsWyślij pojedynczy SMS do subskrybenta lub na numer telefonu
get_sms_statusSprawdź status dostarczenia SMS

Kampanie (17)

NarzędzieOpis
list_campaignsLista kampanii e-mail i SMS z filtrowaniem
get_campaignPobierz wszystkie edytowalne pola kampanii, w tym listy, wyzwalacz i tłumaczenia
create_campaignUtwórz kampanię e-mail lub SMS (zapisywaną jako szkic)
update_campaignZaktualizuj szkic lub zaplanowaną kampanię
set_campaign_listsUstaw listy odbiorców kampanii
set_campaign_exclusionsUstaw listy wykluczeń – ich subskrybenci nie dostaną kampanii
schedule_campaignZaplanuj wysyłkę kampanii, z obsługą stref czasowych
send_campaignWyślij kampanię teraz lub aktywuj autoresponder
get_campaign_statsPobierz statystyki wysyłki kampanii
delete_campaignUsuń szkic lub zaplanowaną kampanię
send_campaign_testWyślij test kampanii na maksymalnie 5 adresów; nic nie trafia do kolejki
preview_campaignPokaż kampanię tak, jak zobaczy ją odbiorca, z podstawionymi wstawkami
duplicate_campaignSkopiuj kampanię jako nowy szkic
set_campaign_activeAktywuj lub wstrzymaj autoresponder
get_campaign_recipient_countPolicz, do kogo kampania trafiłaby teraz, po wykluczeniach i filtrach
resend_campaign_failedPonownie zakolejkuj odbiorców, do których wysyłka się nie powiodła (wymaga potwierdzenia)
send_campaign_to_missedWyślij teraz aktywny autoresponder subskrybentom, którzy go ominęli (wymaga potwierdzenia)

Testy A/B (7)

NarzędzieOpis
list_ab_testsLista testów A/B, z filtrem po statusie lub kampanii
create_ab_testUtwórz test A/B dla kampanii
add_ab_variantDodaj wariant do testu A/B
start_ab_testUruchom test A/B (wymaga co najmniej 2 wariantów)
end_ab_testZakończ trwający test i opcjonalnie wybierz zwycięzcę
get_ab_test_resultsPobierz szczegółowe wyniki i statystyki testu
delete_ab_testUsuń test A/B, który nie jest uruchomiony

Lejki (automatyzacja) (12)

NarzędzieOpis
list_funnelsLista lejków automatyzacji
get_funnelPobierz lejek ze wszystkimi krokami i statystykami
create_funnelUtwórz lejek automatyzacji
update_funnelZmień nazwę lejka lub jego wyzwalacz
add_funnel_stepDodaj krok do lejka i połącz go
update_funnel_stepZmień ustawienia i połączenia kroku
delete_funnel_stepUsuń krok i połącz lejek z pominięciem go
enroll_subscriber_in_funnelOd razu dodaj subskrybenta do aktywnego lejka
activate_funnelAktywuj lejek dla nowych subskrybentów
pause_funnelWstrzymaj lejek
get_funnel_statsPobierz statystyki lejka: liczby subskrybentów i wskaźniki ukończenia
delete_funnelUsuń lejek (najpierw go wstrzymaj)

Personalizacja (1)

NarzędzieOpis
list_placeholdersPobierz wstawki do personalizacji treści e-mail i SMS

Webhooki (8)

NarzędzieOpis
list_webhook_eventsPokaż nazwy zdarzeń, które może subskrybować webhook
list_webhooksLista webhooków konta ze stanem, liczbą błędów i ostatnim wywołaniem
get_webhookPobierz ustawienia webhooka (bez sekretu)
create_webhookZarejestruj webhook dla wybranych zdarzeń; sekret do podpisu pojawia się tylko raz
update_webhookZmień nazwę, URL, zdarzenia lub stan aktywności webhooka
delete_webhookTrwale usuń webhook
test_webhookWyślij testowe zdarzenie i sprawdź, czy endpoint odpowiedział kodem 2xx
regenerate_webhook_secretWygeneruj nowy sekret do podpisu; stary od razu przestaje działać

Szablony e-mail (13)

NarzędzieOpis
list_templatesLista własnych szablonów e-mail i systemowych szablonów startowych
get_templatePobierz szablon z HTML, MJML, blokami kreatora i ustawieniami
create_templateUtwórz szablon e-mail z HTML albo z bloków kreatora
update_templateZmień własny szablon (tylko przekazane pola)
delete_templateUsuń własny szablon; kampanie utworzone z niego zachowują treść
duplicate_templateSkopiuj własny lub systemowy szablon na konto, aby go edytować
preview_templatePodstaw wstawki szablonu dla subskrybenta lub danych przykładowych; nic nie jest wysyłane
list_template_categoriesLista kategorii szablonów: systemowych i własnych
list_template_block_typesLista typów bloków kreatora z domyślną treścią i ustawieniami
list_template_blocksLista zapisanych bloków kreatora: własnych i globalnych
create_template_blockZapisz blok kreatora do ponownego użycia, np. nagłówek, stopkę lub przycisk
update_template_blockZmień własny zapisany blok
delete_template_blockUsuń własny zapisany blok; szablony, które go zawierają, się nie zmieniają

Wiadomości i strony systemowe (9)

NarzędzieOpis
list_system_emailsLista automatycznych wiadomości systemowych (double opt-in, powitanie, wypis…) dla listy lub globalnie
get_system_emailPobierz wiadomość systemową z tematem, HTML i dostępnymi wstawkami
update_system_emailZmień temat, treść lub aktywność wiadomości systemowej dla jednej listy albo globalnie
set_system_email_activeWłącz lub wyłącz wiadomość systemową dla jednej listy
reset_system_emailUsuń wersję listy, aby znów używała globalnej wiadomości systemowej
list_system_pagesLista stron systemowych pokazywanych po zapisie, aktywacji, wypisie i zmianie preferencji
get_system_pagePobierz stronę systemową z tytułem, HTML, dostępem i wstawkami
update_system_pageZmień tytuł, treść lub dostęp strony systemowej dla jednej listy albo globalnie
reset_system_pageUsuń wersję listy, aby znów używała globalnej strony systemowej

Formularze zapisu (6)

NarzędzieOpis
list_formsLista formularzy zapisu ze statusem, listą, liczbą zgłoszeń i adresem strony z formularzem
get_formPobierz konfigurację formularza, adres jego strony i kody osadzenia HTML, JS i iframe
create_formUtwórz formularz zapisu do listy e-mail (startuje jako szkic)
update_formZmień formularz, opublikuj go albo wstrzymaj zapisy
delete_formUsuń formularz; strony, które go osadzają, przestają działać, a subskrybenci zostają
duplicate_formSkopiuj formularz jako nowy szkic z nowym kodem osadzenia

Reguły automatyzacji (9)

NarzędzieOpis
get_automation_optionsPobierz katalog zdarzeń, warunków i akcji do budowania reguł
list_automationsLista reguł automatyzacji z wyzwalaczem, akcjami, stanem i liczbą uruchomień
get_automationPobierz pełną regułę ze statystykami z 7 dni
create_automationUtwórz regułę: gdy zajdzie zdarzenie i warunki są spełnione, wykonaj akcje
update_automationZmień regułę (tylko przekazane pola)
set_automation_activeWłącz, wyłącz lub przełącz regułę
duplicate_automationSkopiuj regułę; kopia startuje jako nieaktywna
delete_automationTrwale usuń regułę razem z dziennikiem wykonań
get_automation_logsPobierz dziennik wykonań reguły: status, subskrybent i wynik każdej akcji

Konto (2)

NarzędzieOpis
test_connectionPrzetestuj połączenie z API i dane dostępowe
get_account_infoPobierz informacje o połączonym koncie

Oprócz narzędzi klient udostępnia 5 gotowych promptów (analyze_subscribers, send_newsletter, cleanup_list, import_contacts, list_report) i 3 zasoby (netsendo://info, netsendo://stats, netsendo://lists).

Przykładowe zapytania

"Pokaż moje listy mailingowe"
"Ilu mam subskrybentów?"
"Dodaj subskrybenta jan@example.com do listy Newsletter"
"Wyślij powitalną wiadomość do anna@example.com"
"Przeanalizuj jakość mojej listy mailingowej"

Bezpieczeństwo

🔐 Klucze API nigdy nie są logowane ani wystawiane
🔒 Wszystkie wywołania API respektują uprawnienia NetSendo
⚡ Rate limiting: 60 żądań/minutę
🚫 Wrażliwe dane (hasła, płatności) nigdy nie są zwracane
📝 Wszystkie operacje są logowane w dzienniku aktywności

Rozwiązywanie problemów

Połączenie nieudane
  • Upewnij się, że NetSendo jest uruchomiony i dostępny
  • Sprawdź, czy klucz API jest prawidłowy
  • Zweryfikuj poprawność URL-a (uwzględnij https://)
Narzędzia się nie pojawiają

Uruchom ponownie narzędzie AI po zmianach konfiguracji.

Komenda npx nie znaleziona

Zainstaluj Node.js ze strony nodejs.org (zawiera npm/npx).

Wiele instancji NetSendo

Możesz połączyć się z wieloma instancjami NetSendo, używając różnych nazw serwerów:

{
  "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"]
    }
  }
}