Cos’è il Server MCP di Emailit?

Il Server MCP di Emailit è un server open-source del Model Context Protocol che collega direttamente gli assistenti AI a Emailit.

Ti permette di inviare email, gestire contatti, domini, template e molto altro attraverso il linguaggio naturale — direttamente da Claude, Cursor o qualsiasi client compatibile con MCP.

Prerequisiti

Modalità di trasporto

Il server supporta due modalità di trasporto:

Stdio (predefinita)

Il client MCP avvia il server come sottoprocesso e comunica tramite input/output standard. La chiave API viene passata tramite variabile d’ambiente o argomento CLI. Questa è l’opzione più semplice e funziona con tutti i principali client.

HTTP (Streamable HTTP)

Per integrazioni remote o basate su web, il server funziona come server HTTP utilizzando il trasporto Streamable HTTP. I client si autenticano per sessione passando la loro chiave API come token Bearer nell’header Authorization. L’endpoint è esposto su /mcp.

Installazione e configurazione

Claude Code (Stdio)

claude mcp add emailit \
  -e EMAILIT_API_KEY=la_tua_chiave_api \
  -- npx -y @emailit/emailit-mcp

Claude Code (HTTP)

Prima avvia il server:

npx -y @emailit/emailit-mcp --http --port 3000

Poi registralo:

claude mcp add emailit \
  --transport http http://127.0.0.1:3000/mcp \
  --header "Authorization: Bearer la_tua_chiave_api"

Cursor (Stdio)

Apri la palette dei comandi e scegli Cursor Settings → MCP → Add new global MCP server, poi incolla:

{
  "mcpServers": {
    "emailit": {
      "command": "npx",
      "args": ["-y", "@emailit/emailit-mcp"],
      "env": {
        "EMAILIT_API_KEY": "la_tua_chiave_api"
      }
    }
  }
}

Cursor (HTTP)

Avvia il server, poi aggiungi:

{
  "mcpServers": {
    "emailit": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer la_tua_chiave_api"
      }
    }
  }
}

Claude Desktop (Stdio)

Apri Impostazioni Claude Desktop → scheda Developer → Edit Config, poi incolla:

{
  "mcpServers": {
    "emailit": {
      "command": "npx",
      "args": ["-y", "@emailit/emailit-mcp"],
      "env": {
        "EMAILIT_API_KEY": "la_tua_chiave_api"
      }
    }
  }
}

Opzioni CLI

OpzioneDescrizione
--key <chiave>Chiave API (solo stdio; HTTP usa token Bearer)
--sender <email>Mittente predefinito da un dominio verificato
--reply-to <email>Reply-to predefinito (può essere ripetuto)
--httpUsa trasporto HTTP invece di stdio
--port <porta>Porta HTTP (predefinita: 3000)
-h, --helpMostra messaggio di aiuto

Variabili d’ambiente

VariabileDescrizione
EMAILIT_API_KEYChiave API (richiesta per stdio)
SENDER_EMAIL_ADDRESSMittente predefinito da un dominio verificato
REPLY_TO_EMAIL_ADDRESSESIndirizzi reply-to separati da virgola
MCP_PORTPorta HTTP (predefinita: 3000)

Suggerimento: Se non fornisci un indirizzo email mittente, il server MCP te ne chiederà uno ogni volta che invii un’email.

Strumenti disponibili

Il server espone 47 strumenti suddivisi in 8 categorie.

Email (10 strumenti)

StrumentoDescrizione
send-emailInvia un’email (HTML, testo, template, allegati, programmazione)
list-emailsElenca email con paginazione e filtri opzionali
get-emailRecupera una singola email per ID
get-email-rawOttieni il messaggio MIME completo
get-email-bodyOttieni il contenuto del corpo analizzato (testo e HTML)
get-email-attachmentsOttieni allegati con contenuto base64
get-email-metaOttieni metadati dell’email
update-emailAggiorna l’orario di invio di un’email programmata
cancel-emailAnnulla un’email programmata o in sospeso
retry-emailRiprova un’email fallita, in errore o trattenuta

Domini (6 strumenti)

StrumentoDescrizione
create-domainCrea un dominio e ottieni record DNS
get-domainOttieni info dominio e stato di verifica
list-domainsElenca tutti i domini
update-domainAggiorna impostazioni di tracciamento
delete-domainElimina un dominio (irreversibile)
verify-domainAttiva verifica DNS

Chiavi API (5 strumenti)

StrumentoDescrizione
create-api-keyCrea una nuova chiave API (mostrata solo una volta)
get-api-keyRecupera info chiave API
list-api-keysElenca tutte le chiavi API
update-api-keyAggiorna il nome di una chiave API
delete-api-keyElimina una chiave API (irreversibile)

Audience (5 strumenti)

StrumentoDescrizione
create-audienceCrea un’audience per campagne
get-audienceOttieni dettagli audience
list-audiencesElenca tutte le audience
update-audienceAggiorna il nome di un’audience
delete-audienceElimina un’audience e tutti i suoi iscritti

Contatti (5 strumenti)

StrumentoDescrizione
create-contactCrea un contatto con iscrizioni audience
get-contactOttieni un contatto per ID o indirizzo email
list-contactsElenca tutti i contatti
update-contactAggiorna i dettagli di un contatto
delete-contactElimina un contatto e i suoi record iscritto

