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.1.tar.gz (12.0 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.1-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: apple_mcp-1.0.1.tar.gz
  • Upload date:
  • Size: 12.0 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.1.tar.gz
Algorithm Hash digest
SHA256 d0eb724c0aa6d8d2966ccd73c3b178c56240323e718e5f9e787330e1d192cb29
MD5 69d605b418684ad722daf221e79976d9
BLAKE2b-256 41f205b782a188eebf0c61445da89ab6176e2a0055ddd165fce863d8ff1a3303

See more details on using hashes here.

File details

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

File metadata

  • Download URL: apple_mcp-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 12.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e4c1043a4606d8851c94d25b53521c492793a9c4c81c10a40b16a55f90726307
MD5 b3a4ecde70d47efc94fe9de13e0ce1e1
BLAKE2b-256 80c9d2023222c43a78f5718a2ebea1b8edcc80c28903caef97d7ae13c9a5da9c

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