Apple Notifier

Enviar notificaciones nativas de macOS e interactuar con diálogos del sistema.

Documentación

MseeP.ai Security Assessment Badge

Apple Notifier MCP Server

smithery badge Envía notificaciones nativas de macOS e interactúa con diálogos del sistema a través de cualquier cliente compatible con MCP, como Claude Desktop o Cline.

apple-notifier-mcp MCP server

Requisitos previos

  • macOS
  • Node.js >= 18
  • Un cliente compatible con MCP (Claude Desktop, Cline)

Solución de problemas: Las notificaciones no aparecen

Para que las notificaciones se muestren, la terminal o la aplicación que ejecuta el servidor MCP necesita permisos de notificación en macOS.

Conceder permisos de notificación

  1. Para usuarios de Claude Desktop:

    • Abre System Preferences (o System Settings en macOS Ventura+)
    • Ve a Notificaciones
    • Busca Node o terminal-notifier (el que aparezca)
    • Habilita Permitir notificaciones
    • Establece el estilo de alerta en Banners o Alertas
  2. Para usuarios de Claude Code / Terminal:

    • Abre System Preferences > Notificaciones
    • Busca Terminal (o iTerm si usas iTerm2)
    • Habilita Permitir notificaciones
  3. Si la aplicación no aparece en la configuración de Notificaciones:

    • Ejecuta una notificación de prueba manualmente en Terminal:
      osascript -e 'display notification "Test" with title "Hello"'
      
    • Esto debería hacer que macOS solicite o registre los permisos de notificación
    • Luego revisa System Preferences nuevamente
  4. Revisa el Modo Concentración / No molestar:

    • Asegúrate de que el Modo Concentración o No molestar no esté activado
    • Revisa el Control Center en la barra de menús

Verificar que las notificaciones funcionen

Prueba desde la terminal antes de usar mediante MCP:

osascript -e 'display notification "Test message" with title "Test title"'

Si esto muestra una notificación, el servidor MCP debería funcionar correctamente.

Instalación

Instalación mediante Smithery

Para instalar Apple Notifier para Claude Desktop automáticamente a través de Smithery:

npx -y @smithery/cli install apple-notifier-mcp --client claude

Instalación manual

  1. Instala el paquete globalmente:
npm install -g apple-notifier-mcp
  1. Añade a tu archivo de configuración de MCP:

Para Cline (cline_mcp_settings.json):

{
  "mcpServers": {
    "apple-notifier": {
      "command": "apple-notifier-mcp"
    }
  }
}

Para Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "apple-notifier": {
      "command": "apple-notifier-mcp"
    }
  }
}

Características

Enviar notificaciones

Muestra notificaciones nativas de macOS con contenido personalizable.

Parámetros:

  • title (obligatorio): string - El título de la notificación
  • message (obligatorio): string - El contenido principal del mensaje
  • subtitle (opcional): string - Un subtítulo para mostrar
  • sound (opcional): boolean - Si se debe reproducir el sonido de notificación predeterminado (por defecto: true)

Mostrar avisos

Muestra diálogos interactivos para obtener información del usuario.

Parámetros:

  • message (obligatorio): string - Texto para mostrar en el diálogo de aviso
  • defaultAnswer (opcional): string - Texto predeterminado para rellenar
  • buttons (opcional): string[] - Etiquetas de botones personalizadas (máx. 3)
  • icon (opcional): 'note' | 'stop' | 'caution' - Icono a mostrar

Texto a voz

Usa las capacidades de texto a voz de macOS.

Parámetros:

  • text (obligatorio): string - Texto a hablar
  • voice (opcional): string - Voz a usar (por defecto, la voz del sistema)
  • rate (opcional): number - Velocidad del habla (-50 a 50, por defecto 0)

Tomar capturas de pantalla

Captura pantallas usando screencapture de macOS.

Parámetros:

  • path (obligatorio): string - Ruta donde guardar la captura
  • type (obligatorio): 'fullscreen' | 'window' | 'selection' - Tipo de captura
  • format (opcional): 'png' | 'jpg' | 'pdf' | 'tiff' - Formato de imagen
  • hideCursor (opcional): boolean - Si se debe ocultar el cursor
  • shadow (opcional): boolean - Si se debe incluir la sombra de la ventana (solo para tipo ventana)
  • timestamp (opcional): boolean - Añadir marca de tiempo al nombre del archivo

Selección de archivos

Abre el diálogo nativo de selección de archivos de macOS.

Parámetros:

  • prompt (opcional): string - Mensaje de aviso
  • defaultLocation (opcional): string - Ruta de directorio predeterminada
  • fileTypes (opcional): object - Filtro de tipo de archivo (p. ej., {"public.image": ["png", "jpg"]})
  • multiple (opcional): boolean - Permitir selección múltiple de archivos

Ejemplo de uso

// Send a notification
await client.use_mcp_tool("apple-notifier", "send_notification", {
  title: "Hello",
  message: "World",
  sound: true
});

// Show a prompt
const result = await client.use_mcp_tool("apple-notifier", "prompt_user", {
  message: "What's your name?",
  defaultAnswer: "John Doe",
  buttons: ["OK", "Cancel"]
});

// Speak text
await client.use_mcp_tool("apple-notifier", "speak", {
  text: "Hello, world!",
  voice: "Samantha",
  rate: -20
});

// Take a screenshot
await client.use_mcp_tool("apple-notifier", "take_screenshot", {
  path: "screenshot.png",
  type: "window",
  format: "png"
});

// Select files
const files = await client.use_mcp_tool("apple-notifier", "select_file", {
  prompt: "Select images",
  fileTypes: {
    "public.image": ["png", "jpg", "jpeg"]
  },
  multiple: true
});

Contribuciones

Consulta CONTRIBUTING.md para la configuración de desarrollo y las pautas.

Ejecutar evaluaciones

El paquete de evaluaciones carga un cliente mcp que luego ejecuta el archivo index.ts, por lo que no es necesario reconstruir entre pruebas. Puedes cargar variables de entorno prefijando el comando npx. La documentación completa se puede encontrar aquí.

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts src/index.ts

Licencia

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