@carterlasalle/mac_messages_mcp: Mac Messages MCP
Mac Messages MCP is a Python tool that enables interaction with the macOS Messages app via the Multiple Context Protocol (MCP). It allows users to read, filter, and send iMessages programmatically, providing API access for integration into custom workflows.
Author
carterlasalle
README
Mac Messages MCP
A Python bridge for interacting with the macOS Messages app using MCP (Multiple Context Protocol).
Features
- Read recent messages from the macOS Messages app
- Filter messages by contact
- Send new messages through iMessage
- Access messages via an API
Prerequisites
- macOS (tested on macOS 11+)
- Python 3.10+
- uv package manager
Installing uv
If you're on Mac, install uv using Homebrew:
bashbrew 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:
- Open System Preferences/Settings > Security & Privacy/Privacy > Full Disk Access
- Click the lock icon to make changes
- Add your terminal app (Terminal, iTerm2, etc.) or Claude Desktop/Cursor to the list
- Restart your terminal or application after granting permission
Integration
Claude Desktop Integration
- Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json
- Add the following configuration:
json{ "mcpServers": { "messages": { "command": "uvx", "args": [ "mac-messages-mcp" ] } } }
Cursor Integration
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
Option 1: Install from PyPI
bashuv 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
As a Module
pythonfrom mac_messages_mcp import get_recent_messages, send_message # Get recent messages messages = get_recent_messages(hours=48) print(messages) # Send a message result = send_message(recipient="+1234567890", message="Hello from Mac Messages MCP!") print(result)
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:
bashpython 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.
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.