macOS Notification MCP

Disparar notificações, sons e texto-para-fala do macOS a partir de um assistente de IA.

Documentação

🔔 macOS Notification MCP

Um servidor Model Context Protocol (MCP) que permite que assistentes de IA disparem notificações do macOS, sons e conversão de texto em fala.

✨ Recursos

  • 🔊 Notificações Sonoras: Toque sons do sistema como Submarine, Ping ou Tink
  • 💬 Notificações de Banner: Exiba notificações visuais com título, mensagem e subtítulo personalizáveis
  • 🗣️ Notificações por Fala: Converta texto em fala com voz, ritmo e volume ajustáveis
  • 🎙️ Gerenciamento de Vozes: Liste e selecione vozes disponíveis do sistema
  • 🧪 Ferramentas de Teste: Utilitários de diagnóstico para verificar todos os métodos de notificação

🚀 Início Rápido com uvx (Recomendado)

A maneira mais rápida de usar esta ferramenta é com uvx, que executa pacotes sem instalação permanente:

# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh

# Run the MCP server directly (no installation needed)
uvx macos-notification-mcp

⚙️ Configurar o Claude Desktop

Adicione isto à sua configuração do Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "macos-notification-mcp": {
      "command": "uvx",
      "args": ["macos-notification-mcp"]
    }
  }
}

Em seguida, reinicie o Claude Desktop.

📦 Métodos Alternativos de Instalação

Instalação padrão:

pip install macos-notification-mcp

Instalar a partir do código-fonte:

git clone https://github.com/devizor/macos-notification-mcp
cd macos-notification-mcp
pip install .

🛠️ Ferramentas de Notificação Disponíveis

🔊 Notificação Sonora

sound_notification(sound_name="Submarine")

Sons disponíveis: Basso, Blow, Bottle, Frog, Funk, Glass, Hero, Morse, Ping, Pop, Purr, Sosumi, Submarine, Tink

💬 Notificação de Banner

banner_notification(
    title="Task Complete",
    message="Your analysis is ready",
    subtitle=None,  # Optional
    sound=False,    # Optional: Play sound with notification
    sound_name=None # Optional: Specify system sound
)

🗣️ Notificação por Fala

speak_notification(
    text="The process has completed",
    voice=None,     # Optional: System voice to use
    rate=150,       # Optional: Words per minute (default: 150)
    volume=1.0      # Optional: Volume level 0.0-1.0
)

🎙️ Gerenciamento de Vozes

list_available_voices()  # Lists all available text-to-speech voices

🧪 Testes

test_notification_system()  # Tests all notification methods

🔒 Detalhes de Implementação

  • ⏱️ Limite de Taxa: As notificações são processadas uma por vez com um intervalo mínimo de 0,5 segundos
  • 🔄 Fila: Múltiplas solicitações de notificação são tratadas sequencialmente
  • 🪟 Integração com o SO: Usa comandos nativos do macOS (afplay, osascript, say)
  • 🔌 FastMCP: Construído sobre o framework FastMCP para comunicação com IA

⚠️ Solução de Problemas

  • 🔐 Permissões: Garanta que as notificações estejam permitidas em Ajustes do Sistema → Notificações
  • Tempo: Apenas uma notificação é processada por vez
  • 🌐 Ambiente: Se estiver usando o comando diretamente (não via uvx), talvez seja necessário usar caminhos completos

📄 Licença

Licença MIT