Telegram MCP Server
Telegram MCP Server
MCP-сервер для взаимодействия с Telegram через Telegram Bot API. Сервер предоставляет LLM-клиенту набор инструментов для отправки сообщений, чтения последних доступных сообщений и получения информации о чате.
Возможности
Сервер предоставляет три MCP tools:
send_message— отправляет текстовое сообщение в указанный Telegram-чат.get_recent_messages— получает последние доступные сообщения из указанного чата.get_chat_info— возвращает основную информацию о Telegram-чате.
Сервер использует stdio transport, поэтому его можно подключать к MCP Inspector и другим MCP-клиентам без отдельного HTTP-сервера.
Related MCP server: agent-telegram-mcp
Архитектура
MCP client / MCP Inspector
│
│ MCP over stdio
▼
src/server.py
│
▼
src/telegram_client.py
│
│ HTTPS
▼
Telegram Bot APIserver.py отвечает за MCP-интерфейс и регистрацию tools.
telegram_client.py инкапсулирует HTTP-взаимодействие с Telegram Bot API.
config.py загружает токен из переменной окружения.
Стек
Python 3.10+
MCP Python SDK 2.x
Telegram Bot API
httpxpython-dotenv
Структура проекта
telegram-mcp/
├── src/
│ ├── __init__.py
│ ├── config.py
│ ├── telegram_client.py
│ └── server.py
├── .env.example
├── .gitignore
├── requirements.txt
└── README.mdТребования
Python 3.10 или новее
Telegram-бот, созданный через
@BotFatherNode.js и
npx— только если используется MCP Inspector черезmcp dev
Установка
Клонируйте репозиторий и перейдите в его директорию:
git clone <repository-url>
cd telegram-mcpСоздайте виртуальное окружение:
python3 -m venv .venv
source .venv/bin/activateУстановите зависимости:
pip install -r requirements.txtНастройка Telegram-бота
Откройте Telegram и найдите
@BotFather.Выполните
/newbot.Создайте бота и получите Bot API token.
Не добавляйте токен в исходный код или Git.
Создайте файл .env:
cp .env.example .envУкажите токен:
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here.env добавлен в .gitignore.
Подготовка чата
Личный чат
Откройте созданного бота.
Нажмите
Startили отправьте ему сообщение.Для проверки
get_recent_messagesотправьте несколько текстовых сообщений.
Группа
Создайте тестовую группу.
Добавьте в неё бота.
Если бот должен видеть обычные сообщения группы, отключите для него режим приватности через
@BotFather(/setprivacy→Disable).Отправьте в группу несколько сообщений.
Для получения chat_id удобно сначала вызвать get_chat_info или get_recent_messages после того, как бот получил сообщение из нужного чата.
Запуск
Из корневой директории проекта:
python src/server.pyСервер работает через stdio и ожидает MCP-соединение. Поэтому отсутствие обычного вывода в терминал после запуска является нормальным поведением.
Для разработки и проверки можно использовать MCP CLI:
mcp dev src/server.pyКоманда запускает сервер и MCP Inspector. Inspector использует npx, поэтому Node.js должен быть доступен в PATH.
MCP tools
send_message
Отправляет текстовое сообщение в Telegram.
Параметры:
chat_id: string — ID чата
text: string — текст сообщенияПример:
chat_id: 123456789
text: Привет! Сообщение отправлено через MCP.В ответ сервер возвращает подтверждение отправки и message_id.
get_recent_messages
Получает последние доступные сообщения указанного чата.
Параметры:
chat_id: string — ID чата
limit: integer — количество сообщений, по умолчанию 10limit ограничивается диапазоном от 1 до 100.
Пример:
chat_id: 123456789
limit: 10Результат содержит отправителя и текст каждого доступного сообщения.
get_chat_info
Получает основную информацию о чате.
Параметры:
chat_id: string — ID чатаВ ответе отображаются доступные поля, включая ID, тип, название, username, имя и фамилию.
Как работает получение сообщений
Telegram Bot API не предоставляет боту отдельный метод для чтения произвольной истории чата. Для получения входящих сообщений сервер использует getUpdates.
get_recent_messages запрашивает до 100 последних доступных updates и затем фильтрует их по chat_id. Поэтому инструмент работает с сообщениями, которые Telegram предоставляет боту через очередь updates, а не с полной историей чата.
Это означает, что tool не является заменой Telegram-клиенту с доступом ко всей истории переписки. Для тестирования достаточно отправить сообщения после добавления бота в чат и затем вызвать get_recent_messages.
Важно: getUpdates не используется одновременно с активным webhook. Если для бота настроен webhook, сначала удалите его, чтобы long polling через getUpdates мог получать updates.
Пример сценария
Запустить MCP Inspector.
Подключить
src/server.py.Убедиться, что доступны:
send_messageget_recent_messagesget_chat_info
Вызвать
get_chat_infoдля проверки подключения к чату.Вызвать
send_messageи убедиться, что сообщение появилось в Telegram.Отправить несколько сообщений в Telegram.
Вызвать
get_recent_messagesи проверить полученный список сообщений.
Безопасность
Telegram Bot API token передаётся только через переменную окружения TELEGRAM_BOT_TOKEN.
Настоящий .env не должен попадать в Git. В репозитории хранится только .env.example без рабочего токена.
Ограничения
Бот не имеет доступа ко всей истории Telegram-чата через Bot API.
get_recent_messagesработает с доступными bot updates.В группах набор сообщений, которые бот получает, зависит от настроек приватности Telegram.
getUpdatesи webhook являются взаимоисключающими способами получения updates.
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
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to read, send, and organize Telegram messages and chats. Supports tools for listing chats, fetching messages, sending/reply, archiving, muting, and folder management.1MIT
- AlicenseAqualityDmaintenanceEnables AI agents to send and receive messages, media, and files on Telegram, and manage chats via a bot token.17MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Telegram Bot API, allowing them to send messages, forward messages, get bot information, and receive updates.273MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to send notifications and receive responses via Telegram.174MIT
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
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
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/polinenysh/telegram-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server