Apple Notifier
Enviar notificaciones nativas de macOS e interactuar con diálogos del sistema.
Documentación
Apple Notifier MCP Server
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.
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
-
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
-
Para usuarios de Claude Code / Terminal:
- Abre System Preferences > Notificaciones
- Busca Terminal (o iTerm si usas iTerm2)
- Habilita Permitir notificaciones
-
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
- Ejecuta una notificación de prueba manualmente en Terminal:
-
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
- Instala el paquete globalmente:
npm install -g apple-notifier-mcp
- 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ónmessage(obligatorio): string - El contenido principal del mensajesubtitle(opcional): string - Un subtítulo para mostrarsound(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 avisodefaultAnswer(opcional): string - Texto predeterminado para rellenarbuttons(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 hablarvoice(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 capturatype(obligatorio): 'fullscreen' | 'window' | 'selection' - Tipo de capturaformat(opcional): 'png' | 'jpg' | 'pdf' | 'tiff' - Formato de imagenhideCursor(opcional): boolean - Si se debe ocultar el cursorshadow(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 avisodefaultLocation(opcional): string - Ruta de directorio predeterminadafileTypes(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.
