Skip to main content
Glama
Prgebish

mcp-telegram

by Prgebish

mcp-telegram

MCP Server Go License: MIT

MCP-сервер, который подключает ИИ-ассистентов, таких как Claude, к вашему реальному аккаунту Telegram через User API (MTProto). Это не бот — Claude читает и отправляет сообщения от вашего имени.

Создан с использованием gotd/td и официального MCP Go SDK.

Условия использования Telegram API: Этот проект использует Telegram User API. Вы должны получить собственные api_id и api_hash на сайте my.telegram.org и соблюдать Условия использования Telegram API. Неправомерное использование User API (спам, массовая рассылка, парсинг) может привести к блокировке вашего аккаунта. Вы несете единоличную ответственность за то, как используете этот инструмент.

Содержание


Related MCP server: Telegram MCP Server

Возможности

Инструмент

Что он делает

Необходимое разрешение

tg_me

Возвращает информацию о текущем аккаунте

tg_dialogs

Выводит список диалогов, доступных в белом списке ACL

tg_history

Получает историю сообщений с пагинацией, фильтрацией по дате и загрузкой медиа

read

tg_search

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

read

tg_send

Отправляет текстовое сообщение или файл, с опциональным ответом на сообщение

send

tg_forward

Пересылает сообщения из одного чата в другой

read + send

tg_draft

Сохраняет черновик сообщения (не отправляет)

draft

tg_mark_read

Помечает чат как прочитанный

mark_read

Дополнительные возможности:

  • Отправка файлов и фотографий

  • Пересылка сообщений между чатами

  • Ответы на конкретные сообщения

  • Загрузка фотографий и документов из истории сообщений

  • Фильтрация истории по диапазону дат (since / until)

  • Типизированные ссылки на собеседников (user:ID, chat:ID, channel:ID) для предотвращения коллизий ID

  • «Ленивое» разрешение собеседников — позволяет избежать ошибок FLOOD_WAIT при запуске

  • Глобальное ограничение частоты запросов на уровне RPC

Что можно делать с помощью этого инструмента

После подключения вы можете просить своего ИИ-ассистента о следующем:

Быть в курсе сообщений

  • «Проверь мои непрочитанные сообщения в Telegram и сделай краткую сводку»

  • «Что написала @alice за последние 24 часа?»

  • «Покажи мне сообщения из чата Dev Team с понедельника»

Отвечать и общаться

  • «Подготовь черновик ответа на последнее сообщение от @bob — пока не отправляй»

  • «Отправь @alice сообщение 'звучит неплохо, давай встретимся в 15:00'»

  • «Ответь на сообщение 1234 в чате проекта моим отзывом»

Управлять входящими

  • «Пометь все сообщения в новостном канале как прочитанные»

  • «В каких из моих разрешенных чатов есть непрочитанные сообщения?»

  • «Загрузи фотографии из сегодняшних сообщений в чате дизайна»

Исследовать и анализировать

  • «Найди все сообщения с упоминанием деплоя за последнюю неделю»

  • «Обобщи обсуждение в командном чате за вчерашний день»

  • «Какие файлы были отправлены в канал проекта в этом месяце?»


Сравнение с chaindead/telegram-mcp

mcp-telegram

chaindead/telegram-mcp

Контроль доступа

Белый список ACL (запрещено по умолчанию) с детальными правами для каждого чата

Полный доступ ко всем чатам

Адресация собеседников

Типизированные ссылки (user:ID, chat:ID, channel:ID)

Только числовые ID (склонны к коллизиям)

Конфигурация

YAML-конфиг с поддержкой переменных окружения

Флаги CLI

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

«Ленивое» разрешение собеседников (без массовых вызовов API)

«Жадное» разрешение (риск FLOOD_WAIT)

Ограничение частоты

Встроенное middleware с токенами

Нет

Поддержка файлов

Отправка файлов, фото; загрузка медиа из истории

Только текст

Поддержка ответов

Да

Нет

Фильтрация по дате

Да

Нет


Быстрый старт

Предварительные требования

  • Go 1.26+

  • Аккаунт Telegram

  • Учетные данные API с my.telegram.org (api_id и api_hash)

Установка

Homebrew (macOS / Linux):

brew install Prgebish/tap/mcp-telegram

NPX (установка не требуется):

npx @prgebish/mcp-telegram serve --config config.yaml

Готовые бинарные файлы (macOS / Linux / Windows):

Скачайте с GitHub Releases.

Go install:

go install github.com/Prgebish/mcp-telegram/cmd/mcp-telegram@latest

Из исходного кода:

git clone https://github.com/Prgebish/mcp-telegram.git
cd mcp-telegram
go build ./cmd/mcp-telegram

Это создаст файл mcp-telegram (или mcp-telegram.exe в Windows) в текущей директории.

Аутентификация

Запустите команду аутентификации один раз, чтобы создать файл сессии. Вас попросят ввести номер телефона, код подтверждения и (если включено) пароль двухфакторной аутентификации.

macOS / Linux:

export TG_APP_ID=12345
export TG_API_HASH="your_api_hash"

mcp-telegram auth --config config.yaml

