mac_messages_mcp  by carterlasalle

LLM interface for macOS iMessage conversations

Created 1 year ago
267 stars

Top 95.9% on SourcePulse

GitHubView on GitHub
Project Summary

This project provides a Python bridge for the macOS Messages application using the Model Context Protocol (MCP), enabling Large Language Models (LLMs) to securely query, analyze, and interact with iMessage conversations. It offers developers a robust solution for integrating messaging data with AI, featuring universal message sending with smart SMS/RCS fallback, message reading, contact filtering, and fuzzy search capabilities, ultimately simplifying LLM-driven messaging applications.

How It Works

The project functions as an MCP server that directly interfaces with the macOS Messages database. It utilizes Python and the uv package manager for installation and execution. Its core advantage lies in abstracting the complexities of message delivery, automatically determining the optimal method (iMessage or SMS/RCS) based on recipient availability and providing a unified API for LLMs to send and receive messages, as well as access historical conversation data.

Quick Start & Requirements

  • Primary install: uv pip install mac-messages-mcp (from PyPI) or install from source after cloning.
  • Prerequisites: macOS (tested on 11+), Python 3.10+, uv package manager. Requires granting Full Disk Access permission to the terminal or application used to run the server.
  • Integration: Supports direct integration with Claude Desktop and Cursor (via MCP settings), and can be exposed to Docker containers using the mcp-proxy package.
  • Links: GitHub Repository

Highlighted Details

  • Universal Message Sending: Automatically sends messages via iMessage for Apple devices or falls back to SMS/RCS for Android users.
  • Smart Fallback: Seamlessly transitions to SMS/RCS when iMessage is unavailable for a recipient.
  • Message Reading & Filtering: Allows reading recent messages and filtering conversations by specific contacts or phone numbers.
  • Fuzzy Search: Enables intelligent, fuzzy matching for searching through message content.
  • iMessage Availability Check: Includes functionality to check if a recipient is available via iMessage before sending.

Maintenance & Community

The README does not provide specific details regarding notable contributors, sponsorships, or community channels (e.g., Discord, Slack). Contributions are welcomed via pull requests.

Licensing & Compatibility

The project is released under the MIT License, permitting commercial use and integration into closed-source applications.

Limitations & Caveats

This application is strictly limited to macOS environments. It requires granting sensitive Full Disk Access permissions to the terminal or application, which necessitates careful consideration of security implications. Users should ensure only one instance of the MCP server is running concurrently (e.g., not both on Cursor and Claude Desktop simultaneously).

Health Check
Last Commit

2 weeks ago

Responsiveness

Inactive

Pull Requests (30d)
13
Issues (30d)
2
Star History
21 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.