Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Imcp

    A macOS app that provides an MCP server to your Messages, Contacts, Reminders and more Swift-based implementation. Trusted by 900+ developers.

    916 stars
    Swift
    Updated Oct 19, 2025
    macos
    mcp

    Table of Contents

    • Capabilities
    • Getting Started
    • Download and open the app
    • Activate services
    • Connect to Claude Desktop
    • Call iMCP tools from Claude Desktop
    • Connect to [Claude Code][claude-code]
    • Connect to [Cursor][cursor]
    • Connect to [Amp][amp]
    • Technical Details
    • App & CLI
    • iMessage Database Access
    • JSON-LD for Tool Results
    • Debugging
    • Using the MCP Inspector
    • Using Companion
    • Acknowledgments
    • License
    • Legal

    Table of Contents

    • Capabilities
    • Getting Started
    • Download and open the app
    • Activate services
    • Connect to Claude Desktop
    • Call iMCP tools from Claude Desktop
    • Connect to [Claude Code][claude-code]
    • Connect to [Cursor][cursor]
    • Connect to [Amp][amp]
    • Technical Details
    • App & CLI
    • iMessage Database Access
    • JSON-LD for Tool Results
    • Debugging
    • Using the MCP Inspector
    • Using Companion
    • Acknowledgments
    • License
    • Legal

    Documentation

    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.

    Getting Started

    Download and open the app

    First, download the iMCP app

    (requires macOS 15.3 or later).

    Or, if you have Homebrew installed,

    you can run the following command:

    console
    brew install --cask mattt/tap/iMCP

    When you open the app,

    you'll see a

    icon 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.

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

    -->

    -->

    Connect to Claude Desktop

    If you don't have Claude Desktop installed,

    you can download 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 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

    \> "Copy server command to clipboard".

    Then open claude_desktop_config.json in your editor

    and enter the following:

    json
    {
      "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.

    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.

    Connect to Claude Code

    To add iMCP globally after installing the app:

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

    Or import from Claude Desktop

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

    console
    claude mcp add-from-claude-desktop

    Connect to Cursor

    Open this deep link to automatically install the iMCP server:

    Connect to Amp

    To add iMCP globally (available in all projects):

    console
    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.

    Technical Details

    App & CLI

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

    • [iMCP.app](/App/) provides 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-server](/CLI/) provides an MCP server that

    uses standard input/output for communication

    (stdio transport).

    The app and CLI communicate with each other on the local network

    using Bonjour for automatic discovery.

    Both advertise a service with type "\_mcp.\_tcp" and domain "local".

    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.

    See [StdioProxy](https://github.com/mattt/iMCP/blob/8cf9d250286288b06bf5d3dda78f5905ad0d7729/CLI/main.swift#L47)

    for implementation details.

    For this project, we created what became

    the official Swift SDK

    for Model Context Protocol servers and clients.

    The app uses this package to handle proxied requests from MCP clients.

    iMessage Database Access

    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 in App 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 the chat.db file through the standard file picker.

    When you do, macOS adds that file to the app's sandbox.

    [NSOpenPanel](https://developer.apple.com/documentation/appkit/nsopenpanel) is 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 proprietary typedstream format.

    For this project, we created Madrid:

    a Swift package for reading your iMessage database.

    It includes a Swift implementation for decoding Apple's typedstream format,

    adapted from Christopher Sardegna's [imessage-exporter] project

    and [blog post about reverse-engineering typedstream](https://chrissardegna.com/blog/reverse-engineering-apples-typedstream-format/).

    JSON-LD for Tool Results

    The 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](https://developer.apple.com/documentation/contacts/cncontact) type.

    Here's how an object of that type is encoded as JSON-LD:

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

    Schema.org provides 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 created Ontology:

    a Swift package for working with structured data.

    It includes convenience initializers for types from Apple frameworks,

    such as those returned by iMCP tools.

    Debugging

    Using the MCP Inspector

    To debug interactions between iMCP and clients,

    you can use the inspector tool

    (requires Node.js):

    1. Click > "Copy server command to clipboard"

    2. Open a terminal and run the following commands:

    console
    # 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.

    Using Companion

    Companion is 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:

    1. Click > "Copy server command to clipboard"

    2. Download and open the Companion app

    3. Click the + button in the toolbar to add an MCP server

    4. Fill out the form:

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

    Acknowledgments

    • 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 the typedstream format

    used by the Messages app.

    License

    This project is available under the MIT license.

    See the LICENSE file for more info.

    Legal

    iMessage® is a registered trademark of Apple Inc.

    This project is not affiliated with, endorsed, or sponsored by Apple Inc.

    Similar MCP

    Based on tags & features

    • MC

      Mcpjungle

      Go·
      617
    • AN

      Anyquery

      Go·
      1.4k
    • MC

      Mcp Server Kubernetes

      TypeScript·
      1.1k
    • WE

      Web Eval Agent

      Python·
      1.2k

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • MC

      Mcpjungle

      Go·
      617
    • AN

      Anyquery

      Go·
      1.4k
    • MC

      Mcp Server Kubernetes

      TypeScript·
      1.1k
    • WE

      Web Eval Agent

      Python·
      1.2k

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k