apple-notifier-mcp

apple-notifier-mcp

A simple MCP server that can send notifications on mac devices.

turlockmike

OS Automation
Visit Server

Tools

send_notification

Send a notification on macOS using osascript

prompt_user

Display a dialog prompt to get user input

speak

Speak text using macOS text-to-speech

take_screenshot

Take a screenshot using macOS screencapture

select_file

Open native file picker dialog

README

Apple Notifier MCP Server

smithery badge Send native macOS notifications and interact with system dialogs through any MCP-compatible client like Claude Desktop or Cline.

<a href="https://glama.ai/mcp/servers/t1w1dq4wy4"><img width="380" height="200" src="https://glama.ai/mcp/servers/t1w1dq4wy4/badge" alt="apple-notifier-mcp MCP server" /></a>

Prerequisites

  • macOS
  • Node.js >= 18
  • An MCP-compatible client (Claude Desktop, Cline)

Installation

Installing via Smithery

To install Apple Notifier for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install apple-notifier-mcp --client claude

Manual Installation

  1. Install the package globally:
npm install -g apple-notifier-mcp
  1. 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"
    }
  }
}

Features

Send Notifications

Display native macOS notifications with customizable content.

Parameters:

  • 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)

Display Prompts

Show interactive dialog prompts to get user input.

Parameters:

  • 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-to-Speech

Use macOS text-to-speech capabilities.

Parameters:

  • 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)

Take Screenshots

Capture screenshots using macOS screencapture.

Parameters:

  • 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

File Selection

Open native macOS file picker dialog.

Parameters:

  • 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

Example Usage

// 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
});

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

MIT License - see the LICENSE file for details.

Recommended Servers

@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Featured
Local
JavaScript
Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
ThingsPanel MCP

ThingsPanel MCP

An integration server that connects AI models with ThingsPanel IoT platform, allowing AI assistants to interact with IoT devices through natural language for device control, data retrieval, and management operations.

Official
Python
Beamlit MCP Server

Beamlit MCP Server

An MCP server implementation that enables seamless integration between Beamlit CLI and AI models using the Model Context Protocol standard.

Official
TypeScript
mcp-wcgw

mcp-wcgw

Shell and file edit capabilities tightly coupled to provide a powerful coding experience. You can work with different modes: architect and code-writer for separate plan and implementation phase. You can get it to invoke any cli command, e.g., compiling, type checking, linting, github cli, python

Local
Python
MCP Client Configuration Server

MCP Client Configuration Server

A tool that helps manage and synchronize MCP server configurations across different AI assistant clients (Cline, Roo Code, WindSurf, Claude), automating the process of retrieving, listing, adding, and removing server configurations from client configuration files.

Local
JavaScript
MCP SAP GUI Server

MCP SAP GUI Server

Automates interactions with SAP GUI using the Model Context Protocol, allowing precise control of SAP transactions through tools like clicking, typing, scrolling, and transaction management.

Local
Python
Coder Toolbox MCP Server

Coder Toolbox MCP Server

A utility toolkit that enhances Claude's code interaction capabilities by providing seamless tools for Java code analysis, manipulation, and testing workflows.

Local
TypeScript
MCP Python Toolbox

MCP Python Toolbox

A Model Context Protocol server that enables AI assistants like Claude to perform Python development tasks through file operations, code analysis, project management, and safe code execution.

Local
Python
Shell MCP Server

Shell MCP Server

A secure server that enables AI applications to execute shell commands in specified directories, supporting multiple shell types (bash, sh, cmd, powershell) with built-in security features like directory isolation and timeout control.

Local
Python