Skip to main content
Glama

imessage-mcp

Ein lokaler MCP-Server, der die iMessage-Daten Ihres Macs für Claude Desktop / Claude Code verfügbar macht. Zwei Schnittstellen:

  1. SENDEN via AppleScript → Messages.app

  2. LESEN via direktem, schreibgeschütztem SQLite-Zugriff auf ~/Library/Messages/chat.db

Alles läuft lokal. Keine API-Schlüssel, keine Netzwerkaufrufe.

Installation

# 1. Clone / copy into ~/mcp-servers/imessage-mcp
cd ~/mcp-servers/imessage-mcp

# 2. Create a Python 3.11+ venv and install deps
python3.12 -m venv .venv
.venv/bin/pip install -e .

Related MCP server: imessage-mcp

Berechtigungen (erforderlich)

Vollständiger Festplattenzugriff — damit wir chat.db lesen können

Systemeinstellungen → Datenschutz & Sicherheit → Vollständiger Festplattenzugriff → aktivieren für:

  • Ihre Terminal-App (z. B. Terminal, iTerm2, Ghostty) UND

  • Claude.app (falls Sie Claude Desktop verwenden)

Automation — damit wir Messages.app steuern können

Systemeinstellungen → Datenschutz & Sicherheit → Automation → erweitern Sie Ihr Terminal / Claude.app und schalten Sie Messages auf EIN.

Messages.app muss ausgeführt werden und bei iMessage angemeldet sein.

Wenn ein Berechtigungsschritt fehlt, meldet der Server einen Fehler mit dem genauen Pfad zu den Einstellungen, die geöffnet werden müssen.

Claude Desktop Konfiguration

Fügen Sie dies in ~/Library/Application Support/Claude/claude_desktop_config.json ein:

{
  "mcpServers": {
    "imessage": {
      "command": "/Users/YOUR_USERNAME/mcp-servers/imessage-mcp/.venv/bin/python",
      "args": ["-m", "imessage_mcp.server"]
    }
  }
}

(Der absolute Pfad zum Python des venv ist am sichersten — er vermeidet PATH-Mehrdeutigkeiten. Ersetzen Sie YOUR_USERNAME.)

Tools

Tool

Zweck

send_imessage(recipient, body, service?)

Senden via Messages.app. recipient ist eine Telefonnummer, Apple-ID-E-Mail oder ein bestehender Kontaktname.

list_recent_chats(limit=20)

Chats sortiert nach Aktualität mit Vorschau der letzten Nachricht und Anzahl ungelesener Nachrichten.

get_chat_messages(chat_id?, handle?, limit=50, since?)

Nachrichten für einen Chat; geben Sie chat_id oder handle an.

search_imessages(query, since?, until?, from_contact?, limit=25)

Groß-/Kleinschreibung ignorierende LIKE-Suche in Nachrichtentexten.

get_my_info()

Eigene Handles + DB-Metadaten.

Daten werden im ISO8601-Format ein- und ausgegeben. Intern speichert Apple message.date als Nanosekunden seit dem 01.01.2001 UTC; der Server konvertiert dies in beide Richtungen.

Sicherheitsinvarianten

  • chat.db wird mit sqlite3.connect("file:...chat.db?mode=ro", uri=True) geöffnet. Jeder Schreibversuch löst einen sqlite3.OperationalError: attempt to write a readonly database aus.

  • send_imessage übergibt Empfänger / Text / Dienst als separate osascript argv-Einträge — keine Shell-Interpolation, keine Injektion.

  • Anhänge geben nur Metadaten zurück (Dateiname, mime_type, total_bytes). Blobs werden niemals gelesen.

Einschränkungen

  • Geplante / verzögerte Nachrichten werden nicht unterstützt.

  • Bei Rich- / Antwort-Thread-Nachrichten kann der Text in attributedBody (NSKeyedArchive) gespeichert sein. Wir versuchen bestmöglich, den eingebetteten NSString zu extrahieren; Nachrichten mit exotischeren Payloads (Bilder, Taps, Apple Pay) zeigen einen leeren body, aber korrekte Metadaten.

  • Zustellungsbestätigung: send_imessage meldet Erfolg basierend auf dem Exit-Code von osascript. Um zu überprüfen, ob die Nachricht tatsächlich zugestellt wurde, rufen Sie einige Sekunden später search_imessages oder get_chat_messages auf.

  • Dies ist nur für macOS verfügbar und funktioniert nicht mit sandboxed App Store-Apps.

Lokale Entwicklung

.venv/bin/pytest -q
Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    A read-only MCP server for macOS that enables users to search through iMessage history and analyze conversation patterns using AI-powered tools. It provides detailed statistics on messaging habits, streaks, and contact analytics while keeping all data private and local.
    104
    1
  • A
    license
    A
    quality
    C
    maintenance
    Enables full-text search of macOS iMessages including link preview metadata. Works as an MCP server for Claude Desktop to search your messages locally.
    1
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    A read-only MCP server that exposes your iMessage data to Claude Code and Claude Desktop, with automatic contact name resolution.
    3

View all related MCP servers

Related MCP Connectors

  • MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

  • Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/camfortin/imessage-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server