Skip to main content

macOS Notification MCP Server with sound, banner, and speech alerts

Project description

🔔 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

🚀 Quick Start with uvx (Recommended)

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

macos_notification_mcp-0.1.1.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

macos_notification_mcp-0.1.1-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file macos_notification_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: macos_notification_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for macos_notification_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4caf68db40155060f953154b5242e3ef220f988712b561345f683413f3f00a2e
MD5 99a1bc721e0afab95219956c77f386db
BLAKE2b-256 28e6f1f6a336a97b72189ecb1cce48c8ed833b650e9b011497aedad7cd20d04d

See more details on using hashes here.

File details

Details for the file macos_notification_mcp-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for macos_notification_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3d5b83b38fc51bf433a40b4f8a00c36bb4d64001dbabe7af5a64c4e90d59646c
MD5 4496d275548e484467169f81e1ccf5d8
BLAKE2b-256 b10b0cb81760943768816eacadc340be8bd34c313527e22dcceb02ade03806c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page