Skip to main content
Glama

mcp-telegram

MCP-сервер для Telegram — позвольте ИИ-ассистентам взаимодействовать с вашим аккаунтом Telegram

MCP Server Go Version License: MIT Go Report Card mcp-telegram MCP server

mcp-telegram MCP server


Возможности

  • Управление чатами: список, поиск, включение/выключение уведомлений

  • Сообщения: чтение, поиск, просмотр контекста, отправка, черновики, отложенная отправка, разрешение ссылок и резервное копирование сообщений

  • ИИ-суммаризация: краткое изложение переписки в чатах с использованием различных LLM-провайдеров

  • Безопасность: сессия хранится в macOS Keychain (на Linux/Windows используется файловое хранилище)

Установка

go install github.com/tolmachov/mcp-telegram@latest

Или соберите из исходного кода:

git clone https://github.com/tolmachov/mcp-telegram.git
cd mcp-telegram
make

Настройка

1. Получите учетные данные Telegram API

  1. Перейдите на my.telegram.org/apps

  2. Создайте приложение

  3. Скопируйте api_id и api_hash

2. Настройте окружение

Сохраните учетные данные (macOS Keychain; обычный JSON-файл по пути ~/.local/state/mcp-telegram/config.json с правами 0600 на Linux/Windows):

mcp-telegram config set TELEGRAM_API_ID 123456789
mcp-telegram config set TELEGRAM_API_HASH abcd1234efgh5678

Или используйте файл .env:

cp .env.example .env
# Edit .env with your credentials

3. Войдите в Telegram

mcp-telegram login --phone +1234567890

Вас попросят ввести код подтверждения, отправленный в ваш Telegram.

4. Настройте MCP-клиент

Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "telegram": {
      "command": "mcp-telegram",
      "args": ["run"],
      "env": {
        "TELEGRAM_API_ID": "your_api_id",
        "TELEGRAM_API_HASH": "your_api_hash"
      }
    }
  }
}

Claude Code

claude mcp add telegram -- /path/to/mcp-telegram run

Установите переменные окружения в файле .env или передайте их через --env.

Доступные инструменты

19 инструментов, доступных для MCP-клиентов. Сообщения идентифицируются непрозрачными строковыми дескрипторами ("42" для обычных, "s:42" для отложенных) — копируйте их дословно из вывода инструментов для последующих вызовов, никогда не парсите и не создавайте их вручную.

Инструмент

Описание

GetMe

Получить информацию о текущем пользователе

GetChats

Список всех чатов, групп и каналов

SearchChats

Нечеткий поиск чатов по названию

GetChatInfo

Получить подробную информацию о чате

GetMessages

Получить сообщения из чата (установите include_scheduled=true, чтобы также вывести отложенные сообщения в отдельном поле)

SearchMessages

Поиск внутри одного чата по подстроке с опциональными фильтрами по дате / отправителю / медиа / ветке

SearchMessagesGlobal

Поиск по подстроке во всех чатах с использованием постраничного вывода на основе курсора

GetMessageContext

Получить сообщения вокруг конкретного сообщения-якоря в хронологическом порядке

SendMessage

Отправка, ответ, отложенная отправка или создание черновика. mode = send (по умолчанию) / schedule / draft; reply_to_message_id работает в любом режиме; schedule_at в формате RFC3339

EditMessage

Редактирование сообщения; для отложенных сообщений schedule_at переносит время доставки в том же вызове

DeleteMessage

Удаление сообщения; дескрипторы "s:<id>" отменяют ожидающие отложенные сообщения

ForwardMessage

Пересылка доставленного сообщения (отложенные сообщения отклоняются)

ResolveMessageLink

Парсинг ссылок t.me / tg:// в chat_id, message_id и topic_message_id для ссылок на темы

MarkAsRead

Отметить один или несколько чатов как прочитанные

BackupMessages

Экспорт сообщений в текстовый файл (идемпотентно; перезаписывает целевой файл)

ResolveUsername

Преобразование @username в информацию о пользователе/чате

SetChatMute

Включение/выключение уведомлений чата (muted bool + опционально duration_seconds)

SummarizeChat

ИИ-суммаризация чата через sampling / Gemini / Ollama / Anthropic

GetMedia

Скачивание медиа (фото) из URI ресурса сообщения; возвращает контент изображения MCP

Доступные ресурсы

URI

Описание

telegram://me

Информация о текущем пользователе

telegram://chats

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

telegram://chat/{id}/info

Подробная информация о любом чате по ID через шаблон ресурса

telegram://chats/{id}

Последние 100 сообщений из закрепленного чата (динамический ресурс, только для текущих закрепленных чатов)

Ресурсы закрепленных чатов создаются динамически для каждого закрепленного чата и обновляются в фоновом режиме; клиенты получат resources/list_changed, когда набор изменится.

Доступные промпты

3 параметризованных промпта, которые MCP-клиенты предоставляют как слэш-команды или быстрые действия.

Промпт

Аргументы

Описание

daily-digest

periodday (по умолчанию) / week / month

Проходит по активным чатам и создает дайджест ключевых обновлений и задач для каждого чата. Только чтение.

chat-catchup

chat (обязательно) — ID / @username / название; periodday / week (по умолчанию) / month

Суммаризирует конкретный чат и перечисляет сообщения, требующие ответа. Только чтение.

