@cyanheads/mailchimp-mcp-server
Herramientas
Dieciocho herramientas siempre activas más dos condicionales — mailchimp_assets (cuando MAILCHIMP_ASSETS_DIR está definido) y mailchimp_local_templates (cuando MAILCHIMP_TEMPLATES_DIR está definido). Los asistentes de flujo de trabajo orquestan flujos comunes de principio a fin, las herramientas primitivas exponen CRUD de grano fino, y la herramienta de instrucción devuelve orientación procedimental combinada con el estado de la cuenta en tiempo real.
Nombre de la herramienta | Descripción |
| Perfil de la cuenta, plan, centro de datos, suscriptores totales y el feed de actividad de Chimp Chatter. |
| Gestiona audiencias (listas): lectura, creación/actualización, análisis por audiencia, configuración del formulario de suscripción. Sin eliminación. |
| Resumen de salud de la audiencia en una sola llamada: información, estadísticas, historial de crecimiento, principales clientes de correo, esquema de campos de combinación. |
| CRUD de suscriptores + etiquetas/notas/actividad. |
| Añade o actualiza un suscriptor de forma idempotente con estado, campos de combinación, etiquetas y nota opcional. |
| Localiza un suscriptor por correo electrónico en una audiencia o en toda la cuenta. |
| Añadir/actualizar suscriptores por lotes (máximo 500/llamada). El estado por defecto es |
| CRUD para segmentos de audiencia (guardados, estáticos, difusos) más listado de miembros y añadir/eliminar por lotes. |
| Lectura + creación/actualización de atributos personalizados de suscriptores. Sin eliminación — elimina datos de todos los suscriptores. |
| Gestión de registros de campañas: listar/obtener/crear/actualizar, replicar, contenido, lista de verificación, controles de RSS/reenvío. |
| Redacta y envía (o programa/prueba) una campaña en una sola llamada. Solicita confirmación humana reentrante antes de las mutaciones de envío/programación. |
| Duplica una campaña con anulaciones opcionales y luego borrador/prueba/envío/programación. Mismas semánticas de confirmación y limpieza. |
| Informes de campaña: segmentador genérico en diez dimensiones (clics, aperturas, ubicaciones, etc.). |
| Resumen de análisis posterior al envío: métricas principales + 5 cortes principales en una respuesta. |
| Lectura/escritura de plantillas de correo: las lecturas ( |
| Administrador de archivos (Content Studio): sube, lista, obtiene, renombra y elimina archivos en el CDN de Mailchimp. Incrusta el |
| Búsqueda global en miembros o campañas. Descubrimiento ligero — usa |
| Superficie de activos locales. Lista tu directorio de activos, inspecciona el estado de la caché, precarga subidas antes de un envío. La mayoría de los flujos de trabajo no llaman esto directamente: las referencias |
| Superficie de creación de plantillas locales. Lista/obtén/vista previa de renderizado de tus plantillas |
| Devuelve un manual de procedimientos estructurado combinado con el estado de la cuenta en vivo. Solo consejos, sin escrituras. |
mailchimp_send_campaign
Redacta y envía (o programa/prueba) una campaña en una sola llamada.
Encadena crear → contenido → lista de verificación → prueba opcional → enviar/programar
Solicita confirmación humana mediante una ronda de entrada reentrante antes de cualquier mutación de campaña cuando
mode: 'send' | 'schedule'Elimina automáticamente los borradores fallidos cuando
cleanupOnError: true(por defecto); la confirmación rechazada deja un borrador revisableAdmite formularios de contenido
html,plaintext,templateId + templateSectionsy plantillas Eta locales
mailchimp_replicate_campaign
Duplica una campaña existente con anulaciones opcionales y luego envía/programa/prueba o déjala como borrador.
Anulaciones: asunto, nombre del remitente, responder a, audiencia, segmento, contenido
Mismas semánticas de confirmación reentrante + limpieza que
mailchimp_send_campaignOptimizado para el patrón común de "enviar v2 del boletín de la semana pasada con una introducción actualizada"
mailchimp_upsert_subscriber
Añade o actualiza un suscriptor en una sola llamada idempotente.
Sincronización declarativa de etiquetas — pasa el conjunto activo deseado y la herramienta calcula el delta de añadir/eliminar
preserveTagsprotege las membresías de segmentos con nombre (Mailchimp almacena la membresía de segmentos estáticos como etiquetas)status: 'pending'activa el correo de doble opt-in de Mailchimp;'subscribed'requiere consentimiento documentadoPUT
/members/{hash}para la ruta de creación, PATCH para la actualización y omitir la revalidación de campos de combinación preexistentes
mailchimp_import_subscribers
Añade (y opcionalmente actualiza) suscriptores por lotes en una sola llamada.
Limitado a 500 filas por llamada — divide importaciones más grandes en el lado del cliente
El estado por defecto es
pending(doble opt-in) para evitar envíos masivos accidentalesDevuelve por fila correcto/fallido con motivos de error
mailchimp_campaign_report
Análisis agregado posterior al envío para una campaña.
Métricas de entrega principales: enviados, rebotes, informes de abuso
Interacción: aperturas, clics, bajas
Enlaces más clicados (Top-N), ubicaciones, bajas recientes
Referencias del sector cuando estén disponibles
Usa
mailchimp_reportsconoperation: 'slice'para una sola dimensión en detalle
mailchimp_audience_overview
Resumen de salud de la audiencia en una sola llamada: responde a «¿cómo es esta audiencia?» en una sola petición.
Información de la audiencia + estadísticas en vivo
Historial de crecimiento configurable en meses
Principales clientes de correo
Esquema completo de campos de combinación
Actividad reciente
mailchimp_playbook
Devuelve un manual de procedimientos estructurado combinado con el estado en vivo de la cuenta. Solo asesoramiento: el agente ejecuta los pasos posteriores con otras herramientas.
Temas:
send,post-send-review,deliverability,list-hygiene,onboarding,subscriber-triage,design-campaignDevuelve instrucciones en markdown + una instantánea del estado en vivo
nextToolSuggestionsrellena previamente los argumentos para la siguiente llamada a herramienta probable
Related MCP server: Mailchimp MCP Server
Recursos y prompts
Tipo | Nombre | Descripción |
Recurso |
| Instantánea de la información de la cuenta: perfil, plan, centro de datos, suscriptores totales. |
Recurso |
| Instantánea de la audiencia: nombre, contacto, estadísticas, estado de doble opt-in. |
Recurso |
| Instantánea de la campaña: estado, ajustes, resumen de destinatarios. |
Recurso |
| Métricas principales del informe de campaña tras el envío. |
Prompt |
| Iniciador invocable por el usuario: redacta un boletín editorial mensual a partir de una URL o un resumen. Se encadena con |
Todos los datos de los recursos también son accesibles a través de las herramientas. Las colecciones grandes (audiences, campaigns) no se exponen como recursos: usa la operación list en la herramienta correspondiente. Referencia de diseño para el prompt: docs/email-design-playbook.md.
Características
Construido sobre @cyanheads/mcp-ts-core:
Definiciones declarativas de herramientas, recursos y prompts: un solo archivo por primitiva, el framework gestiona el registro y la validación
Manejo de errores unificado: los manejadores lanzan excepciones, el framework las captura, clasifica y formatea
Autenticación conectable:
none,jwt,oauthRegistro estructurado con trazado opcional de OpenTelemetry
Transportes STDIO y Streamable HTTP
Específico de Mailchimp:
Deriva automáticamente la URL base de la API a partir del sufijo
-dcde la clave de APIFlujos de envío seguros por defecto: confirmación reentrante, importaciones en estado pendiente, sin eliminaciones permanentes desde la superficie del agente
Las herramientas de flujo de trabajo paralelizan las subpeticiones relacionadas bajo un límite de concurrencia configurable
La normalización de dominio transforma las cargas útiles dispersas de upstream en una salida compacta y amigable para LLM sin inventar valores
Primeros pasos
Añade lo siguiente a tu archivo de configuración del cliente MCP. Consulta docs/api-key.md para saber cómo generar una clave de API de Mailchimp.
{
"mcpServers": {
"mailchimp-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/mailchimp-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"MAILCHIMP_API_KEY": "your-key-with-dc-suffix-e.g.-us22"
}
}
}
}O con npx (no se requiere Bun):
{
"mcpServers": {
"mailchimp-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/mailchimp-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"MAILCHIMP_API_KEY": "your-key-with-dc-suffix-e.g.-us22"
}
}
}
}O con Docker:
{
"mcpServers": {
"mailchimp-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "MCP_TRANSPORT_TYPE=stdio",
"-e", "MAILCHIMP_API_KEY=your-key-with-dc-suffix-e.g.-us22",
"ghcr.io/cyanheads/mailchimp-mcp-server:latest"
]
}
}
}Para Streamable HTTP, configura el transporte e inicia el servidor:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 MAILCHIMP_API_KEY=... bun run start:http
# Server listens at http://localhost:3010/mcpRequisitos previos
Bun v1.4.0 o superior (o Node.js v24+).
Una clave de API de Mailchimp Marketing: el sufijo
-dcde la clave (p. ej.-us22) identifica tu centro de datos y se analiza al inicio.
Instalación
Clona el repositorio:
git clone https://github.com/cyanheads/mailchimp-mcp-server.gitAccede al directorio:
cd mailchimp-mcp-serverInstala las dependencias:
bun installConfigura el entorno:
cp .env.example .env
# edit .env and set MAILCHIMP_API_KEYConfiguración
Variable | Descripción | Por defecto |
| Obligatoria. Clave de API de Mailchimp Marketing, incluido el sufijo | — |
| Sobrescribe la URL base de la API (para servidores simulados o pruebas). |
|
| Tiempo de espera por petición en milisegundos. |
|
| Número máximo de reintentos para fallos transitorios de upstream (0-10). |
|
| Máximo de peticiones upstream en curso por herramienta de flujo de trabajo (1-10). |
|
| Ruta absoluta a un directorio local de recursos. Cuando se define (solo Node), habilita la herramienta | sin definir |
| Ruta absoluta a un directorio local de plantillas. Cuando se define (solo Node), habilita la herramienta | sin definir |
| Transporte: |
|
| Nombre de host del servidor HTTP. |
|
| Puerto del servidor HTTP. |
|
| Ruta del endpoint de MCP. |
|
| Modo de autenticación: |
|
| Nivel de registro (RFC 5424). |
|
| Directorio para los archivos de registro (solo Node.js). |
|
| Habilita OpenTelemetry. |
|
Consulta .env.example para ver la lista completa de sobrescrituras opcionales.
Recursos locales (opcional)
Define MAILCHIMP_ASSETS_DIR para habilitar un flujo de trabajo de imágenes locales sobre Mailchimp File Manager. Coloca los archivos de imagen en el directorio, refiérelos en el HTML como @assets/<relative-path>, y el servidor los sube y reescribe en el momento del envío.
export MAILCHIMP_ASSETS_DIR=/Users/me/Pictures/email-assetsLuego, en una campaña:
<img src="@assets/hero.png" alt="Hero">
<a href="@assets/whitepaper.pdf">Download</a>Cuando mailchimp_send_campaign (o mailchimp_campaigns set-content / mailchimp_replicate_campaign contentOverride) detecta estas referencias:
Calcula el hash (SHA-256) de cada archivo referenciado.
Sube los elementos no presentes en la caché a Mailchimp File Manager mediante la superficie de la herramienta
mailchimp_files.Almacena en caché
sha256 → file_id + URLen<assetsDir>/.mailchimp-cache.json(escrituras atómicas; se puede eliminar sin riesgo para forzar una nueva subida).Reescribe cada
@assets/<path>a la URL pública del CDN antes de enviar el contenido a upstream.
La herramienta mailchimp_assets expone list, info, sync (precalentamiento) y clear-cache para inspección directa; la mayoría de los flujos de trabajo no la necesitan.
Advertencias:
Mailchimp limita las imágenes a 1 MB y el resto de archivos a 10 MB. Los archivos que superen el tamaño fallan antes de la subida con un error procesable.
Extensiones permitidas: consulta la descripción de la herramienta
mailchimp_files. WebP y AVIF NO están en la lista de permitidos: conviértelos a PNG/JPG.Se rechaza el path traversal (
../y las rutas absolutas lanzanForbidden).La herramienta
mailchimp_assetses solo Node; en Cloudflare Workers no está registrada.
Plantillas locales (opcional)
Define MAILCHIMP_TEMPLATES_DIR para habilitar un flujo de trabajo de creación de plantillas locales sobre Eta (v4: rápido, nativo de ESM, compatible con parciales/condicionales/bucles). Esta es la vía de escritura canónica para plantillas en cuentas gratuitas de Mailchimp, donde la API /templates de upstream es de solo lectura.
export MAILCHIMP_TEMPLATES_DIR=/Users/me/email-templatesemail-templates/
welcome.eta # body + optional YAML frontmatter
newsletter.eta
partials/
header.eta
footer.etaPlantilla (welcome.eta): frontmatter YAML arriba, cuerpo Eta debajo:
---
subject: "Welcome to {{brand}}"
previewText: "Onboarding starts here"
vars:
- firstName
- brand
---
<%~ include('partials/header', it) %>
<h1>Hello <%= it.firstName %></h1>
<p>Welcome to <%= it.brand %>.</p>
<img src="@assets/hero.png" alt="Hero">Frontmatter es opcional — un cuerpo sin bloque --- se trata como una plantilla sin metadatos. Todos los campos de metadatos también son opcionales. La lista vars: es solo informativa (las variables declaradas no están sujetas al esquema).
Respaldo sidecar (heredado): antes de v0.3.1, los metadatos se encontraban en un archivo
<name>.meta.yamlseparado junto al cuerpo. Esa forma sigue funcionando por compatibilidad hacia atrás — si un.etano tiene frontmatter, el cargador recurre a leer el sidecar. El frontmatter tiene prioridad cuando ambos existen.
Referencia desde cualquier herramienta de campaña:
{
"audienceId": "abc123",
"subject": "Welcome to Acme",
"fromName": "Casey",
"replyTo": "casey@acme.com",
"content": {
"localTemplate": "welcome",
"localTemplateVars": { "firstName": "Sam", "brand": "Acme" }
},
"mode": "draft"
}El pipeline de renderizado:
Eta renderiza
welcome.etaconit = { firstName: 'Sam', brand: 'Acme' }.Si L1 está configurado,
@assets/hero.pngse sube al Administrador de archivos de Mailchimp y se reescribe a una URL de CDN.El HTML final se establece en la campaña mediante
set-contentde Mailchimp.
La herramienta mailchimp_local_templates expone list, get, render-preview (devuelve HTML sin enviar) y seed-from-mailchimp (lee una plantilla base/user de Mailchimp por ID y la escribe en disco como punto de partida — útil en el plan gratuito, donde puedes leer pero no escribir upstream).
Plantillas de ejemplo en este repositorio
El directorio templates/ contiene ejemplos funcionales — apunta MAILCHIMP_TEMPLATES_DIR directamente a él para probarlos, o cópialos a tu propio directorio como punto de partida:
Plantilla | Qué muestra |
Cuerpo mínimo — frontmatter que declara | |
Boletín HTML completo con estilos en línea. Demuestra la división recomendada: etiquetas de combinación de Mailchimp ( |
Advertencias:
localTemplatees mutuamente excluyente conhtmlytemplateIden el mismo bloque de contenido.La validación de variables no está impuesta por el esquema — las variables faltantes o sobrantes aparecen como errores de renderizado de Eta en el momento del envío.
Se rechaza el path traversal.
Solo Node; no disponible en Workers.
Ejecutar el servidor
Desarrollo local
Modo watch (transporte mediante
MCP_TRANSPORT_TYPE):bun run dev # stdio (default) MCP_TRANSPORT_TYPE=http bun run dev # httpCompilar y ejecutar:
bun run rebuild bun run start:stdio # or bun run start:httpEjecutar comprobaciones y pruebas:
bun run devcheck # Lint, format, typecheck, security bun run test # Vitest test suite bun run lint:mcp # Validate MCP definitions against spec
Docker
docker build -t mailchimp-mcp-server .
docker run --rm -e MAILCHIMP_API_KEY=your-key-us22 -p 3010:3010 mailchimp-mcp-serverEl Dockerfile usa por defecto transporte HTTP, modo de sesión sin estado y registra en /var/log/mailchimp-mcp-server. Las dependencias pares de OpenTelemetry se instalan por defecto — compila con --build-arg OTEL_ENABLED=false para omitirlas.
Estructura del proyecto
Directorio | Propósito |
| Punto de entrada de |
| Análisis y validación de variables de entorno específicas del servidor con Zod. |
| Definiciones de herramientas ( |
| Definiciones de recursos ( |
| Definiciones de prompts ( |
| Envoltorio del cliente de Mailchimp: manejo HTTP, reintentos, normalización, superficie tipada. |
| Cobertura de Vitest para configuración, servicios, flujos de trabajo de herramientas, formato de salida, contratos del framework y regresiones. |
Guía de desarrollo
Consulta CLAUDE.md para las pautas de desarrollo y las reglas arquitectónicas. La versión corta:
Los handlers lanzan excepciones, el framework las captura — no uses
try/catchen la lógica de las herramientas.Usa
ctx.logpara el registro con ámbito de solicitud.Registra nuevas herramientas y recursos mediante los barrels en
src/mcp-server/*/definitions/index.ts.Envuelve las llamadas a API externas: valida el dato bruto → normaliza al tipo de dominio → devuelve el esquema de salida; nunca inventes campos faltantes.
Contribuciones
Las issues y los pull requests son bienvenidos. Ejecuta las comprobaciones y las pruebas antes de enviar:
bun run devcheck
bun run testLicencia
Este proyecto está licenciado bajo la Licencia Apache 2.0. Consulta el archivo LICENSE para más detalles.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Mailchimp MCP Pack — manage audiences, campaigns, and members via Mailchimp Marketing API.
Send transactional email and manage domains, audiences, and broadcasts from any MCP client.
Read audiences, members, campaigns and reports; add, update, tag and archive subscribers.
Read subscribers, groups, campaigns, fields, segments, automations, webhooks; safe additive writes.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that interfaces with the Mailchimp Marketing API to manage audiences, email campaigns, and subscribers. It enables users to create and schedule campaigns, handle member lists, and send test or live emails through natural language commands.1329MIT
- AlicenseBqualityCmaintenanceA production-grade MCP server that integrates with the Mailchimp Marketing API to manage campaigns, audiences, members, and reports. It provides 28 specialized tools for automating marketing tasks such as sending emails, managing subscriber tags, and analyzing performance data.711MIT
- FlicenseNot gradedqualityDmaintenanceEnables interaction with the Mailchimp API for managing campaigns, lists, templates, reports, and automations through natural language.3-
- AlicenseNot gradedqualityCmaintenanceManage Mailchimp audiences, campaigns, and members via the Mailchimp Marketing API through natural language queries.12MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/mailchimp-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server