macOS MCP Server

$git clone https://github.com/alexlock1/macos-mcp-server.git && cd macos-mcp-server && npm install && npm run build
README.md

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

claude_desktop_config.json
{
  "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...'

Frequently Asked Questions

How do I install macOS MCP Server?

Install macOS MCP Server by running: git clone https://github.com/alexlock1/macos-mcp-server.git && cd macos-mcp-server && npm install && npm run build

What MCP clients work with macOS MCP Server?

macOS MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use macOS MCP Server with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free