NotifyMeMaybe

Un servidor para enviar notificaciones multiplataforma y crear flujos de trabajo interactivos con IA, con soporte para Telegram, webhooks e interacciones sincrónicas con usuarios.

Documentación

NotifyMeMaybe

Un potente servidor MCP (Model Context Protocol) para notificaciones multiplataforma y flujos de trabajo interactivos de IA

npm version License: MIT

🚀 TLDR - Inicio rápido

Comienza en 2 minutos:

  1. Crea un bot de Telegram:

    • Envía un mensaje a @BotFather en Telegram
    • Usa /newbot para crear un bot y obtener tu BOT_TOKEN
    • Inicia un chat con tu bot y obtén tu CHAT_ID
  2. Añade a la configuración de MCP:

    {
      "mcpServers": {
        "notify-me-maybe": {
          "command": "npx",
          "args": ["-y", "notify-me-maybe-mcp"],
          "env": {
            "TELEGRAM_BOT_TOKEN": "your_bot_token_here",
            "TELEGRAM_CHAT_ID": "your_chat_id_here",
            "TELEGRAM_PROMPT_ENABLED": "true",
            "TELEGRAM_INTERACTION_ENABLED": "true",
            "DEFAULT_NOTIFICATION_SERVICE": "telegram",
            "LANGUAGE": "en"
          }
        }
      }
    }
    
  3. Reinicia tu asistente de IA:

    • Claude Desktop: Reinicia la aplicación
    • Cursor: Reinicia y activa la configuración de MCP
  4. Prueba: ¡Pide a tu asistente de IA que te envíe una notificación!

¡Eso es todo! 🎉 No se requiere instalación, clonación ni compilación.


🌐 Soporte de idiomas

🤖 Integración con Asistentes de IA (Prompts de Agente)

¿Listo para integrarte con tu asistente de IA? Elige la configuración de prompt adecuada para tus necesidades:

📋 Configuraciones de Prompt de Agente Disponibles

Tipo de PromptDescripciónMejor paraHerramientas clave
Solo NotificaciónNotificaciones simples de finalización de tareasNecesidades básicas de notificaciónsend_notification, broadcast_notification
Interactivo BásicoInteracciones de Telegram + notificacionesEntrada del usuario y confirmacionesrequest_interaction_sync, send_notification
Interactivo AvanzadoFlujo de trabajo continuo con prompts de seguimientoTareas complejas de múltiples pasosget_telegram_prompts, process_telegram_prompt, request_interaction_sync

🎯 Inicio rápido para Asistentes de IA

  1. Elige un tipo de prompt a continuación
  2. Copia la configuración completa del prompt
  3. Añade a tu prompt de sistema del asistente de IA (Cursor, Claude, etc.)
  4. Configura tus servicios de NotifyMeMaybe
  5. ¡Empieza a recibir notificaciones e interacciones!

Características

🔔 Notificaciones multicanal

  • Integración con Telegram: Envía notificaciones directamente a chats de Telegram
  • Soporte de Webhook: Notificaciones HTTP webhook para integraciones personalizadas
  • Niveles de prioridad: Notificaciones de prioridad alta, normal y baja
  • Metadatos enriquecidos: Adjunta datos personalizados a las notificaciones

🤖 Motor de Prompts Interactivo

La característica principal de NotifyMeMaybe es su sofisticado motor de prompts que permite la comunicación bidireccional entre sistemas de IA y usuarios:

Tipos de interacción

  • Solicitudes de confirmación: Decisiones de Sí/No con interfaces de botones
  • Prompts de texto: Recopila entrada de texto de los usuarios
  • Menús de selección: Opciones de opción múltiple con botones personalizados
  • Síncrono y asíncrono: Interacciones en tiempo real y en cola

Integración de flujo de trabajo de IA

  • Compatible con MCP (Model Context Protocol): Se integra perfectamente con Claude y otros sistemas de IA
  • Gestión de tiempo de espera: Tiempos de espera configurables con manejo de respaldo
  • Gestión de cola: Maneja múltiples interacciones de usuario concurrentes
  • Validación de respuestas: Asegura el formato adecuado de las respuestas del usuario

