The Apple Notifier MCP Server enables interaction with macOS system features through MCP-compatible clients:
Send Notifications: Display native macOS notifications with customizable title, message, subtitle, and sound options.
Display Prompts: Show interactive dialog prompts to gather user input, with optional buttons, icons, and default answers.
Text-to-Speech: Utilize macOS text-to-speech to speak text, with customizable voice and speech rate.
Take Screenshots: Capture screenshots of fullscreen, window, or selection areas, with options for format, cursor visibility, and shadow.
File Selection: Open native macOS file picker dialogs to select files, with support for multiple selections and file type filters.
Provides access to Apple's macOS system services including notifications, dialogs, text-to-speech, screenshot capture, and file selection functionality.
Enables sending native macOS notifications, displaying interactive dialog prompts, using text-to-speech capabilities, capturing screenshots, and accessing the native file picker dialog.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@apple-notifier-mcpsend a notification with title 'Meeting Reminder' and message 'Team sync in 15 minutes'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Apple Notifier MCP Server
Send native macOS notifications and interact with system dialogs through any MCP-compatible client like Claude Desktop or Cline.
Prerequisites
macOS
Node.js >= 18
An MCP-compatible client (Claude Desktop, Cline)
Related MCP server: Toast MCP Server
Troubleshooting: Notifications Not Appearing
For notifications to display, the terminal or application running the MCP server needs notification permissions in macOS.
Grant Notification Permissions
For Claude Desktop users:
Open System Preferences (or System Settings on macOS Ventura+)
Go to Notifications
Find Node or terminal-notifier (whichever appears)
Enable Allow Notifications
Set alert style to Banners or Alerts
For Claude Code / Terminal users:
Open System Preferences > Notifications
Find Terminal (or iTerm if using iTerm2)
Enable Allow Notifications
If the app doesn't appear in Notifications settings:
Run a test notification manually in Terminal:
osascript -e 'display notification "Test" with title "Hello"'This should trigger macOS to prompt for or register notification permissions
Then check System Preferences again
Check Focus Mode / Do Not Disturb:
Ensure Focus Mode or Do Not Disturb is not enabled
Check the Control Center in the menu bar
Verify Notifications Work
Test from terminal before using via MCP:
If this shows a notification, the MCP server should work correctly.
Installation
Installing via Smithery
To install Apple Notifier for Claude Desktop automatically via Smithery:
Manual Installation
Install the package globally:
Add to your MCP configuration file:
For Cline (cline_mcp_settings.json):
For Claude Desktop (claude_desktop_config.json):
Features
Send Notifications
Display native macOS notifications with customizable content.
Parameters:
title(required): string - The title of the notificationmessage(required): string - The main message contentsubtitle(optional): string - A subtitle to displaysound(optional): boolean - Whether to play the default notification sound (default: true)
Display Prompts
Show interactive dialog prompts to get user input.
Parameters:
message(required): string - Text to display in the prompt dialogdefaultAnswer(optional): string - Default text to pre-fillbuttons(optional): string[] - Custom button labels (max 3)icon(optional): 'note' | 'stop' | 'caution' - Icon to display
Text-to-Speech
Use macOS text-to-speech capabilities.
Parameters:
text(required): string - Text to speakvoice(optional): string - Voice to use (defaults to system voice)rate(optional): number - Speech rate (-50 to 50, defaults to 0)
Take Screenshots
Capture screenshots using macOS screencapture.
Parameters:
path(required): string - Path where to save the screenshottype(required): 'fullscreen' | 'window' | 'selection' - Type of screenshotformat(optional): 'png' | 'jpg' | 'pdf' | 'tiff' - Image formathideCursor(optional): boolean - Whether to hide the cursorshadow(optional): boolean - Whether to include window shadow (only for window type)timestamp(optional): boolean - Add timestamp to filename
File Selection
Open native macOS file picker dialog.
Parameters:
prompt(optional): string - Prompt messagedefaultLocation(optional): string - Default directory pathfileTypes(optional): object - File type filter (e.g., {"public.image": ["png", "jpg"]})multiple(optional): boolean - Allow multiple file selection
Example Usage
Contributing
See CONTRIBUTING.md for development setup and guidelines.
Running evals
The evals package loads an mcp client that then runs the index.ts file, so there is no need to rebuild between tests. You can load environment variables by prefixing the npx command. Full documentation can be found here.
License
MIT License - see the LICENSE file for details.