MCP server for macOS system operations: file dialogs, clipboard, notifications, Finder integration.
macOS MCP Server
An MCP (Model Context Protocol) server for macOS system operations: file dialogs, clipboard, notifications, and Finder integration.
Features
- File Dialogs: Open file/folder pickers, save dialogs, multiple selection
- Clipboard: Read and write text to system clipboard
- System: Notifications, open URLs, get system info
- Finder: Reveal files, open with default app, get current selection
Tools
File Dialogs
| Tool |
Description |
macos_pick_file |
Open file picker, return selected path |
macos_pick_folder |
Open folder picker, return selected path |
macos_pick_files |
Multiple file selection |
macos_save_dialog |
Save file dialog with default name |
Clipboard
| Tool |
Description |
macos_clipboard_read |
Get clipboard text content |
macos_clipboard_write |
Set clipboard text content |
System
| Tool |
Description |
macos_notify |
Display system notification |
macos_open_url |
Open URL in default browser |
macos_system_info |
Get macOS version, hostname, username |
macos_screen_resolution |
Get screen dimensions and scale factor |
Finder
| Tool |
Description |
macos_reveal_in_finder |
Reveal path in Finder |
macos_open_with_default |
Open file with default app |
macos_get_finder_selection |
Get currently selected files in Finder |
macos_quick_look |
Open file with Quick Look preview |
Screenshot
| Tool |
Description |
macos_screenshot |
Take screenshot (full screen, region, or window) |
macos_screenshot_clipboard |
Screenshot to clipboard |
Image Tools (sips)
| Tool |
Description |
macos_image_info |
Get image metadata (dimensions, format, etc.) |
macos_image_resize |
Resize image (width, height, or max size) |
macos_image_convert |
Convert between formats (jpeg, png, gif, tiff, bmp, heic) |
PDF Tools
| Tool |
Description |
macos_pdf_page_count |
Get number of pages in PDF |
macos_pdf_merge |
Merge multiple PDFs into one |
Notes App
| Tool |
Description |
macos_note_create |
Create a new note |
macos_note_folders |
List all folders |
macos_note_list |
List notes in a folder |
macos_note_read |
Read note content by ID |
Installation
Clone and build:
git clone https://github.com/alexlock1/macos-mcp-server.git
cd macos-mcp-server
npm install
npm run build
Configuration
Add to your MCP settings (e.g., .mcp.json or Claude Desktop config):
{
"mcpServers": {
"macos": {
"command": "node",
"args": ["/path/to/macos-mcp-server/dist/index.js"]
}
}
}
Usage Examples
Pick a file
macos_pick_file({
prompt: "Select a document",
fileTypes: ["pdf", "doc", "docx"]
})
Copy to clipboard
macos_clipboard_write({ text: "Hello, World!" })
Show notification
macos_notify({
title: "Task Complete",
message: "Your file has been processed",
sound: "Glass"
})
Get system info
macos_system_info({})
// Returns: { computerName, userName, homeDirectory, osVersion }
Reveal in Finder
macos_reveal_in_finder({ path: "/Users/me/Documents/report.pdf" })
Take a screenshot
macos_screenshot({
path: "/tmp/screenshot.png",
fullScreen: true
})
Resize an image
macos_image_resize({
inputPath: "/path/to/image.png",
outputPath: "/path/to/resized.png",
maxSize: 800
})
Get PDF page count
macos_pdf_page_count({ path: "/path/to/document.pdf" })
Create a note
macos_note_create({
name: "Meeting Notes",
body: "Discussion points...",
folder: "Work"
})
Requirements
- Node.js 18+
- macOS (uses AppleScript for all operations)
How It Works
All operations use AppleScript via osascript to interact with macOS system features. This provides native dialog appearances and full system integration.
License
MIT
Tools (25)
macos_pick_fileOpen file picker, return selected path
macos_pick_folderOpen folder picker, return selected path
macos_pick_filesMultiple file selection
macos_save_dialogSave file dialog with default name
macos_clipboard_readGet clipboard text content
macos_clipboard_writeSet clipboard text content
macos_notifyDisplay system notification
macos_open_urlOpen URL in default browser
macos_system_infoGet macOS version, hostname, username
macos_screen_resolutionGet screen dimensions and scale factor
macos_reveal_in_finderReveal path in Finder
macos_open_with_defaultOpen file with default app
macos_get_finder_selectionGet currently selected files in Finder
macos_quick_lookOpen file with Quick Look preview
macos_screenshotTake screenshot (full screen, region, or window)
macos_screenshot_clipboardScreenshot to clipboard
macos_image_infoGet image metadata (dimensions, format, etc.)
macos_image_resizeResize image (width, height, or max size)
macos_image_convertConvert between formats (jpeg, png, gif, tiff, bmp, heic)
macos_pdf_page_countGet number of pages in PDF
macos_pdf_mergeMerge multiple PDFs into one
macos_note_createCreate a new note
macos_note_foldersList all folders
macos_note_listList notes in a folder
macos_note_readRead note content by ID
Configuration
{
"mcpServers": {
"macos": {
"command": "node",
"args": ["/path/to/macos-mcp-server/dist/index.js"]
}
}
}Try it
→Open a file picker to select a PDF document.
→Copy 'Hello, World!' to my clipboard.
→Show a system notification: 'Task Complete - Your file has been processed' with Glass sound.
→Take a full screen screenshot and save it to /tmp/screenshot.png.
→Create a new note called 'Meeting Notes' in the 'Work' folder with body 'Discussion points...'