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.
mac-messages-mcp
- A Robust MCP Server for macOS MessagesHarness the power of the Model Context Protocol (MCP) to bridge the gap between your Large Language Model (LLM) applications and the rich communication history of macOS Messages. mac-messages-mcp
provides a streamlined, secure, and efficient way to access and interact with iMessage directly from your AI workflows.
uv
Package Manager: Leverages the speed and efficiency of the uv
package manager for dependency management.uv
: The Modern Package ManagerFor macOS users, the recommended installation method is via Homebrew:
brew install uv
Alternatively, consult the official uv website for comprehensive installation instructions tailored to your specific environment.
⚠️ Crucially, ensure uv
is correctly installed before proceeding.
mac-messages-mcp
to Life⚠️ Full Disk Access permission is mandatory for your terminal or application to interact with the Messages database. This is a critical security consideration.
To grant Full Disk Access:
{ "mcpServers": { "messages": { "command": "uvx", "args": [ "mac-messages-mcp" ] } } }
Within Cursor's settings, locate the MCP configuration section and specify the following command:
uvx mac-messages-mcp
⚠️ Important: Avoid running multiple instances of the MCP server simultaneously across different platforms (e.g., both Cursor and Claude Desktop).
Leverage the Python Package Index for a streamlined installation:
uv pip install mac-messages-mcp
For developers and contributors, installation from source offers greater flexibility:
# Clone the repository git clone https://github.com/carterlasalle/mac_messages_mcp.git cd mac_messages_mcp # Install dependencies uv install -e .
mac-messages-mcp
from mac_messages_mcp import get_recent_messages, send_message # Retrieve recent messages from the past 48 hours messages = get_recent_messages(hours=48) print(messages) # Send a message to a specific recipient result = send_message(recipient="+1234567890", message="Hello from Mac Messages MCP!") print(result)
# Start the MCP server directly mac-messages-mcp
This project adheres to semantic versioning principles. Refer to VERSIONING.md for a detailed explanation of the versioning scheme and the release process.
To increment the version number:
python scripts/bump_version.py [patch|minor|major]
This application directly interacts with the Messages database, which contains sensitive personal communication data. Exercise responsible usage and ensure adherence to all applicable privacy regulations and ethical guidelines.
We welcome contributions from the community! Please submit pull requests to contribute enhancements, bug fixes, or new features.
📇 VOYP Voice Over Your Phone MCP Server for making calls.
📇 An MCP server with openAPI specs for using the WhatsApp unnoficial API (https://waha.devlike.pro/ also open source: https://github.com/devlikeapro/waha
🐍 🏠 JMeter MCP Server for performance testing
📇 ☁️ Slack workspace integration for channel management and messaging