Apple Notifier
Envie notificações nativas do macOS e interaja com diálogos do sistema.
Documentação
Apple Notifier MCP Server
Envie notificações nativas do macOS e interaja com diálogos do sistema através de qualquer cliente compatível com MCP, como Claude Desktop ou Cline.
Pré-requisitos
- macOS
- Node.js >= 18
- Um cliente compatível com MCP (Claude Desktop, Cline)
Solução de Problemas: Notificações Não Aparecendo
Para que as notificações sejam exibidas, o terminal ou aplicativo que executa o servidor MCP precisa de permissões de notificação no macOS.
Conceder Permissões de Notificação
-
Para usuários do Claude Desktop:
- Abra Preferências do Sistema (ou Configurações do Sistema no macOS Ventura+)
- Vá para Notificações
- Encontre Node ou terminal-notifier (o que aparecer)
- Ative Permitir Notificações
- Defina o estilo de alerta como Banners ou Alertas
-
Para usuários do Claude Code / Terminal:
- Abra Preferências do Sistema > Notificações
- Encontre Terminal (ou iTerm se usar iTerm2)
- Ative Permitir Notificações
-
Se o aplicativo não aparecer nas configurações de Notificações:
- Execute uma notificação de teste manualmente no Terminal:
osascript -e 'display notification "Test" with title "Hello"' - Isso deve fazer o macOS solicitar ou registrar as permissões de notificação
- Em seguida, verifique as Preferências do Sistema novamente
- Execute uma notificação de teste manualmente no Terminal:
-
Verifique o Modo Foco / Não Perturbe:
- Certifique-se de que o Modo Foco ou Não Perturbe não esteja ativado
- Verifique a Central de Controle na barra de menus
Verificar se as Notificações Funcionam
Teste no terminal antes de usar via MCP:
osascript -e 'display notification "Test message" with title "Test title"'
Se isso mostrar uma notificação, o servidor MCP deve funcionar corretamente.
Instalação
Instalando via Smithery
Para instalar o Apple Notifier para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install apple-notifier-mcp --client claude
Instalação Manual
- Instale o pacote globalmente:
npm install -g apple-notifier-mcp
- Adicione ao seu arquivo de configuração do 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"
}
}
}
Recursos
Enviar Notificações
Exiba notificações nativas do macOS com conteúdo personalizável.
Parâmetros:
title(obrigatório): string - O título da notificaçãomessage(obrigatório): string - O conteúdo principal da mensagemsubtitle(opcional): string - Um subtítulo para exibirsound(opcional): boolean - Se deve tocar o som de notificação padrão (padrão: true)
Exibir Prompts
Mostre prompts de diálogo interativos para obter entrada do usuário.
Parâmetros:
message(obrigatório): string - Texto a ser exibido no prompt do diálogodefaultAnswer(opcional): string - Texto padrão para preencher previamentebuttons(opcional): string[] - Rótulos de botões personalizados (máx. 3)icon(opcional): 'note' | 'stop' | 'caution' - Ícone a ser exibido
Texto para Fala
Use os recursos de texto para fala do macOS.
Parâmetros:
text(obrigatório): string - Texto a ser faladovoice(opcional): string - Voz a ser usada (padrão é a voz do sistema)rate(opcional): number - Taxa de fala (-50 a 50, padrão: 0)
Tirar Capturas de Tela
Capture capturas de tela usando o screencapture do macOS.
Parâmetros:
path(obrigatório): string - Caminho onde salvar a captura de telatype(obrigatório): 'fullscreen' | 'window' | 'selection' - Tipo de captura de telaformat(opcional): 'png' | 'jpg' | 'pdf' | 'tiff' - Formato de imagemhideCursor(opcional): boolean - Se deve ocultar o cursorshadow(opcional): boolean - Se deve incluir a sombra da janela (apenas para o tipo window)timestamp(opcional): boolean - Adicionar timestamp ao nome do arquivo
Seleção de Arquivos
Abra o diálogo nativo de seleção de arquivos do macOS.
Parâmetros:
prompt(opcional): string - Mensagem do promptdefaultLocation(opcional): string - Caminho do diretório padrãofileTypes(opcional): object - Filtro de tipo de arquivo (ex.: {"public.image": ["png", "jpg"]})multiple(opcional): boolean - Permitir seleção de múltiplos arquivos
Exemplo 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
});
Contribuindo
Consulte CONTRIBUTING.md para a configuração de desenvolvimento e diretrizes.
Executando avaliações
O pacote de avaliações carrega um cliente MCP que então executa o arquivo index.ts, portanto não há necessidade de reconstruir entre os testes. Você pode carregar variáveis de ambiente prefixando o comando npx. A documentação completa pode ser encontrada aqui.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
