Apple Notifier

Envie notificações nativas do macOS e interaja com diálogos do sistema.

Documentação

MseeP.ai Security Assessment Badge

Apple Notifier MCP Server

smithery badge 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.

apple-notifier-mcp MCP server

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

  1. 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
  2. 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
  3. 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
  4. 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

  1. Instale o pacote globalmente:
npm install -g apple-notifier-mcp
  1. 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ção
  • message (obrigatório): string - O conteúdo principal da mensagem
  • subtitle (opcional): string - Um subtítulo para exibir
  • sound (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álogo
  • defaultAnswer (opcional): string - Texto padrão para preencher previamente
  • buttons (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 falado
  • voice (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 tela
  • type (obrigatório): 'fullscreen' | 'window' | 'selection' - Tipo de captura de tela
  • format (opcional): 'png' | 'jpg' | 'pdf' | 'tiff' - Formato de imagem
  • hideCursor (opcional): boolean - Se deve ocultar o cursor
  • shadow (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 prompt
  • defaultLocation (opcional): string - Caminho do diretório padrão
  • fileTypes (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.