Mac Messages MCP

Mac Messages MCP

Python bridge for macOS Messages via Model Context Protocol.

180
Stars
22
Forks
180
Watchers
6
Issues
Mac Messages MCP enables seamless interaction with the macOS Messages app through the Model Context Protocol (MCP). It allows sending and reading messages, intelligently switching between iMessage and SMS/RCS depending on the recipient. The tool is designed for integration with platforms like Cursor and Claude Desktop, supporting features such as contact filtering, fuzzy search, message history access, and iMessage detection. Full Disk Access permission is required, and it can also be connected to Docker containers via a proxy.

Key Features

Universal message sending via iMessage or SMS/RCS
Reads recent messages from macOS Messages app
Contact and phone number filtering for messages
Fuzzy search of message content
Automatic detection of iMessage availability per recipient
Smart fallback to SMS for non-iMessage users
Integration with Cursor
Integration with Claude Desktop
Docker support via mcp-proxy
Requires and manages Full Disk Access permissions

Use Cases

Automate sending messages from macOS in custom workflows
Integrate macOS Messages control into AI assistants like Claude Desktop
Enable message automation for research or productivity tools via Cursor
Bridge iMessage and SMS communications for cross-platform messaging
Search and filter conversation history programmatically
Remote manage macOS Messages from Dockerized environments
Provide chatbot or AI assistants with seamless message context access
Smartly route messages between iMessage and SMS depending on contact
Build custom notification or alerting systems through macOS Messages
Enable fuzzy content search across large messaging histories

README

Mac Messages MCP

A Python bridge for interacting with the macOS Messages app using MCP (Multiple Context Protocol).

PyPI Downloads

Trust Score

a-diagram-of-a-mac-computer-with-the-tex_FvvnmbaBTFeKy6F2GMlLqA_IfCBMgJARcia1WTH7FaqwA

Verified on MseeP

Quick Install

For Cursor Users

Install MCP Server

Click the button above to automatically add Mac Messages MCP to Cursor

For Claude Desktop Users

See the Integration section below for setup instructions.

Features

  • Universal Message Sending: Automatically sends via iMessage or SMS/RCS based on recipient availability
  • Smart Fallback: Seamless fallback to SMS when iMessage is unavailable (perfect for Android users)
  • Message Reading: Read recent messages from the macOS Messages app
  • Contact Filtering: Filter messages by specific contacts or phone numbers
  • Fuzzy Search: Search through message content with intelligent matching
  • iMessage Detection: Check if recipients have iMessage before sending
  • Cross-Platform: Works with both iPhone/Mac users (iMessage) and Android users (SMS/RCS)

Prerequisites

  • macOS (tested on macOS 11+)
  • Python 3.10+
  • uv package manager

Installing uv

If you're on Mac, install uv using Homebrew:

bash
brew install uv

Otherwise, follow the installation instructions on the uv website.

⚠️ Do not proceed before installing uv

Installation

Full Disk Access Permission

⚠️ This application requires Full Disk Access permission for your terminal or application to access the Messages database.

To grant Full Disk Access:

  1. Open System Preferences/Settings > Security & Privacy/Privacy > Full Disk Access
  2. Click the lock icon to make changes
  3. Add your terminal app (Terminal, iTerm2, etc.) or Claude Desktop/Cursor to the list
  4. Restart your terminal or application after granting permission

Integration

Claude Desktop Integration

  1. Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json
  2. Add the following configuration:
json
{
    "mcpServers": {
        "messages": {
            "command": "uvx",
            "args": [
                "mac-messages-mcp"
            ]
        }
    }
}

Cursor Integration

Option 1: One-Click Install (Recommended)

Install MCP Server

Option 2: Manual Setup

Go to Cursor Settings > MCP and paste this as a command:

uvx mac-messages-mcp

⚠️ Only run one instance of the MCP server (either on Cursor or Claude Desktop), not both

Docker Container Integration

If you need to connect to mac-messages-mcp from a Docker container, you'll need to use the mcp-proxy package to bridge the stdio-based server to HTTP.

Setup Instructions

  1. Install mcp-proxy on your macOS host:
bash
npm install -g mcp-proxy
  1. Start the proxy server:
bash
# Using the published version
npx mcp-proxy uvx mac-messages-mcp --port 8000 --host 0.0.0.0

# Or using local development (if you encounter issues)
npx mcp-proxy uv run python -m mac_messages_mcp.server --port 8000 --host 0.0.0.0
  1. Connect from Docker: Your Docker container can now connect to:
  • URL: http://host.docker.internal:8000/mcp (on macOS/Windows)
  • URL: http://<host-ip>:8000/mcp (on Linux)
  1. Docker Compose example:
yaml
version: '3.8'
services:
  your-app:
    image: your-image
    environment:
      MCP_MESSAGES_URL: "http://host.docker.internal:8000/mcp"
    extra_hosts:
      - "host.docker.internal:host-gateway"  # For Linux hosts
  1. Running multiple MCP servers:
bash
# Terminal 1 - Messages MCP on port 8001
npx mcp-proxy uvx mac-messages-mcp --port 8001 --host 0.0.0.0

# Terminal 2 - Another MCP server on port 8002
npx mcp-proxy uvx another-mcp-server --port 8002 --host 0.0.0.0

Note: Binding to 0.0.0.0 exposes the service to all network interfaces. In production, consider using more restrictive host bindings and adding authentication.

Option 1: Install from PyPI

bash
uv pip install mac-messages-mcp

Option 2: Install from source

bash
# Clone the repository
git clone https://github.com/carterlasalle/mac_messages_mcp.git
cd mac_messages_mcp

# Install dependencies
uv install -e .

Usage

Smart Message Delivery

