Я хотел подключить Telegram к Claude и ChatGPT так, чтобы можно было массово подгружать сообщения из каналов в контекст и работать с ними прямо из AI-инструмента. Казалось бы, задача простая: взять готовый MCP-сервер, подключить и пользоваться. На практике пришлось немного допилить чужой проект.


Что не хватало из коробки

В качестве основы я взял telegram-mcp.

После подключения выяснилось, что для реальной работы не хватает нескольких вещей:

  • не распознаются расшаренные папки Telegram;
  • поиск чатов по умолчанию ограничен 20 результатами;
  • нет глобального поиска по сообщениям.

Раньше такой набор недочетов означал бы полноценное мини-исследование: нужно разобраться в чужом Python-коде, понять, как работает MTProto, и только потом что-то править. Сейчас на это ушло буквально пару часов — Codex помог быстро дотащить изменения до рабочего состояния и даже оформить PR.


Базовая установка Telegram MCP

Сначала нужно развернуть сам сервер:

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

Дальше поставить uv и зависимости:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

После этого нужно сгенерировать session string и подготовить .env:

uv run session_string_generator.py
cp .env.example .env

И наконец — создать свое Telegram-приложение на my.telegram.org/apps, получить TELEGRAM_API_ID и TELEGRAM_API_HASH и прописать их в .env.


Как подключить к Claude

В claude_desktop_config.json нужно добавить MCP-сервер:

"mcpServers": {
  "telegram-mcp": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/telegram-mcp",
      "run",
      "main.py"
    ]
  }
}

После перезапуска Claude Desktop сервер должен появиться в Customize => Connectors => Desktop.

И дальше уже можно делать вполне прикладные запросы вроде: “Напиши саммари по 20 последним сообщениям из Telegram”.


Почему с ChatGPT сложнее

У ChatGPT проблема в том, что он не умеет работать с локальными MCP-серверами так же напрямую, как Claude Desktop. Теоретически можно поднять публичный MCP-сервер и подключить его через свое приложение для ChatGPT, но это означает выводить наружу сервис, который имеет доступ к личному Telegram-аккаунту. Даже с авторизацией это выглядит как плохая идея.

Поэтому более практичный путь — использовать сторонний клиент, который умеет и в модели OpenAI, и в локальные MCP-серверы.


Вариант с OpenCode

В качестве такого клиента подойдет OpenCode.

В ~/.config/opencode/opencode.json можно добавить локальный MCP так:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "telegram": {
      "type": "local",
      "command": ["uv", "--directory", "/Users/michaelledin/Documents/projects/telegram-mcp", "run", "main.py"],
      "enabled": true
    }
  }
}

После этого остается подключить OpenAI-аккаунт через /connect, а затем проверить через /mcp, что сервер действительно в статусе connected.


Что в этом самое интересное

Для меня важнее всего здесь не сам Telegram MCP, а скорость, с которой теперь можно закрывать такие инфраструктурные задачи. Еще недавно на подобную доработку чужого проекта уходила бы неделя. Сейчас это обычная вечерняя инженерная задача.