Template (6 strumenti)

StrumentoDescrizione
create-templateCrea un template email
get-templateOttieni un template per ID con tutte le versioni
list-templatesElenca template pubblicati con filtri
update-templateAggiorna un template
delete-templateElimina un template permanentemente
publish-templatePubblica una versione template

Soppressioni (5 strumenti)

StrumentoDescrizione
create-suppressionAggiungi un indirizzo email alla lista soppressioni
get-suppressionOttieni una soppressione per ID o email
list-suppressionsElenca tutte le soppressioni
update-suppressionAggiorna una soppressione
delete-suppressionRimuovi una soppressione

Webhook (5 strumenti)

StrumentoDescrizione
create-webhookCrea un webhook con iscrizioni eventi
get-webhookOttieni info webhook
list-webhooksElenca tutti i webhook
update-webhookAggiorna un webhook
delete-webhookElimina un webhook

Esempi d’uso

Invia un’email semplice

Chiedi al tuo assistente AI:

“Invia un’email di benvenuto a john@example.com con oggetto ‘Benvenuto!’”

L’AI chiama send-email con:

{
  "from": "hello@miodominio.com",
  "to": "john@example.com",
  "subject": "Benvenuto!",
  "html": "<h1>Benvenuto!</h1><p>Grazie per esserti registrato.</p>"
}

Invia con template e variabili

“Invia il template welcome-email a sarah@example.com con il suo nome come Sarah.”

{
  "from": "hello@miodominio.com",
  "to": "sarah@example.com",
  "template": "welcome-email",
  "variables": { "name": "Sarah" }
}

Programma un’email

“Programma un’email di promemoria a team@company.com per domani alle 9.”

{
  "from": "promemoria@miodominio.com",
  "to": "team@company.com",
  "subject": "Promemoria Standup Giornaliero",
  "text": "Non dimenticare lo standup alle 9:30!",
  "scheduled_at": "domani alle 9"
}

Invia con allegati

“Invia un’email a accounting@company.com con il PDF della fattura allegato.”

{
  "from": "fatturazione@miodominio.com",
  "to": "accounting@company.com",
  "subject": "Fattura Mensile",
  "html": "<p>Trova la fattura in allegato.</p>",
  "attachments": [
    {
      "filename": "fattura-2026-05.pdf",
      "url": "https://example.com/fatture/2026-05.pdf"
    }
  ]
}

Gestisci domini

“Aggiungi il mio dominio mail.example.com e mostrami i record DNS.”

L’AI chiama create-domain e visualizza i record DNS necessari da configurare con il tuo provider DNS.

“Verifica il mio dominio.”

L’AI chiama verify-domain per controllare la propagazione DNS e riporta lo stato di verifica.

Gestisci contatti

“Aggiungi Jane Smith (jane@example.com) all’audience aud_abc123.”

{
  "email": "jane@example.com",
  "first_name": "Jane",
  "last_name": "Smith",
  "audiences": ["aud_abc123"]
}

Gestisci template

“Crea un template newsletter con alias monthly-newsletter.”

{
  "name": "Newsletter Mensile",
  "alias": "monthly-newsletter",
  "subject": "Aggiornamento {{month}}",
  "html": "<h1>Aggiornamento {{month}}</h1>..."
}

Gestisci soppressioni

“Sopprimi bounced@example.com per troppi rimbalzi definitivi.”

{
  "email": "bounced@example.com",
  "type": "bounce",
  "reason": "troppi rimbalzi definitivi"
}

Configura webhook

“Crea un webhook che invia eventi di consegna e rimbalzo al mio endpoint.”

{
  "name": "Tracker Consegne",
  "url": "https://miaapp.com/webhooks/email",
  "events": ["email.delivered", "email.bounced"]
}

Note sulla sicurezza

  • Le chiavi API non dovrebbero mai essere committate nel controllo versione.
  • In modalità stdio, la chiave API è memorizzata nella configurazione del client MCP.
  • In modalità HTTP, i client passano la chiave API per sessione tramite token Bearer.
  • Gli URL webhook sono validati contro SSRF prima della creazione.
  • Le operazioni di eliminazione richiedono all’AI di confermare prima con te.

Risoluzione problemi

“Chiave API richiesta per modalità stdio” Imposta la variabile d’ambiente EMAILIT_API_KEY o passa --key.

Dominio non verificato Configura i record DNS dall’output di create-domain, poi chiama verify-domain.

Email rifiutata / non invia Assicurati che il dominio sia verificato e l’indirizzo mittente usi quel dominio.

Email programmata non può essere annullata Deve essere almeno 3 minuti prima dell’orario programmato.

Riprova fallisce Solo email completamente fallite, in errore, trattenute o soppresse possono essere riprovate.

Sviluppo locale

git clone https://github.com/emailit/emailit-mcp.git
cd emailit-mcp
npm install

# Esegui in modalità stdio
EMAILIT_API_KEY=la_tua_chiave node src/index.js

# Esegui in modalità HTTP
node src/index.js --http --port 3000

Per maggiori dettagli, vedi il repository GitHub.

Localizzato tramite IA