find-and-reply

chat (обязательно), query (обязательно) — что искать, reply (обязательно) — текст ответа или инструкция

Ищет сообщение, показывает черновик ответа и отправляет только после явного подтверждения пользователем.

Примеры промптов

Вот несколько примеров промптов, которые можно использовать с ИИ-ассистентами:

Управление сообщениями

  • "Проверь, есть ли у меня важные непрочитанные сообщения в Telegram"

  • "Сделай краткую выжимку всех моих непрочитанных сообщений в Telegram"

  • "Прочитай и проанализируй мои непрочитанные сообщения, подготовь черновики ответов там, где это нужно"

  • "Проверь некритичные непрочитанные сообщения и дай мне краткий обзор"

  • "Найди сообщения со словом 'счет' в моем рабочем чате за прошлую неделю"

  • "Открой контекст вокруг этой ссылки Telegram: https://t.me/example/123"

Организация

  • "Проанализируй мои диалоги в Telegram и предложи структуру папок"

  • "Помоги мне классифицировать мои чаты в Telegram по важности"

  • "Найди все рабочие переписки и предложи, как их организовать"

Коммуникация

  • "Следи за конкретным чатом на предмет обновлений по теме [тема]"

  • "Напиши вежливый ответ на последнее сообщение в [чат]"

  • "Проверь, есть ли в моих чатах неотвеченные вопросы"

  • "Разреши эту ссылку на сообщение Telegram и покажи мне контекст ветки"

Резервное копирование и экспорт

  • "Сделай резервную копию моей переписки с [контакт] в файл"

  • "Экспортируй сообщения за последнюю неделю из [группа]"

  • "Сделай резервную копию, включая медиафайлы, чтобы ничего не пропустить"

Суммаризация чатов

Инструмент SummarizeChat поддерживает несколько LLM-провайдеров:

  • sampling (экспериментально): использует LLM MCP-клиента через MCP Sampling. Работает только с клиентами, поддерживающими sampling: VS Code, fast-agent, Continue. НЕ работает с Claude Desktop или Claude Code.

  • ollama: локальная LLM через Ollama — API-ключ не требуется

  • gemini: Google Gemini API

  • anthropic: Anthropic Claude API

Настраивается через переменные окружения:

SUMMARIZE_PROVIDER=ollama  # or: sampling, gemini, anthropic
SUMMARIZE_MODEL=           # provider-specific model name

Команды

# Run MCP server (used by MCP clients)
mcp-telegram run

# Login to Telegram
mcp-telegram login --phone +1234567890

# Logout and delete session
mcp-telegram logout

# Securely store config values (macOS Keychain / file on Linux)
mcp-telegram config set TELEGRAM_API_ID 123456789
mcp-telegram config set TELEGRAM_API_HASH abcd1234

# List stored keys
mcp-telegram config list

# Delete a stored value
mcp-telegram config delete TELEGRAM_API_ID

Разрешенные ключи: TELEGRAM_API_ID, TELEGRAM_API_HASH, ANTHROPIC_API_KEY, GEMINI_API_KEY.

Параметры конфигурации

Переменная окружения

Описание

По умолчанию

TELEGRAM_API_ID

Telegram API ID

Обязательно

TELEGRAM_API_HASH

Telegram API Hash

Обязательно

TELEGRAM_ALLOWED_PATHS

Разрешенные директории для бэкапов

Директория данных приложения ОС

SUMMARIZE_PROVIDER

LLM-провайдер для суммаризации

sampling (экспериментально)

SUMMARIZE_MODEL

Название модели

По умолчанию для провайдера

SUMMARIZE_BATCH_TOKENS

Токенов на пакет суммаризации

8000

OLLAMA_URL

URL API Ollama

http://localhost:11434

GEMINI_API_KEY

API-ключ Google Gemini

-

ANTHROPIC_API_KEY

API-ключ Anthropic

-

TELEGRAM_MEDIA_MAX_BYTES

Макс. байт для скачивания GetMedia за вызов (ограничение во избежание OOM при больших вложениях)

52428800 (50 МБ)

TELEGRAM_RATE_LIMIT_RPS

Лимит RPS для запросов истории к Telegram. Превышение порогов FLOOD_WAIT приостанавливает все инструменты.

0 (безопасное встроенное значение)

TELEGRAM_PINNED_REFRESH_SECONDS

Интервал опроса (сек) для отслеживания закрепленных чатов. 0 отключает отслеживание.

30

Деструктивные действия

Инструменты вроде DeleteMessage запрашивают подтверждение пользователя через MCP elicitation перед выполнением. Если ваш MCP-клиент не поддерживает elicitation, сервер полагается на инструкции LLM для подтверждения перед выполнением деструктивных операций.

Хранение сессии

  • macOS: Безопасно хранится в Keychain.

  • Linux/Windows: Хранится в ~/.local/state/mcp-telegram/session.json с правами доступа 0600. Файл в открытом виде — доверяйте учетной записи пользователя, в которой он находится, и отдавайте предпочтение macOS при работе с конфиденциальными аккаунтами.

Значения конфигурации, установленные через mcp-telegram config set (API-ключи, учетные данные Telegram), используют тот же бэкенд: Keychain на macOS, обычный JSON на Linux/Windows.

Лицензия

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

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

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