Releases: abhinavag-svg/apple-ecosystem-mcp
Release list
v1.1.2 — Self-Contained MCPB Installability
Apple Ecosystem MCP v1.1.2 focuses on out-of-the-box Claude Desktop installability with a self-contained macOS MCPB bundle.
Apple Silicon requirement: this v1.1.2 release artifact is for Apple Silicon (arm64) Macs.
Intel Mac support is not included in this release yet and will come in a future release.
Highlights:
- Ships the primary MCPB as a bundled binary runtime instead of a Node wrapper around host Python.
- Removes the need for users to install Python, Node.js, or uv for the primary Claude Desktop bundle.
- Keeps the existing Apple Ecosystem tool surface unchanged.
- Keeps the bundled native helper signed with a stable ad-hoc bundle identifier.
- Adds package validation and smoke coverage for the self-contained artifact.
Install the attached apple-ecosystem-mcp.mcpb in Claude Desktop. See README.md for setup, permissions, troubleshooting, and support.
v1.1.1 - Calendar Reliability And Helper Signing
Apple Ecosystem MCP v1.1.1 focuses on Calendar reliability and shipping the native helper with a stable ad-hoc signing identity.
Highlights:
- Signs the bundled native helper with a stable ad-hoc bundle identifier during local and release builds.
- Aligns the release script with the canonical make build bundle path so release artifacts match local validation.
- Lets Calendar tools fall back to AppleScript on recoverable native Calendar permission/backend errors.
- Launches Calendar before AppleScript Calendar access to make permission prompting and fallback behavior more reliable.
- Bounds broad Calendar event scans and avoids attendee expansion in the fallback list path for better responsiveness.
- Refuses to report an empty Calendar result when all fallback calendars timed out.
- Adds regression coverage for Calendar fallback, timeout, limit, and helper-signing behavior.
Install the attached apple-ecosystem-mcp.mcpb in Claude Desktop. See README.md for setup, permissions, troubleshooting, and support.
v1.1.0 - Apple Ecosystem MCPB Installability And Permission UX
Changelog
v1.1.0 - 2026-06-28
MCPB Installability
- Changed the primary MCPB to use a Node runtime entrypoint for current Claude Desktop compatibility.
- Added a thin Node launcher that starts the existing Python tool engine from the bundled source tree and vendored Python dependencies.
- Kept the future
server.type = "uv"manifest as a separate local build path instead of making it the default before Claude Desktop accepts it. - Added MCPB validators for manifest shape, required files, forbidden local artifacts, runtime command safety, and GitHub author metadata.
- Updated the release/build flow to include
package.json,package-lock.json, the Node launcher, vendored dependencies, and the native helper.
Anthropic Submission Metadata
- Added
author.urlpointing tohttps://github.com/abhinavag-svgin every shipped manifest. - Mirrored author metadata into
package.jsonandpackage-lock.json. - Added packaging tests so the GitHub author URL requirement does not regress.
Native Permission UX
- Embedded macOS privacy usage descriptions into the bundled native helper for Calendar, Contacts, and Reminders.
- Added an original menu-bar companion app skeleton for checking service status, requesting permissions, opening settings panes, copying local commands, and configuring Claude Desktop for a dev checkout.
- Updated permission guidance so macOS-related guidance writes to stderr rather than corrupting MCP stdio.
Contacts And Reminders Reliability
- Made Contacts operations fall back to AppleScript when native Contacts access is denied or unavailable.
- Fixed the Contacts AppleScript search fallback compile error caused by a stale handler outside the Contacts AppleScript dictionary context.
- Made Reminders read/write operations fall back to AppleScript on recoverable native helper errors such as access denial and EventKit backend failures.
- Added regression tests for Contacts and Reminders native-denial fallback paths.
Documentation And Release Flow
- Updated README install language around the primary MCPB path, Node launcher compatibility, and future UV bundle.
- Preserved the README screenshot added directly on GitHub before this release.
- Updated the release guide and release script to validate the Node-runtime MCPB and build the helper with embedded permission metadata.
v1.0.0 — Apple Ecosystem MCP Release
Apple Ecosystem MCP v1.0.0 is the first stable release for local Claude workflows across Mail, Calendar, Contacts, Reminders, Notes, and iCloud Drive.
Highlights:
- Local-first Apple productivity tools for Claude Desktop and Claude Code.
- Reliable Mail triage, search, open, draft, and read workflows with Inbox-focused fallbacks.
- Native Calendar, Contacts, and Reminders access through the bundled macOS helper.
- Notes reads tuned for large rich notes.
- Minimal MCPB package with README, privacy policy, license, source, runner, and native helper.
Install the attached apple-ecosystem-mcp.mcpb in Claude Desktop. See README.md for setup, permissions, troubleshooting, and support.
v0.6.11 — Apple Ecosystem MCP Release
Install the attached apple-ecosystem-mcp.mcpb in Claude Desktop. See README.md for setup and permissions.
v0.6.10
Fixes
- Use trusted local Mail metadata/snapshot as the primary provider for store-capable mail_search calls in auto mode.
- Prevent AppleScript false-empty results from masking valid sender/subject/date matches.
- Default grouped Mail searches to Inbox folders only, matching the intended read scope.
Verification
- env UV_CACHE_DIR=/private/tmp/uv-cache uv run pytest tests/test_mail_service.py -q
- env UV_CACHE_DIR=/private/tmp/uv-cache uv run pytest tests/ -q
- make build
- Live local replay of mail_search(query=linkedin, since=2026-06-19T08:00:00) returned current INBOX matches instead of [].
v0.6.9
Fixes
- Search Mail senders by default when search_fields is omitted, matching the intended subject-or-sender search behavior.
- Fixes queries like "linkedin" finding messages where LinkedIn appears in the sender name/address rather than the subject.
Verification
- env UV_CACHE_DIR=/private/tmp/uv-cache uv run pytest tests/test_mail_service.py -q
- env UV_CACHE_DIR=/private/tmp/uv-cache uv run pytest tests/ -q
- make build
- Live local-store replay for linkedin on 2026-06-20 returned current LinkedIn messages.
v0.6.8
Fixes
- Require trusted Mail metadata/snapshot for auto-mode mail_recent so stale AppleScript batches are not returned as current mail.
- Return recoverable setup guidance when recent Mail cannot access trusted metadata instead of serving misleading old results.
Verification
- env UV_CACHE_DIR=/private/tmp/uv-cache uv run pytest tests/test_mail_service.py -q
- env UV_CACHE_DIR=/private/tmp/uv-cache uv run pytest tests/ -q
- make build
- Live patched-service check returned current iCloud INBOX rows with provider=mail_store.
v0.6.7
Mail sender alias normalization.\n\n- Accepts common Claude-generated aliases: filters.sender, filters.from, filters.from_email, filters.sender_email -> filters.from_addr.\n- Accepts search_fields=["from"] and related aliases as search_fields=["sender"].\n- Prevents malformed sender prompts from falling into slow Mail AppleScript scans.\n- Updated prompt routing docs to prefer filters.from_addr and search_fields=["sender"].\n\nVerification:\n- env UV_CACHE_DIR=/private/tmp/uv-cache uv run pytest tests/ -q: 353 passed, 9 skipped\n- Local smoke for filters={sender: jobs-noreply@linkedin.com}: returned 2 rows with no errors\n- make build: rebuilt apple-ecosystem-mcp.mcpb and apple-ecosystem-mcp.dxt
v0.6.6
Mail access setup and AppleScript-first routing.\n\n- Added mail_access_setup to explain Mail access modes, report local-store diagnostics, and optionally open Full Disk Access settings.\n- Changed Mail auto routing to try Mail.app AppleScript first, then fall back to the local Mail store/snapshot only if AppleScript fails.\n- Kept explicit provider controls: provider=applescript for no-FDA mode, provider=local for deterministic local metadata reads.\n- Updated docs/tests for the three supported Mail modes.\n\nVerification:\n- env UV_CACHE_DIR=/private/tmp/uv-cache uv run pytest tests/ -q: 350 passed, 9 skipped\n- mail_access_setup live check: reports auto/applescript/local modes\n- APPLE_MCP_LIVE_TESTS=1 APPLE_ECOSYSTEM_MCP_MAIL_PROVIDER=local focused iCloud inbox integration: passed\n- make build: rebuilt apple-ecosystem-mcp.mcpb and apple-ecosystem-mcp.dxt