MCP Server Notifier

Un servicio de notificaciones ligero que envía webhooks para tareas MCP completadas a proveedores como Discord, Slack y Teams

Documentación

MCP Server Notifier

Un servicio de notificación ligero que se integra con MCP (Model Context Protocol) para enviar webhooks cuando los agentes de IA completan tareas.

Documentación en chino simplificado

MCP Server Notifier

Autores

Creado originalmente por tuberrabbit@gmail.com.
Actualmente mantenido por zudsniper.

Características

  • Notificaciones por Webhook: Recibe alertas cuando tus agentes de IA completan tareas
  • Múltiples Proveedores de Webhook: Soporte para Discord, Slack, Microsoft Teams, Feishu, Ntfy y webhooks personalizados
  • Soporte de Imágenes: Incluye imágenes en las notificaciones mediante Imgur
  • Soporte Multi-Proyecto: Gestiona eficientemente notificaciones en diferentes proyectos
  • Integración Fácil: Configuración sencilla con herramientas de IA como Cursor
  • Mensajes Personalizables: Envía notificaciones personalizadas con título, cuerpo y enlaces

Instalación

Opción 1: Usando npm

npm install -g mcp-server-notifier

Opción 2: Usando Docker

docker pull zudsniper/mcp-server-notifier:latest

# Run with environment variables
docker run -e WEBHOOK_URL=https://your-webhook-url -e WEBHOOK_TYPE=discord zudsniper/mcp-server-notifier

Opción 3: Desde el código fuente

git clone https://github.com/zudsniper/mcp-server-notifier.git
cd mcp-server-notifier
npm install
npm run build

Integración

Integración con Cursor

  1. Ve a 'Configuración de Cursor'
  2. Haz clic en MCP en la barra lateral, luego haz clic en + Add new global MCP server
  3. Agrega mcp-server-notifier.
{
   "mcpServers": {
      "notifier": {
         "command": "npx",
         "args": [
            "-y",
            "mcp-server-notifier"
         ],
         "env": {
            "WEBHOOK_URL": "https://ntfy.sh/webhook-url-example",
            "WEBHOOK_TYPE": "ntfy"
         }
      }
   }
}

Configuración

Por defecto, el notificador soporta varios tipos de webhook:

  • Discord
  • Slack
  • Microsoft Teams
  • Feishu
  • Ntfy
  • JSON genérico

Puedes especificar el tipo de webhook y la URL mediante variables de entorno:

env WEBHOOK_URL="https://your-webhook-url" WEBHOOK_TYPE="discord" npx -y mcp-server-notifier

Tokens de Autenticación

WEBHOOK_TOKEN es una variable de entorno opcional. Cuando se establece, se incluirá como token Bearer en el encabezado Authorization solo para solicitudes de webhook de ntfy. Si WEBHOOK_TOKEN no está configurado, no se envía ningún encabezado de Authorization.

  • La autenticación básica no está soportada.
  • Este token es ignorado por todos los demás proveedores de webhook (Discord, Slack, Teams, Feishu, JSON genérico).

Ejemplo:

env WEBHOOK_URL="https://ntfy.sh/your-topic" WEBHOOK_TYPE="ntfy" WEBHOOK_TOKEN="your-secret-token" npx -y mcp-server-notifier

Archivo de Configuración

Para una configuración más avanzada, puedes crear un archivo webhook-config.json:

{
  "webhook": {
    "type": "discord",
    "url": "https://discord.com/api/webhooks/your-webhook-url",
    "name": "My Notifier"
  },
  "imgur": {
    "clientId": "your-imgur-client-id"
  }
}

Consulta la Guía de configuración para obtener detalles completos y ejemplos.

Uso

  • Pide a tu agente de IA que te notifique con un mensaje personalizado cuando una tarea esté completa
  • Configúralo como una regla persistente en la configuración de Cursor para evitar repetir la configuración

Para instrucciones de uso detalladas, consulta la Guía de uso.

Herramientas Disponibles

  1. notify
    • Propósito: Enviar notificaciones enriquecidas a cualquier webhook configurado
    • Entrada:
      • message - Contenido de texto de la notificación
      • title (opcional) - Título de la notificación
      • link (opcional) - URL para incluir en la notificación (usada como acción de clic para ntfy)
      • imageUrl (opcional) - URL de una imagen para incluir (heredado, usa image o attachments)
      • image (opcional) - Ruta de archivo local de una imagen para subir a Imgur
      • priority (opcional, solo ntfy) - Prioridad de notificación (1-5)
      • attachments (opcional, solo ntfy) - Matriz de URLs para adjuntar
      • template (opcional, solo ntfy) - Plantilla predefinida a usar: status, question, progress, problem
      • templateData (opcional, solo ntfy) - Datos para completar la plantilla elegida
      • actions (opcional, solo ntfy) - Matriz de definiciones de botones de acción (view o http)
    • Mejor para: Necesidades generales de notificación

