List, create, update, and delete events in Apple Calendar on macOS.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Apple-native MCP servers for macOS β turn any AI agent into what Siri should have been.
This repository provides direct, local access to core Apple apps through the Model Context Protocol (MCP). Your AI assistant can use structured tools to work with your data β create reminders, send messages, check calendars, search mail, manage files, get directions β while everything stays in the native apps you already use.
Everything happens on your Mac over local stdio. Your data stays in Apple's apps where it belongs. Free and open source under the MIT License.
Built on MCP specification 2026-07-28 (Python SDK 2.x) with backward compatibility for clients speaking older protocol revisions.
Once you have uv installed, every server runs with a one-liner β no clone, no venv management:
Standalone servers work the same way (uvx apple-mcp-mail, uvx apple-calendar-mcp, ...).
See Apple-Tools-MCP/README.md for the assistant-grade safety settings recommended for daily use.
Download the .mcpb bundle for a server from Releases and double-click it β Claude Desktop installs and manages it, including configuration.
That builds one workspace environment with every server's entry point in .venv/bin (for example .venv/bin/apple-tools-mcp). Each server folder also has a start.sh that MCP clients can point at directly β it prefers uv and falls back to a plain venv bootstrap.
Different Apple apps require different permissions. Each server ships a health tool, a permission guide tool, and a recheck tool, so your agent can diagnose and fix permission problems by itself.
| Server | What macOS may ask for | Health tool | Recovery tools |
|---|---|---|---|
| Apple-Tools-MCP | Everything below, as used | apple_health | apple_permission_guide, apple_recheck_permissions |
| Automation access to Mail | mail_health | mail_permission_guide, mail_recheck_permissions | |
| Calendar | Calendar access | calendar_health | calendar_permission_guide, calendar_recheck_permissions |
| Reminders | Reminders access | reminders_health | reminders_permission_guide, reminders_recheck_permissions |
| Messages | Automation access to Messages, plus Full Disk Access for history | messages_health | messages_permission_guide, messages_recheck_permissions |
| Contacts | Contacts access | contacts_health | contacts_permission_guide, contacts_recheck_permissions |
| Notes | Automation access to Notes | notes_health | notes_permission_guide, notes_recheck_permissions |
| Shortcuts | Usually no separate privacy prompt | shortcuts_health | shortcuts_permission_guide, shortcuts_refresh_state |
| Files | No privacy prompt; access limited to configured allowed roots | files_health | files_permission_guide |
| System | System Events, Accessibility, or automation prompts for some actions | system_health | system_permission_guide |
| Maps | No privacy prompt; local Swift helper needs Xcode command line tools | maps_health | maps_permission_guide |
Servers expose their full tool surface through tools/list (with readOnlyHint/destructiveHint annotations and structured output schemas), which is what modern deferred-loading clients expect. For context-constrained clients, every server also ships two helper tools:
search_tools β ranked keyword/alias search over the server's tool catalogget_tool_info β full schema, metadata, and example calls for one toolSome tips for working with these servers:
mail_get_thread, mail_reply_latest_in_thread, mail_archive_thread) when the user mentions a conversation.from_account.* as a wildcard.due_date requires a timezone offset like yyyy-MM-ddTHH:mm:ss-08:00.service_name on iMessage sends.apple_generate_daily_briefing, apple_generate_weekly_briefing, and apple_triage_communications_task.apple_list_prompts, apple_get_prompt, and per-server equivalents) cover clients that only support tools.For code-execution clients, the repo ships generated artifacts so agents can call tools as Python functions without loading every schema into context:
generated/tool_catalogs/ β searchable tool metadata per servergenerated/tool_wrappers/python/ β generated Python wrappers for every toolSee docs/code-mode.md for the wrapper layout, client interface, and recommended workflow.
stdio is the default and recommended transport for local use. Every server also supports streamable-http via env vars (APPLE_<DOMAIN>_MCP_TRANSPORT=streamable-http, plus _HOST/_PORT).
Run the official MCP conformance suite against Apple-Tools-MCP:
Lightweight Inspector smoke checks across all servers:
CI runs lint, the full test suite (macOS and Linux), generated-artifact drift checks, Inspector smoke checks, and the conformance suite β see .github/workflows.
Apple-Tools-MCP/ β unified server (module apple_agent_mcp, env prefix APPLE_AGENT_MCP_*)Apple<Domain>-MCP/ β standalone servers (Apple-Calendar-MCP is the calendar server)AppleMCPCommon/ β shared discovery/search helpers (apple-mcp-common on PyPI)generated/ β code-mode catalogs and wrappers (regenerated by CI checks)scripts/ β install, smoke-check, artifact-generation, and bundle-build helpersdocs/ β project and launch docsThe repository is a uv workspace: pyproject.toml at the root defines members, and uv.lock pins the whole dependency graph.
APPLE_FILES_MCP_ALLOWED_ROOTS.APPLE_SYSTEM_MCP_SAFETY_MODE.~/.apple-tools-mcp/preferences.json (or APPLE_AGENT_MCP_STATE_FILE) and recent assistant actions in ~/.apple-tools-mcp/actions.json for audit and undo workflows.APPLE_AGENT_MCP_CONFORMANCE_MODE=1 is for protocol validation only; it registers the official conformance fixtures.Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/apple-calendar)<a href="https://allmcps.com/mcp/apple-calendar"><img src="https://allmcps.com/api/badge/apple-calendar?style=directory" alt="Apple Calendar on AllMCPs" /></a>