iMCP
by: loopwork-ai
A macOS app that provides an MCP server to your Messages, Contacts, and more
📌Overview
Purpose: iMCP is designed to seamlessly integrate your digital life with AI, leveraging the capabilities of macOS while interacting with various clients that support the Model Context Protocol (MCP).
Overview: iMCP is a powerful macOS application that facilitates connection to multiple digital services, enhancing your interaction with Claude Desktop and other compatible clients. It provides an intuitive interface for managing permissions and utilizes existing macOS features to enable AI-driven personalized responses and data handling.
Key Features:
-
Calendar Management: View, create, and manage events with customizable settings such as recurrence and alarms, allowing for effective scheduling.
-
Contact Access: Easily retrieve and search contact information, enabling efficient communication management without manual data input.
-
Location Services: Access and convert location data, providing geographical context for various applications and interaction.
-
Message History Access: View past messages with specific contacts over set date ranges, allowing you to track conversations and retrieve past information conveniently.
-
Reminders Creation: Create and manage reminders with customizable due dates and priorities, helping users stay organized.
-
Weather Updates: Retrieve current weather conditions based on location, offering users timely weather information contextualized within their conversations.
iMCP
iMCP is a macOS app for connecting your digital life with AI. It works with Claude Desktop and a growing list of clients that support the Model Context Protocol (MCP).
Capabilities
- Calendar: View and manage calendar events, including creating new events with customizable settings like recurrence, alarms, and availability status.
- Contacts: Access contact information about yourself and search your contacts by name, phone number, or email address.
- Location: Access current location data and convert between addresses and geographic coordinates.
- Maps: Provides location services including place search, directions, points of interest lookup, travel time estimation, and static map image generation.
- Messages: Access message history with specific participants within customizable date ranges.
- Reminders: View and create reminders with customizable due dates, priorities, and alerts across different reminder lists.
- Weather: Access current weather conditions including temperature, wind speed, and weather conditions for any location.
Tip: Have a suggestion for a new capability? Reach out to us at imcp@loopwork.com
Getting Started
Download and open the app
First, download the iMCP app (requires macOS 15.3 or later).
When you open the app, you'll see an icon in your menu bar. Clicking this icon reveals the iMCP menu, which displays all available services. Initially, all services will appear in gray, indicating they're inactive. The blue toggle switch at the top indicates that the MCP server is running and ready to connect with MCP-compatible clients.
Activate services
To activate a service, click on its icon. The system will prompt you with a permission dialog. For example, when activating Calendar access, you'll see a dialog asking "iMCP" Would Like Full Access to Your Calendar
. Click Allow Full Access to continue.
Important: iMCP does not collect or store any of your data. Clients like Claude Desktop do send your data off device as part of tool calls.
Once activated, each service icon goes from gray to their distinctive colors — red for Calendar, green for Messages, blue for Location, and so on.
Repeat this process for all of the capabilities you'd like to enable. These permissions follow Apple's standard security model, giving you complete control over what information iMCP can access.
Connect to Claude Desktop
If you don't have Claude Desktop installed, you can download it from Claude’s official site.
Open Claude Desktop and go to "Settings... (⌘, )". Click on "Developer" in the sidebar of the Settings pane, and then click on "Edit Config". This will create a configuration file at ~/Library/Application Support/Claude/claude_desktop_config.json
.
To connect iMCP to Claude Desktop, click the iMCP menu icon > "Configure Claude Desktop". This will add or update the MCP server configuration to use the imcp-server
executable bundled in the application. Other MCP server configurations in the file will be preserved.
You can also configure Claude Desktop manually
Click the iMCP menu icon > "Copy server command to clipboard". Then open claude_desktop_config.json
in your editor and enter the following:
{
"mcpServers" : {
"iMCP" : {
"command" : "{paste iMCP server command}"
}
}
}
Call iMCP tools from Claude Desktop
Quit and reopen the Claude Desktop app. You'll be prompted to approve the connection.
Note: You may see this dialog twice; click approve both times.
After approving the connection, you should see a tools icon in the chat box that lists all the tools made available to Claude by iMCP.
Now you can ask Claude questions that require access to your personal data, such as:
"How's the weather where I am?"
Claude will use the appropriate tools to retrieve this information, providing accurate, personalized responses without requiring you to manually share this data during your conversation.
Technical Details
App & CLI
iMCP is a macOS app that bundles a command-line executable, imcp-server
.
- iMCP.app provides UI for configuring services and interacting with macOS system permissions to access Contacts, Calendar, and other information.
- imcp-server provides an MCP server that uses standard input/output for communication (stdio transport).
The app and CLI communicate using Bonjour for automatic discovery on the local network. Requests from MCP clients are read by the CLI from stdin
and relayed to the app; responses from the app are received by the CLI and written to stdout
.
The project includes the mcp-swift-sdk, a Swift SDK for Model Context Protocol servers and clients, which the app uses to handle proxied requests from MCP clients.
iMessage Database Access
Apple does not provide public APIs for accessing your messages, but the Messages app stores data in a SQLite database at ~/Library/Messages/chat.db
.
iMCP runs in App Sandbox, limiting its access to user data and system resources. When you enable the Messages service, you'll be prompted to open the chat.db
file through the standard file picker. This action adds the file to the app’s sandbox securely.
Apple has transitioned from plain text storage to a proprietary typedstream
format for messages. The project includes Madrid, a Swift package for reading the iMessage database, including a Swift implementation for decoding this format.
JSON-LD for Tool Results
Tools provided by iMCP return results as JSON-LD documents.
For example, the fetchContacts
tool uses the Contacts framework, which represents people and organizations with the CNContact
type. An example JSON-LD object:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Loopwork Limited",
"url": "https://loop.work"
}
Schema.org provides standard vocabularies for people, postal addresses, events, and other objects. JSON-LD is a convenient encoding format for humans, AI, and software.
The project created Ontology, a Swift package for working with structured data, including convenience initializers for types from Apple frameworks used by iMCP tools.
Acknowledgments
- Justin Spahr-Summers, David Soria Parra, and Ashwin Bhat for their work on MCP.
- Christopher Sardegna for reverse-engineering the
typedstream
format used by the Messages app.
License
This project is licensed under the Apache License, Version 2.0.
Legal
iMessage® is a registered trademark of Apple Inc.
This project is not affiliated with, endorsed, or sponsored by Apple Inc.