signal-mcp
signal-mcp
Локальный сервер Model Context Protocol для сообщений Signal Desktop, доступный только для чтения.
Он предоставляет MCP-совместимому агенту четыре узкоспециализированных инструмента:
signal_list_conversations— поиск недавних личных и групповых бесед без возврата текста сообщений.signal_get_messages— получение ограниченного хронологического окна из одной конкретной беседы.signal_search_messages— буквальный поиск по подстроке, опционально ограниченный беседой и временем.signal_get_message— получение одного конкретного сообщения с метаданными цитаты и вложений.
Сервер никогда не отправляет сообщения и ничего не записывает в базу данных Signal. Он работает локально через stdio и не имеет HTTP-слушателя.
Важное предупреждение о конфиденциальности
Этот сервер может раскрыть вашу приватную историю Signal любому MCP-хосту и модели, к которым вы его подключаете. Изучите политику обработки данных этого хоста, держите запросы узконаправленными и не настраивайте этот сервер для агентов, которым вы не доверяете.
Локальная база данных Signal Desktop — это деталь реализации, а не публичный API. Обновления схемы Signal могут временно нарушить работу этого проекта. Этот проект является неофициальным и не аффилирован с Signal Messenger LLC и не одобрен ею.
Related MCP server: msteams-local-mcp
Текущая поддержка
Windows
Signal Desktop, установленный для того же пользователя Windows
Node.js 20 или новее
Локальные MCP-хосты со stdio
В настоящее время для автоматического восстановления ключа требуется Windows, поскольку Signal защищает свой главный ключ OSCrypt в Chromium с помощью учётных данных DPAPI текущего пользователя.
Установка
git clone https://github.com/NathanDai5287/signal-mcp.git
cd signal-mcp
npm install
npm run buildПо умолчанию сервер обнаруживает Signal в каталоге %APPDATA%\Signal. Обычно конфигурация не требуется.
Чтобы проверить подключение без настройки MCP-хоста:
npx @modelcontextprotocol/inspector node dist/src/index.jsInspector может вызывать инструменты, возвращающие реальные личные сообщения. Относитесь к его сеансу в браузере соответствующим образом.
Конфигурация MCP-хоста
Соберите проект, затем настройте ваш хост на запуск скомпилированной точки входа с абсолютным путём:
{
"mcpServers": {
"signal": {
"command": "node",
"args": ["C:\\path\\to\\signal-mcp\\dist\\src\\index.js"]
}
}
}Перезапустите хост после изменения его конфигурации MCP. Точное расположение файла конфигурации зависит от хоста.
Необязательная конфигурация
Переменные окружения передаются через конфигурацию сервера MCP-хоста:
Переменная | Назначение | Значение по умолчанию |
| Путь к базе данных SQLCipher Signal |
|
| Путь к |
|
| Путь к |
|
| Явный 64-символьный ключ SQLCipher | Восстанавливается с помощью DPAPI |
| Жёсткий предел для вызова сообщений/поиска |
|
| Жёсткий предел для вывода списка бесед |
|
Избегайте размещения SIGNAL_MCP_KEY в файле, попадающем в коммит. На Windows предпочтительно автоматическое восстановление.
Как работает доступ к базе данных
Signal Desktop хранит ключ SQLCipher, зашифрованный AES-256-GCM, в config.json. Его ключ обёртывания находится в Local State Chromium и защищён с помощью Windows DPAPI. При запуске этот сервер:
Снимает защиту DPAPI с главного ключа OSCrypt для текущего пользователя Windows.
Расшифровывает ключ SQLCipher Signal в памяти.
Открывает базу данных с уровнем совместимости SQLCipher 4.
включает режим SQLite
query_onlyперед обработкой любых вызовов инструментов.
Ключ никогда не выводится, не возвращается через MCP и не сохраняется этим проектом.
Все поисковые входные данные привязываются как SQL-параметры. %, _ и \ экранируются, поэтому поисковые запросы являются литеральными подстроками, а не управляемыми вызывающей стороной SQL-шаблонами. Каждый набор результатов ограничен.
Возвращаемые данные
Результаты по сообщениям могут содержать:
идентификаторы сообщений и бесед Signal
временные метки в миллисекундах
направление «входящее/исходящее»
service ID отправителя и отображаемое имя
текст сообщения
денормализованный текст цитируемого ответа
метаданные вложений и доступность локального скачивания
Эта версия не расшифровывает и не возвращает байты вложений, не создаёт долговременный архив, не выполняет семантический поиск и не отправляет сообщения. Исчезающие сообщения, которые Signal уже удалил, восстановить невозможно.
Разработка
npm test
npm run check
npm run buildТестовый набор использует фиктивный читатель в памяти и не обращается к вашим данным Signal. Для обнаружения изменений в приватной схеме базы данных Signal по-прежнему требуется ручной локальный смоук-тест.
Операционное журналирование выводится в stderr, поскольку stdout зарезервирован для трафика MCP JSON-RPC.
Безопасность
Пожалуйста, не открывайте публичные issues, содержащие текст сообщений, файлы баз данных, ключи, service ID, номера телефонов или локальные пути. Рекомендации по приватному сообщению об уязвимостях см. в SECURITY.md.
Лицензия
Исходный код проекта распространяется по лицензии MIT. Зависимости сохраняют собственные лицензии; в частности, @signalapp/sqlcipher распространяется по лицензии AGPL-3.0-only.
This server cannot be deployed
Maintenance
Related MCP Connectors
Explore your Messages SQLite database to browse tables and inspect schemas with ease. Run flexible…
Read-only MCP access to authorized Vocci sessions, notes, files, and memory search.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Hosted MCP messaging across owners, tools, and machines, with readable transcripts.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables querying Signal Desktop chats and messages by reading the encrypted SQLite database directly, providing tools for listing chats, searching messages, and running read-only SQL queries.MIT
- AlicenseBqualityBmaintenanceReads the local Microsoft Teams (v2) message cache and exposes it over MCP, enabling AI assistants to list accounts/conversations and search/read messages without Graph API or network.83MIT
- AlicenseAqualityCmaintenanceA read-only MCP server that lets AI search a user's own LINE Desktop chat history on macOS, providing tools to list chats, retrieve messages, and search conversations directly from the local encrypted database.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to read the entire Apple Messages (iMessage/SMS) history on a Mac through a read-only, batched tool that supports listing chats, retrieving transcripts, polling recent messages, and searching message bodies via REST or streamable HTTP MCP.MIT