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 — Next Generation
Быстрый старт
Нужны 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 Telegram MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Hosted MCP messaging across owners, tools, and machines, with readable transcripts.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables sending and receiving Telegram messages through MCP clients like Claude Desktop and Gemini Spark.27 npmMIT
- AlicenseAqualityAmaintenanceEnables MCP-compatible clients to securely access and manage Telegram accounts, chats, messages, media, and contacts, with tiered permissions, write controls, and local caching.22Apache 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
- AlicenseNot gradedqualityBmaintenanceEnables sending and reading Telegram messages through MCP, using either a bot or a personal user account.60 npmMIT