Repository navigation
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 mcpClaude 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. См.
подключение из браузера или телефона.