by carterlasalle
Provides a Python bridge to interact with the macOS Messages app via MCP, enabling secure querying, sending, and processing of iMessage conversations with phone‑number validation, attachment handling, and group chat support.
Mac Messages MCP enables large language models and other tools to read from and write to the native macOS Messages database. It abstracts the underlying AppleScript and database access behind the Model Context Protocol, allowing developers to query recent chats, filter by contacts, and send messages programmatically.
uv
):
uv pip install mac-messages-mcp
mac-messages-mcp # or `uvx mac-messages-mcp`
uvx mac-messages-mcp
to the MCP configuration as shown in the README.from mac_messages_mcp import get_recent_messages, send_message, check_imessage_availability
recent = get_recent_messages(hours=24)
send_message("+1234567890", "Hello via Mac Messages MCP!")
mac-messages-mcp
) and Python module usage.Q: Do I need a Mac to run this server? A: Yes, it relies on macOS‑specific APIs and the Messages database.
Q: Which Python version is required? A: Python 3.10 or newer.
Q: How do I grant the necessary permissions? A: Add your terminal or IDE to System Settings → Privacy & Security → Full Disk Access and restart the app.
Q: Can I run the server on multiple machines simultaneously? A: Only one instance should run per Mac to avoid database contention.
Q: Is the package available on PyPI?
A: Yes, install with uv pip install mac-messages-mcp
or pip install mac-messages-mcp
.
Q: How do I check if a number supports iMessage before sending?
A: Use check_imessage_availability(phone_number)
which returns the delivery method.
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-mcp": { "command": "uvx", "args": [ "mac-messages-mcp" ] } } }
Discover more MCP servers with similar functionality and use cases
by elie222
An AI‑powered email assistant that automates inbox management, enabling users to reach inbox zero fast by handling replies, labeling, archiving, unsubscribing, and providing analytics through a plain‑text prompt configuration.
by makenotion
Provides a remote Model Context Protocol server for the Notion API, enabling OAuth‑based installation and optimized toolsets for AI agents with minimal token usage.
by sooperset
MCP Atlassian is a Model Context Protocol (MCP) server that integrates AI assistants with Atlassian products like Confluence and Jira. It enables AI to automate tasks, search for information, and manage content within Atlassian ecosystems.
by ggozad
Interact with Ollama models through an intuitive terminal UI, supporting persistent chats, system prompts, model parameters, and MCP tools integration.
by nbonamy
A desktop AI assistant that bridges dozens of LLM, image, video, speech, and search providers, offering chat, generative media, RAG, shortcuts, and extensible plugins directly from the OS.
by GongRzhe
Provides tools for creating, editing, and enhancing PowerPoint presentations through a comprehensive set of MCP operations powered by python-pptx.
by GongRzhe
Creates, reads, and manipulates Microsoft Word documents through a standardized interface for AI assistants, enabling rich editing, formatting, and analysis capabilities.
by GongRzhe
Gmail-MCP-Server is a Model Context Protocol (MCP) server that integrates Gmail functionalities into AI assistants like Claude Desktop. It enables natural language interaction for email management, supporting features like sending, reading, and organizing emails.
by nspady
google-calendar-mcp is a Model Context Protocol (MCP) server that integrates Google Calendar with AI assistants. It enables AI assistants to manage Google Calendar events, including creating, updating, deleting, and searching for events.