Skip to main content
Glama
devizor

macOS Notification MCP

by devizor

πŸ”” macOS Notification MCP

A Model Context Protocol (MCP) server that enables AI assistants to trigger macOS notifications, sounds, and text-to-speech.

✨ Features

  • πŸ”Š Sound Notifications: Play system sounds like Submarine, Ping, or Tink

  • πŸ’¬ Banner Notifications: Display visual notifications with customizable title, message, and subtitle

  • πŸ—£οΈ Speech Notifications: Convert text to speech with adjustable voice, rate, and volume

  • πŸŽ™οΈ Voice Management: List and select from available system voices

  • πŸ§ͺ Testing Tools: Diagnostic utilities to verify all notification methods

Related MCP server: Salesforce MCP

The fastest way to use this tool is with uvx, which runs packages without permanent installation:

# 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

βš™οΈ Configure Claude Desktop

Add this to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):

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

Then restart Claude Desktop.

πŸ“¦ Alternative Installation Methods

Standard installation:

pip install macos-notification-mcp

Install from source:

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

πŸ› οΈ Available Notification Tools

πŸ”Š Sound Notification

sound_notification(sound_name="Submarine")

Available sounds: Basso, Blow, Bottle, Frog, Funk, Glass, Hero, Morse, Ping, Pop, Purr, Sosumi, Submarine, Tink

πŸ’¬ Banner Notification

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 )

πŸ—£οΈ Speech Notification

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 )

πŸŽ™οΈ Voice Management

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

πŸ§ͺ Testing

test_notification_system() # Tests all notification methods

πŸ”’ Implementation Details

  • ⏱️ Rate Limiting: Notifications are processed one at a time with a minimum interval of 0.5 seconds

  • πŸ”„ Queuing: Multiple notification requests are handled sequentially

  • πŸͺŸ OS Integration: Uses native macOS commands (afplay, osascript, say)

  • πŸ”Œ FastMCP: Built on the FastMCP framework for AI communication

⚠️ Troubleshooting

  • πŸ” Permissions: Ensure notifications are allowed in System Settings β†’ Notifications

  • ⏳ Timing: Only one notification is processed at a time

  • 🌐 Environment: If using the command directly (not uvx), you may need to use full paths

πŸ“„ License

MIT License

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/devizor/macOS-Notification-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server