Python MCP server that allows LLMs and local apps (Cursor, Claude Desktop, etc.) to read, search, and send macOS Messages (iMessage/SMS/RCS) with smart delivery fallback.
https://github.com/carterlasalle/mac_messages_mcpStop context-switching between your AI chat and your Messages app. This MCP server bridges the gap, letting Claude, Cursor, and other MCP-compatible tools read your iMessage history and send messages on your behalf.
You're deep in a coding session when you need to check if your client replied about that API change. Or you want to analyze your message patterns to see who you actually talk to most. Maybe you need to send a quick update to your team while staying in your editor.
Right now, that means switching apps, losing context, and breaking flow. Mac Messages MCP eliminates those interruptions by making your message history queryable and your sending capabilities scriptable through your AI tools.
Here's what makes this particularly clever: it automatically handles the iPhone/Android messaging divide. Send to an iPhone user? Goes via iMessage. Android user? Automatically falls back to SMS/RCS. Mixed group chat? Each recipient gets the optimal delivery method.
# Your AI can now do this:
send_message("+1234567890", "Deploy is live, API docs updated")
# Automatically uses iMessage or SMS based on recipient
No more wondering which messaging method will work. The server checks iMessage availability and routes accordingly.
Message Analysis: "Show me all messages from John about the database migration project from last week." Your AI can now search through your actual message history with context-aware queries.
Automated Updates: Set up workflows where your AI sends status updates to specific contacts when builds complete or deployments finish. All through your existing Messages app.
Contact Intelligence: "Who have I been messaging most about work stuff lately?" Get insights from your actual communication patterns without manually scrolling through conversations.
Context-Aware Responses: Your AI can read recent message threads before crafting replies, understanding the full conversation context.
Two-line setup for Claude Desktop:
{
"mcpServers": {
"messages": {
"command": "uvx",
"args": ["mac-messages-mcp"]
}
}
}
For Cursor users, there's literally a one-click install button. The server handles all the macOS permissions and database access complexity behind a clean MCP interface.
This isn't a consumer messaging app trying to be developer-friendly. It's built specifically for developer workflows:
The server implements proper MCP protocol compliance, meaning it works seamlessly with any MCP-compatible client. It includes robust error handling for the various edge cases of macOS messaging (failed sends, contact resolution, permission issues).
The smart delivery system actually checks iMessage availability before sending, then provides fallback routing. This isn't just a wrapper around AppleScript—it's a thoughtfully designed bridge between your AI tools and your messaging infrastructure.
Install with uv (required):
uvx mac-messages-mcp
Grant Full Disk Access to your terminal/Claude Desktop/Cursor in System Preferences, add the MCP server config, and you're running.
Your AI can immediately start reading your message history and sending messages. No API keys, no external services—just direct access to your local Messages database through a secure, localhost-only server.
This transforms your messaging from a separate app into part of your development environment. Once you experience having your AI assistant handle message queries and sends while you stay focused on code, you won't want to go back to manual context switching.