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.
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
Requisitos
- Node.js 18+
- Clave API de NetSendo
Pasos
- Generar clave API: Configuración → Claves API
- Instalar Node.js desde nodejs.org
- 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.
Requisitos
- Docker instalado y ejecutándose
- Acceso al archivo docker-compose.yml de NetSendo
Pasos
- Generar clave API: Configuración → Claves API
- Marcar la clave API para MCP en la configuración
- Añadir la clave al archivo .env:
MCP_API_KEY=your-api-key - Construir el contenedor MCP:
docker compose build mcp - 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
| Cliente | Ubicación del Archivo |
|---|---|
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Cursor IDE | Configuración → MCP → Añadir Servidor |
| VS Code | .vscode/mcp.json |
Clientes de IA Compatibles
Aplicación de escritorio oficial Claude de Anthropic
IDE con IA integrada para desarrolladores
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.5.1 de @netsendo/mcp-client ofrece 77 herramientas en 15 grupos.
Suscriptores (6)
| Herramienta | Descripción |
|---|---|
| list_subscribers | Listar suscriptores con filtrado y paginación |
| get_subscriber | Obtener un suscriptor por ID o email |
| create_subscriber | Crear un suscriptor, con listas y etiquetas opcionales |
| update_subscriber | Actualizar los datos de un suscriptor |
| delete_subscriber | Eliminar un suscriptor de forma permanente |
| sync_subscriber_tags | Reemplazar todas las etiquetas de un suscriptor |
Listas de contactos, etiquetas y campos personalizados (9)
| Herramienta | Descripción |
|---|---|
| list_contact_lists | Obtener todas las listas con número de suscriptores y buzón predeterminado |
| get_contact_list | Obtener los detalles de una lista, incluido su buzón predeterminado |
| get_list_subscribers | Obtener los suscriptores de una lista |
| get_list_stats | Resumen de la lista: miembros por estado, interacción, crecimiento en 30 días y ajustes de envío |
| create_contact_list | Crear una lista de email o SMS |
| update_contact_list | Cambiar los ajustes de una lista (solo los campos indicados) |
| delete_contact_list | Eliminar una lista; los contactos permanecen en la cuenta |
| list_tags | Obtener todas las etiquetas disponibles |
| list_custom_fields | Obtener las definiciones de campos personalizados |
Miembros de listas (6)
| Herramienta | Descripción |
|---|---|
| add_list_members | Añadir contactos existentes a una lista |
| remove_list_members | Quitar contactos de una lista y cancelar sus mensajes pendientes |
| set_member_status | Cambiar el estado: activo, inactivo, dado de baja o rebotado |
| copy_list_members | Copiar contactos a otra lista del mismo canal |
| move_list_members | Mover contactos a otra lista del mismo canal |
| tag_list_members | Añadir o quitar etiquetas en un segmento de una lista |
Importación (2)
| Herramienta | Descripción |
|---|---|
| preview_list_import | Simular una importación: mapeo de columnas, direcciones no válidas y duplicados, sin guardar nada |
| import_subscribers | Importar contactos a una lista desde CSV, TSV, JSON o direcciones sueltas |
Exportación (3)
| Herramienta | Descripción |
|---|---|
| export_list | Exportar miembros de una lista al momento como JSON, CSV o NDJSON, con filtros |
| get_export_fields | Mostrar las columnas exportables, incluidos los campos personalizados |
| queue_list_export | Encolar una exportación CSV completa; el titular recibe un enlace de descarga |
Higiene de listas (5)
| Herramienta | Descripción |
|---|---|
| analyze_list_health | Informe de higiene (solo lectura) con puntuación de 0–100 y recomendaciones |
| clean_list | Aplicar una acción a los miembros de las categorías elegidas (simulación por defecto) |
| dedupe_list | Fusionar direcciones duplicadas, incluidos los alias de Gmail con puntos y +etiqueta |
| verify_list_emails | Comprobar la entregabilidad: sintaxis, direcciones desechables y genéricas, dominios con errores, registros MX |
| get_hygiene_options | Devolver las categorías y acciones que acepta clean_list |
Lista de supresión (3)
| Herramienta | Descripción |
|---|---|
| list_suppressions | Mostrar la lista de supresión de la cuenta con motivo y fecha |
| suppress_emails | Añadir direcciones a la lista de supresión y darlas de baja de todas las listas |
| unsuppress_emails | Levantar la supresión de direcciones (no vuelve a suscribir a nadie) |
Actividad e interacción (3)
| Herramienta | Descripción |
|---|---|
| get_list_activity | Feed de eventos de una lista: altas, bajas, rebotes, envíos, aperturas y clics |
| get_list_engagement | Rendimiento de la lista: crecimiento, abandono, tasas de apertura y clic, mejores mensajes y enlaces |
| get_subscriber_activity | Historial completo de un contacto: listas, etiquetas, mensajes pendientes y cronología |
Mensajes de email y SMS (6)
| Herramienta | Descripción |
|---|---|
| list_mailboxes | Obtener los buzones de envío disponibles |
| send_email | Enviar un email individual a un suscriptor |
| get_email_status | Verificar el estado de entrega del email |
| list_sms_providers | Obtener los proveedores SMS disponibles |
| send_sms | Enviar un SMS individual a un suscriptor o número de teléfono |
| get_sms_status | Verificar el estado de entrega del SMS |
Campañas (10)
| Herramienta | Descripción |
|---|---|
| list_campaigns | Listar campañas de email y SMS con filtrado |
| get_campaign | Obtener los detalles de una campaña, incluidas listas y exclusiones |
| create_campaign | Crear una campaña de email o SMS (como borrador) |
| update_campaign | Actualizar un borrador o una campaña programada |
| set_campaign_lists | Definir las listas de destinatarios de una campaña |
| set_campaign_exclusions | Definir listas de exclusión cuyos suscriptores no recibirán la campaña |
| schedule_campaign | Programar una campaña, con soporte de zonas horarias |
| send_campaign | Enviar una campaña ahora o activar un autorespondedor |
| get_campaign_stats | Obtener las estadísticas de envío de una campaña |
| delete_campaign | Eliminar un borrador o una campaña programada |
Tests A/B (7)
| Herramienta | Descripción |
|---|---|
| list_ab_tests | Listar tests A/B, filtrados por estado o campaña |
| create_ab_test | Crear un test A/B para una campaña |
| add_ab_variant | Añadir una variante a un test A/B |
| start_ab_test | Iniciar un test A/B (mínimo 2 variantes) |
| end_ab_test | Finalizar un test en curso y, opcionalmente, elegir el ganador |
| get_ab_test_results | Obtener resultados y estadísticas detallados de un test |
| delete_ab_test | Eliminar un test A/B que no esté en curso |
Embudos (automatización) (12)
| Herramienta | Descripción |
|---|---|
| list_funnels | Listar los embudos de automatización |
| get_funnel | Obtener un embudo con todos sus pasos y estadísticas |
| create_funnel | Crear un embudo de automatización |
| update_funnel | Renombrar un embudo o cambiar su disparador |
| add_funnel_step | Añadir un paso a un embudo y conectarlo |
| update_funnel_step | Cambiar los ajustes y conexiones de un paso |
| delete_funnel_step | Eliminar un paso y reconectar el embudo sin él |
| enroll_subscriber_in_funnel | Incluir al instante a un suscriptor en un embudo activo |
| activate_funnel | Activar un embudo para nuevos suscriptores |
| pause_funnel | Pausar un embudo |
| get_funnel_stats | Obtener estadísticas del embudo: suscriptores y tasas de finalización |
| delete_funnel | Eliminar un embudo (primero hay que pausarlo) |
Notificaciones (2)
| Herramienta | Descripción |
|---|---|
| send_notification | Publicar una notificación en el centro de notificaciones del titular de la cuenta |
| list_notifications | Leer las notificaciones recientes del titular y cuántas quedan sin leer |
Personalización (1)
| Herramienta | Descripción |
|---|---|
| list_placeholders | Obtener los marcadores para personalizar contenido de email y SMS |
Cuenta (2)
| Herramienta | Descripción |
|---|---|
| test_connection | Probar la conexión con la API y las credenciales |
| get_account_info | Obtener información de la cuenta conectada |
Más grupos de herramientas (automatizaciones, formularios, plantillas, webhooks…) llegarán en la próxima versión del cliente MCP.
Consultas de Ejemplo
Seguridad
Solución de Problemas
- 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://)
Reinicia tu herramienta de IA después de cambios de configuración.
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"]
}
}
}
