Skip to main content

Apple apps MCP Server — control Messages, Notes, Reminders, Calendar, Contacts, and Photos through AppleScript. Fully offline, no API keys needed.

Project description

apple-mcp

Apple Apps MCP Server — control Messages, Notes, Reminders, Calendar, Contacts, and Photos through AppleScript.

PyPI version License: MIT Python

macOS only — requires macOS with Automation permissions granted to your terminal / Claude Code.

27 tools across 6 Apple apps — fully offline, no API keys, no network calls. All data stays on your Mac.

Tools

Messages (5)

Tool Description
messages_list_chats List all conversations
messages_get_chat Get messages from a specific conversation
messages_get_recent Get recent messages across all chats
messages_search Search messages by content
messages_send Send an iMessage or SMS

Notes (5)

Tool Description
notes_list_folders List all Notes folders
notes_list List notes (optionally filter by folder)
notes_get Get the full content of a note
notes_create Create a new note
notes_search Search notes by content

Reminders (5)

Tool Description
reminders_list_lists List all Reminder lists
reminders_list List reminders (optionally filter by list)
reminders_create Create a reminder with optional due date
reminders_complete Mark a reminder as complete
reminders_search Search reminders by name

Calendar (4)

Tool Description
calendar_list List all calendars
calendar_today Get today's events
calendar_events Get events in a date range
calendar_create_event Create a new calendar event

Contacts (4)

Tool Description
contacts_list List all contacts
contacts_search Search by name, email, or phone
contacts_get Get detailed contact information
contacts_groups List contact groups

Photos (4)

Tool Description
photos_list_albums List all photo albums
photos_recent Get recently added photos
photos_album Get photos from a specific album
photos_search Search photos by keyword

Setup

Requirements

  • macOS (AppleScript is macOS-only)
  • Python 3.10+
  • uv package manager

Step 1 — Install

pip install apple-mcp
# or with uv:
uv add apple-mcp

Step 2 — Grant Permissions

The first time each app is accessed, macOS will prompt for Automation permission. You can also grant them upfront:

  1. Open System SettingsPrivacy & SecurityAutomation
  2. Find your terminal app (Terminal, iTerm2) or Claude Code
  3. Enable access for: Messages, Notes, Reminders, Calendar, Contacts, Photos

For Messages, full disk access may be needed for reading message history. Go to Privacy & SecurityFull Disk Access and add your terminal app.

Step 3 — Add to Claude Code

claude mcp add apple -- uvx apple-mcp

Or manually in your Claude config (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "apple": {
      "command": "uvx",
      "args": ["apple-mcp"]
    }
  }
}

Privacy & Security

  • Fully offline — no network requests, no third-party APIs
  • All data stays on your Mac
  • Uses AppleScript and local SQLite database (~/Library/Messages/chat.db) for Messages
  • No credentials or tokens required

Troubleshooting

"Not authorized to send Apple events": Go to System Settings → Privacy & Security → Automation and enable the app.

Messages not showing: Ensure Full Disk Access is granted to your terminal app (System Settings → Privacy & Security → Full Disk Access).

Photos tools slow: Photos.app must be running. Large libraries may take a moment to query.

Calendar/Reminders not responding: Open the respective app once manually to ensure it initializes properly.


Requirements

  • macOS (10.15 Catalina or later recommended)
  • Python 3.10+
  • Automation permissions in System Settings

License

MIT — Hitesh Gupta

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apple_mcp-1.0.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apple_mcp-1.0.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file apple_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: apple_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for apple_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5e0173abd221cdffe373d0d46ec9419c95fcf2fdaad02e97ed6a4b30b15991f6
MD5 fcba0aa64b1ca4a3eb4fa07296d247eb
BLAKE2b-256 c2dc9373a91f3f0e5137e167c1602ab146c6af47b10cf001c8f17960d20a7487

See more details on using hashes here.

File details

Details for the file apple_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: apple_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for apple_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3fda381c9dec4e0d137f269896ebd14dd2bcefff11a6f5ef218665a1f2bbeda3
MD5 e817178744c1843a54540249c5b5ea71
BLAKE2b-256 284297d4ff835c2852e7b704eb5f0cedae782dbc0f0769b6f352e209718fc6db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page