Sáltate la instalación. Funcionando en menos de 2 minutos.
Inicia una prueba gratuita en cloud.anythingmcp.com, añade Constant Contact con un clic y apunta tu cliente de IA (Claude, ChatGPT, Copilot o Cursor) al endpoint MCP generado. Sin Docker, sin git clone, sin experiencia de desarrollo.
Resumen
Trabaja con una cuenta de Constant Contact desde cualquier agente de IA: contactos con su consentimiento de email, listas, etiquetas, campos personalizados y segmentos, cambios masivos de listas y etiquetas, campañas de email creadas desde tu HTML con vista previa y envío de prueba, e informes de campañas, enlaces y contactos concretos. API V3 con inicio de sesión OAuth; programar un envío y los borrados vienen desactivados.
Prueba a pedir
Prompts de ejemplo para Constant Contact
Haz clic en un prompt para copiarlo. Pégalo en Claude, ChatGPT, Cursor, Gemini, Copilot u OpenClaw para ejecutarlo contra este conector.
Claude es IA y puede equivocarse. Verifica siempre las respuestas.
💡 ¿Sin instalación? Usa cloud.anythingmcp.com directamente. Inicia sesión, pulsa Connectors → Constant Contact, pega tus credenciales, genera una MCP API key y listo. Sin Docker, sin
git clone, sin servidor local.
Constant Contact + Microsoft Copilot
Trabaja con una cuenta de Constant Contact desde cualquier agente de IA: contactos con su consentimiento de email, listas, etiquetas, campos personalizados y segmentos, cambios masivos de listas y etiquetas, campañas de email creadas desde tu HTML con vista previa y envío de prueba, e informes de campañas, enlaces y contactos concretos. API V3 con inicio de sesión OAuth; programar un envío y los borrados vienen desactivados.
Requisitos previos
Las instrucciones de configuración completas están incluidas en el conector (visibles en el store al seleccionarlo). Las variables de entorno requeridas:
CONSTANT_CONTACT_CLIENT_ID, CONSTANT_CONTACT_CLIENT_SECRET (lo rellena Authorize with Provider: CONSTANT_CONTACT_REFRESH_TOKEN)
Paso 1 — Obtener credenciales
La configuración lleva unos 10 minutos. Registras tu propia aplicación en el portal para desarrolladores de Constant Contact e inicias sesión con la cuenta que quieres conectar.
- Abre el portal para desarrolladores V3 en https://app.constantcontact.com/pages/dma/portal e inicia sesión con el usuario de Constant Contact de esa cuenta. Las aplicaciones nuevas son privadas: hasta que Constant Contact aprueba una aplicación, solo el usuario que la creó puede autorizarla.
- Haz clic en New Application y ponle un nombre (aparece en la pantalla de consentimiento). Elige Authorization Code Flow and Implicit Flow y un tipo de refresh token: Rotating Refresh Tokens (recomendado) o Long Lived Refresh Tokens. Créala.
- Abre la aplicación con Edit y añade como redirect URI
<your AnythingMCP URL>/api/mcp-oauth/callback, en AnythingMCP Cloudhttps://cloud.anythingmcp.com/api/mcp-oauth/callback, carácter por carácter. - Haz clic en Generate Client Secret. El secreto solo se muestra una vez. Guarda la aplicación.
- Pega la API Key de la aplicación (es el client ID de OAuth) en
CONSTANT_CONTACT_CLIENT_IDy el secreto enCONSTANT_CONTACT_CLIENT_SECRET. Deja vacíoCONSTANT_CONTACT_REFRESH_TOKENe instala. - En la página del conector haz clic en Authorize with Provider e inicia sesión en Constant Contact. El conector pide los scopes
account_read contact_data campaign_data offline_access(offline_accesses el que devuelve un refresh token). - Ejecuta
constant_contact_get_account_summary: muestra la organización y confirma el inicio de sesión.
Un access token dura 24 horas y se renueva solo con el refresh token. Con refresh tokens rotativos cada renovación devuelve un refresh token nuevo y el anterior deja de funcionar, así que no uses el token guardado en ningún otro sitio; con los de larga duración el mismo token sigue valiendo. Los dos caducan tras 180 días sin uso: entonces vuelve a autorizar. Lo que puede hacer la IA depende también de los privilegios del usuario de Constant Contact que inició sesión (constant_contact_get_user_privileges).
Qué lee: el resumen de la cuenta, las direcciones de remitente de la cuenta con su estado de confirmación y los privilegios del usuario conectado. Contactos filtrados por email, estado, listas, etiquetas, segmento o fechas de alta, cambio y baja, con su permiso de email, los datos de alta y baja y, si se piden, listas, etiquetas, campos personalizados, teléfonos, direcciones y notas; el número de contactos por estado de consentimiento. Listas con su número de miembros, etiquetas con su número de contactos, campos personalizados y segmentos con sus criterios. Actividades en segundo plano y su progreso. Campañas de email con sus actividades, el asunto, remitente, destinatarios y HTML de un email, una vista previa HTML, la programación y el historial de envíos. Informes: resultados de las campañas recientes (envíos, aperturas, clics, reenvíos, bajas, rebotes, denuncias de spam), estadísticas por campaña y por actividad, clics por enlace, los contactos detrás de cada cifra y el historial de emails y las tasas de apertura y clic de un contacto.
Qué escribe: añade o actualiza contactos (constant_contact_create_or_update_contact trabaja por email, cambia solo los campos enviados y es la opción segura; constant_contact_update_contact sustituye el contacto entero, por eso la IA lo lee antes), crea y renombra listas, etiquetas y campos personalizados, mete y saca contactos de listas y etiquetas de forma masiva, crea borradores de campañas de email desde tu HTML, fija sus destinatarios, los renombra, envía emails de prueba y cancela un envío programado. Los cambios masivos se ejecutan en segundo plano y devuelven un activity_id que la IA sigue con constant_contact_get_activity hasta que el estado es completed.
Crear un email: constant_contact_create_email_campaign crea un borrador desde tu propio HTML (email de código personalizado, format_type 5). El HTML debe contener [[trackingImage]] para que se cuenten las aperturas, y el remitente y la dirección de respuesta deben ser direcciones confirmadas de constant_contact_list_account_emails. Después constant_contact_update_email_campaign_activity fija contact_list_ids o segment_ids; sustituye la actividad, por eso la IA la lee antes y vuelve a enviar todos los campos. Revisa el resultado con constant_contact_get_email_preview y constant_contact_send_test_email (hasta 5 direcciones por prueba, 50 destinatarios de prueba al día por cuenta).
Desactivadas al instalar: constant_contact_schedule_email_campaign_activity (envía a todos los contactos de las listas y no se puede retirar una vez empezado el envío), constant_contact_delete_contact y constant_contact_delete_contact_list. Un admin del workspace las activa cuando el equipo las necesita. Con la programación activada, la IA te muestra asunto, remitente, destinatarios y hora y programa solo después de tu sí.
Consentimiento: añade contactos solo si aceptaron recibir emails de la empresa y nunca pongas permission_to_send en explicit para personas que no dieron su alta. Los contactos dados de baja no se pueden volver a suscribir por la API sin una acción suya. Un contacto puede estar como máximo en 50 listas.
Formatos de datos: los ids de contactos, listas, etiquetas, campos personalizados, campañas y actividades de campaña son UUID; los ids de segmento son enteros. Una campaña tiene varias actividades: informes, vistas previas, pruebas y programaciones usan el campaign_activity_id de la actividad primary_email, no el campaign_id. Las horas van en ISO 8601 en UTC (2026-10-30T14:05:00.000Z). El current_status de una campaña es Draft, Scheduled, Executing, Done, Error o Removed; permission_to_send es explicit, implicit, not_set, pending_confirmation, temp_hold o unsubscribed. Las cifras de los informes son contactos únicos salvo que el informe diga otra cosa, y las tasas son porcentajes.
Paginación: las listas traen _links.next.href mientras haya más páginas. Contactos, listas, etiquetas, campos personalizados, actividades y campañas usan el valor cursor= de ese enlace como cursor; informes y segmentos, el valor next= como next. La IA mantiene los demás filtros iguales entre páginas.
Límites: 10.000 peticiones al día por aplicación (se reinician a las 00:00 UTC) y 4 por segundo; si se supera cualquiera, la API responde 429 (quota_exceeded o throttled).
Errores frecuentes: 401 indica un token caducado o revocado: vuelve a hacer clic en Authorize with Provider y comprueba que la API key y el secreto son de la misma aplicación. Al iniciar sesión, un error de redirección significa que la redirect URI no coincide exactamente. 403 es un scope o un privilegio de usuario que falta (constant_contact_get_user_privileges muestra cuál). 404 es un id desconocido. 409 es un email, lista, etiqueta o nombre de campaña duplicado. 400 explica la entrada no válida en error_key y error_message. Un 202 de constant_contact_list_contacts con un segmento significa que el resultado aún se está preparando: vuelve a pedirlo.
El conector no cubre eventos, campañas SMS, publicaciones en redes sociales ni endpoints de partners, y no crea emails con el editor de arrastrar y soltar.
Paso 2 — Instalar el 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
Paso 3 — Añadir el conector en Microsoft Copilot
La URL de tu servidor: en AnythingMCP abre MCP Servers → el servidor donde está este conector y copia su URL (
https://cloud.anythingmcp.com/mcp/…). Úsala donde esta guía muestraYOUR_SERVER_ID.
Microsoft Copilot usa servidores MCP a través de agentes creados en Copilot Studio: añades AnythingMCP a un agente como herramienta y luego publicas el agente en Microsoft 365 Copilot y Teams. Copilot Studio se conecta desde la nube de Microsoft por Streamable HTTP, que AnythingMCP admite.
- En Copilot Studio, abre tu agente (o crea uno), ve a Tools y elige Add a tool → New tool → Model Context Protocol.
- Escribe un Server name (por ejemplo
AnythingMCP), una Server description que diga qué hace el conector y la Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio usa la descripción para decidir cuándo llamar al servidor. - En la autenticación, elige API key, pon Type en Header y
X-API-Keycomo nombre de la cabecera, y selecciona Create. - En Add tool, elige Create a new connection, pega una clave de API MCP de AnythingMCP (MCP Servers → tu servidor → API keys) y selecciona Add to agent.
- Pruébalo en el panel Test del agente: pide algo que necesite las herramientas de
Constant Contact. - Selecciona Publish y luego Channels → Microsoft 365 and Microsoft Teams, deja marcada Make agent available in Microsoft Copilot y elige Add channel. See agent in Teams lo instala para ti; en Microsoft 365 Copilot, escribe @ y elige el agente.
¿Prefieres que cada persona inicie sesión? En lugar de la clave de API elige OAuth 2.0 → Dynamic discovery: cada usuario inicia sesión en AnythingMCP la primera vez que el agente lo llama.
¿Lo alojas tú mismo? Usa la dirección HTTPS pública de tu instancia en lugar de https://cloud.anythingmcp.com. Copilot Studio se conecta desde la nube de Microsoft, así que localhost no funciona.
Herramientas disponibles
| 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 |
Ejemplos de prompts
- "¿Qué tal funcionaron nuestras tres últimas campañas de email? Compara aperturas, clics, bajas y rebotes."
- "Añade [email protected] a la lista Newsletter con el nombre Anna. Se suscribió en nuestra web."
- "¿Quién hizo clic en el enlace de precios de la campaña de la semana pasada? Dame sus emails."
- "Crea un borrador de campaña con este HTML para la lista Clientes VIP y antes de nada envíame una prueba."
- "Pon la etiqueta webinar-2026 a todos los contactos de la lista Webinar octubre y avísame cuando termine el cambio masivo."
FAQ
¿Para qué Copilot es? Para Microsoft 365 Copilot en el trabajo, mediante agentes de Copilot Studio. La app de Microsoft Copilot para cuentas personales no permite añadir tu propio servidor MCP.
¿Qué necesito? Una cuenta de trabajo con acceso a Copilot Studio (licencia o prueba) para crear el agente. Quien lo use en Microsoft 365 Copilot o Teams necesita acceso al agente: compártelo o pide a un administrador que lo publique para la organización. Si tu organización aplica directivas de datos a los conectores de Power Platform, también cubren los servidores MCP.
El agente no llama a las herramientas. Comprueba que el nombre de la cabecera sea exactamente X-API-Key y que la clave pertenezca al mismo servidor MCP que la URL, y escribe una Server description concreta: Copilot Studio la usa para decidir cuándo llamar al servidor. Vuelve a publicar el agente después de cada cambio; en un chat abierto, escribe "start over" para usar la nueva versión.
Siguientes pasos
- Página del conector
- Conectar a Claude
- Conectar a ChatGPT
- Conectar a Cursor
- Conectar a Gemini
- Conectar a Meta Muse
¿Te ha sido útil esta guía?