apple-notifier-mcp
About
A simple MCP server that can send notifications on mac devices.
Details
- Author
- turlockmike
- Repository
- turlockmike/apple-notifier-mcp
- GitHub stars
- 10
- License
- MIT License
- Categories
- Communication, Other, Developer Tools, Productivity
Jump to
Setting up with Highlight
Follow these steps to add this server as a custom Highlight plugin:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
apple-notifier-mcpCommand (node, npx, python, etc.)apple-notifier-mcpPlease refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
To install Apple Notifier for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install apple-notifier-mcp --client claude
1. Install the package globally:
npm install -g apple-notifier-mcp
2. Add to your MCP configuration file:
For Cline (cline_mcp_settings.json):
{
"mcpServers": {
"apple-notifier": {
"command": "apple-notifier-mcp"
}
}
}
For Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"apple-notifier": {
"command": "apple-notifier-mcp"
}
}
}
send_notification
Display native macOS notifications with customizable content. Parameters: title (required string), message (required string), subtitle (optional string), sound (optional boolean)
prompt_user
Show interactive dialog prompts to get user input. Parameters: message (required string), defaultAnswer (optional string), buttons (optional string[]), icon (optional 'note' | 'stop' | 'caution')
speak
Use macOS text-to-speech capabilities. Parameters: text (required string), voice (optional string), rate (optional number)
take_screenshot
Capture screenshots using macOS screencapture. Parameters: path (required string), type (required 'fullscreen' | 'window' | 'selection'), format (optional 'png' | 'jpg' | 'pdf' | 'tiff'), hideCursor (optional boolean), shadow (optional boolean), timestamp (optional boolean)
select_file
Open native macOS file picker dialog. Parameters: prompt (optional string), defaultLocation (optional string), fileTypes (optional object), multiple (optional boolean)
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"apple-notifier-mcp": {
"cwd": "string (optional)",
"env": {},
"args": [],
"shell": false,
"command": "apple-notifier-mcp"
}
}
}
Linux
{
"cwd": "string (optional)",
"env": [],
"args": [],
"shell": false,
"command": "apple-notifier-mcp"
}
Macos
{
"cwd": "string (optional)",
"env": [],
"args": [],
"shell": false,
"command": "apple-notifier-mcp"
}
Windows
{
"cwd": "string (optional)",
"env": [],
"args": [],
"shell": false,
"command": "apple-notifier-mcp"
}
- macOS
- Node.js >= 18
- An MCP-compatible client (Claude Desktop, Cline)
Troubleshooting: Notifications Not Appearing
For notifications to display, the terminal or application running the MCP server needs notification permissions in macOS.
- OpenSystem Preferences(orSystem Settingson macOS Ventura+)
- Go toNotifications
- FindNodeorterminal-notifier(whichever appears)
- EnableAllow Notifications
- Set alert style toBannersorAlerts
- OpenSystem Preferences>Notifications
- FindTerminal(oriTermif using iTerm2)
- EnableAllow 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"'
- Ensure Focus Mode or Do Not Disturb is not enabled
- Check the Control Center in the menu bar
Test from terminal before using via MCP:
osascript -e 'display notification "Test message" with title "Test title"'
If this shows a notification, the MCP server should work correctly.
To install Apple Notifier for Claude Desktop automatically viaSmithery:
npx -y @smithery/cli install apple-notifier-mcp --client claude
{ "mcpServers": { "apple-notifier": { "command": "apple-notifier-mcp" } } }
For Claude Desktop (claude_desktop_config.json):
{ "mcpServers": { "apple-notifier": { "command": "apple-notifier-mcp" } } }
Display native macOS notifications with customizable content.
- title(required): string - The title of the notification
- message(required): string - The main message content
- subtitle(optional): string - A subtitle to display
- sound(optional): boolean - Whether to play the default notification sound (default: true)
Show interactive dialog prompts to get user input.
- message(required): string - Text to display in the prompt dialog
- defaultAnswer(optional): string - Default text to pre-fill
- buttons(optional): string[] - Custom button labels (max 3)
- icon(optional): 'note' | 'stop' | 'caution' - Icon to display
- text(required): string - Text to speak
- voice(optional): string - Voice to use (defaults to system voice)
- rate(optional): number - Speech rate (-50 to 50, defaults to 0)
Capture screenshots using macOS screencapture.
- path(required): string - Path where to save the screenshot
- type(required): 'fullscreen' | 'window' | 'selection' - Type of screenshot
- format(optional): 'png' | 'jpg' | 'pdf' | 'tiff' - Image format
- hideCursor(optional): boolean - Whether to hide the cursor
- shadow(optional): boolean - Whether to include window shadow (only for window type)
- timestamp(optional): boolean - Add timestamp to filename
- prompt(optional): string - Prompt message
- defaultLocation(optional): string - Default directory path
- fileTypes(optional): object - File type filter (e.g., {"public.image": ["png", "jpg"]})
- multiple(optional): boolean - Allow multiple file selection
// 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 });
SeeCONTRIBUTING.mdfor development setup and guidelines.
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 foundhere.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
MIT License - see theLICENSEfile for details.
Send Push Notifications and Live Activities to your paired iOS devices.
Send iOS push notifications using the Bark app.
Send cross-platform desktop notifications from AI assistants.
Send various types of messages, including text, markdown, images, and files, to a DingDing group robot.
Enables AI assistants to send notifications and request user input through Discord.
Sends notifications to Discord channels or users via a bot.
Official Model Context Protocol (MCP) server for FastAlert. This server allows AI agents (like Claude, ChatGPT, and Cursor) to list of your channels and send notifications directly through the FastAlert API.
Broadcast AI-driven alerts securely to thousands of phones and laptops in seconds—no apps, no SMS, and total user privacy.
25 read-only tools for searching, analyzing, and exploring your entire iMessage history on macOS. Spotify Wrapped for texts, conversation analytics, streaks, read receipts, reactions, and more.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





