iMCP: macOS app bridging Apple data to AI via MCP
iMCP puts your personal Apple data directly in front of Claude, eliminating the need to copy-paste between apps. The implementation is solid—Bonjour-based discovery, proper App Sandbox integration, and a typedstream decoder for Messages demonstrate genuine engineering. The trade-offs are significant: it requires macOS 15.3+, nine separate permission approvals, and the Messages integration reads from the live chat.db WAL file, meaning it only shows messages since the last checkpoint unless you grant folder access instead of file access. Worth it for workflows involving Claude and your calendar or contacts; skip it if you primarily want Claude to help with code.
What iMCP is and how it works
iMCP is a macOS menu bar app that runs an MCP server on your local machine, exposing Apple system data—Calendar, Contacts, Location, Maps, Messages, Phone, Reminders, Shortcuts, and Weather—as tools any MCP-compatible AI client can call. When you enable a service, iMCP triggers Apple's standard permission dialogs; once approved, the bundled imcp-server executable handles the MCP protocol and relays requests to the app over the local network using Bonjour. Results come back as JSON-LD documents using Schema.org vocabularies. The app and CLI stay in sync without a cloud component—all processing happens on-device.
Services iMCP exposes to AI clients
- ✓Calendar service for viewing and creating events with recurrence, alarms, and availability settings
- ✓Messages service reading from ~/Library/Messages/chat.db using a custom typedstream decoder (Apple has no public API for this)
- ✓Phone service accessing synced call history from ~/Library/Application Support/CallHistoryDB/
- ✓Contacts search by name, phone number, or email address via Apple's Contacts framework
- ✓Location and Maps services including place search, directions, static map image generation, and address-to-coordinate conversion
- ✓Reminders management with customizable due dates, priorities, and alerts across lists
- ✓Weather data for any location including temperature, wind speed, and conditions
- ✓Shortcuts execution with optional text input
What you can actually do with iMCP
- •Ask Claude to create a calendar event: 'Schedule a 30-minute call with Alex next Tuesday at 2pm'
- •Search message history: 'Find the last message from Sarah about the project kickoff'
- •Check call history: 'Who called me yesterday from the unlisted number?'
- •Look up a contact: 'What's Jay's email and what company do they work at?'
- •Trigger a Shortcut: 'Run my morning briefing shortcut with today's date'
- •Check weather remotely: 'Is it going to rain in Seattle this afternoon?'
Installing iMCP on macOS
Download the iMCP app from iMCP.app/download (requires macOS 15.3 or later) or install via Homebrew with `brew install --cask mattt/tap/iMCP`. After opening the app, you'll see an icon in your menu bar. No further setup is needed to start the MCP server—the app advertises itself over Bonjour automatically.
Strengths
- ✓On-device data access—nothing goes through a cloud service, all processing stays on your Mac
- ✓Supports nine Apple data domains including Messages (which Apple doesn't provide APIs for)
- ✓Bonjour-based discovery means zero manual network configuration for local clients
- ✓JSON-LD output with Schema.org vocabularies is machine-readable and semantically meaningful
- ✓MIT-licensed Swift SDK for MCP, plus Ontology and Madrid packages for structured data and typedstream decoding—real open-source contributions
- ✓Works with Claude Desktop, Claude Code, Cursor, and any MCP-compatible client
Requirements, permissions, and constraints
- △Requires macOS 15.3 minimum—early adopters only for now
- △Messages service reads from chat.db WAL file, so newest messages may be missing until the database checkpoint unless you grant folder access instead of file access
- △No iPad or iPhone support; purely a Mac app
- △Each service requires a separate permission approval—no bulk grant option
- △App Sandbox restricts what data iMCP can access without explicit file/folder grants
- △Not affiliated with or endorsed by Apple
Other ways to connect AI to your Mac data
Common questions about iMCP
iMCP works with any client implementing the Model Context Protocol. The README specifically documents integration with Claude Desktop, Claude Code, Cursor, and Amp. Other MCP clients that support stdio transport should work with the imcp-server CLI.
Yes. Run `claude mcp add --scope user iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server` to add iMCP globally to Claude Code. You can also import existing Claude Desktop MCP configurations with `claude mcp add-from-claude-desktop`.
iMCP reads directly from ~/Library/Messages/chat.db, which stores messages in a SQLite WAL-mode database. Apple has moved messages to a proprietary typedstream format, which iMCP decodes using a custom Swift implementation adapted from the imessage-exporter project. This is reverse-engineered, not an official API.
iMCP requires macOS 15.3 or later. This is a hard requirement—earlier versions are not supported.
iMCP runs entirely on your Mac with no cloud component. The app operates within macOS App Sandbox and uses Apple's standard permission dialogs for each service. Your data goes only to whatever AI client you connect. The README explicitly states iMCP does not collect or store your data.
No. iMCP only accesses data from Apple system frameworks and databases: Calendar, Contacts, Messages, Reminders, Phone, Location, Maps, Weather, and Shortcuts. Third-party messaging apps store their data outside the areas iMCP is granted access to.
The problem it solves
Asking Claude to check your calendar, look up a contact, or recall a past conversation means manually sharing that content in the chat—breaking flow, losing context, and making multi-step tasks over calendar data or message history tedious. The gap is real: your Mac has all this structured data, but there's no standard bridge to AI clients that respects macOS permissions.
Who should try it — and who should skip
Reach for iMCP if you regularly ask Claude about your calendar, contacts, or message history and want to stop manually pasting content into chats. It's also valuable if you're evaluating MCP clients and want a multi-service server to test against. Skip it if you're on an older macOS version, don't use Claude Desktop or Claude Code, or if your workflow with AI is purely code-focused and doesn't involve personal productivity data. The macOS 15.3 requirement is non-negotiable—there's no workaround for older systems.
Related repositories
Want a second opinion on iMCP?
Ask an AI that can read this page — one click and you get its take on iMCP.
