Skip to content
github-actions[bot] edited this page Oct 15, 2026 · 1 revision

MCP-сервер

Эта страница нужна, если вы хотите, чтобы с вашим MAX работало AI-приложение без терминала, например Claude Desktop или чат в Cursor. Она нужна и тогда, когда вы хотите, чтобы само приложение спрашивало вас перед каждым действием. Прочитав её, вы подключите приложение к аккаунту, выберете, что агенту можно делать, и сможете пользоваться готовыми запросами и упоминанием чатов.

Сначала несколько терминов:

  • MCP (Model Context Protocol) — стандартный способ, которым AI-приложение пользуется внешними инструментами. Приложение — это MCP-клиент, max personal mcp — MCP-сервер.
  • Инструмент — одно действие, которое сервер предлагает агенту, например «прочитать» или «записать».
  • Готовый запрос (prompt) — готовая задача, которую приложение показывает как команду, например «разобрать непрочитанное».
  • Ресурс — данные, которые приложение может приложить к разговору, например один чат.
  • Профиль — один набор настроек и один вход в max; см. профили.

Сервер ставится вместе с max, отдельно ничего устанавливать не нужно. По умолчанию он общается с приложением через stdin и stdout. max personal mcp --http --public-url вместо этого отдаёт инструменты на локальном порту за вашим HTTPS-туннелем.

Нужен ли он вам

AI-агенту, который умеет запускать команды в терминале (например, Claude Code, Codex, агенту Cursor или Gemini CLI), MCP не нужен. Он вызывает max напрямую, а как это делать, узнаёт из навыка, который печатает max skill show. MCP нужен:

  • приложениям без терминала — Claude Desktop, чату Cursor;
  • тем, кто хочет, чтобы приложение применяло права профиля к каждой операции.

ChatGPT и Claude в браузере подключаются через max personal mcp --http — см. подключение из браузера или телефона.

Что даёт сервер

Что Для чего
Три инструмента Найти команду, затем выполнить её как чтение или запись
Шесть готовых запросов Непрочитанное, ответ, поиск, обзор, открытые задачи, связи разговоров
Чаты по @ Приложить к разговору чат и его последние сообщения
Навык, max://skill Тот же текст, что печатает max skill show
Графики Статистика чата в JSON или картинкой PNG
Права Профиль решает, какие команды видит агент

Подключение

Сначала выполните max personal setup --agent none в локальном терминале. Это вход в ваш аккаунт MAX; через MCP вход не делается. max personal mcp setup затем отдельно подключает приложение. Агент может прочитать max skill show ещё до входа: там объяснены оба шага.

Codex или Claude Code на этом компьютере:

max personal mcp doctor                 # проверяет запуск MCP и список инструментов
max personal mcp setup codex           # добавляет сервер в Codex
max personal mcp setup claude-code     # или в Claude Code

Для другого профиля сначала ставьте его имя: max work mcp setup codex. Команда установки использует само приложение и не трогает другие его серверы. Если запись с тем же именем уже есть, удалите её в приложении перед повторной установкой. Если профиль предлагает инструменты записи, сначала проверьте его права, затем повторите команду с --allow-writes. Этот флаг только подтверждает установку: права профиля он не меняет.

mcp doctor не читает сообщения и не входит в MAX. Успешная проверка значит, что MCP запускается и отдаёт список инструментов, но не значит, что сессия действительна. Число potential_writes показывает инструменты без пометки «только чтение». Для браузера и телефона нужно отдельное удалённое подключение (подключение из браузера или телефона).

Claude Code вручную:

claude mcp add max -- max personal mcp

С профилем — он идёт первым словом, как в любой команде:

claude mcp add max-work -- max work mcp

Claude Desktop, Cursor и другие приложения — готовую запись для их файла настроек печатает сам max:

max personal mcp config                  # права текущего профиля
max work mcp config
{
  "mcpServers": {
    "max": {
      "type": "stdio",
      "command": "C:\\Program Files\\nodejs\\node.exe",
      "args": ["C:\\Users\\you\\AppData\\Roaming\\npm\\node_modules\\@wirecat\\max-cli\\dist\\bin\\max.js", "mcp"]
    }
  }
}