Características avanzadas

  • Auto-rechazo: Maneja automáticamente interacciones caducadas
  • Notificaciones de difusión: Envía a todos los canales activos simultáneamente
  • Monitoreo de salud del servicio: Estado en tiempo real de todos los servicios de notificación
  • Internacionalización: Soporte multilingüe (Inglés, Chino tradicional, Chino simplificado)

Configuraciones de Prompt de Agente

1. 📢 Modo Solo Notificación

Copia esta configuración de prompt para tu asistente de IA:

## NotifyMeMaybe Notification-Only Mode Configuration

### When to use NotifyMeMaybe tools:
- **ALWAYS** notify when tasks are completed
- Send progress updates for long-running operations
- Notify on errors or important status changes

### Required MCP Tools Usage:

#### Task Completion Notifications:
Use `send_notification` or `broadcast_notification` when:
- Any task is completed successfully
- An error occurs during task execution
- Important milestones are reached

Parameters:
- service: "telegram" (or use broadcast_notification for all services)
- title: Clear, concise summary of what was accomplished
- message: Detailed results, file paths, URLs, or error details
- priority: "high" (errors), "normal" (completions), "low" (progress updates)
- metadata: Include relevant context like file paths, timestamps, etc.

#### Example Usage:
send_notification(
  service="telegram",
  title="Task Completed: Code Analysis",
  message="Successfully analyzed 15 files and found 3 potential issues. Results saved to /reports/analysis.json",
  priority="normal",
  metadata={"files_analyzed": 15, "issues_found": 3, "report_path": "/reports/analysis.json"}
)

### Service Health Check:
Use `test_services` periodically to ensure services are available.

2. 🔄 Modo Interactivo

Copia esta configuración de prompt para tu asistente de IA:

## NotifyMeMaybe Interactive Mode Configuration

### When to use NotifyMeMaybe tools:
- Request user input when clarification is needed
- Ask for confirmations before major operations
- Provide selection menus for user choices
- Send completion notifications

### Required MCP Tools Usage:

#### User Interaction Requests:
Use `request_interaction_sync` when:
- You need user confirmation before proceeding
- You require text input from the user
- You want to offer multiple choice options

Parameters:
- type: "confirmation" (Yes/No), "prompt" (text input), "selection" (multiple choice)
- message: Clear question or request for user
- options: Array of choices (only for type="selection")
- timeout: 60000 (60 seconds) or appropriate timeout

#### Examples:

Confirmation Request:
request_interaction_sync(
  type="confirmation",
  message="Do you want to proceed with deleting 5 files from the project directory?"
)

Text Input Request:
request_interaction_sync(
  type="prompt",
  message="Please provide the target deployment environment (staging/production):"
)

Selection Menu:
request_interaction_sync(
  type="selection",
  message="Choose the deployment strategy:",
  options=["Blue-Green Deployment", "Rolling Update", "Canary Release"]
)

#### Completion Notifications:
Always send completion notifications using `send_notification` after tasks finish.

#### Error Handling:
- Handle interaction timeouts gracefully
- Provide fallback responses if user doesn't respond
- Use high priority notifications for critical errors

3. 🚀 Modo Interactivo Avanzado

Copia esta configuración completa de prompt para tu asistente de IA:

## NotifyMeMaybe Advanced Interactive Mode Configuration

### Core Agent Behavior Rules:
- **ALWAYS** check for new Telegram prompts at session start
- **NEVER** end a session without asking for additional requests
- **ALWAYS** process pending prompts before starting new tasks
- **ALWAYS** send progress notifications for long operations

### Required MCP Tools Usage Protocol:

#### 1. Session Start Protocol:
ALWAYS execute at the beginning of each session:

1. Check for pending prompts:
   get_telegram_prompts()

2. If prompts exist, process each one:
   process_telegram_prompt(
     promptId="<prompt_id>",
     response="Received your request. Processing now..."
   )

3. Send status notification:
   send_notification(
     service="telegram",
     title="AI Session Started",
     message="Processing your Telegram requests. Session active.",
     priority="normal"
   )

#### 2. Task Execution Protocol:
During task execution:

1. Send progress updates for long operations:
   send_notification(
     service="telegram",
     title="Progress Update",
     message="Step 2/5 completed: Database backup finished",
     priority="normal",
     metadata={"step": 2, "total_steps": 5}
   )

