Skip to main content
Glama
whogben

mac-messages

by whogben

Mac Messages Host

Ваш полный архив Apple Messages (iMessage/SMS) на Mac в режиме «только чтение» для ИИ‑агентов — один пакетный инструмент через REST/OpenAPI и потоковый HTTP MCP.

  • Один инструмент, пакетные запросы: один инструмент messages(requests: str) принимает JSON-массив запросов и возвращает согласованный JSON-массив ответов — один вызов выполняет много независимых операций. Одинаково работает через REST (POST /api/messages) и MCP (/mcp/).

  • Только чтение по построению: база данных открывается с SQLite mode=ro; пути записи нет. Ничего нельзя отправить, изменить или удалить.

  • Современное декодирование текста macOS: текст сообщений, хранящийся в typedstream-блоках attributedBody (Ventura+), и история редактирования в plist-файлах message_summary_info декодируются прозрачно.

  • Автогенерируемое описание инструмента: описание для ИИ генерируется из моделей Pydantic (~615 токенов gpt-4o, подсчитанных через tiktoken и закреплённых тестом); снапшот tool_prompt.md синхронизируется drift-тестом.

Установка

Требуется Python 3.11+ на macOS.

pip install .            # or: pip install -e . for development
mmhost info              # permission check + database status
mmhost start             # serve API + MCP on http://127.0.0.1:8761

Разрешения macOS (важно)

~/Library/Messages/chat.db защищён macOS TCC. Процесс, который запускает mmhost, должен иметь полный доступ к диску:

Системные настройки → Конфиденциальность и безопасность → Полный доступ к диску → включите ваше приложение терминала (или то, что запускает сервер), затем перезапустите его.

mmhost info сразу показывает, доступна ли база данных для чтения.

Related MCP server: imessage-mcp

Эндпоинты

Эндпоинт

Назначение

POST /api/messages

Пакетный инструмент (REST)

/api/openapi.json

Схема OpenAPI

/api/docs

Интерактивная документация

/api/health

Проверка живости

/mcp/

Потоковый HTTP MCP-эндпоинт (один инструмент messages)

Авторизация

Authorization: Bearer <token>, когда настроен admin_token (сохранённый конфиг, MMHOST_ADMIN_TOKEN или --admin-token). Без настроенного токена доступ открыт — это безопасно, поскольку по умолчанию сервер слушает 127.0.0.1.

Типы запросов

  • get_info — состояние базы данных, количество записей, диапазон дат истории

  • list_chats — разговоры по недавней активности (сортировка, фильтрация)

  • get_chat — транскрипт чата (постраничная загрузка более старых через before)

  • get_recent — последние сообщения во всех чатах (опрос через since)

  • search_messages — поиск подстроки без учёта регистра по тексту сообщений

См. tool_prompt.md — точную документацию для ИИ (сгенерированную из моделей).

Пример

curl -s http://127.0.0.1:8761/api/messages \
  -H 'Content-Type: application/json' \
  -d '{"requests": "[{\"kind\":\"list_chats\",\"limit\":3}]"}'

Конфигурация MCP-клиента

{
  "mcpServers": {
    "mac-messages": {
      "type": "streamable-http",
      "url": "http://127.0.0.1:8761/mcp/"
    }
  }
}

Конфигурация

Хранится в системном каталоге конфигурации (~/Library/Application Support/mac_messages_host/config.json на macOS); расположение можно переопределить через MMHOST_CONFIG. Только настройки уровня сервера — см. example.env.

Разработка

pip install -e '.[dev]'
pytest
# after changing request models:
python -m tests.regenerate_tool_prompt

Архитектура следует паттерну oWoHo AI Tool Server (чистая core-библиотека + производные интерфейсы FastAPI/FastMCP/CLI), как reddit_tool_server и obsidian_ai_miniserver.

Лицензия

MIT — см. LICENSE.md.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to read, search, and send iMessages with features like contact name resolution, session grouping, and attachment listing. It provides intent-aligned tools to efficiently navigate conversation history and manage messages through natural language queries.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables reading and sending iMessages on macOS through MCP, with tools for managing chats, messages, and attachments via AI agents.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients to read and search macOS Messages history through a read-only MCP interface.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents on macOS to securely read and search the local Messages database, catch up on missed messages via a persistent inbox, and send texts or files to allowlisted chats, with optional voice note transcription and text-to-speech.
    10
    353 npm
    MIT