Telegram Personal MCP: ограниченный мессенджер для агентов
Rust MCP-сервер, который даёт агентам узкий и проверяемый доступ к личному Telegram-аккаунту: проверка готовности, ограниченное чтение, поиск диалогов и личная отправка только после явного согласования.
Этот кейс доказывает проектирование агентного инструмента под реальное давление безопасности: доступ к Telegram полезен только тогда, когда чтение, отправка, владение сессией и доказательство согласования разделены конструкцией.
ограниченный MCP
Поверхность инструмента
поле согласования
Безопасность отправки
ограниченные срезы
Область чтения
> Закрытый репозиторий. Доступен для просмотра кода по запросу.
▍ Проблематика
AI-агенту иногда нужно найти рабочий чат, прочитать свежий контекст или отправить уже согласованное операционное сообщение. Обычный широкий мост к мессенджеру для этого слишком опасен.
- Слишком широкий доступ: Многие инструменты открывают неограниченную историю, шумные списки диалогов или действия, которые агенту не нужны.
- Неясная отправка: Личное сообщение всё равно остаётся контактом с человеком. Инструмент обязан требовать явное согласование для конкретного получателя и текста.
- Владение сессией: Файл Telegram-сессии является учётным материалом. Один живой владелец и lock-файл не дают двум процессам одновременно вести один аккаунт.
- Разрешение числовых чатов: Приватные чаты нельзя адресовать как публичные username; идентичность диалога и access_hash берутся из диалогов самого аккаунта.
▍ Архитектура
CODEX / АГЕНТ
типизированный MCP-вызов + доказательство согласования
↓
MCP-СЕРВЕР (Rust)
проверка схемы | ограниченные инструменты | lock сессии
↓
TELEGRAM-АДАПТЕР
ferogram-сессия | прокси | идентичность диалогов
↓
TELEGRAM-АККАУНТ
ограниченное чтение | отправка только согласованных личных сообщений▍ Операционные доказательства
ограниченный MCP
Поверхность инструмента
поле согласования
Безопасность отправки
ограниченные срезы
Область чтения
не открыты
Разрушающие действия
защищён lock-файлом
Владелец сессии
Rust 2024
Реализация
▍ Ключевые инженерные решения
Проблема
Агентам нужен контекст Telegram, но широкий экспорт истории превращает простой поиск в утечку приватных данных.
Решение
Открыты только малые инструменты: здоровье сессии, ограниченный список диалогов, точечный поиск, ограниченное чтение чата и одна отправка с доказательством согласования.
Отвергнутая альтернатива
Обычная широкая автоматизация Telegram — быстрее открывается, но плохо проверяется, когда несколько агентов делят одну среду.
Проблема
Видимый chat_id сам по себе не даёт надёжного адресата в MTProto.
Решение
Числовые ID разрешаются через список диалогов аккаунта и access_hash, а не через догадку по публичному имени.
▍ Технологический стек
Ядро
Rust 2024, Tokio, clap
Протокол
MCP stdio, serde, schemars
Telegram
ferogram, MTProto-сессии
Безопасность
ограниченное чтение, нет удаления, явное поле согласования
▍ Что доказывает этот проект
Проектирование агентных инструментов
Рискованный канал общения превращён в узкую типизированную поверхность без широких прав.
Границы безопасности
Файлы сессии, согласования, область чтения и право отправки разделены.
Интеграция протокола
MTProto используется через идентичность сессии и данные диалогов, а не через хрупкие публичные имена.
Практичная эксплуатация
Инструмент полезен в реальной работе и закрывается на неясных или несогласованных действиях.