iMCP

by loopwork

Not rated
GitHub

About

A macOS app that connects your digital life with AI, providing access to Calendar, Contacts, Location, Maps, Messages, Reminders, and Weather services.

Details

Author
loopwork
Categories
Productivity, Other, Communication

Setup

Install iMCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/loopwork/iMCP

Follow the installation instructions in the repository README, then restart your MCP client.

iMCP is a macOS app for connecting your digital life with AI. It works withClaude Desktopand agrowing list of clientsthat support theModel Context Protocol (MCP).

First,download the iMCP app(requires macOS 15.3 or later).

Or, if you haveHomebrewinstalled, you can run the following command:

When you open the app, you'll see aicon in your menu bar.

Clicking on 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.

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. ClickAllow Full Accessto continue.

[!IMPORTANT] iMCPdoes notcollect or store any of your data. Clients like Claude Desktopdosend your data off device as part of tool calls.

Once activated, each service icons 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.

If you don't have Claude Desktop installed, you candownload it here.

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> "Configure Claude Desktop".

This will add or update the MCP server configuration to use theimcp-serverexecutable bundled in the application. Other MCP server configurations in the file will be preserved.

Click> "Copy server command to clipboard". Then openclaude_desktop_config.jsonin your editor and enter the following:

{ "mcpServers": { "iMCP": { "command": "{paste iMCP server command}" } } }

Quit and reopen the Claude Desktop app. You'll be prompted to approve the connection.

After approving the connection, you should now see 🔨12 in the bottom right corner of your chat box. Click on that to see a list of 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 you with accurate, personalized responses without requiring you to manually share this data during your conversation.

To add iMCP globally after installing the app:

claude mcp add --scope user iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server

If you've already configured Claude Desktop, you can import its MCP servers:

Open this deep link to automatically install the iMCP server:

To add iMCP globally (available in all projects):

amp mcp add iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server

[!NOTE] When a client first connects, iMCP will show an approval dialog. Click "Allow" and check "Always trust this client" to avoid repeated prompts.

iMCP is a macOS app that bundles a command-line executable,imcp-server.

- iMCP.appprovides UI for configuring services and — most importantly — a means of interacting with macOS system permissions, so that it can access Contacts, Calendar, and other information.
-
imcp-serverprovides an MCP server that uses standard input/output for communication (stdio transport).

The app and CLI communicate with each other on the local network usingBonjourfor automatic discovery. Both advertise a service with type "_mcp._tcp" and domain "local". Requests from MCP clients are read by the CLI fromstdinand relayed to the app; responses from the app are received by the CLI and written tostdout. SeeStdioProxyfor implementation details.

For this project, we created what becamethe official Swift SDKfor Model Context Protocol servers and clients. The app uses this package to handle proxied requests from MCP clients.

Apple doesn't provide public APIs for accessing your messages. However, the Messages app on macOS stores data in a SQLite database located at~/Library/Messages/chat.db.

iMCP runs inApp Sandbox, which limits its access to user data and system resources. When you go to enable the Messages service, you'll be prompted to open thechat.dbfile through the standard file picker. When you do, macOS adds that file to the app's sandbox.NSOpenPanelis magic like that.

But opening the iMessage database is just half the battle. Over the past few years, Apple has moved away from storing messages in plain text and instead toward a proprietarytypedstreamformat.

For this project, we createdMadrid: a Swift package for reading your iMessage database. It includes a Swift implementation for decoding Apple'stypedstreamformat, adapted from Christopher Sardegna'simessage-exporterproject andblog post about reverse-engineeringtypedstream.

The tools provided by iMCP return results asJSON-LDdocuments. For example, thefetchContactstool uses theContacts framework, which represents people and organizations with theCNContacttype. Here's how an object of that type is encoded as JSON-LD:

{ "@context": "https://schema.org", "@type": "Person", "name": "Mattt", "url": "https://mat.tt" }

Schema.orgprovides standard vocabularies for people, postal addresses, events, and many other objects we want to represent. And JSON-LD is a convenient encoding format for humans, AI, and conventional software alike.

For this project, we createdOntology: a Swift package for working with structured data. It includes convenience initializers for types from Apple frameworks, such as those returned by iMCP tools.

To debug interactions between iMCP and clients, you can use theinspector tool(requires Node.js):
-

Click> "Copy server command to clipboard"

Open a terminal and run the following commands:

# Download and run inspector package on imcp-server npx @modelcontextprotocol/inspector [paste-copied-command] # Open inspector web app running locally open http://127.0.0.1:6274

Inspector lets you see all requests and responses between the client and the iMCP server, which is helpful for understanding how the protocol works.

Companionis a utility for testing and debugging your MCP servers (requires macOS 15 or later). It gives you an easy way to browse and interact with a server's prompts, resources, and tools. Here's how to connect it to iMCP:
- Click> "Copy server command to clipboard"
-
Downloadand open the Companion app
- Click the+button in the toolbar to add an MCP server
- Fill out the form:

- Enter "iMCP" as the name
- Select "STDIO" as the transport
- Paste the copied iMCP server command
- Click "Add Server"

- Justin Spahr-Summers(@jspahrsummers), David Soria Parra (@dsp-ant), and Ashwin Bhat (@ashwin-ant) for their work on MCP.
-
Christopher Sardegna(@ReagentX) for reverse-engineering thetypedstreamformat used by the Messages app.

This project is available under the MIT license. See the LICENSE file for more info.

iMessage® is a registered trademark of Apple Inc. This project is not affiliated with, endorsed, or sponsored by Apple Inc.

A macOS app that connects your digital life with AI, providing access to Calendar, Contacts, Location, Maps, Messages, Reminders, and Weather services.

Native macOS Calendar & Reminders MCP server with 24 tools using Swift EventKit - supports recurring events, location triggers, search, batch operations

Provides various DingTalk services including contacts, department management, robot messaging, calendar, and tasks.

An open-source server that gives AI assistants full access to Fastmail email, calendars, and contacts over JMAP.

Connects AI agents to the Feishu/Lark platform for automating tasks like document processing, conversation management, and calendar scheduling.

Connects AI agents to the Feishu/Lark platform to automate document processing, conversation management, and calendar scheduling via its OpenAPI.

Connect AI agents with the Feishu/Lark platform for automation, including document processing, conversation management, and calendar scheduling.

Connect AI agents to Feishu/Lark APIs for automating tasks like document processing, conversation management, and calendar scheduling.

Connect AI agents with the Feishu/Lark platform for automation, including document processing, conversation management, and calendar scheduling.

Connect AI agents to Feishu/Lark APIs for document processing, conversation management, and calendar scheduling.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.