MCP Hub
Back to servers

Telegram MCP Server

Enables interaction with Telegram chat history, including text, photos, and documents, via the GramJS MTProto userbot. It provides tools for searching chats, syncing message history, and downloading media files for local analysis.

Updated
Feb 8, 2026

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 авторизацией
  • Данные хранятся только локально

Reviews

No reviews yet

Sign in to write a review