Windows (PowerShell):

$env:TG_APP_ID = "12345"
$env:TG_API_HASH = "your_api_hash"

mcp-telegram.exe auth --config config.yaml

Windows (cmd):

set TG_APP_ID=12345
set TG_API_HASH=your_api_hash

mcp-telegram.exe auth --config config.yaml

Настройка

Создайте файл config.yaml:

telegram:
  app_id: ${TG_APP_ID}
  api_hash: ${TG_API_HASH}
  session_path: ~/.config/mcp-telegram/session.json

acl:
  chats:
    - match: "@username"
      permissions: [read, draft, mark_read]
    - match: "user:123456789"
      permissions: [read, send]
    - match: "channel:2225853048"
      permissions: [read, mark_read]

limits:
  max_messages_per_request: 50
  max_dialogs_per_request: 100
  rate:
    requests_per_second: 2.0
    burst: 3

logging:
  level: info

Переменные окружения в синтаксисе ${...} раскрываются во время загрузки.

Настройка клиента

Сервер общается через stdio — ваш MCP-клиент запускает процесс и управляет им.

Claude Code (CLI — добавьте через команду):

claude mcp add telegram -- /path/to/mcp-telegram serve --config /path/to/config.yaml

Claude Desktop / Claude Code (~/.claude.json или claude_desktop_config.json):

{
  "mcpServers": {
    "telegram": {
      "command": "/path/to/mcp-telegram",
      "args": ["serve", "--config", "/path/to/config.yaml"],
      "env": {
        "TG_APP_ID": "12345",
        "TG_API_HASH": "your_api_hash"
      }
    }
  }
}

Cursor (Настройки > MCP Servers > Добавить):

{
  "telegram": {
    "command": "/path/to/mcp-telegram",
    "args": ["serve", "--config", "/path/to/config.yaml"],
    "env": {
      "TG_APP_ID": "12345",
      "TG_API_HASH": "your_api_hash"
    }
  }
}

Конфигурация

ACL

ACL работает по принципу «запрещено по умолчанию». Доступны только те чаты, которые явно указаны в acl.chats, и только с теми правами, которые вы укажете.

Поддерживаемые шаблоны сопоставления:

Шаблон

Пример

Описание

@username

@johndoe

Поиск по имени пользователя Telegram (регистронезависимо)

+phone

+79001234567

Поиск по номеру телефона

user:ID

user:123456789

Поиск пользователя по числовому ID

chat:ID

chat:987654321

Поиск группового чата по числовому ID

channel:ID

channel:2225853048

Поиск канала или супергруппы по числовому ID

Типы разрешений: read, send, draft, mark_read.

Если один и тот же собеседник соответствует нескольким правилам (например, через @username и user:ID), права объединяются — они никогда не перекрывают друг друга.

Ограничение частоты запросов (Rate limiting)

Секция limits.rate настраивает глобальный «ведерный» алгоритм (token bucket), который охватывает все вызовы Telegram RPC:

  • requests_per_second — устойчивая скорость (по умолчанию: 2.0)

  • burst — максимальный размер всплеска (по умолчанию: 3)

Загрузка медиа

media:
  download: [photo, document, video, voice, audio]
  directory: ~/telegram-media
  allowed_upload_dirs:
    - ~/Documents
    - ~/Downloads

При настройке tg_history будет автоматически загружать медиафайлы в указанную директорию. Параметр download_to может переопределить путь, но только в пределах media.directory или ее поддиректорий.

allowed_upload_dirs ограничивает директории, из которых tg_send может считывать файлы. Отправка файлов отключена, если это не настроено.


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

  • ACL «запрещено по умолчанию» — ни один чат не доступен, если он явно не добавлен в белый список

  • Границы файловой системыtg_send может читать файлы только из allowed_upload_dirs; download_to ограничен поддиректориями media.directory

  • Права доступа к файлу сессии — принудительно устанавливаются в 0600 (чтение/запись только владельцем)

  • Отсутствие логирования секретов — API-хэши, токены сессий и ключи авторизации никогда не записываются в логи

  • Отсутствие доступа к хэшам доступа — внутренние хэши доступа Telegram удаляются из всех выходных данных инструментов

  • Ограничение частоты запросов — предотвращает случайное злоупотребление API

  • Локальный часовой пояс — фильтры дат используют часовой пояс вашей системы, а не UTC


Лицензия

MIT


Если вы находите этот проект полезным, пожалуйста, поставьте звезду — это помогает другим узнать о нем.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A safe-by-default MCP server for real Telegram accounts powered by TDLib, enabling AI agents to read and act on your account with read-only mode and human approval for destructive actions.
    7
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    MCP server that acts as a gateway to Telegram, providing AI-optimized tools for messaging, search, and chat management via MTProto. Supports multi-user authentication with QR login and HTTP/stdio transports.
    8
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that automates a single Telegram user account via the Telegram user API, enabling chat listing, reading/sending messages, searching, and additional actions through natural language.
    12 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that gives AI agents full access to a personal Telegram account via MTProto, enabling chat reading, history search, messaging, media handling, and automations.
    79
    MIT