Перейти к содержимому

Справочник инструментов MCP Moonpool: параметры и результаты

Все инструменты возвращают текст, кроме moonpool_screenshot, который возвращает изображение PNG. Сбой приходит как результат инструмента с пометкой об ошибке, причина указана текстом. О настройке см. Настройка MCP.

Инструментам с app_id нужен id приложения из apps.json. Он должен состоять только из букв, цифр, ., _ и - и не начинаться с -, иначе вызов завершится ошибкой «invalid app_id».

Большинство инструментов, действующих на хаб, завершаются с этим сообщением, если он не работает. moonpool_bootup_launcher, moonpool_shutdown_launcher, moonpool_raise_launcher и moonpool_launcher_paths сами обрабатывают этот случай (см. их строки). Для портативной копии в сообщении называется копия, например Moonpool (<folder>).

Moonpool is not running - call moonpool_bootup_launcher first

Вызовы, ожидающие результата, завершаются по тайм-ауту через 45 секунд.

Пример результата moonpool_list_apps:

site [running] (managed by Moonpool) Site
notes-app [stopped] [mcp: stopped] Notes App
Инструмент Параметры Поведение
moonpool_list_apps нет Одна строка на приложение: id [running] или [stopped], (managed by Moonpool), когда применимо, [mcp: running] или [mcp: stopped], если MCP-помощник был замечен, затем название. Запрашивается у работающего хаба через канал управления (команда list), поэтому данные актуальны. Если Moonpool не работает, выдаётся ошибка «Moonpool is not running», а не устаревший список. Сразу после запуска Moonpool, до первой проверки состояния, приложения показывают [status pending]. Пока в apps.json ошибка, результат начинается с apps.json has an error: <message>. This list is the last one that loaded; fix the file and call moonpool_reload_config. Если файл был повреждён уже при запуске Moonpool, там сказано, что приложения не загружены, и дополнительно предлагается moonpool_restore_config.
moonpool_bootup_launcher нет Запускает сам Moonpool и ждёт до 30 с, пока ответит его канал управления. Возвращает «Moonpool started» или «Moonpool is already running». Если новый процесс сразу завершается (он передал управление Moonpool, который ещё завершал работу), запускается ещё один. Если что-то удерживает канал и не отвечает, сообщается, что процесс Moonpool, возможно, завис.
moonpool_shutdown_launcher нет То же, что «Выход» в меню трея. Ждёт до 30 с, пока канал управления исчезнет. Возвращает «Moonpool shut down» или «Moonpool is not running».
moonpool_raise_launcher нет Выводит окно Moonpool на передний план. Возвращает «window shown». Если Moonpool не работает, запускает его и возвращает «Moonpool was not running; started it».
moonpool_start_app app_id (обязательно) Запускает приложение и открывает его вкладку терминала. Возвращает «launched», когда оно работает, либо причину, по которой не удалось (unknown app id: <id>, did not reach running in time через 25 с). Для записи static только с url открывает страницу и тоже возвращает «launched».
moonpool_stop_app app_id (обязательно) Останавливает приложение. Возвращает «stopped» или ошибку вроде still running after stop (через 15 с).
moonpool_restart_app app_id (обязательно) Остановка, ожидание освобождения порта и процесса, запуск. Возвращает «restarted».
moonpool_app_output app_id (обязательно), tail_lines (целое число, по умолчанию 200, минимум 1) Вывод терминала приложения за текущий сеанс Moonpool без кодов ANSI. Если журнал длиннее tail_lines, текст начинается со строки с путём к полному журналу. Завершается ошибкой no console output recorded for '<id>' (not launched this session), если приложение не запускалось. Если журнал существует, но пуст, возвращает (no output recorded for '<id>').
moonpool_stop_mcp_server app_id (обязательно) Завершает подключённый MCP-помощник приложения и оставляет приложение работающим. Возвращает «stopped». Ничего не делает, если у приложения нет ни processName, ни mcpProcessName.
moonpool_refresh_app_icons нет Заново загружает значки всех приложений. Возвращает «icons refreshed».

Они читают и меняют apps.json через хаб, а не файл на диске. Запись должна нести токен последнего чтения, устаревший токен отклоняется, а новый файл проверяется до того, как что-либо записывается. Работа через хаб важна, потому что агенту в хосте с песочницей может быть показана закрытая копия папки конфигурации вместо настоящей.

Инструмент Параметры Поведение
moonpool_read_config нет Текст JSON с manifest_text (точное содержимое файла), token, valid, error (null, если корректен) и path. token равен none, если файл отсутствует или пуст.
moonpool_write_config manifest (обязательно, полный новый текст apps.json), expected_token (обязательно, из последнего чтения) Проверяет манифест и заменяет apps.json, затем загружает его. Возвращает apps.json updated; new version token <token>. Устаревший токен завершается ошибкой stale token: apps.json changed since it was read .... Недопустимый манифест завершается ошибкой rejected invalid manifest: .... В обоих случаях файл не затрагивается. Пустой expected_token отклоняется.
moonpool_restore_config snapshot (необязательно) Без значения - текст JSON со списком сохранённых снимков, новые первыми (index, filename, millis, app_count, valid). С индексом (1 = самый новый) или именем файла проверяет этот снимок и восстанавливает его. Возвращает restored <file> (<n> apps); new version token <token>. Токен не нужен: восстановление сознательно перезаписывает текущий файл.
moonpool_reload_config нет Заново читает apps.json. Возвращает «apps.json reloaded». Если файл не разбирается или не проходит проверку, завершается ошибкой apps.json has an error: ..., а Moonpool сохраняет последний загруженный список.
moonpool_launcher_paths нет Перечисляет папку конфигурации хаба, apps.json, state.json, журнал, папку dumps, папку значков, признак портативного режима и путь к exe, затем папку конфигурации процесса MCP, apps.json, state.json, папку dumps, признак портативного режима и путь к exe (без журнала и значков). Если хаб не работает, его половина читается как hub paths unavailable: ..., а половина MCP всё равно показывается. Используйте, когда правка не вступает в силу.

Дополнительно: инструменты для тестирования

Заголовок раздела «Дополнительно: инструменты для тестирования»

moonpool_screenshot работает только в Windows; в Linux он завершается с «screenshot is not supported on this platform». moonpool_window_state и moonpool_reset_mcp_seen работают на всех платформах.

window - одно из main, settings, about, installer, editor, help или themes, по умолчанию main. Неизвестное имя завершается ошибкой unknown window '<name>'.

Инструмент Параметры Поведение
moonpool_screenshot window (необязательно) Снимает содержимое этого окна Moonpool как встроенный PNG, не более 320 пикселей по большей стороне. Размер нельзя увеличить через MCP. Завершается ошибкой window '<name>' is not open, если оно не показано. Другие приложения снять нельзя.
moonpool_window_state window (необязательно) Текст JSON: {"open":false}, если окно не открыто, иначе open, visible, minimized, maximized, x, y, width, height. Предназначен для тестов.
moonpool_reset_mcp_seen app_id (необязательно) Только для тестов. Очищает сохранённую запись «MCP-помощник был замечен» для одного приложения или для всех, если параметр опущен, поэтому вложенная строка MCP на боковой панели снова скрывается, пока помощник не будет замечен.

Moonpool: бесплатное программное обеспечение от FasterDB