Проверьте права профиля, прежде чем подключать агента. Затем вставьте запись в mcpServers файла настроек приложения. У Claude Desktop это %APPDATA%\Claude\claude_desktop_config.json на Windows и ~/Library/Application Support/Claude/claude_desktop_config.json на macOS, у Cursor — ~/.cursor/mcp.json. Сама команда ничего не записывает.

Пути в записи полные, потому что приложение, запущенное не из терминала, не видит PATH терминала. На Windows max — это файл max.cmd, который приложение без оболочки запустить не может. Флаги --permission и --yes переносятся в запись. Переменные MAX_CONFIG_DIR, MAX_STATE_DIR, MAX_CACHE_DIR, MESSAGING_STORE и XDG_RUNTIME_DIR попадают в неё, только если заданы; токен — никогда. MAX_CACHE_DIR относится только к прежнему кэшу, а общую локальную копию сообщений задаёт MESSAGING_STORE. Команда переносит путь к этой копии и каталог связи с ключницей, чтобы приложение, запущенное с рабочего стола, использовало тот же вход и сохранённые сообщения, что и терминал.

Если Node поставлен через nvm, fnm или Volta, путь к нему относится к одной версии Node. После смены версии запустите max personal mcp config снова. Из npx команда отказывается работать: npx очищает свой кэш, и путь перестанет существовать.

⚠ Переменные MAX_CONFIG_DIR, MAX_STATE_DIR, MAX_CACHE_DIR меняют, где искать вход. Если в терминале они заданы, а для MCP-приложения нет (или наоборот), сервер ответит «нет сессии», хотя max в терминале работает. Задайте им одно и то же — или не задавайте нигде.

У бота свой сервер, max <имя> bot mcp; см. бот для агента. Доступ у него определяет permissions профиля бота. Его флаги --allow-send, --allow-delete и --allow-moderate принимаются с предупреждением и ничего не включают.

Что может агент

Доступ определяют permissions профиля (права доступа в справочнике настроек). deny запрещает команду, readonly разрешает только чтение, а ask и allow разрешают запись, которую попросил агент. Форм подтверждения на сервере нет: одобрение настраивается в приложении агента. В терминале команда на уровне ask по-прежнему требует ответа или явного флага. --permission ключ=уровень меняет уровень только для процесса сервера. Профиль можно закрепить через MAX_PROFILE_LOCK.

Инструменты

Инструмент Для чего
max_tools_search Найти команду по задаче; получить её аргументы и признак записи
max_read Выполнить найденную команду чтения
max_write Выполнить найденную команду записи; его нет, если профиль не разрешает ни одной

Оба инструмента выполнения принимают {command, arguments}. Берите путь команды из ответа поиска:

{ "command": "messages list", "arguments": { "chat": "<id>", "limit": 5 } }

Поиск {"query":"stats messages show"} описывает подсчёт сообщений, stats chats show — активность чата. status читает состояние профиля без подключения. Поиск показывает только то, что разрешают права профиля и что умеет MAX; недоступные команды не выполняются. Прежних инструментов вида max_messages_list и max_status больше нет. Для ботов действует тот же подход: max_bot_tools_search, max_bot_read, max_bot_write; команда внутри вызова пишется без bot, например messages send.

Ответы сохраняют поля и ограничения своих команд. Схема общего результата открытая: дополнительные поля мессенджера разрешены, и это не обещание проверки каждого поля. Текст сообщений — данные, а не инструкции агенту. Схемы, пределы и правила повтора — в описании поведения max в скриптах.

Команды и чаты по @

Сервер даёт шесть готовых запросов — в Claude Code это команды через /:

