Telegram MCP Server
Telegram MCP Server
MCP-сервер для Telegram-канала. Предоставляет read-only доступ к постам, комментариям, реакциям и агрегированной статистике через MCP-протокол (Streamable HTTP). Работает по MTProto (GramJS), поэтому видит всю историю канала, а не только новые сообщения.
Сервер физически не умеет писать: используются только read-методы MTProto (messages.GetHistory, messages.GetReplies, messages.Search, channels.GetFullChannel, messages.GetMessageReactionsList).
Инструменты
Инструмент | Описание |
| Метаданные канала: название, username, id, дата создания, описание, подписчики, закреплённый пост, доступные реакции, связанная группа обсуждений |
| Последние посты: дата, текст в Markdown, просмотры, форварды, число комментариев, реакции, медиа, ссылка t.me |
| Один или несколько постов по id с полным текстом, медиа-метаданными и результатами опроса |
| Ветка комментариев поста из связанной группы, с |
| Поиск по тексту (индекс Telegram) в постах или в комментариях |
| Разбивка реакций по эмодзи; опционально — кто именно поставил |
| Агрегаты: средние/медианные просмотры, реакции по эмодзи, комментарии, форварды, engagement rate, активность по дням/часам, топ-посты |
| Самые активные участники обсуждений: число комментариев, средняя длина, полученные реакции, период активности |
Аргумент channel во всех тулах опционален — если не передан, используется TG_CHANNEL из .env.
Требования
Node.js 18+
api_id/api_hashс https://my.telegram.org → API development toolsTelegram-аккаунт, который видит канал (для публичного канала подписка не обязательна)
Установка
npm install
cp .env.example .env
# указать TG_API_ID, TG_API_HASH, API_KEY, TG_CHANNEL
npm run login # одноразовая авторизация → выведет TG_SESSION
# скопировать TG_SESSION=... в .envКонфигурация (.env)
Переменная | Назначение |
| Порт MCP-сервера (default |
| Ключ доступа — клиенты передают в |
| api_id с my.telegram.org |
| api_hash с my.telegram.org |
| Строка сессии из |
| Канал по умолчанию: |
| Сек: автоматически пересиживать |
Запуск
npm start # прод
npm run dev # с автоперезапуском (--watch)MCP endpoint:
POST http://<host>:<PORT>/mcp(требует API-ключ)Health check:
GET http://<host>:<PORT>/health— проверяет соединение с Telegram и показывает аккаунт
Подключение MCP-клиента
{
"mcpServers": {
"telegram": {
"url": "http://<host>:<PORT>/mcp",
"headers": { "Authorization": "Bearer <API_KEY>" }
}
}
}Замечания
TG_SESSION= полный доступ к аккаунту. Держите его в секрете, не коммитьте, используйте отдельный аккаунт под аналитику.Комментарии существуют только если у канала подключена группа обсуждений. Без неё
get_post_commentsиget_top_commentersвернут понятную ошибку.Числовые id (
-100...) резолвятся только если чат уже известен сессии; надёжнее указывать@username.Флуд-лимиты: тяжёлые тулы (
get_channel_stats,get_top_commenters) листают историю страницами. Не выставляйте лимиты в максимум без необходимости;FLOOD_WAITкорочеTG_FLOOD_SLEEP_THRESHOLDпересиживается автоматически.Форматирование постов конвертируется из Telegram entities в Markdown:
**bold**,_italic_,`code`,```pre```,[text](url),||spoiler||,~~strike~~, цитаты — как markdown-blockquote.
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/alexander-surf/TG_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server