MCP-сервер для Telegram на Rust
MCP-сервер на Rust даёт AI‑агенту точный контекст Telegram и управляемые вложения без выгрузки аккаунта. Ответ готовится для одного адресата и отправляется только после отдельного личного согласования; результат сохраняется после перезапуска.
Демо и код ↗AI выбирает один диалог и сообщение, затем читает ограниченный фрагмент вокруг него вместо выгрузки всего аккаунта.
Исходный файл скачивается в адресуемую по содержимому рабочую папку. Изменённая версия создаётся рядом и не перезаписывает оригинал.
Перед отправкой сервер связывает аккаунт, адресата, ответ на сообщение, текст, хеш материала и срок действия с одной личной карточкой согласования. Результат сохраняется.
Публичное демо и исходный код
v0.2.0 — текущая предварительная публичная версия. Демо запускает собранный MCP-сервер по stdio без Telegram-аккаунта, сети и реальной доставки.
- 16 инструментовУ каждого инструмента есть схемы входа и выхода, MCP-аннотации и единый структурированный результат после разбора аргументов.
- Собранный сервер по stdioИнтеграционный тест запускает собранный сервер и подключает rmcp-клиент через системные потоки ввода-вывода.
- Идентичность файлаДемо находит сообщение с договором, скачивает PDF, создаёт изменённую копию, отвечает файлом с привязанным SHA-256 и перечитывает результат.
- Состояние после рестартаПодготовленный текст, согласование, Telegram random_id и результат отправки остаются доступны после перезапуска.
Полная задача
AI‑агент через MCP может найти переписку, восстановить точный контекст сообщения, перенести вложение в контролируемую локальную папку и подготовить ответ без выгрузки всего аккаунта.
Сам сервер не содержит AI‑агента. Рассуждение и изменение файлов происходят в хосте; сервер на Rust отвечает за точный аккаунт, чат и сообщение, границы чтения, состояние согласования и результат отправки.
Что действительно запускает публичное демо
AI-ХОСТ
найти сообщение | прочитать контекст
↓
TELEGRAM MCP (Rust через stdio)
скачать неизменяемый PDF | вернуть путь + SHA-256
↓
УПРАВЛЯЕМАЯ ПАПКА
хост создаёт изменённую копию
↓
ПОДГОТОВЛЕННЫЙ ОТВЕТ
точный адресат | ID сообщения | хеш материала
↓
ОТПРАВКА + РЕЗУЛЬТАТ
сохранённое состояние | ID сообщения в TelegramЧто доступно через сервер
Почему согласование хранится как состояние
Почему чат и файл задаются точно
- Повторно используемые ссылки на чаты: Возвращённый адрес можно снова передать серверу как username или канонический числовой ID; приватный диалог не угадывается по подписи интерфейса.
- Управляемые папки: Загружаемый файл должен находиться внутри папки выбранного аккаунта, поэтому произвольный путь на машине нельзя отправить через Telegram.
- Неизменяемые оригиналы: Скачанные файлы адресуются по содержимому. Изменение создаёт соседний файл с новым хешем, а не молча перезаписывает исходник.
- Один владелец сессии: Telegram-сессией и обработчиком согласований одновременно владеет только один процесс.