imessage-max — MCP-сервер для Claude Code: чтение и отправка iMessage
MCP-сервер на Swift, который даёт агенту читать, искать и отправлять сообщения iMessage на macOS. Номера превращает в имена из Контактов.
claude mcp add imessage-max -- uvx imessage-maxЧто делает imessage-max
imessage-max — один бинарник на Swift без зависимостей во время работы. Он открывает chat.db только на чтение, а для отправки просит разрешение Automation у Messages.app. Тринадцать инструментов сделаны под вопросы, которые люди задают, а не под таблицы базы: find_chat, get_messages, search, list_attachments, send и другие.
Сообщения собираются в сессии с разрывом в 4 часа и больше. Картинки отдаются в трёх вариантах: vision 1568px, thumb 400px и полный оригинал. В списке вложений сразу видно, лежит файл на диске или выгружен в iCloud. Номера телефонов сопоставляются с именами через Контакты macOS.
Перед первым запуском нужно выдать Full Disk Access — без него ~/Library/Messages/chat.db не читается. После смены разрешения сервер придётся перезапустить, потому что macOS применяет доступ только к процессам, стартовавшим позже. Контакты сервер запрашивает сам, когда его запускают из терминала; при старте из launchd или MCP-клиента запроса не будет, поэтому доступ выдайте заранее командой imessage-max --request-contacts-access из терминала и перезапустите сервис.
Какие задачи решает
- найти переписку с человеком по имени, а не по номеру
- вытащить контекст вокруг сообщения о сроках запуска
- посмотреть непрочитанные и активные за последние сутки
- получить фото из группового чата в уменьшенном размере
- отправить сообщение точно в нужный тред по
chat_id
Примеры запросов агенту
- Найди чат с Алексеем и покажи, что мы обсуждали вчера
- Поищи в сообщениях упоминание сроков запуска и покажи контекст вокруг
- Отправь в чат
chat456текст «используй последний черновик»
Как установить imessage-max
Командой платформы
claude mcp add imessage-max -- uvx imessage-maxuvx запускает команду с именем пакета; если в README она другая — uvx --from imessage-max <команда>
Командой платформы
codex mcp add imessage-max -- uvx imessage-maxuvx запускает команду с именем пакета; если в README она другая — uvx --from imessage-max <команда>
Файл настроек
{
"mcpServers": {
"imessage-max": {
"command": "uvx",
"args": [
"imessage-max"
]
}
}
}uvx запускает команду с именем пакета; если в README она другая — uvx --from imessage-max <команда>
Файл настроек
{
"servers": {
"imessage-max": {
"type": "stdio",
"command": "uvx",
"args": [
"imessage-max"
]
}
}
}uvx запускает команду с именем пакета; если в README она другая — uvx --from imessage-max <команда>
Командой платформы
gemini mcp add imessage-max uvx imessage-maxuvx запускает команду с именем пакета; если в README она другая — uvx --from imessage-max <команда>
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о imessage-max
Как установить imessage-max в Claude Code?
Выполните claude mcp add imessage-max -- uvx imessage-max. После этого выдайте бинарнику Full Disk Access и перезапустите сервер.
Что делает imessage-max?
Даёт агенту читать, искать и отправлять сообщения iMessage на macOS. Номера телефонов он сопоставляет с именами из Контактов.
Почему сервер не видит Контакты?
Он запрашивает доступ только при запуске из терминала, а MCP-клиент стартует его без запроса. Выдайте доступ командой imessage-max --request-contacts-access и перезапустите сервис.