NetSendo

Integración MCP

Model Context Protocol para Asistentes de IA

Model Context Protocol (MCP) es un estándar abierto introducido por Anthropic que permite a los asistentes de IA (como Claude, Cursor, VS Code Copilot) integrarse con herramientas y fuentes de datos externas.

Hacer preguntas: '¿Cuántos suscriptores tengo?'
Gestionar suscriptores usando lenguaje natural
Enviar mensajes: 'Enviar un correo a jan@example.com'
Obtener estadísticas: 'Analizar la calidad de mi lista'

Cómo Funciona

El asistente de IA se comunica con el servidor MCP a través del protocolo STDIO, y el servidor MCP realiza operaciones en NetSendo usando la API REST v1.

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

Instalación

Instalación Remota (npx)
Recomendado
Ideal para NetSendo alojado en un servidor (ej. https://app.miempresa.com)

Requisitos

  • Node.js 18+
  • Clave API de NetSendo

Pasos

  1. Generar clave API: Configuración → Claves API
  2. Instalar Node.js desde nodejs.org
  3. Configurar tu herramienta de IA usando la configuración de abajo

Claude Desktop y 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 lee los servidores MCP de .vscode/mcp.json en tu workspace (o de tu perfil de usuario con el comando "MCP: Open User Configuration"). Este archivo usa la clave de primer nivel "servers" en lugar de "mcpServers".

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

Reemplaza https://your-domain.com con la URL de tu instancia NetSendo y YOUR_API_KEY con tu clave API generada.

Instalación Local (Docker)
Ideal para NetSendo ejecutándose localmente en Docker

Requisitos

  • Docker instalado y ejecutándose
  • Acceso al archivo docker-compose.yml de NetSendo

Pasos

  1. Generar clave API: Configuración → Claves API
  2. Marcar la clave API para MCP en la configuración
  3. Añadir la clave al archivo .env: MCP_API_KEY=your-api-key
  4. Construir el contenedor MCP: docker compose build mcp
  5. Configurar tu herramienta de IA usando la configuración de abajo

Claude Desktop y Cursor

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

Reemplaza /path/to/NetSendo con la ruta completa a tu directorio de instalación de NetSendo.

En VS Code, coloca la misma entrada "netsendo" bajo la clave de primer nivel "servers" en .vscode/mcp.json y añade "type": "stdio".

Ubicaciones de Archivos de Configuración

ClienteUbicación del Archivo
Claude Desktop (macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows)%APPDATA%\Claude\claude_desktop_config.json
Cursor IDEConfiguración → MCP → Añadir Servidor
VS Code.vscode/mcp.json

Clientes de IA Compatibles

🤖
Claude Desktop

Aplicación de escritorio oficial Claude de Anthropic

💻
Cursor IDE

IDE con IA integrada para desarrolladores

📝
VS Code

Visual Studio Code con GitHub Copilot (modo agente)

Funciones Disponibles

Suscriptores

Gestionar contactos – añadir, editar, eliminar

Listas de Contactos

Explorar y organizar listas de correo

Mensajes de Email

Enviar mensajes de correo personalizados

Mensajes SMS

Enviar mensajes SMS a contactos

Etiquetas

Categorizar suscriptores usando etiquetas

Estadísticas

Verificar estadísticas de cuenta y entregabilidad

Herramientas Disponibles

La versión 1.6.0 de @netsendo/mcp-client ofrece 140 herramientas en 21 grupos.

Suscriptores (6)

HerramientaDescripción
list_subscribersListar suscriptores con filtrado y paginación
get_subscriberObtener un suscriptor por ID o email
create_subscriberCrear un suscriptor, con listas y etiquetas opcionales
update_subscriberActualizar los datos de un suscriptor
delete_subscriberEliminar un suscriptor de forma permanente
sync_subscriber_tagsReemplazar todas las etiquetas de un suscriptor

Listas de contactos y sus ajustes (11)

HerramientaDescripción
list_contact_listsObtener todas las listas con número de suscriptores y buzón predeterminado
get_contact_listObtener la configuración completa de una lista: ajustes, etiquetas, corregistro, límites y webhook
get_list_subscribersObtener los suscriptores de una lista
get_list_statsResumen de la lista: miembros por estado, interacción, crecimiento en 30 días y ajustes de envío
create_contact_listCrear una lista de email o SMS con cualquier ajuste del editor de listas
update_contact_listCambiar los ajustes de una lista (solo los campos indicados)
get_list_cron_settingsObtener el horario de envío de una lista: franjas semanales, límite por minuto y si sigue los ajustes CRON globales
update_list_cron_settingsDefinir cuándo y a qué ritmo se envían los mensajes en cola de una lista, o volver a los ajustes globales
get_list_defaultsObtener los valores predeterminados de listas de la cuenta y los ajustes CRON de la instancia
update_list_defaultsCambiar los valores predeterminados de listas de la cuenta (solo las claves indicadas)
delete_contact_listEliminar una lista; los contactos permanecen en la cuenta

Etiquetas y campos personalizados (9)

HerramientaDescripción
list_tagsObtener las etiquetas de la cuenta con nombre, color y descripción
list_custom_fieldsObtener los campos personalizados de la cuenta con su marcador y ámbito
create_tagCrear una etiqueta (los nombres son únicos por cuenta)
update_tagRenombrar una etiqueta o cambiar su color y descripción
delete_tagEliminar una etiqueta y quitarla de suscriptores, listas y mensajes
get_custom_fieldObtener un campo personalizado con todos sus ajustes
create_custom_fieldCrear un campo personalizado global o de una lista; su nombre pasa a ser un marcador
update_custom_fieldCambiar la etiqueta, el tipo, las opciones o el nombre de un campo (el ámbito no cambia)
delete_custom_fieldEliminar un campo personalizado y todos los valores guardados en él

Importación (2)

HerramientaDescripción
preview_list_importSimular una importación: mapeo de columnas, direcciones no válidas y duplicados, sin guardar nada
import_subscribersImportar contactos a una lista desde CSV, TSV, JSON o direcciones sueltas

Exportación (3)

HerramientaDescripción
export_listExportar miembros de una lista al momento como JSON, CSV o NDJSON, con filtros
get_export_fieldsMostrar las columnas exportables, incluidos los campos personalizados
queue_list_exportEncolar una exportación CSV completa; el titular recibe un enlace de descarga

Higiene de listas (5)

HerramientaDescripción
analyze_list_healthInforme de higiene (solo lectura) con puntuación de 0–100 y recomendaciones
clean_listAplicar una acción a los miembros de las categorías elegidas (simulación por defecto)
dedupe_listFusionar direcciones duplicadas, incluidos los alias de Gmail con puntos y +etiqueta
verify_list_emailsComprobar la entregabilidad: sintaxis, direcciones desechables y genéricas, dominios con errores, registros MX
get_hygiene_optionsDevolver las categorías y acciones que acepta clean_list

Miembros de listas (6)

HerramientaDescripción
add_list_membersAñadir contactos existentes a una lista
remove_list_membersQuitar contactos de una lista y cancelar sus mensajes pendientes
set_member_statusCambiar el estado: activo, inactivo, dado de baja o rebotado
copy_list_membersCopiar contactos a otra lista del mismo canal
move_list_membersMover contactos a otra lista del mismo canal
tag_list_membersAñadir o quitar etiquetas en un segmento de una lista

Actividad e interacción (3)

HerramientaDescripción
get_list_activityFeed de eventos de una lista: altas, bajas, rebotes, envíos, aperturas y clics
get_list_engagementRendimiento de la lista: crecimiento, abandono, tasas de apertura y clic, mejores mensajes y enlaces
get_subscriber_activityHistorial completo de un contacto: listas, etiquetas, mensajes pendientes y cronología

Lista de supresión (3)

HerramientaDescripción
list_suppressionsMostrar la lista de supresión de la cuenta con motivo y fecha
suppress_emailsAñadir direcciones a la lista de supresión y darlas de baja de todas las listas
unsuppress_emailsLevantar la supresión de direcciones (no vuelve a suscribir a nadie)

Notificaciones (2)

HerramientaDescripción
send_notificationPublicar una notificación en el centro de notificaciones del titular de la cuenta
list_notificationsLeer las notificaciones recientes del titular y cuántas quedan sin leer

Mensajes de email y SMS (6)

HerramientaDescripción
list_mailboxesObtener los buzones de envío disponibles
send_emailEnviar un email individual a un suscriptor
get_email_statusVerificar el estado de entrega del email
list_sms_providersObtener los proveedores SMS disponibles
send_smsEnviar un SMS individual a un suscriptor o número de teléfono
get_sms_statusVerificar el estado de entrega del SMS

Campañas (17)

HerramientaDescripción
list_campaignsListar campañas de email y SMS con filtrado
get_campaignObtener todos los campos editables de una campaña, incluidas listas, disparador y traducciones
create_campaignCrear una campaña de email o SMS (como borrador)
update_campaignActualizar un borrador o una campaña programada
set_campaign_listsDefinir las listas de destinatarios de una campaña
set_campaign_exclusionsDefinir listas de exclusión cuyos suscriptores no recibirán la campaña
schedule_campaignProgramar una campaña, con soporte de zonas horarias
send_campaignEnviar una campaña ahora o activar un autorespondedor
get_campaign_statsObtener las estadísticas de envío de una campaña
delete_campaignEliminar un borrador o una campaña programada
send_campaign_testEnviar una prueba de una campaña a hasta 5 direcciones; no se pone nada en cola
preview_campaignMostrar una campaña tal como la ve un destinatario, con los marcadores resueltos
duplicate_campaignCopiar una campaña como nuevo borrador
set_campaign_activeActivar o pausar un autorespondedor
get_campaign_recipient_countContar a quién llegaría una campaña ahora, tras exclusiones y filtros
resend_campaign_failedVolver a poner en cola a los destinatarios cuyo envío falló (requiere confirmación)
send_campaign_to_missedEnviar ahora un autorespondedor activo a los suscriptores que se lo perdieron (requiere confirmación)

Tests A/B (7)

HerramientaDescripción
list_ab_testsListar tests A/B, filtrados por estado o campaña
create_ab_testCrear un test A/B para una campaña
add_ab_variantAñadir una variante a un test A/B
start_ab_testIniciar un test A/B (mínimo 2 variantes)
end_ab_testFinalizar un test en curso y, opcionalmente, elegir el ganador
get_ab_test_resultsObtener resultados y estadísticas detallados de un test
delete_ab_testEliminar un test A/B que no esté en curso

Embudos (automatización) (12)

HerramientaDescripción
list_funnelsListar los embudos de automatización
get_funnelObtener un embudo con todos sus pasos y estadísticas
create_funnelCrear un embudo de automatización
update_funnelRenombrar un embudo o cambiar su disparador
add_funnel_stepAñadir un paso a un embudo y conectarlo
update_funnel_stepCambiar los ajustes y conexiones de un paso
delete_funnel_stepEliminar un paso y reconectar el embudo sin él
enroll_subscriber_in_funnelIncluir al instante a un suscriptor en un embudo activo
activate_funnelActivar un embudo para nuevos suscriptores
pause_funnelPausar un embudo
get_funnel_statsObtener estadísticas del embudo: suscriptores y tasas de finalización
delete_funnelEliminar un embudo (primero hay que pausarlo)

Personalización (1)

HerramientaDescripción
list_placeholdersObtener los marcadores para personalizar contenido de email y SMS

Webhooks (8)

HerramientaDescripción
list_webhook_eventsListar los eventos a los que puede suscribirse un webhook
list_webhooksListar los webhooks de la cuenta con estado, número de fallos y última entrega
get_webhookObtener los ajustes de un webhook (sin el secreto)
create_webhookRegistrar un webhook para los eventos elegidos; el secreto de firma se muestra una sola vez
update_webhookCambiar el nombre, la URL, los eventos o el estado de un webhook
delete_webhookEliminar un webhook de forma permanente
test_webhookEnviar una entrega de prueba y comprobar si el endpoint respondió con 2xx
regenerate_webhook_secretGenerar un nuevo secreto de firma; el anterior deja de funcionar al instante

Plantillas de email (13)

HerramientaDescripción
list_templatesListar las plantillas de email propias y las plantillas de inicio del sistema
get_templateObtener una plantilla con su HTML, MJML, bloques del editor y ajustes
create_templateCrear una plantilla de email a partir de HTML o de bloques del editor
update_templateActualizar una plantilla propia (solo los campos indicados)
delete_templateEliminar una plantilla propia; las campañas creadas con ella conservan su contenido
duplicate_templateCopiar una plantilla propia o del sistema a la cuenta para editarla
preview_templateResolver los marcadores de una plantilla para un suscriptor o datos de ejemplo; no se envía nada
list_template_categoriesListar las categorías de plantillas del sistema y propias
list_template_block_typesListar los tipos de bloque del editor con su contenido y ajustes predeterminados
list_template_blocksListar los bloques guardados del editor, propios y globales
create_template_blockGuardar un bloque reutilizable del editor, como un encabezado, un pie o un botón
update_template_blockCambiar un bloque guardado propio
delete_template_blockEliminar un bloque guardado propio; las plantillas que lo contienen no cambian

Emails y páginas del sistema (9)

HerramientaDescripción
list_system_emailsListar los emails automáticos del sistema (doble opt-in, bienvenida, baja…) de una lista o globales
get_system_emailObtener un email del sistema con su asunto, HTML y marcadores disponibles
update_system_emailCambiar el asunto, el contenido o el estado de un email del sistema, para una lista o de forma global
set_system_email_activeActivar o desactivar un email del sistema para una lista
reset_system_emailQuitar la versión propia de una lista para que vuelva a usar el email global
list_system_pagesListar las páginas del sistema que se muestran tras el alta, la activación, la baja y el cambio de preferencias
get_system_pageObtener una página del sistema con su título, HTML, acceso y marcadores
update_system_pageCambiar el título, el contenido o el acceso de una página del sistema, para una lista o de forma global
reset_system_pageQuitar la versión propia de una lista para que vuelva a usar la página global

Formularios de suscripción (6)

HerramientaDescripción
list_formsListar los formularios de suscripción con estado, lista, número de envíos y URL alojada
get_formObtener la configuración de un formulario con su URL alojada y los códigos de inserción HTML, JS e iframe
create_formCrear un formulario de suscripción para una lista de email (empieza como borrador)
update_formCambiar un formulario, publicarlo o detener las altas
delete_formEliminar un formulario; las páginas que lo insertan dejan de funcionar y los suscriptores se conservan
duplicate_formCopiar un formulario como nuevo borrador con un nuevo código de inserción

Reglas de automatización (9)

HerramientaDescripción
get_automation_optionsObtener el catálogo de eventos, condiciones y acciones para crear reglas
list_automationsListar las reglas de automatización con disparador, acciones, estado y número de ejecuciones
get_automationObtener una regla completa, con estadísticas de 7 días
create_automationCrear una regla: cuando ocurre un evento y se cumplen las condiciones, se ejecutan las acciones
update_automationCambiar una regla (solo los campos indicados)
set_automation_activeActivar, desactivar o alternar una regla
duplicate_automationCopiar una regla; la copia empieza inactiva
delete_automationEliminar una regla de forma permanente, con su registro de ejecuciones
get_automation_logsObtener el registro de ejecuciones de una regla: estado, suscriptor y resultado de cada acción

Cuenta (2)

HerramientaDescripción
test_connectionProbar la conexión con la API y las credenciales
get_account_infoObtener información de la cuenta conectada

Además de las herramientas, el cliente ofrece 5 prompts predefinidos (analyze_subscribers, send_newsletter, cleanup_list, import_contacts, list_report) y 3 recursos (netsendo://info, netsendo://stats, netsendo://lists).

Consultas de Ejemplo

"Mostrar mis listas de correo"
"¿Cuántos suscriptores tengo?"
"Añadir suscriptor jan@example.com a la lista Newsletter"
"Enviar un mensaje de bienvenida a anna@example.com"
"Analizar la calidad de mi lista de correo"

Seguridad

🔐 Las claves API nunca se registran ni se exponen
🔒 Todas las llamadas API respetan los permisos de NetSendo
⚡ Límite de velocidad: 60 solicitudes/minuto
🚫 Los datos sensibles (contraseñas, pagos) nunca se devuelven
📝 Todas las operaciones se registran en el log de actividad

Solución de Problemas

Conexión Fallida
  • Asegúrate de que NetSendo esté ejecutándose y sea accesible
  • Verifica que la clave API sea válida
  • Verifica que la URL sea correcta (incluye https://)
Las Herramientas No Aparecen

Reinicia tu herramienta de IA después de cambios de configuración.

Comando npx No Encontrado

Instala Node.js desde nodejs.org (incluye npm/npx).

Múltiples Instancias de NetSendo

Puedes conectarte a múltiples instancias de NetSendo usando diferentes nombres de servidor:

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