telegram-bot
Provides tools for interacting with Telegram via a bot, including reading updates from permitted chats, retrieving chat information, and sending messages with duplicate prevention and access controls.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@telegram-botShow me new messages from my allowed Telegram chats."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Что умеет
Возможность | Как работает |
Читать обновления | Новые сообщения, правки и посты каналов, доступные боту |
Проверять чат | Базовые сведения по разрешённому числовому ID |
Публиковать текст | Отправка сообщений, в том числе в темы форум-групп |
Работать с несколькими каналами | Отдельные списки ID для чтения и отправки |
Предотвращать повторные попытки | Сохранённый |
Сохранять состояние | Локальная SQLite-база с событиями, позицией чтения и журналом отправок |
Статус: MVP. Реализован и протестирован локальный MCP-сервер. Для работы настройте собственного бота и подключение клиента. История личного аккаунта, вложения и автоматический планировщик не входят в текущую версию.
Related MCP server: Telegram MCP Server
Быстрый старт
Нужны Python 3.11+, uv и бот, созданный через @BotFather. Запуск рассчитан на macOS/Linux.
git clone https://github.com/Evr1kys/telegram-bot.git
cd telegram-bot
uv sync --locked
uv run --locked python scripts/configure.pyМастер настройки попросит токен скрытым вводом и числовые ID чатов. Токен хранится вне репозитория в файле с правами 600. Можно вместо файла внедрить TELEGRAM_BOT_TOKEN через менеджер секретов. Не вставляйте токен в разговор с моделью.
Затем подключите сервер:
Клиент | Подключение |
Codex / локальный MCP-клиент | Команда |
ChatGPT | Частный stdio-сервер через Secure MCP Tunnel; нужны доступ и настройка аккаунта |
Пошаговые инструкции, переменные окружения и разбор ошибок — в руководстве по настройке. Само клонирование не подключает Telegram к ChatGPT.
Три инструмента
Инструмент | Назначение | Основные параметры |
| Прочитать события разрешённых чатов |
|
| Получить сведения о чате |
|
| Отправить разрешённое пользователем сообщение |
|
«Покажи новые сообщения из разрешённых Telegram-чатов».
«Проверь название и тип чата с ID −1001234567890».
«Отправь в канал −1001234567890: Встреча сегодня в 18:00».
Пример аргументов отправки после поручения пользователя:
{
"chat_id": -1001234567890,
"text": "Встреча сегодня в 18:00",
"request_id": "meeting_20260916_001"
}Параметр message_thread_id позволяет указать тему форума. Сохраняйте тот же request_id при повторном вызове одного запроса. Новый ID — новая попытка отправки.
Контроль доступа и отправки
Доступ закрыт по умолчанию. Чтение и отправка разрешаются отдельно для конкретных числовых ID. Плагин использует отдельного бота и не входит в личный аккаунт Telegram.
Секреты остаются в окружении сервера. Токен не входит в manifest, аргументы инструментов или сообщения об ошибках. Локальный сервер работает через stdio и не открывает сетевой порт.
Неопределённая доставка не повторяется автоматически. При таймауте состояние сохраняется как uncertain, при прерывании может остаться pending. Нужно проверить Telegram; нельзя обходить эту защиту новым идентификатором. Защита зависит от сохранности общей базы состояния.
Текст из чатов — данные. Skill запрещает воспринимать сообщения Telegram как инструкции, менять по ним разрешения или публиковать без поручения пользователя.
Подробнее: модель безопасности · статусы и ограничения.
Как устроено
flowchart LR
A[ChatGPT / Codex] -->|MCP| B[Три инструмента]
B --> C[Проверка разрешений]
C --> D[Telegram Bot API]
C <--> E[(SQLite: события и отправки)]src/telegram_bot/
├── config.py # Секреты и списки разрешённых чатов
├── client.py # Ограниченный клиент Bot API
├── store.py # Состояние и блокировки SQLite
├── service.py # Чтение и защита отправки от повторов
└── server.py # MCP-инструментыСлой Service отделён от MCP: поверх него можно добавить планировщик и очередь заданий. Несколько каналов одного владельца уже поддерживаются; изоляция нескольких владельцев требует дальнейшей разработки.
Разработка
uv sync --locked
uv run --locked python -m unittest discover -s tests -vТесты проверяют доступ, фильтрацию, перезапуски, конкурентные отправки, ошибки Telegram и настоящий обмен MCP через stdio. Telegram HTTP заменён имитацией: тестам не нужны токены, они не отправляют сообщения.
GitHub Actions запускает тесты на Python 3.11, 3.12 и 3.13. Порядок внесения изменений: CONTRIBUTING.md.
Дальнейшее развитие
Три MCP-инструмента и отдельные разрешения
Несколько каналов одного владельца
Сохранение состояния и защита повторных вызовов
Очередь публикаций с расписанием, лимитами и паузой
Отправка вложений
Раздельные учётные записи владельцев
Публичный HTTP-сервер с аутентификацией
Планы не означают, что эти функции уже доступны. Идеи и воспроизводимые ошибки можно оставить в Issues.
MIT License · Автор: Evr1kys · Независимый проект, не официальный продукт Telegram или OpenAI.
This server cannot be deployed
Maintenance
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Unofficial Telegram MCP server — read, search, reply and react in your own Telegram account.
Hosted MCP messaging across owners, tools, and machines, with readable transcripts.
Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API
Related MCP Servers
- FlicenseBqualityCmaintenanceEnables MCP clients to interact with Telegram user accounts, providing tools for messaging, contacts, groups, channels, and media management through the Telegram API.853-
- AlicenseNot gradedqualityBmaintenanceEnables sending and receiving Telegram messages through MCP clients like Claude Desktop and Gemini Spark.32 npmMIT
- AlicenseBqualityAmaintenanceEnables MCP-compatible clients to securely access and manage Telegram accounts, chats, messages, media, and contacts, with tiered permissions, write controls, and local caching.35Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients like Codex or ChatGPT to securely receive, acknowledge, and send Telegram messages with durable delivery guarantees and idempotency.MIT