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 – iMCP is a native macOS application (with a bundled imcp‑server command‑line tool) that implements the Model Context Protocol (MCP). It exposes a set of “tools” – Calendar, Contacts, Location, Maps, Messages, Reminders, Weather – that can be called by MCP‑compatible AI clients such as Claude Desktop, Claude Code, Cursor, and Amp. The AI can request, for example, “What’s the weather where I am?” and iMCP will fetch the data from the OS and return it in a structured JSON‑LD format.
Core capabilities
| Service | What you can do |
|---|---|
| Calendar | List events, create new events (recurrence, alarms, availability). |
| Contacts | Read your own contact card and search contacts by name, phone or email. |
| Location | Get the current geographic coordinates or convert an address ↔︎ coordinates. |
| Maps | Search places, get directions, look up points of interest, estimate travel time, generate static map images. |
| Messages | Retrieve message history for a given participant within a date range. |
| Reminders | List reminders and create new ones with due dates, priorities and alerts. |
| Weather | Pull current temperature, wind speed and condition for any location. |
How it works
- MCP server – The bundled
imcp‑serverruns as a local TCP service (_mcp._tcpvia Bonjour). It talks to AI clients over stdio transport (stdin/stdout) and forwards requests to the GUI app. - Permission handling – The macOS app asks for the standard system permissions (Calendar, Contacts, etc.) the first time you enable a service. No data is stored or sent by iMCP itself; only the AI client you connect (e.g., Claude) may transmit the data.
- Tool responses – Each tool returns a JSON‑LD document using schema.org vocabularies (e.g., a
Personobject for a contact). This format is easy for both humans and LLMs to consume. - Client integration – After installing iMCP you add it to a client:
- Claude Desktop – use the Configure Claude Desktop menu item or copy the server command into
claude_desktop_config.json. - Claude Code –
claude mcp add --scope user iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server. - Cursor – click the provided deep‑link which installs the server command automatically.
- Amp –
amp mcp add iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server.
- Claude Desktop – use the Configure Claude Desktop menu item or copy the server command into
- Debugging – The project ships a MCP Inspector (Node.js) and a macOS Companion app to view request/response streams and test the server.
Getting started (quick steps)
- Install –
brew install --cask mattt/tap/iMCPor download from https://iMCP.app/download (requires macOS 15.3+). - Launch – An icon appears in the menu bar; toggle the blue switch to start the MCP server.
- Enable services – Click a service icon, grant the macOS permission dialog, and the icon turns its colour (red = Calendar, green = Messages, etc.).
- Connect a client – Follow the client‑specific instructions above; after the client approves the connection you’ll see a hammer (🔨) icon in the chat UI indicating the tools are available.
- Ask the AI – Pose a natural‑language request that needs personal data; the AI will invoke the appropriate iMCP tool and return the result.
Technical highlights
- Swift SDK – iMCP uses the official Swift SDK for Model Context Protocol (https://github.com/modelcontextprotocol/swift-sdk).
- Message database access – Reads macOS Messages from
~/Library/Messages/chat.dbvia the custom Madrid Swift package that decodes Apple’s proprietarytypedstreamformat. - JSON‑LD ontology – The Ontology Swift package provides helpers to encode Apple framework objects (e.g.,
CNContact) as schema.org JSON‑LD. - Local discovery – Bonjour advertising lets any MCP‑compatible client find the server without manual configuration.
Who might use it?
- Power users who want their LLM assistants to act on real personal data (schedule meetings, fetch recent messages, check the weather) without manually copying information.
- Developers building new MCP clients or custom tools – iMCP serves as a reference implementation and a ready‑made data source.
- Privacy‑conscious users – iMCP never stores or transmits data itself; all data flow is under the user’s control via macOS permissions.
License & legal
- MIT license.
- Not affiliated with Apple; iMessage® is a trademark of Apple Inc.
Bottom line: iMCP is a genuine, production‑ready macOS bridge that lets modern AI assistants safely and locally query your personal macOS data through a standard protocol, making AI‑driven personal productivity both possible and privacy‑aware.
Related
- Project
- Project
- Project
- Project