Skip to main content
Glama
raidenyn

Telegram MCP Server

by raidenyn

Telegram MCP Server

MCP-сервер для извлечения истории чатов Telegram, включая текстовые сообщения, фото и документы. Использует GramJS (MTProto userbot) для полного доступа к личным чатам.

Требования

Установка

npm install
cp .env.example .env
# Заполнить TELEGRAM_API_ID и TELEGRAM_API_HASH в .env

Первый запуск — аутентификация

npm run auth

Введи номер телефона → код из Telegram → пароль 2FA (если есть). Сессия сохранится в telegram.session.

Сборка и запуск

npm run build
npm start

Транспорты

Сервер поддерживает два режима работы, выбираемых переменной TRANSPORT:

Переменная

Значение

Описание

TRANSPORT=stdio

по умолчанию

Локальный запуск через stdin/stdout, авторизация не нужна (процесс изолирован)

TRANSPORT=http

сетевой режим

HTTP-сервер на порту PORT (по умолчанию 3000), требуется AUTH_TOKEN

stdio (по умолчанию)

Сервер общается с клиентом через stdin/stdout. Безопасность обеспечивается изоляцией процесса — доступ имеет только тот, кто его запустил.

HTTP с Bearer token авторизацией

Для сетевого доступа (например, сервер на удалённой машине). Каждый запрос должен содержать заголовок:

Authorization: Bearer <ваш_токен>

Без валидного токена сервер вернёт 401 Unauthorized.

Сгенерировать токен:

node -e "console.log(crypto.randomUUID())"

Настроить в .env:

TRANSPORT=http
PORT=3000
AUTH_TOKEN=ваш-секретный-токен

Подключение к Claude Code / Claude Desktop

Claude Code — stdio (локально)

claude mcp add telegram-mcp -- node /path/to/telegram-mcp-server/dist/index.js

Claude Code — HTTP (удалённый сервер)

claude mcp add telegram-mcp \
  --transport http \
  --url http://your-server:3000/mcp \
  --header "Authorization: Bearer ваш-секретный-токен"

Claude Desktop (config)

{
  "mcpServers": {
    "telegram": {
      "command": "node",
      "args": ["/path/to/telegram-mcp-server/dist/index.js"],
      "env": {
        "TELEGRAM_API_ID": "your_id",
        "TELEGRAM_API_HASH": "your_hash",
        "TELEGRAM_SESSION_PATH": "/path/to/telegram.session",
        "DATA_DIR": "/path/to/data"
      }
    }
  }
}

Docker

Сборка

docker build -t telegram-mcp .

Запуск — stdio

docker run --rm -i \
  -e TELEGRAM_API_ID=12345 \
  -e TELEGRAM_API_HASH=abc123 \
  -v ./telegram.session:/app/telegram.session \
  -v ./data:/app/data \
  telegram-mcp

Запуск — HTTP с авторизацией

docker run -d \
  -e TRANSPORT=http \
  -e AUTH_TOKEN=ваш-секретный-токен \
  -e TELEGRAM_API_ID=12345 \
  -e TELEGRAM_API_HASH=abc123 \
  -v ./telegram.session:/app/telegram.session \
  -v ./data:/app/data \
  -p 3000:3000 \
  telegram-mcp

Инструменты (Tools)

Tool

Описание

telegram_list_chats

Список всех чатов

telegram_find_chat

Поиск чата по имени/username/ID

telegram_get_history

Получить сообщения (без скачивания медиа)

telegram_sync_chat

Основной — полная синхронизация чата с медиа

telegram_download_media

Скачать медиа из конкретного сообщения

telegram_sync_status

Статус последней синхронизации

telegram_list_media

Список скачанных медиафайлов

Типичный workflow

1. telegram_find_chat("Мама")           → получаем chat_id
2. telegram_sync_chat(chat_id)          → скачиваем всё
3. telegram_list_media(chat_id, "photo") → список фотографий
4. Загружаем файлы из data/raw/{chat_id}/media/ в Claude для анализа

Через 2 недели:

telegram_sync_chat(chat_id)  → скачает только новые сообщения

Структура данных

data/
└── raw/
    └── {chat_id}/
        ├── messages.json      # все сообщения
        ├── media_index.json   # индекс медиафайлов
        ├── sync_state.json    # состояние синхронизации
        └── media/             # скачанные файлы
            ├── photo_123.jpg
            ├── doc_456.pdf
            └── ...

Безопасность

  • Сессия Telegram хранится в файле (добавлен в .gitignore)

  • API credentials в .env (добавлен в .gitignore)

  • HTTP транспорт защищён Bearer token авторизацией

  • Данные хранятся только локально

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/raidenyn/telegram-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server