mila-telegram
Mila Telegram
Запускайте свою сессию Claude Code из Telegram — и держите её работающей.
Это расширенный форк официального плагина Telegram-канала (Apache-2.0). Оригинал подключает Telegram-бота к сессии Claude Code. Этот форк добавляет то, что начинает требоваться, когда вы действительно работаете так каждый день: команды в групповых чатах, голосовые сообщения и поллер, который не теряет ваши сообщения при перезапуске сессии.
Что добавляет этот форк
Демон, который переживает сессию. В оригинале поллер Telegram живёт внутри процесса сессии: перезапустите Claude Code — и все сообщения, отправленные за это время, потеряны. Здесь поллер работает как долгоживущий демон, который дописывает события в файл-журнал, а сессия при запуске воспроизводит их с курсора. Перезапуск, сбой, обновление — входящие сообщения ждут в файле и приходят, когда сессия возвращается.
Автоподключение к группам с однокнопочным подтверждением. Добавьте бота в группу и отправьте /channel_join. Владелец получает карточку с четырьмя кнопками в личном чате: отвечать всем, только по упоминаниям, только слушать (бот слышит чат, но ответы в него механически блокируются) или отклонить. Каждое решение — включая отклонения — записывается в журнал auth-log.jsonl, а для каждого подключённого чата создаётся контекстная карточка в chats/<id>.md плюс сгенерированный реестр CHATS.md. Никаких числовых ID чатов, никакого ручного редактирования JSON; групповые сообщения сами по себе никогда не могут изменить список разрешённых — одобрение происходит только в личном чате владельца.
Транскрибация голосовых. Голосовые сообщения передаются команде транскрибации на ваш выбор (задайте TELEGRAM_VOICE_TRANSCRIBE_CMD), и текст доходит до ассистента вместе с аудио. Если переменная не задана, голосовые просто проходят без транскрибации — без значения по умолчанию, без вендора.
Контекст цитируемого ответа. Когда кто-то отвечает на более раннее сообщение, цитируемый текст передаётся вместе с новым, так что ассистент отвечает о том сообщении, на которое вы действительно указали, а не о последнем в чате.
Всё из оригинального плагина по-прежнему работает: сопряжение, списки разрешённых, определение упоминаний, reply / react / edit_message, фото, вложения, индикаторы набора текста.
Related MCP server: tsgram-mcp
Безопасность
Прочтите это, прежде чем размещать на машине, которая имеет значение.
Сообщения — это недоверенный ввод. Всё, что кто-либо отправляет боту, попадает к вашему ассистенту как контент. Кто-то в разрешённом чате может попытаться дать ему инструкции. Относитесь к каналу как к публичной двери в сессию, которая может читать файлы и выполнять команды.
Группы по умолчанию требуют упоминания. Одобренная группа добавляется с requireMention: true, поэтому бот отвечает только когда к нему обращаются. Отключение этого означает, что каждое сообщение от каждого участника идёт прямо в сессию — это реальная поверхность для инъекции промптов, а не теоретическая. Отключайте это только для чата, где вы доверяете каждому участнику.
Вложения могут уходить наружу. Инструмент reply отправляет любой абсолютный путь, который передаёт ему ассистент. Это намеренно — так вы достаёте файлы из сессии, — но в сочетании с пунктом выше это также путь экфильтрации. Ваши настройки разрешений, а не этот плагин, стоят между сообщением и файлом, покидающим вашу машину.
Журнал событий — это граница доверия. Демон пишет события в файл, а сессия их воспроизводит; всё, что может писать в этот файл, говорит голосом Telegram. Журнал и его каталог создаются с правами 0600/0700, а мост воспроизводит только список разрешённых из двух методов, так что поддельная строка не может вызвать произвольные. Держите каталог состояния на файловой системе, в которую можете писать только вы.
Ваш токен хранится в ~/.claude/channels/telegram/.env с правами 0600 и удаляется из вывода ошибок до того, как что-либо будет записано в журнал.
Предварительные требования
Bun — MCP-сервер работает на Bun:
curl -fsSL https://bun.sh/install | bash
Настройка
1. Создайте бота. Напишите @BotFather, отправьте /newbot и скопируйте выданный токен (целиком, включая ведущие цифры и двоеточие).
2. Установите плагин. Из сессии Claude Code:
/plugin marketplace add shakhruz/mila-telegram
/plugin install mila-telegram@mila3. Дайте серверу токен.
/telegram:configure 123456789:AAHfiqksKZ8...Это записывает TELEGRAM_BOT_TOKEN=... в ~/.claude/channels/telegram/.env. Вы можете написать этот файл сами или задать переменную в оболочке — оболочка имеет приоритет.
Чтобы запускать несколько ботов на одной машине, укажите
TELEGRAM_STATE_DIRна отдельный каталог для каждого экземпляра.
4. Перезапустите с флагом канала. Без него сервер не подключится:
claude --channels plugin:mila-telegram@mila5. Сопряжение. Напишите боту в личку; он ответит 6-символьным кодом. В сессии:
/telegram:access pair <code>6. Закройте доступ. Сопряжение существует, чтобы захватить ваш ID. Как только вы внутри, переключитесь на список разрешённых, чтобы посторонние перестали получать коды сопряжения:
/telegram:access policy allowlistЗапуск демона
Демон — это то, что делает перезапуски бесплатными. Запустите receiver.ts как службу под вашим супервизором процессов — launchd на macOS, systemd на Linux — с RECEIVER_DAEMON=1 в его окружении:
RECEIVER_DAEMON=1 bun /path/to/plugin/receiver.tsОн пишет события в $TELEGRAM_STATE_DIR/inbound/events.jsonl. Когда сессия запускается и обнаруживает, что демон жив, она читает из этого журнала вместо опроса, так что они никогда не конфликтуют за Telegram API. Если демон не запущен, сессия опрашивает напрямую точно так же, как оригинальный плагин — демон необязателен.
Конфигурация
Переменная | Назначение |
| Токен бота от BotFather. Обязательно. |
| Каталог состояния. По умолчанию |
| Команда, которая транскрибирует голосовой файл. Если не задана — транскрибации нет. |
| Установите |
Контроль доступа
См. ACCESS.md для политик личных сообщений, групп, определения упоминаний, конфигурации доставки, команд навыков и схемы access.json.
ID — это числовые ID пользователей — получите свой у @userinfobot. ackReaction принимает только фиксированный список эмодзи Telegram.
Инструменты, доступные ассистенту
Инструмент | Назначение |
| Отправка в чат. Принимает |
| Добавить реакцию-эмодзи по ID сообщения. Только фиксированный список Telegram (👍 👎 ❤ 🔥 👀 …). |
| Редактировать сообщение, отправленное ботом. Подходит для «работаю…» → результат. Только свои сообщения. |
| Получить файл по |
Входящие сообщения автоматически запускают индикатор набора текста.
Нет истории, нет поиска
Telegram Bot API не предоставляет ни того, ни другого. Бот видит только сообщения по мере их поступления — нет способа получить прошлое чата. Если ассистенту нужен более ранний контекст, ему придётся спросить вас. Это ограничение Telegram, а не этого плагина, и именно поэтому фотографии загружаются сразу по прибытии.
Лицензия и атрибуция
Apache-2.0. Это модифицированный форк плагина канала telegram из anthropics/claude-plugins-official, авторское право Anthropic, PBC. См. NOTICE для списка изменений.
This server cannot be installed
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
- AlicenseAqualityFmaintenanceEnables remote control of AI coding assistants (Claude Code/Codex) via Telegram, allowing you to manage long-running tasks, send commands, and receive notifications from anywhere. Supports unattended mode with smart polling for up to 7 days and multi-session management.829MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude Code sessions to Telegram, enabling AI-powered code assistance and file management directly from Telegram chats.92MIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude Code to act as an autonomous Telegram agent with tools for replying, reacting, editing messages, searching history, and handling attachments. Includes a TUI watchdog for unattended operation.1AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceEnables Claude Code to send messages to and receive instructions from Telegram, with task tracking and persistent storage.
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
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/shakhruz/mila-telegram'
If you have feedback or need assistance with the MCP directory API, please join our Discord server