by carterlasalle
Securely interfaces with the macOS Messages database via MCP, enabling LLMs to query, analyze, filter, and send iMessage or SMS communications with built‑in phone number validation, attachment handling, and group chat support.
Securely bridges the macOS Messages app to LLMs through MCP, allowing programs to read recent conversations, search by contact or content, and send messages that automatically choose iMessage or SMS based on recipient availability.
uv
package manager (install via brew install uv
).uv pip install mac-messages-mcp # from PyPI
# or from source
git clone https://github.com/carterlasalle/mac_messages_mcp.git
cd mac_messages_mcp
uv install -e .
mac-messages-mcp # starts the server
# or equivalently
uvx mac-messages-mcp
uvx mac-messages-mcp
to the MCP server list, as shown in the README.Q: Which macOS version is required? A: macOS 11 (Big Sur) or newer.
Q: Do I need a paid Apple ID or iMessage account? A: No, the tool works with the local Messages database of any logged‑in Apple ID.
Q: Can the server send SMS to Android contacts? A: Yes, it falls back to SMS/RCS when the recipient does not have iMessage.
Q: Why is Full Disk Access necessary? A: Access to the Messages SQLite database is restricted; Full Disk Access grants read/write rights.
Q: How do I install uv
if I’m not on macOS?
A: Follow the instructions on the uv GitHub page; on Linux you can use curl -LsSf https://astral.sh/uv/install.sh | sh
.
Q: Can I run the server in both Claude Desktop and Cursor simultaneously? A: No, only one instance should run at a time to avoid database lock conflicts.
Q: Is my conversation data safe? A: The server runs locally and never sends data to external services unless you explicitly forward it.
A Python bridge for interacting with the macOS Messages app using MCP (Multiple Context Protocol).
Click the button above to automatically add Mac Messages MCP to Cursor
See the Integration section below for setup instructions.
If you're on Mac, install uv using Homebrew:
brew install uv
Otherwise, follow the installation instructions on the uv website.
⚠️ Do not proceed before installing uv
⚠️ This application requires Full Disk Access permission for your terminal or application to access the Messages database.
To grant Full Disk Access:
{
"mcpServers": {
"messages": {
"command": "uvx",
"args": [
"mac-messages-mcp"
]
}
}
}
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
uv pip install mac-messages-mcp
# 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 automatically handles message delivery across different platforms:
# 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
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
# Run the MCP server directly
mac-messages-mcp
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:
python scripts/bump_version.py [patch|minor|major]
This application accesses the Messages database directly, which contains personal communications. Please use it responsibly and ensure you have appropriate permissions.
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "mac-messages": { "command": "uvx", "args": [ "mac-messages-mcp" ] } } }
Explore related MCPs that share similar capabilities and solve comparable challenges
by lharries
Enables searching, reading, and sending personal WhatsApp messages and media through a Model Context Protocol (MCP) server, storing all data locally in SQLite and exposing controlled tools for LLMs like Claude.
by iFurySt
Provides authenticated access to XiaoHongShu (RedNote) notes, supporting keyword search, note retrieval by URL, and cookie persistence via a Model Context Protocol server.
by korotovsky
Provides a powerful Model Context Protocol interface for Slack workspaces, enabling message retrieval, search, and optional posting via Stdio or SSE transports without requiring bot permissions.
by ZubeidHendricks
Provides a standardized interface for interacting with YouTube content, enabling video retrieval, transcript access, channel and playlist management, and advanced analytics through the Model Context Protocol.
by InditexTech
Provides Microsoft Teams integration via the Model Context Protocol, enabling reading, creating, replying to messages and mentioning members.
by chigwell
Provides a full‑featured Telegram integration for MCP‑compatible clients, enabling programmatic access to chats, messages, contacts, profile management, and group administration.
by EnesCinr
Interact with Twitter to post tweets and search tweets programmatically via an MCP server.
by chaindead
Manages Telegram dialogs, messages, drafts, and read statuses via the Model Context Protocol, enabling AI assistants to query and interact with Telegram accounts.
by v-3
Enables large language models to interact with Discord channels, allowing them to send and read messages through Discord's API while keeping user control and security.