Skip to main content

A bridge for interacting with macOS Messages app through MCP

Project description

Mac Messages MCP

A Python bridge for interacting with the macOS Messages app using MCP (Multiple Context Protocol).

PyPI Downloads

a-diagram-of-a-mac-computer-with-the-tex_FvvnmbaBTFeKy6F2GMlLqA_IfCBMgJARcia1WTH7FaqwA

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:

brew 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:

  1. Open System Preferences/Settings > Security & Privacy/Privacy > Full Disk Access
  2. Click the lock icon to make changes
  3. Add your terminal app (Terminal, iTerm2, etc.) or Claude Desktop/Cursor to the list
  4. Restart your terminal or application after granting permission

Integration

Claude Desktop Integration

  1. Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json
  2. Add the following configuration:
{
    "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

uv pip install mac-messages-mcp

Option 2: Install from source

# 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

from 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

# 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:

python 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mseep_mac_messages_mcp-0.6.5.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mseep_mac_messages_mcp-0.6.5-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file mseep_mac_messages_mcp-0.6.5.tar.gz.

File metadata

  • Download URL: mseep_mac_messages_mcp-0.6.5.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for mseep_mac_messages_mcp-0.6.5.tar.gz
Algorithm Hash digest
SHA256 28dba5644c5776c240851f97db8006c3cc943e5b8be84d8138184b884a6511ff
MD5 968aa90de39e87363912d21a184f8018
BLAKE2b-256 8fd05e2865663d74f7efe86a7ed0b3f6b21f41913922585813937eefeb928e82

See more details on using hashes here.

File details

Details for the file mseep_mac_messages_mcp-0.6.5-py3-none-any.whl.

File metadata

File hashes

Hashes for mseep_mac_messages_mcp-0.6.5-py3-none-any.whl
Algorithm Hash digest
SHA256 aa5adaf7bcd681b9b023f59d543afe7823002c635960dc3932a110fa237e320f
MD5 c1cb962e68ec2c1397265ae076616730
BLAKE2b-256 2cd097c65c8d7205ded77edc65a6dd978b09eeee668688d6c97d0324809a0dca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page