drio
Open app

Mac Messages MCP

Source

An MCP server that securely interfaces with your iMessage database via the Model Context Protocol (MCP), allowing LLMs to query and analyze iMessage conversations. It includes robust phone number validation, attachment processing, contact management, group chat handling, and full support for sending and receiving messages.

Catalog onlyCatalog onlySTDIO

Overview

Mac Messages MCP is a Python bridge that allows secure interaction with the macOS Messages app via the Model Context Protocol (MCP). It enables querying and analyzing iMessage conversations, making it a powerful tool for developers and researchers.

To use Mac Messages MCP, install the required dependencies, grant Full Disk Access to your terminal, and run the MCP server. You can interact with the Messages app either as a module in your Python code or as a command-line tool.

  • Read recent messages from the macOS Messages app - Filter messages by contact - Send new messages through iMessage - Access messages via an API - Robust phone number validation and attachment processing
  1. Analyzing iMessage conversations for research purposes.
  2. Automating message sending for notifications or reminders.
  3. Building applications that require integration with iMessage.

Add to your AI client

Use these steps to connect Mac Messages MCP in Cursor, Claude, VS Code, and other MCP-compatible apps. The same JSON appears in the Use with menu above for one-click copy.

Cursor

Add this to your .cursor/mcp.json file in your project root, then restart Cursor.

.cursor/mcp.json

{
  "mcpServers": {
    "mac-messages-mcp-carterlasalle": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mac-messages-mcp-carterlasalle"
      ]
    }
  }
}

Claude Desktop

Add this server entry to the mcpServers object in your Claude Desktop config, then restart the app.

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

{
  "mcpServers": {
    "mac-messages-mcp-carterlasalle": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mac-messages-mcp-carterlasalle"
      ]
    }
  }
}

Claude Code

Add this to your project's .mcp.json file. Claude Code will detect it automatically.

.mcp.json (project root)

{
  "mcpServers": {
    "mac-messages-mcp-carterlasalle": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mac-messages-mcp-carterlasalle"
      ]
    }
  }
}

VS Code (Copilot)

Add this to your .vscode/mcp.json file. Requires the GitHub Copilot extension with MCP support enabled.

.vscode/mcp.json

{
  "servers": {
    "mac-messages-mcp-carterlasalle": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mac-messages-mcp-carterlasalle"
      ]
    }
  }
}

Windsurf

Add this to your Windsurf MCP config file, then restart Windsurf.

~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "mac-messages-mcp-carterlasalle": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mac-messages-mcp-carterlasalle"
      ]
    }
  }
}

Cline

Open Cline settings, navigate to MCP Servers, and add this server configuration.

Cline MCP Settings (via UI)

{
  "mcpServers": {
    "mac-messages-mcp-carterlasalle": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mac-messages-mcp-carterlasalle"
      ]
    }
  }
}

FAQ

**What are the prerequisites for using Mac Messages MCP?**

You need macOS (tested on macOS 11+), Python 3.10+, and the uv package manager.

**Is Full Disk Access required?**

Yes, Full Disk Access is necessary for the application to access the Messages database.

**Can I run multiple instances of the MCP server?**

No, only one instance should be run at a time, either on Cursor or Claude Desktop.

Mac Messages MCP — MCP Registry