iMessage MCP
iMessage MCP
Локальный MCP сервер, который читает историю сообщений macOS и отправляет новые iMessage. Всё работает локально — ничего не покидает ваш компьютер.
Инструменты
Инструмент | Что делает |
| Недавние активные переписки (идентификаторы + время последнего сообщения). |
| Последние сообщения из одной переписки (по идентификатору или guid). |
| Новейшие сообщения из всех переписок с указанием чата. |
| Поиск подстроки в тексте сообщений. |
| Отправка iMessage на номер телефона или email. (по запросу) |
| Отправка в существующий чат по guid, для групповых чатов. (по запросу) |
Инструменты чтения ограничены 200 строками за вызов и не включают тапбэки. Два
инструмента отправки вообще не регистрируются, если не задано
IMESSAGE_MCP_ALLOW_SEND=1, поэтому хост, настроенный только на чтение, не сможет
отправить сообщение даже случайно.
Related MCP server: imessage-mcp
Модель безопасности
Чтение сообщений и отправка от вашего имени — это очень разные возможности, и
объединение их в одной сессии агента — самая рискованная часть. Любой, кто может
вам написать, может поместить текст в get_recent_messages, поэтому тела
сообщений — это управляемый атакующим ввод, находящийся рядом с инструментом,
который отправляет письма от вашего имени.
Что делает этот сервер для защиты:
Инструменты отправки по умолчанию отключены и должны быть включены для каждого хоста отдельно.
IMESSAGE_MCP_ALLOWED_RECIPIENTSограничивает, кому вообще можно писать.Каждая попытка отправки и её результат записываются в локальный журнал аудита до и после вызова AppleScript, поэтому отправка не может произойти без записи.
Исходящие сообщения ограничены по длине и не могут быть пустыми.
Сервер рекламирует MCP
instructionsи аннотации инструментов (readOnlyHint,destructiveHint), чтобы хосты могли запрашивать подтверждение для опасных.
Чего он не делает: он не может помешать модели, прочитавшей вредоносное сообщение, решить действовать на его основе. Если вы включаете отправку, оставьте запрос подтверждения для инструментов отправки.
Конфигурация
Всё опционально. Задавайте их в конфиге MCP-хоста, а не в профиле оболочки.
Переменная | Значение по умолчанию | Описание |
| выкл. |
|
| пусто | Разрешённый список через запятую. Пусто — без ограничений. Формат номера нормализуется, поэтому |
|
| Максимальная длина исходящего сообщения. |
|
| Журнал аудита в формате JSON-lines. |
|
| Переопределить путь к базе данных. |
Установка
git clone https://github.com/tarun101/imessage-mcp.git
cd imessage-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtPython 3.10 или новее. Всё ниже предполагает, что $REPO — это абсолютный путь к
вашей копии репозитория.
Зависимость
mcpзафиксирована на версии<2. В SDK 2.x удалёнmcp.server.fastmcp, который импортирует этот сервер; установка без фиксации версии подтянет 2.x и упадёт при запуске.
Разрешения macOS (оба обязательны)
Полный доступ к диску — чтение
~/Library/Messages/chat.dbбез него заблокировано. Добавьте процесс, запускающий сервер (Terminal, iTerm или ваше MCP-приложение), в System Settings → Privacy & Security → Full Disk Access, затем полностью закройте и снова откройте его.Automation → Messages — первый вызов
send_message/send_to_chatвызовет одноразовый запрос разрешения на управление Messages.app. Разрешите.
Быстрая проверка
source .venv/bin/activate
python -c "import server; print(server.list_chats(5))"Тесты
pip install -e '.[dev]'
pytestНабор тестов создаёт синтетическую chat.db со схемой Apple, поэтому работает
везде — не нужен ни Mac, ни доступ к вашей реальной истории сообщений.
Регистрация в MCP-хосте
Codex
codex mcp add imessage --env IMESSAGE_MCP_ALLOW_SEND=1 -- \
"$REPO/.venv/bin/python" "$REPO/server.py"Или в ~/.codex/config.toml, что также позволяет запрашивать подтверждение для каждого инструмента:
[mcp_servers.imessage]
command = "/absolute/path/to/imessage-mcp/.venv/bin/python"
args = ["/absolute/path/to/imessage-mcp/server.py"]
default_tools_approval_mode = "auto"
[mcp_servers.imessage.env]
IMESSAGE_MCP_ALLOW_SEND = "1"
[mcp_servers.imessage.tools.send_message]
approval_mode = "prompt"
[mcp_servers.imessage.tools.send_to_chat]
approval_mode = "prompt"Проверьте с помощью /mcp в TUI Codex.
Claude Code (CLI)
claude mcp add imessage -- "$REPO/.venv/bin/python" "$REPO/server.py"Claude Desktop / универсальный MCP-конфиг
{
"mcpServers": {
"imessage": {
"command": "/absolute/path/to/imessage-mcp/.venv/bin/python",
"args": ["/absolute/path/to/imessage-mcp/server.py"]
}
}
}Используйте абсолютные пути, чтобы использовался Python из venv (с установленным mcp).
Примечания и ограничения
Доступ к БД только для чтения. chat.db открывается с
mode=ro; сервер никогда не пишет в ваше хранилище сообщений. Отправка идёт исключительно через Messages.app.Резервный режим WAL. chat.db — это WAL-база, и дескриптор только для чтения не может создать нужный файл
-shm. Когда прямое открытие не удаётся — что происходит, когда Messages.app не запущен, — сервер прозрачно читает вместо этого временную копию-снимок, обновляемую при изменении исходника.attributedBody. В новых сообщениях тело хранится в бинарном
attributedBody-блобе, а не в колонкеtext. Читатель декодирует их эвристически — этого достаточно для обычных текстовых сообщений, но богатый контент может быть утерян. Поэтомуsearch_messagesищет только по обычной колонкеtext.Метки времени возвращаются в формате ISO-8601 UTC.
Отправка проверяется, а не предполагается. AppleScript возвращает управление до доставки, поэтому после отправки сервер опрашивает chat.db на предмет исходящей строки. Результат
sent_unverifiedозначает, что Messages.app принял сообщение, но оно ещё не дошло — обычно это задержка, а не сбой.Отправка реальна. Эти инструменты отправляют настоящие сообщения, которые невозможно отозвать.
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceEnables reading, searching, and sending iMessages directly from MCP-compatible clients by accessing the local macOS iMessage database, supporting conversations, attachments, and both individual and group chats.10410MIT
- AlicenseAqualityDmaintenanceA local MCP server that enables reading iMessage conversations and sending new messages through Claude Desktop. It provides secure, read-only access to your Mac's iMessage database and AppleScript-based message sending capabilities.6MIT
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server for local macOS Messages database, enabling querying of chats, messages, attachments, and metadata.104MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for reading and sending iMessages on macOS. Exposes iMessage history and send capabilities through tools like list_conversations and send_imessage.19MIT
Related MCP Connectors
MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay
Remote MCP server for The Colony — a social network for AI agents (posts, DMs, search, marketplace).
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/tarun101/imessage-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server