Salta l'installazione. Attivo in meno di 2 minuti.
Avvia una prova gratuita su cloud.anythingmcp.com, aggiungi Constant Contact con un clic, poi punta il tuo client AI (Claude, ChatGPT, Copilot o Cursor) all'endpoint MCP generato. Niente Docker, niente git clone, nessuna esperienza di sviluppo richiesta.
In breve
Lavora con un account Constant Contact da qualsiasi agente AI: contatti con il loro consenso email, liste, tag, campi personalizzati e segmenti, modifiche massive a liste e tag, campagne email create dal tuo HTML con anteprima e invio di prova, e i report di campagne, link e singoli contatti. API V3 con accesso OAuth; la pianificazione dell'invio e le eliminazioni sono disattivate all'installazione.
Prova a chiedere
Prompt di esempio per Constant Contact
Clicca su un prompt per copiarlo. Incollalo in Claude, ChatGPT, Cursor, Gemini, Copilot o OpenClaw per eseguirlo contro questo connettore.
Claude è un'AI e può sbagliare. Verifica sempre le risposte.
💡 Niente installazione? Vai direttamente su cloud.anythingmcp.com. Accedi, clicca Connectors → Constant Contact, inserisci le credenziali, genera una MCP API key e hai finito. Niente Docker, niente
git clone, niente server locale.
Constant Contact + Microsoft Copilot
Lavora con un account Constant Contact da qualsiasi agente AI: contatti con il loro consenso email, liste, tag, campi personalizzati e segmenti, modifiche massive a liste e tag, campagne email create dal tuo HTML con anteprima e invio di prova, e i report di campagne, link e singoli contatti. API V3 con accesso OAuth; la pianificazione dell'invio e le eliminazioni sono disattivate all'installazione.
Prerequisiti
Le istruzioni di setup complete sono incluse nel connettore stesso (visibili nello store quando lo selezioni). Le variabili d'ambiente richieste sono:
CONSTANT_CONTACT_CLIENT_ID, CONSTANT_CONTACT_CLIENT_SECRET (compilato da Authorize with Provider: CONSTANT_CONTACT_REFRESH_TOKEN)
Step 1 — Ottieni le credenziali
La configurazione richiede circa 10 minuti. Registri una tua applicazione nel portale sviluppatori di Constant Contact e accedi con l'account che vuoi collegare.
- Apri il portale sviluppatori V3 su https://app.constantcontact.com/pages/dma/portal e accedi con le credenziali Constant Contact di quell'account. Le nuove applicazioni sono private: finché Constant Contact non approva un'applicazione, solo l'utente che l'ha creata può autorizzarla.
- Fai clic su New Application e dalle un nome (compare nella schermata di consenso). Scegli Authorization Code Flow and Implicit Flow e un tipo di refresh token: Rotating Refresh Tokens (consigliato) o Long Lived Refresh Tokens. Creala.
- Apri l'applicazione con Edit e aggiungi come redirect URI
<your AnythingMCP URL>/api/mcp-oauth/callback, su AnythingMCP Cloudhttps://cloud.anythingmcp.com/api/mcp-oauth/callback, carattere per carattere. - Fai clic su Generate Client Secret. Il secret viene mostrato una sola volta. Salva l'applicazione.
- Incolla l'API Key dell'applicazione (è il client ID OAuth) in
CONSTANT_CONTACT_CLIENT_IDe il secret inCONSTANT_CONTACT_CLIENT_SECRET. Lascia vuotoCONSTANT_CONTACT_REFRESH_TOKENe installa. - Nella pagina del connettore fai clic su Authorize with Provider e accedi a Constant Contact. Il connettore chiede gli scope
account_read contact_data campaign_data offline_access(offline_accessè quello che restituisce un refresh token). - Esegui
constant_contact_get_account_summary: mostra l'organizzazione e conferma l'accesso.
Un access token dura 24 ore e si rinnova da solo con il refresh token. Con i refresh token a rotazione ogni rinnovo restituisce un nuovo refresh token e il precedente smette di funzionare, quindi non usare il token salvato altrove; con quelli di lunga durata lo stesso token continua a valere. Entrambi scadono dopo 180 giorni di inutilizzo: in quel caso autorizza di nuovo. Quello che l'AI può fare dipende anche dai privilegi dell'utente Constant Contact che ha effettuato l'accesso (constant_contact_get_user_privileges).
Cosa legge: il riepilogo dell'account, gli indirizzi mittente dell'account con il loro stato di conferma e i privilegi dell'utente collegato. I contatti filtrati per email, stato, liste, tag, segmento o date di creazione, modifica e disiscrizione, con il permesso email, i dettagli di iscrizione e disiscrizione e, su richiesta, liste, tag, campi personalizzati, telefoni, indirizzi e note; il numero di contatti per stato di consenso. Le liste con il numero di iscritti, i tag con il numero di contatti, i campi personalizzati e i segmenti con i loro criteri. Le attività in background e il loro avanzamento. Le campagne email con le loro attività, oggetto, mittente, destinatari e HTML di un'email, un'anteprima HTML, la pianificazione e lo storico degli invii. Report: risultati delle campagne recenti (invii, aperture, clic, inoltri, disiscrizioni, bounce, segnalazioni di spam), statistiche per campagna e per attività, clic per link, i contatti dietro ogni numero e lo storico email e i tassi di apertura e clic di un singolo contatto.
Cosa scrive: aggiunge o aggiorna contatti (constant_contact_create_or_update_contact lavora per email, cambia solo i campi inviati ed è la scelta sicura; constant_contact_update_contact sostituisce l'intero contatto, quindi l'AI lo legge prima), crea e rinomina liste, tag e campi personalizzati, aggiunge e toglie contatti da liste e tag in blocco, crea bozze di campagne email dal tuo HTML, ne imposta i destinatari, le rinomina, invia email di prova e annulla un invio pianificato. Le modifiche massive girano in background e restituiscono un activity_id che l'AI segue con constant_contact_get_activity finché lo stato è completed.
Creare un'email: constant_contact_create_email_campaign crea una bozza dal tuo HTML (email con codice personalizzato, format_type 5). L'HTML deve contenere [[trackingImage]] perché le aperture siano tracciate, e mittente e indirizzo di risposta devono essere indirizzi confermati presi da constant_contact_list_account_emails. Poi constant_contact_update_email_campaign_activity imposta contact_list_ids o segment_ids; sostituisce l'attività, quindi l'AI la legge prima e reinvia tutti i campi. Controlla il risultato con constant_contact_get_email_preview e constant_contact_send_test_email (fino a 5 indirizzi per prova, 50 destinatari di prova al giorno per account).
Disattivati all'installazione: constant_contact_schedule_email_campaign_activity (invia a tutti i contatti delle liste e non si può fermare una volta partito l'invio), constant_contact_delete_contact e constant_contact_delete_contact_list. Un admin del workspace li attiva quando servono al team. Con la pianificazione attiva, l'AI ti mostra oggetto, mittente, destinatari e orario e pianifica solo dopo il tuo sì.
Consenso: aggiungi contatti solo se hanno accettato di ricevere email dall'azienda e non impostare mai permission_to_send su explicit per chi non ha dato il consenso. I contatti disiscritti non possono essere reiscritti tramite API senza una loro azione. Un contatto può stare al massimo in 50 liste.
Formati dei dati: gli id di contatti, liste, tag, campi personalizzati, campagne e attività delle campagne sono UUID; gli id dei segmenti sono interi. Una campagna ha più attività: report, anteprime, prove e pianificazioni vogliono il campaign_activity_id dell'attività primary_email, non il campaign_id. Gli orari sono ISO 8601 in UTC (2026-10-30T14:05:00.000Z). Il current_status di una campagna è Draft, Scheduled, Executing, Done, Error o Removed; permission_to_send è explicit, implicit, not_set, pending_confirmation, temp_hold o unsubscribed. I conteggi dei report sono contatti unici salvo diversa indicazione, e i tassi sono percentuali.
Paginazione: le liste contengono _links.next.href finché ci sono altre pagine. Contatti, liste, tag, campi personalizzati, attività e campagne usano il valore cursor= di quel link come cursor; report e segmenti il valore next= come next. L'AI mantiene gli altri filtri uguali tra una pagina e l'altra.
Limiti: 10.000 richieste al giorno per applicazione (azzerate alle 00:00 UTC) e 4 richieste al secondo; oltre l'uno o l'altro l'API risponde 429 (quota_exceeded o throttled).
Errori comuni: 401 indica un token scaduto o revocato: fai di nuovo clic su Authorize with Provider e verifica che API key e secret appartengano alla stessa applicazione. All'accesso, un errore di redirect significa che la redirect URI non coincide esattamente. 403 è uno scope o un privilegio utente mancante (constant_contact_get_user_privileges mostra quale). 404 è un id sconosciuto. 409 è un'email, una lista, un tag o un nome di campagna già esistente. 400 spiega l'input non valido in error_key e error_message. Un 202 da constant_contact_list_contacts con un segmento significa che il risultato è ancora in preparazione: richiedi di nuovo.
Il connettore non copre eventi, campagne SMS, post social o endpoint per partner, e non crea email con l'editor drag-and-drop.
Step 2 — Installa l'adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Aggiungi il connettore in Microsoft Copilot
L'URL del tuo server: in AnythingMCP apri MCP Servers → il server su cui si trova questo connettore e copia il suo URL (
https://cloud.anythingmcp.com/mcp/…). Usalo ovunque questa guida mostraYOUR_SERVER_ID.
Microsoft Copilot usa i server MCP tramite gli agenti creati in Copilot Studio: aggiungi AnythingMCP a un agente come strumento, poi pubblichi l'agente in Microsoft 365 Copilot e in Teams. Copilot Studio si collega dal cloud di Microsoft via Streamable HTTP, che AnythingMCP supporta.
- In Copilot Studio apri il tuo agente (o creane uno), vai su Tools e scegli Add a tool → New tool → Model Context Protocol.
- Inserisci un Server name (per esempio
AnythingMCP), una Server description che dica cosa fa il connettore e il Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio usa la descrizione per decidere quando chiamare il server. - Come autenticazione scegli API key, imposta Type su Header e come nome dell'header
X-API-Key, poi seleziona Create. - In Add tool scegli Create a new connection, incolla una chiave API MCP di AnythingMCP (MCP Servers → il tuo server → API keys) e seleziona Add to agent.
- Provalo nel riquadro Test dell'agente: chiedi qualcosa che richiede i tool di
Constant Contact. - Seleziona Publish, poi Channels → Microsoft 365 and Microsoft Teams, lascia selezionato Make agent available in Microsoft Copilot e scegli Add channel. See agent in Teams lo installa per te; in Microsoft 365 Copilot scrivi @ e scegli l'agente.
Preferisci un accesso per ogni utente? Al posto della chiave API scegli OAuth 2.0 → Dynamic discovery: ogni persona accede ad AnythingMCP la prima volta che l'agente lo chiama.
Usi il self-hosting? Usa l'indirizzo HTTPS pubblico della tua istanza al posto di https://cloud.anythingmcp.com. Copilot Studio si collega dal cloud di Microsoft, quindi localhost non funziona.
Tool disponibili
| Tool | What it does |
|---|---|
constant_contact_get_account_summary | Account details of the connected Constant Contact account: organization name, contact email and phone, website, time zone, country, state… |
constant_contact_list_account_emails | Email addresses of the account with their confirm status (CONFIRMED or UNCONFIRMED) and roles |
constant_contact_get_user_privileges | Privileges of the Constant Contact user who authorized the connector (for example contacts:write, campaign:send, ui:campaign:metrics) |
constant_contact_list_contacts | Search contacts, newest changes not guaranteed first |
constant_contact_get_contact | One contact by id with its email permission, opt-in and opt-out details and, with include, its lists, tags, custom fields, phone numbers… |
constant_contact_get_contact_counts | Total number of contacts in the account and how many are in each email consent state (explicit, implicit, pending confirmation… |
constant_contact_create_contact | Create a new contact |
constant_contact_create_or_update_contact | Add a contact by email address or update the existing one, and add it to one or more lists |
constant_contact_update_contact | Replace a contact's data |
constant_contact_delete_contact | Delete a contact |
constant_contact_list_contact_lists | Contact lists of the account with list_id, name, description, favorite flag and, with include_membership_count, the number of members |
constant_contact_get_contact_list | One contact list by id, optionally with its number of members |
constant_contact_create_contact_list | Create a contact list |
constant_contact_update_contact_list | Rename a list or change its description or favorite flag |
constant_contact_delete_contact_list | Delete a contact list and its memberships (the contacts stay in the account) |
constant_contact_add_contacts_to_lists | Add contacts to one or more lists as a background activity |
constant_contact_remove_contacts_from_lists | Remove contacts from one or more lists as a background activity (the contacts stay in the account) |
constant_contact_list_tags | Tags of the account with tag_id, name, tag_source and, with include_count, the number of tagged contacts |
constant_contact_get_tag | One tag by id, optionally with the number of contacts that carry it |
constant_contact_create_tag | Create a tag |
constant_contact_update_tag | Rename a tag |
constant_contact_add_tags_to_contacts | Put one or more tags on contacts as a background activity |
constant_contact_remove_tags_from_contacts | Take one or more tags off contacts as a background activity (the tags themselves stay) |
constant_contact_list_custom_fields | Custom contact fields of the account with custom_field_id, label, name, type and, for select fields, the choices |
constant_contact_get_custom_field | One custom field by id with its label, name, type, metadata and select choices |
constant_contact_create_custom_field | Create a custom contact field |
constant_contact_list_segments | Segments (saved contact filters) of the account with segment_id, name and dates |
constant_contact_get_segment | One segment with its criteria (segment_criteria as JSON text) |
constant_contact_list_activities | Background activities (bulk list and tag changes, imports, exports, deletes) with their state and percent done, newest first |
constant_contact_get_activity | Status of one background activity: state (initialized, processing, completed, cancelled, failed, timed_out), percent_done, counts and any… |
constant_contact_list_email_campaigns | Email campaigns of the account with campaign_id, name, current_status (Draft, Scheduled, Executing, Done, Error, Removed), type and created… |
constant_contact_get_email_campaign | One email campaign with its status and campaign_activities: each with campaign_activity_id and role (primary_email is the email itself… |
constant_contact_get_email_campaign_activity | One email campaign activity: subject, from and reply-to, preheader, format_type, current_status, the contact_list_ids or segment_ids it… |
constant_contact_create_email_campaign | Create a draft email campaign from your own HTML (custom code email, format_type 5) |
constant_contact_update_email_campaign_activity | Change a draft (or sent, for some fields) primary_email activity: subject, sender, HTML, preheader, footer address and the audience… |
constant_contact_rename_email_campaign | Rename an email campaign (the internal name, not the subject) |
constant_contact_get_email_preview | HTML preview of an email campaign activity, with contact and custom field variables filled from the account owner's data, plus the preview… |
constant_contact_send_test_email | Send a test of an email campaign activity to up to 5 addresses (50 test recipients a day per account) |
constant_contact_get_email_schedule | Scheduled send time of an email campaign activity; an empty array when it is not scheduled |
constant_contact_schedule_email_campaign_activity | Send an email campaign activity to its lists or segment, now (scheduled_date "0") or at a time |
constant_contact_unschedule_email_campaign_activity | Cancel the schedule of an email campaign activity in SCHEDULED status; it goes back to its previous status (usually DRAFT) |
constant_contact_get_email_send_history | Each time an email campaign activity was sent: date, number of contacts, the lists or segments used, and whether the send completed or… |
constant_contact_list_email_campaign_summaries | Results of sent email campaigns, last sent first: per campaign the unique sends, opens, clicks, forwards, unsubscribes (optouts), bounces… |
constant_contact_get_email_campaign_stats | Stats for one or more email campaigns: counts (sends, opens, clicks, forwards, optouts, bounces, abuse, not opened) and percents (open… |
constant_contact_get_email_campaign_activity_stats | Stats for up to 10 email campaign activities: counts per tracked action and the campaign each belongs to |
constant_contact_get_email_links_report | Links in an email campaign activity with the number of unique contacts who clicked each and the link action. url_id from here filters the… |
constant_contact_get_email_tracking_report | Contacts behind an email campaign activity's numbers, most recent first: who it was sent to, who opened (every open or unique opens), who… |
constant_contact_get_contact_activity_details | What one contact did with your emails and landing pages, newest first: sends, opens, clicks, bounces, unsubscribes, forwards and landing… |
constant_contact_get_contact_activity_summary | The emails sent to one contact in a date range (up to the 200 most recent campaigns) with what the contact did with each: opens, clicks… |
constant_contact_get_contact_open_click_rates | Average open and click rate of one contact over a date range of up to 5 years, with the number of emails counted |
Esempi di prompt
- "Come sono andate le nostre ultime tre campagne email? Confronta aperture, clic, disiscrizioni e bounce."
- "Aggiungi [email protected] alla lista Newsletter con nome Anna. Si è iscritta dal nostro sito."
- "Chi ha cliccato il link ai prezzi nella campagna della settimana scorsa? Elenca gli indirizzi email."
- "Crea una bozza di campagna da questo HTML per la lista Clienti VIP e prima di tutto mandami una prova."
- "Assegna il tag webinar-2026 a tutti i contatti della lista Webinar ottobre e dimmi quando la modifica massiva è finita."
FAQ
Per quale Copilot vale? Per Microsoft 365 Copilot in azienda, tramite gli agenti di Copilot Studio. L'app Microsoft Copilot per account personali non permette di aggiungere un proprio server MCP.
Cosa mi serve? Un account di lavoro con accesso a Copilot Studio (licenza o prova) per creare l'agente. Chi lo usa in Microsoft 365 Copilot o in Teams deve avere accesso all'agente: condividilo, oppure chiedi a un amministratore di pubblicarlo per l'organizzazione. Se la tua organizzazione applica criteri sui dati ai connettori di Power Platform, valgono anche per i server MCP.
L'agente non chiama i tool. Controlla che il nome dell'header sia esattamente X-API-Key e che la chiave appartenga allo stesso server MCP dell'URL, e scrivi una Server description precisa: Copilot Studio la usa per decidere quando chiamare il server. Dopo ogni modifica pubblica di nuovo l'agente; in una chat già aperta scrivi "start over" per passare alla nuova versione.
Prossimi passi
- Landing del connettore
- Collegare a Claude
- Collegare a ChatGPT
- Collegare a Cursor
- Collegare a Gemini
- Collegare a Meta Muse
Questa guida ti è stata utile?