Mac Messages MCP automatically handles message delivery across different platforms:

  • iMessage Users (iPhone, iPad, Mac): Messages sent via iMessage
  • Android Users: Messages automatically fall back to SMS/RCS
  • Mixed Groups: Optimal delivery method chosen per recipient
python
# Send to iPhone user - uses iMessage
send_message("+1234567890", "Hey! This goes via iMessage")

# Send to Android user - automatically uses SMS
send_message("+1987654321", "Hey! This goes via SMS") 

# Check delivery method before sending
check_imessage_availability("+1234567890")  # Returns availability status

As a Module

python
from mac_messages_mcp import get_recent_messages, send_message

# Get recent messages
messages = get_recent_messages(hours=48)
print(messages)

# Send a message (automatically chooses iMessage or SMS)
result = send_message(recipient="+1234567890", message="Hello from Mac Messages MCP!")
print(result)  # Shows whether sent via iMessage or SMS

As a Command-Line Tool

bash
# Run the MCP server directly
mac-messages-mcp

Development

Versioning

This project uses semantic versioning. See VERSIONING.md for details on how the versioning system works and how to release new versions.

To bump the version:

bash
python scripts/bump_version.py [patch|minor|major]

Security Notes

This application accesses the Messages database directly, which contains personal communications. Please use it responsibly and ensure you have appropriate permissions.

MseeP.ai Security Assessment Badge

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Star History

Star History Chart

Star History

Star History Chart

Repository Owner

Repository Details

Language Python
Default Branch main
Size 190 KB
Contributors 6
License MIT License
MCP Verified Nov 11, 2025

Programming Languages

Python
100%

Tags

Topics

applescript claude contacts cursor imessage mac macos mcp mcp-server

Join Our Newsletter

Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.

We respect your privacy. Unsubscribe at any time.

Related MCPs

Discover similar Model Context Protocol servers

  • iMessage Query MCP Server

    iMessage Query MCP Server

    Securely query and analyze your iMessage history with LLMs using the Model Context Protocol.

    iMessage Query MCP Server is an MCP-compliant server that provides safe access to the macOS iMessage database for Large Language Models (LLMs). Built with the FastMCP framework and imessagedb library, it enables querying, validation, and analysis of iMessage conversations, complete with proper phone number handling and permissions management. The tool integrates seamlessly with MCP clients such as Claude Desktop and CLine for VSCode, allowing for controlled retrieval of chat histories via standardized protocols. Enhanced security features and automated dependency management ensure a smooth and safe user experience.

    • 71
    • MCP
    • hannesrudolph/imessage-query-fastmcp-mcp-server
  • iMessage MCP

    iMessage MCP

    MCP server enabling LLM integration with macOS iMessage data.

    iMessage MCP offers a Model Context Protocol (MCP) server that facilitates seamless integration between large language models (LLMs) and macOS iMessage data. It provides robust tools for searching and managing iMessage messages, conversations, and contacts in a read-only manner. Features include message and contact search, chat listing, and context retrieval, making it suitable for conversational agents and context-aware applications. Built using Deno and designed for easy integration with applications such as Claude Desktop, it handles context management efficiently for AI models.

    • 16
    • MCP
    • wyattjoh/imessage-mcp
  • MCP Server for Milvus

    MCP Server for Milvus

    Bridge Milvus vector database with AI apps using Model Context Protocol (MCP).

    MCP Server for Milvus enables seamless integration between the Milvus vector database and large language model (LLM) applications via the Model Context Protocol. It exposes Milvus functionality to external LLM-powered tools through both stdio and Server-Sent Events communication modes. The solution is compatible with MCP-enabled clients such as Claude Desktop and Cursor, supporting easy access to relevant vector data for enhanced AI workflows. Configuration is flexible through environment variables or command-line arguments.

    • 196
    • MCP
    • zilliztech/mcp-server-milvus
  • WhatsApp MCP Server

    WhatsApp MCP Server

    Bridge WhatsApp messaging to Model Context Protocol-compliant LLM agents.

    WhatsApp MCP Server enables users to access, search, and interact with their personal WhatsApp messages through the Model Context Protocol. It connects to WhatsApp via the WhatsApp web multidevice API, stores messages locally in a SQLite database, and exposes them as tools to LLM-powered agents like Claude. Users can also send messages, media, and search contacts, all while retaining control over what is shared with the AI agent.

    • 5,056
    • MCP
    • lharries/whatsapp-mcp
  • Homebrew MCP Python Server

    Homebrew MCP Python Server

    Expose Homebrew management as MCP tools for integration with AI clients.

    Homebrew MCP Python Server provides an MCP-compliant interface to manage Homebrew packages on macOS via a Python-based server. It enables standardized control of Homebrew commands through the Model Context Protocol, supporting integration with Claude Desktop, Cursor, and other MCP-compatible clients. The server operates via stdio using JSON-RPC 2.0, logs all interactions, and offers a declarative Python implementation. It is designed for seamless tool-chaining, advanced context management, and easy integration into LLM-driven environments.

    • 18
    • MCP
    • jeannier/homebrew-mcp
  • Everything Search MCP Server

    Everything Search MCP Server

    Fast, cross-platform file search via Model Context Protocol integration.

    Everything Search MCP Server provides fast file and folder search capabilities across Windows, macOS, and Linux platforms as an MCP server. It leverages native search utilities such as the Everything SDK on Windows, mdfind on macOS, and locate/plocate on Linux. The tool exposes a standardized search interface with customizable parameters including query, sorting, and matching options. It is suitable for integration with AI clients or automation tools that follow the Model Context Protocol.

    • 268
    • MCP
    • mamertofabian/mcp-everything-search
  • Didn't find tool you were looking for?

    Be as detailed as possible for better results