Nota: La funcionalidad de plantillas está actualmente en desarrollo y tiene soporte limitado. Las plantillas funcionan mejor con ntfy.sh pero pueden no estar completamente implementadas para todos los proveedores de webhook. Consulta el archivo ROADMAP.md para los planes de implementación futuros.

Plantillas NTFY

Cuando usas ntfy.sh como tu proveedor de webhook, puedes usar las siguientes plantillas predefinidas:

  1. Plantilla de Estado (status)

    • Propósito: Enviar actualizaciones de estado sobre sistemas, procesos o tareas
    • Campos de Datos:
      • status - Estado actual (por ejemplo, "online", "completed", "pending")
      • details (opcional) - Información adicional sobre el estado
      • timestamp (opcional) - Cuándo se registró este estado
      • component (opcional) - El componente del sistema al que se aplica este estado
  2. Plantilla de Pregunta (question)

    • Propósito: Hacer preguntas que requieren una respuesta
    • Campos de Datos:
      • question - La pregunta principal que se hace
      • context (opcional) - Información de fondo para la pregunta
      • options (opcional) - Posibles opciones de respuesta
      • deadline (opcional) - Cuándo se necesita una respuesta
  3. Plantilla de Progreso (progress)

    • Propósito: Seguimiento del progreso de tareas de larga duración
    • Campos de Datos:
      • title - Nombre de la tarea o proceso
      • current - Valor de progreso actual
      • total - Valor total para alcanzar la finalización
      • percentage (opcional) - Valor de porcentaje explícito (calculado si no se proporciona)
      • eta (opcional) - Tiempo estimado para completar
      • details (opcional) - Información adicional sobre el progreso
  4. Plantilla de Problema (problem)

    • Propósito: Reportar errores o problemas
    • Campos de Datos:
      • title - Descripción breve del problema
      • description (opcional) - Información detallada sobre el problema
      • severity (opcional) - Qué tan grave es el problema (por ejemplo, "critical", "warning")
      • source (opcional) - Dónde se originó el problema
      • timestamp (opcional) - Cuándo ocurrió el problema
      • solution (opcional) - Formas sugeridas de solucionar el problema

Ejemplo usando plantilla:

// Send a progress notification
{
  "template": "progress",
  "templateData": {
    "title": "Database Backup",
    "current": 75,
    "total": 100,
    "eta": "2 minutes remaining",
    "details": "Compressing backup files"
  },
  "priority": 3
}

Soporte Docker

El MCP Server Notifier está disponible como imagen Docker:

docker pull zudsniper/mcp-server-notifier:latest

Ejecuta con variables de entorno:

docker run -e WEBHOOK_URL=https://your-webhook-url -e WEBHOOK_TYPE=discord zudsniper/mcp-server-notifier

Configuraciones de Ejemplo

Las configuraciones de webhook de ejemplo están disponibles en el directorio ejemplos.

Desarrollo

Configuración del Entorno de Desarrollo

  1. Clona el repositorio:
git clone https://github.com/zudsniper/mcp-server-notifier.git
cd mcp-server-notifier
  1. Instala las dependencias:
npm install
  1. Construye el proyecto:
npm run build

Probando tus Cambios

  1. Ejecuta el servidor MCP en modo de desarrollo:
# Install the MCP Inspector if you haven't already
npm install -g @modelcontextprotocol/inspector

# Start the server with the Inspector
npx @modelcontextprotocol/inspector node build/index.js
  1. El Inspector proporciona una interfaz web donde puedes:
    • Enviar solicitudes a tus herramientas
    • Ver registros de solicitudes/respuestas
    • Depurar problemas con tu implementación

Publicando Nuevas Versiones

Para publicar una nueva versión:

  1. Actualiza la versión en package.json
  2. Empuja los cambios a la rama release
  3. GitHub Actions automáticamente:
    • Ejecutará pruebas
    • Construirá y publicará imágenes Docker
    • Publicará en npm
    • Creará un Release de GitHub

Secretos de repositorio requeridos para CI/CD:

  • DOCKERHUB_USERNAME - Nombre de usuario de Docker Hub
  • DOCKERHUB_TOKEN - Token de acceso de Docker Hub
  • NPM_TOKEN - Token de acceso de npm

Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.

Este MCP está certificado por MCP Review.
Página de certificación: https://mcpreview.com/mcp-servers/tuberrabbit/mcp-server-notifier