Запрос Аргумент Что делает агент
catch-up kind, mode — необязательно вызывает max_read (command: "inbox"); mode — unread (по умолчанию), new или момент; kind выбирает вид чата; отметка прочитанного требует отдельного подтверждения
reply chat читает чат, пишет черновик и отправляет только после вашего «да» на этот текст
find text ищет человека или слова и показывает сообщения вокруг найденного; ничего не отправляет
link-conversations нет сначала объём и ваше согласие, затем пачки, связи и перестройка (ниже)
review since, groups — необязательно один раз вызывает max_read (command: "review") и раскладывает на «я должен», «жду от других», «нужно уточнить» с id сообщений; перед «просрочено» ищет, не сделано ли это в группах; напоминания — только черновики до вашего «да»; в конце — since для следующего обзора
open-tasks chat — необязательно вызывает review для обновления задач, показывает открытые задачи и предлагает черновики; закрывает задачу только после вашего согласия

Отправка в reply идёт через max_write (command: "messages send"), поэтому при запрете записи агент только покажет черновик.

Чаты доступны как ресурсы max://chat/<id> — в Claude Code их можно упомянуть через @. Ресурс отдаёт чат и его последние сообщения. Список ресурсов берётся из общей локальной копии wirecat.db под аккаунтом профиля и в MAX не ходит; пока локальной копии нет, он пуст. В MAX входит только чтение одного чата.

Ресурс max://skill — навык max, тот же текст, что печатает max skill show. Он есть и у max personal mcp, и у max sales bot mcp, и в MAX не ходит.

Графики статистики

max_read (command: "stats charts") читает статистику чата из локальной копии и возвращает chart в JSON. Для картинки укажите format: "png": ответ содержит PNG с тёмной темой и JSON с данными chart и размером image. Без format ответ остаётся JSON. Инструмент не подключается к MAX и не пишет файлы; нужен доступ messages. Вступления и выходы (membership) здесь недоступны.

Связи разговоров

Готовый запрос link-conversations позволяет агенту связать ответы в разговоры. Сначала агент оценивает объём через max_read (command: "conversations batches status") и ждёт вашего согласия для этого чата. Затем читает пачки через max_read (command: "conversations batches next"), сохраняет ответы через max_write (command: "conversations links add") и перестраивает граф через max_write (command: "conversations build"). max_write (command: "conversations links clear") удаляет ответы агента; после него граф тоже нужно перестроить. Запись требует права conversations.links. Если вы настроили внешний сервис для векторов поиска, MCP-поиск тоже отправляет ему текст вопроса.

Файлы и сохранённые сообщения

max_read (command: "attachments list") показывает пути сохранённых файлов и состояние их текста; max_write (command: "attachments text set") сохраняет текст, который агент прочитал из файла, для поиска по content:. Извлечение текста — только в терминале. max_read с command: "messages context" и arguments: { offline: true } читает только локальную копию.

Топиков Telegram в MAX нет, поэтому нет и инструментов max_topics_*. Прямое распознавание может вернуть сохранённую расшифровку той же модели. Фото использует превью MAX, выбирается через index и ограничено 512 КБ. Модели никогда не скачиваются сами. Перед локальным распознаванием сервер отпускает соединение; модель поиска закрывается при завершении сервера.

Как он держит соединение

Первый вызов, которому нужен MAX, открывает соединение; следующие сетевые вызовы используют его. Локальный поиск, статистика, доказательства и чтение сохранённых данных входа не требуют. Соединение закрывается после 2 минут без вызовов и в любом случае через 5 минут после входа: список чатов берётся из ответа на вход, и без этого предела агент читал бы устаревший. Следующий вызов входит заново. Вызовы выполняются по одному, даже если приложение прислало их одновременно.

Через stdin и stdout сервер завершается, когда приложение закрыло stdin, и закрывает соединение с MAX. По HTTP он работает до Ctrl-C. max personal mcp --http --public-url https://<имя>.ts.net доступен через HTTPS-туннель со входом по коду из терминала. Права действуют одинаково через HTTP и через stdin и stdout. max personal mcp --revoke завершает входы приложений и сохраняет сессию MAX. См. подключение из браузера или телефона.

Clone this wiki locally