eduard256

max-channel-mcp

Community eduard256
Updated

max-channel-mcp

MCP-сервер для публикации в каналы мессенджера MAX.

Подключается к Claude Desktop, Claude Code и другим клиентам, поддерживающимModel Context Protocol. После настройки ассистент может публиковать в вашем каналетекст, фотографии, видео, аудио, документы и геометки — просто по вашей просьбе.

Вы:  Опубликуй в канале анонс с картинкой из ~/Downloads/banner.png
     и кнопкой на сайт.

ИИ:  [вызывает max_send_photos]
     Опубликовано. Ссылка: https://max.ru/ваш_канал/AaApSIDNYGM

Возможности

  • Публикация текста с разметкой Markdown или HTML
  • Альбомы до 10 фотографий, видео, смешанные альбомы
  • Аудио, документы, геометки
  • Кнопки под сообщениями — ссылки и callback
  • Изменение и закрепление опубликованных сообщений
  • Чтение истории канала

Удаление сообщений намеренно не реализовано: ассистент не должен иметь возможностистереть содержимое канала.

Требования

  • Node.js 18.18 или новее
  • Бот, созданный через MasterBot
  • Права администратора у бота в вашем канале

Установка

Claude Code

claude mcp add max-channel \
  --scope local \
  --env MAX_BOT_TOKEN=ваш_токен \
  --env MAX_CHAT_ID=-10000000000001 \
  -- npx -y max-channel-mcp

Область local держит токен в вашем личном конфиге, а не в файле проекта.

Claude Desktop

Добавьте в claude_desktop_config.json:

{
  "mcpServers": {
    "max-channel": {
      "command": "npx",
      "args": ["-y", "max-channel-mcp"],
      "env": {
        "MAX_BOT_TOKEN": "ваш_токен",
        "MAX_CHAT_ID": "-10000000000001"
      }
    }
  }
}

Путь к файлу настроек:

  • macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows — %APPDATA%\Claude\claude_desktop_config.json

Из исходников

git clone https://github.com/eduard256/max-channel-mcp.git
cd max-channel-mcp
npm install
npm run build

Затем укажите в конфиге node /полный/путь/dist/index.js вместо npx.

Настройка

Как получить токен

Откройте MasterBot, создайте бота по инструкции —в ответ придёт токен.

Как узнать идентификатор канала

  1. Добавьте бота в канал администратором.
  2. Выполните запрос:
curl -H "Authorization: ВАШ_ТОКЕН" https://platform-api2.max.ru/chats
  1. Возьмите поле chat_id нужного канала. Обычно это отрицательное число.

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

Переменная Обязательна Назначение
MAX_BOT_TOKEN да Токен бота от MasterBot
MAX_CHAT_ID да Идентификатор канала для публикации
MAX_CA_CERT_PATH нет Свой корневой сертификат вместо встроенного
MAX_DISABLE_CUSTOM_CA нет 1 — не подключать встроенный сертификат

Инструменты

Инструмент Что делает
max_send_text Текстовое сообщение
max_send_photos От 1 до 10 фотографий с общей подписью
max_send_video Одно или несколько видео
max_send_media_group Фотографии и видео в одном сообщении
max_send_audio Аудиофайл
max_send_file Документ
max_send_location Точка на карте
max_edit_message Изменить текст опубликованного сообщения
max_pin_message Закрепить сообщение
max_unpin_message Снять закрепление
max_get_messages Последние сообщения канала
max_get_channel_info Сведения о канале и правах бота

Файлы передаются путями на диске. Кнопки — необязательный параметр кнопкиу всех публикующих инструментов.

Ограничения MAX

Проверено на практике. В официальной документации эти правила описаны неполно.

Правило Подробности
Длина текста не более 4000 символов
Фотографии до 10 в одном сообщении
Видео несколько в одном сообщении допустимо
Аудио ровно одно, ни с чем не сочетается
Документ ровно один, ни с чем не сочетается
Геометка ровно одна, ни с чем не сочетается
Фото + видео единственное разрешённое сочетание разных типов
Кнопки добавляются к любому сообщению
Разметка работает только при явно указанном формате

Смешивание аудио, документов и геометок с другими вложениями сервер отклоняетс ошибкой вида Must be only one audio attachment in message.

Сертификаты

Серверы MAX используют сертификат удостоверяющего центра«Russian Trusted Root CA» (Минцифры РФ). Этого корня нет в стандартномхранилище Node.js, поэтому без дополнительной настройки соединение обрываетсяс ошибкой unable to get local issuer certificate.

Чтобы сервер работал на любой машине без ручной настройки, корневой сертификатвключён в состав пакета — файл certs/russian_trusted_root.pem.

Как это устроено:

  • сертификат применяется только к доменам max.ru, oneme.ru, okcdn.ruи mycdn.me — остальной трафик проверяется обычным образом;
  • он добавляется к системным корням, а не заменяет их;
  • при запуске сверяется контрольная сумма SHA-256; если файл подменён,сервер не стартует;
  • ничего не устанавливается в систему — настройка действует только внутрипроцесса сервера.

Отпечаток встроенного сертификата:

d26d2d0231b7c39f92cc738512ba54103519e4405d68b5bd703e9788ca8ecf31

Сверить можно с опубликованным на gosuslugi.ru.

Если корень уже установлен в вашей системе, встроенный можно отключить:MAX_DISABLE_CUSTOM_CA=1. Свой сертификат подключается через MAX_CA_CERT_PATH.

Диагностика

Сервер пишет диагностику в стандартный поток ошибок. При запуске выводитсясостояние TLS и результат проверки подключения.

Сообщение Причина и решение
не задана переменная MAX_BOT_TOKEN Проверьте env в конфиге клиента
Токен отклонён Токен устарел или скопирован не полностью — перевыпустите через MasterBot
Нет доступа к каналу Бот не добавлен в канал или не является администратором
Ошибка проверки сертификата Убедитесь, что не задана MAX_DISABLE_CUSTOM_CA=1
Не удалось загрузить изображение Проверьте путь и формат файла
Файл не найден Указывайте абсолютные пути

Известная проблема библиотеки

Сервер использует официальную библиотеку@maxhub/max-bot-api.В версии 0.2.5 загрузка изображений и документов по пути к файлу или через потокне работает на Node.js 21 и новее: в FormData подставляется объект, которыйсовременный undici не распознаёт как файл, и сервер отвечает NO_IMAGE.

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

Лицензия

MIT

MCP Server · Populars

MCP Server · New

    eduard256

    Ozon MCP Server

    MCP Server for Ozon marketplace - search products, get details, prices and delivery info

    Community eduard256
    TalkToHumans

    LinkedIn MCP Server

    Safe LinkedIn MCP server for Claude, ChatGPT, Cursor & Codex. Your Agents read LinkedIn DMs, search your network, enrich profiles and draft messages you send.

    Community TalkToHumans
    bex-co

    Beancount.io Backend

    💰 Double-entry bookkeeping made easy — plain-text accounting for humans and AI agents. Polished iOS & Android app built with React Native + Expo.

    Community bex-co
    nkapila6

    mcpsurfr

    Local web search MCP server, formerly mcp-local-rag. Multi-engine deep research with on-device re-ranking. ✨ no API keys ✨

    Community nkapila6
    convex

    mcp.ts

    The open-source reactive database for app developers

    Community convex