by carterlasalle
Use Mac Messages, the top iMessage app for PC, to send and read iMessages from your desktop with contact and group chat
β 247
GitHub stars
Connects Claude Desktop to your macOS Messages app, letting you read and send iMessages/SMS directly through AI conversations. Works by accessing the Messages database with contact lookup and group chat support.
Mac Messages is a community-built MCP server published by carterlasalle that provides AI assistants with tools and capabilities via the Model Context Protocol. Use Mac Messages, the top iMessage app for PC, to send and read iMessages from your desktop with contact and group chat It is categorized under communication.
You can install Mac Messages in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
Mac Messages is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research β Summarize β Create document β Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
I recommend Mac Messages for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
We evaluated Mac Messages against two servers with overlapping tools; this profile had the clearer scope statement.
According to our notes, Mac Messages benefits from clear Model Context Protocol framing β fewer ambiguous βAI pluginβ claims.
Mac Messages is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
Mac Messages reduced integration guesswork β categories and install configs on the listing matched the upstream repo.
Useful MCP listing: Mac Messages is the kind of server we cite when onboarding engineers to host + tool permissions.
According to our notes, Mac Messages benefits from clear Model Context Protocol framing β fewer ambiguous βAI pluginβ claims.
Mac Messages is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
Strong directory entry: Mac Messages surfaces stars and publisher context so we could sanity-check maintenance before adopting.
Mac Messages reduced integration guesswork β categories and install configs on the listing matched the upstream repo.
showing 1-10 of 75
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
If you need to connect to mac-messages-mcp from a Docker container, you'll need to use the mcp-proxy package to bridge the stdio-based server to HTTP.
npm install -g mcp-proxy
# Using the published version
npx mcp-proxy uvx mac-messages-mcp --port 8000 --host 0.0.0.0
# Or using local development (if you encounter issues)
npx mcp-proxy uv run python -m mac_messages_mcp.server --port 8000 --host 0.0.0.0
http://host.docker.internal:8000/mcp (on macOS/Windows)http://<host-ip>:8000/mcp (on Linux)version: '3.8'
services:
your-app:
image: your-image
environment:
MCP_MESSAGES_URL: "http://host.docker.internal:8000/mcp"
extra_hosts:
- "host.docker.internal:host-gateway" # For Linux hosts
# Terminal 1 - Messages MCP on port 8001
npx mcp-proxy uvx mac-messages-mcp --port 8001 --host 0.0.0.0
# Terminal 2 - Another MCP server on port 8002
npx mcp-proxy uvx another-mcp-server --port 8002 --host 0.0.0.0
Note: Binding to 0.0.0.0 exposes the service to all network interfaces. In production, consider using more restrictive host bindings and adding authentication.
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.
Prerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
β Do
β Don't
π‘ Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
β Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
β Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.