mattt/iMCP
A macOS app that provides an MCP server to your Messages, Contacts, Reminders and more
iMCP – macOS bridge between your personal data and AI tools
What it is
- A native macOS application (with a bundled CLI server) that exposes the data and services on your Mac – calendar, contacts, messages, phone calls, voicemail, reminders, weather, location, HomeKit, etc. – through the Model Context Protocol (MCP).
- MCP‑compatible AI clients such as Claude Desktop, Claude Code, Cursor, and Amp can call these services as tools, letting the LLM retrieve or act on your personal information without you having to paste it manually.
Key capabilities
| Service | What you can do |
|---|---|
| Calendar | List, create and modify events (recurrence, alarms, availability). |
| Contacts | Query your own contact card or search contacts by name, phone or email. |
| Home | Discover HomeKit accessories, read/write characteristics, run scenes and automations (requires a separate helper app you sign yourself). |
| Location / Maps | Get current GPS, convert addresses, search places, request directions, travel‑time estimates, static map images. |
| Messages | Read message history for a participant over a chosen date range. |
| Phone | View call log, filter by contact/date/type, initiate calls (with macOS confirmation). |
| Voicemail | Retrieve synced voicemails, with transcript and audio, filter by sender/mailbox. |
| Reminders | List, create, edit, delete reminders and manage reminder lists. |
| Shortcuts | List and run macOS Shortcuts, optionally passing text input. |
| Weather | Current temperature, wind, conditions for any location. |
How it works
- MCP server – The app bundles
imcp‑server, a command‑line executable that speaks MCP over standard I/O. - Discovery – The app and server advertise a
_mcp._tcpservice via Bonjour, so any MCP client on the same Mac can find them automatically. - Permission handling – When you enable a service, macOS shows the usual permission dialog (e.g., Full Access to Calendar). The app stores the granted sandbox access (folder picks for Messages, Call History, Voicemail, etc.) and uses it to read the underlying SQLite databases.
- Data format – Tool results are returned as JSON‑LD using the Schema.org vocabulary (e.g., a contact becomes a
Personobject). This makes the output easy for LLMs and other software to consume. - HomeKit support – Because HomeKit is only available to Mac Catalyst apps, iMCP ships a separate iMCP Helper that you must build and sign with your own Apple Developer account. The main app talks to the helper over a local TCP port.
Installation
- Download the signed app from https://iMCP.app/download (requires macOS 15.3+), or install via Homebrew:
brew install --cask mattt/tap/iMCP - The app places an icon in the menu bar; toggle the blue switch to start the MCP server.
- Enable the services you need; each will prompt for the appropriate macOS permission.
- (Optional) Build the HomeKit helper if you want Home automation:
git clone https://github.com/mattt/iMCP.git cd iMCP Scripts/install-helper.sh # signs and installs the helper
Connecting an AI client
- Claude Desktop – Open Settings → Developer → Edit Config, then use the Configure Claude Desktop menu item in iMCP. This writes a server entry to
claude_desktop_config.json. After restarting Claude, the tool list shows a hammer icon (🔨) with the 12 iMCP tools. - Claude Code, Cursor, Amp – Each provides a CLI command (
claude mcp add …,cursor …,amp mcp add …) that registers the iMCP server globally. Deep‑link URLs are also supplied for Cursor.
Debugging & inspection
- Local‑network permission –
imcp‑serverneeds the Local Network privacy permission; enable it in System Settings > Privacy & Security. - MCP Inspector – Run
npx @modelcontextprotocol/inspector <server‑command>to open a web UI that shows every request/response between a client and iMCP. - Companion – A macOS 15+ utility for interactively browsing a server’s prompts, resources, and tools.
Who it’s for
- Developers building AI‑augmented macOS experiences who need a secure, privacy‑first way to expose personal data to LLMs.
- Power users who want their AI assistants (Claude, Cursor, etc.) to answer questions like “What’s the weather where I am?” or “Schedule a meeting with Alice next Tuesday at 3 pm” without manually copying data.
- Anyone interested in the Model Context Protocol; iMCP also serves as a reference implementation and ships the official Swift SDK for MCP.
Why it matters
- Keeps your personal data on‑device; iMCP never stores or transmits anything itself. The AI client decides what to send.
- Provides a uniform, typed interface (JSON‑LD) that many LLMs can consume, reducing the need for custom scraping or manual export scripts.
- Demonstrates how macOS system services can be safely bridged to modern AI tool‑calling workflows.
Related
- Project
- Project
- Project
- Project
- Project