2. Use interactions when user input needed:
   request_interaction_sync(
     type="confirmation",
     message="Ready to proceed with database migration. Continue?"
   )

3. Handle errors with high priority:
   send_notification(
     service="telegram",
     title="Error Occurred",
     message="Database connection failed. Retrying in 30 seconds...",
     priority="high"
   )

#### 3. Session End Protocol:
**MANDATORY**: Never end without this sequence:

1. Send completion notification:
   send_notification(
     service="telegram",
     title="Task Completed Successfully",
     message="All requested operations completed. Summary: [detailed results]",
     priority="normal"
   )

2. ALWAYS ask for additional requests:
   request_interaction_sync(
     type="prompt",
     message="Task completed successfully. Do you have any additional instructions or follow-up requests?",
     timeout=60000
   )

3. Continue interaction loop until user indicates completion
4. Only stop when user explicitly says "finished", "done", "no more tasks", or similar

#### 4. Telegram Prompt Monitoring:
Regularly check for new prompts:
- Use get_telegram_prompts() to check queue
- Process immediately with process_telegram_prompt()
- Prioritize user prompts over automated tasks

#### 5. Service Health Monitoring:
Periodically verify services:
test_services()
get_service_status(service="telegram")

### Advanced Mode Benefits:
- Users can send tasks anytime via Telegram
- AI automatically processes queued requests
- Continuous workflow without manual intervention
- Comprehensive progress tracking
- Error recovery with user guidance

📦 Instalación y Configuración

🌟 Método 1: NPX (Recomendado)

Añade a tu archivo de configuración de MCP:

Ubicaciones de archivos de configuración:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "notify-me-maybe": {
      "command": "npx",
      "args": ["-y", "notify-me-maybe-mcp"],
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_bot_token_here",
        "TELEGRAM_CHAT_ID": "your_chat_id_here",
        "TELEGRAM_PROMPT_ENABLED": "true",
        "TELEGRAM_INTERACTION_ENABLED": "true",
        "DEFAULT_NOTIFICATION_SERVICE": "telegram",
        "LANGUAGE": "en"
      }
    }
  }
}

⚠️ Importante: Después de la configuración, reinicia completamente tu asistente de IA.

🛠️ Método 2: Desarrollo Local

Para desarrolladores que quieran modificar el código:

git clone https://github.com/keoy7am/NotifyMeMaybe.git
cd NotifyMeMaybe
npm install
npm run build

📱 Obteniendo Credenciales de Telegram

  1. Crea un bot: Envía un mensaje a @BotFather → /newbot
  2. Obtén el ID de chat: Envía un mensaje a tu bot, visita https://api.telegram.org/bot<TOKEN>/getUpdates

🔧 Configuración

Variables requeridas

TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHAT_ID=your_chat_id_here

Variables opcionales

TELEGRAM_PROMPT_ENABLED=true
TELEGRAM_INTERACTION_ENABLED=true
DEFAULT_NOTIFICATION_SERVICE=telegram
LANGUAGE=en

🛠️ Herramientas MCP

  • send_notification: Enviar a un servicio específico
  • broadcast_notification: Enviar a todos los servicios
  • request_interaction_sync: Interacción de usuario síncrona
  • test_services: Verificación de salud de todos los servicios
  • get_telegram_prompts: Recuperar prompts pendientes
  • process_telegram_prompt: Procesar prompts de Telegram

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Por favor:

  1. Haz un fork del repositorio
  2. Crea una rama de características
  3. Envía una solicitud de extracción (pull request)

📄 Licencia

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

🎯 ¿Listo para comenzar?

Inicio rápido (Recomendado)

  1. Obtén token de bot de Telegram
  2. Añade configuración de MCP
  3. Reinicia tu asistente de IA
  4. ¡Prueba con una notificación!

Configuración avanzada

  1. Elige una Configuración de Prompt de Agente
  2. Cópiala en el prompt de sistema de tu asistente de IA
  3. Configura características avanzadas
  4. ¡Crea flujos de trabajo interactivos!

📦 Paquete NPM

npm view notify-me-maybe-mcp
npx notify-me-maybe-mcp  # Use directly

NotifyMeMaybe - ¡Haciendo que la interacción entre IA y humanos sea fluida! 🚀

💡 Consejo profesional: ¡No olvides reiniciar tu asistente de IA después de la configuración!