Erodenn/godot-mcp-runtime

Erodenn/godot-mcp-runtime

от erodenn
MCP-сервер для Godot 4, который даёт AI-агентам полный контроль над проектом: редактирование сцен, нод, скриптов и запуск с runtime-мостом для скриншотов, симуляции ввода и live GDScript. Незаменим...

Godot MCP Runtime

godot-mcp-runtime MCP server

MCP Server npm version npm weekly downloads License: MIT Node.js

A lightweight MCP server that gives AI agents the tools to interact with the Godot game engine. Features comprehensive headless editing and full runtime control over a Godot 4.x project. Scene, node, autoload, and validation ops cover everything short of the most niche corners of the engine; the runtime bridge adds screenshots, input simulation, UI discovery, and live GDScript against the running scene tree.

Agent driving a Godot game via MCP runtime tools

The AI doesn't just write your game, it can check its work.

  • Headless editing: scenes, nodes, scripts, signals, validation, no editor window
  • Runtime control: screenshots, input simulation, UI discovery, live GDScript, and function profiling against the running game
  • Zero footprint: no Godot addon, no project commits, auto-cleanup on shutdown

No addon required. Most Godot MCP servers that offer runtime support ship as a Godot addon, something you install into your project, commit to version control, and manage as a dependency. Use npx and there's no install or setup needed.

Часто задаваемые вопросы

Инструменты были проиндексированы:
add_autoload

Регистрирует новый autoload в проекте. autoloadPath принимает "res://..." или путь относительно проекта (префикс добавляется автоматически). singleton по умолчанию true (доступен глобально по имени). Процесс Godot не требуется. Предупреждение: autoload'ы инициализируются в headless-режиме: сломанный скрипт приведёт к сбою каждой последующей headless-операции; проверяйте перед добавлением. Возвращает подтверждение в виде обычного текста с зарегистрированным именем, путём и флагом singleton. Возвращает ошибку, если autoload с таким же именем уже существует; используйте update_autoload для изменения.

Параметры
  • autoloadNamestringобязательный

    Имя узла автозагрузки (например, "MyManager")

  • autoloadPathstringобязательный

    Путь к скрипту или сцене (например, "res://autoload/my_manager.gd" или "autoload/my_manager.gd")

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • singletonboolean

    Регистрировать как глобально доступный синглтон по имени (по умолчанию: true)

add_node

Добавляет узел в сцену Godot. Сохраняет автоматически. position, rotation, scale, visible, modulate: параметры верхнего уровня; всё остальное помещается в properties. Значения проверяются на соответствие объявленному типу свойства и вызывают ошибку, а не молча сохраняют нулевое значение этого типа. Свойства с типом Object принимают путь res://, словарь {type: ClassName, ...props}, который создаёт Resource на месте, или null; ключи с суффиксом через слэш, например shader_parameter/<uniform>, идут внутрь этого словаря, а не на узел. Правила приведения значений, правила для элементов Packed*Array/Array[T] и подробности об ошибках: Property Values в docs/tools.md. Возвращает подтверждение в виде обычного текста о новом узле и его типе. Вызывает ошибку и ничего не добавляет, если nodeType не зарегистрированный класс, родитель отсутствует или имя или значение свойства недопустимо. Вызывает ошибку, пока активна сессия выполнения Godot; stop_project или detach_project сбрасывает её.

Параметры
  • modulateobject

    Цветовая модуляция (например, {"r": 1, "g": 0, "b": 0, "a": 1})

  • nodeNamestringобязательный

    Имя для нового узла, как оно отображается в дереве сцены.

  • nodeTypestringобязательный

    Класс узла Godot для создания экземпляра (например, "Sprite2D", "CollisionShape2D", "Label") или путь к сцене относительно проекта (.tscn или .scn, например, "scenes/enemy.tscn"), чтобы создать экземпляр существующей сцены как дочерний - при сохранении дочерние узлы-экземпляры сериализуются как instance=ExtResource(...)

  • parentNodePathstring

    Путь родительского узла от корня сцены (например, "root/Player"). По умолчанию используется корневой узел.

  • positionobject

    Позиция: {"x": 100, "y": 200} на 2D-узле, {"x": 0, "y": 1, "z": 0} на 3D-узле

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • propertiesobject

    Дополнительные значения свойств в виде JSON-объекта. Параметры верхнего уровня (position, rotation и т.д.) имеют приоритет над ключами в этом словаре.

  • rotationnumber

    Поворот в радианах

  • scaleobject

    Масштабирование Vector2 (например, {"x": 2, "y": 2})

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

  • visibleboolean

    Определяет, виден ли узел.

attach_project

Внедряет MCP-мост в процесс Godot, который вы запускаете сами, затем ждёт до 20 секунд, пока мост начнёт слушать порт, и до 45 секунд в сумме после этого, чтобы поглотить холодный старт большого проекта; если порт слушает, но не отвечает на ping, ожидание прекращается раньше. Вызывайте ДО запуска Godot: Godot читает автозагрузки только при старте процесса, поэтому поздний вызов возвращает «bridge did not respond». Рекомендуемый паттерн: запускайте Godot параллельно с этим вызовом, чтобы ожидание поглощало запуск. Предпочитайте run_project, если только MCP не должен порождать Godot. Одновременно поддерживается только одна attach-сессия на проект (в режиме attach нет канала env-var, поэтому порт и токен должны быть вшиты в единственный общий скрипт); повторный attach_project для проекта, к которому уже подключена другая сессия, отклоняется с указанием этой сессии. Возвращает статус в виде обычного текста с определённым портом моста. По завершении вызывайте detach_project или stop_project.

Параметры
  • bridgePortnumber

    TCP-порт для MCP-моста. Если не указан, автоматически выбирается свободный порт (рекомендуется). Выбранный порт встраивается в файл mcp_bridge.gd проекта на этапе инъекции, поэтому запущенный Godot прослушивает именно этот порт.

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

attach_scriptидемпотентный

Прикрепляет скрипт GDScript или C# к узлу в сцене. Используйте после написания и проверки скрипта через инструмент validate. Для C# требуется сборка Godot .NET с классом, скомпилированным в сборку проекта. Заменяет любой предыдущий скрипт. Сохраняет автоматически. Возвращает: при успехе nodePath и scriptPath. Выдаёт ошибку, если скрипт не удаётся инстанцировать (ошибки парсинга, @abstract или нескомпилированный класс C#), scriptPath не существует или nodePath не найден. Выдаёт ошибку, пока активна сессия выполнения Godot; stop_project (или detach_project) сбрасывает её.

Параметры
  • nodePathstringобязательный

    Путь к узлу от корня сцены (например, «root/Player»)

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

  • scriptPathstringобязательный

    Путь к файлу скрипта относительно проекта (например, "scripts/player.gd" или "scripts/Player.cs"). Файлу .cs нужна сборка Godot .NET, а его класс должен быть скомпилирован в сборку проекта (dotnet build).

batch_scene_operations

Используйте этот инструмент вместо цепочки вызовов add_node / load_sprite / save_scene, когда нужно внести несколько изменений в одни и те же или связанные сцены: он работает в одном процессе Godot (экономит ~3 секунды на запуск при каждом вызове), использует общий кэш сцен в памяти и сохраняет один раз в конце. Каждый элемент выбирает свою подоперацию (add_node, load_sprite, set_node_properties, save) и передаёт свои параметры; элементы add_node принимают те же вынесенные на верхний уровень пространственные параметры (position, rotation, scale, visible, modulate), что и отдельный инструмент; элементы set_node_properties принимают те же параметры обновления (nodePath, property, value) и те же параметры операции scenePath и abortOnError, что и отдельный инструмент; abortOnError останавливает выполнение при первой ошибке (по умолчанию false, выполнение продолжается). Возвращает: results[] в порядке входных элементов, каждый содержит operation и scenePath, а также success или error. Выдаёт ошибку, пока на этом проекте активна сессия Godot runtime; stop_project (или detach_project) завершает её.

Параметры
  • abortOnErrorboolean

    Прекратить обработку при первой ошибке (по умолчанию: false)

  • operationsobject[]обязательный

    Упорядоченный список операций со сценами. Каждый элемент имеет свою собственную операцию и scenePath.

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

check_projectтолько чтение

Получает метаданные проекта (имя, путь, версию Godot, сводку по структуре) плюс постоянно присутствующий блок runtime, который сообщает, активна ли сессия runtime, отвечает ли её bridge и жив ли её процесс. Опускает projectPath, если нужны только версия Godot и статус runtime. Используется как первый вызов перед управлением запущенным проектом. Никогда не возвращает ошибку при самой проверке runtime. Возвращает: { name?, path?, structure?, godotVersion, runtime }. Вызывает ошибку, если projectPath задан, но отсутствует project.godot.

Параметры
  • projectPathstring

    Путь к каталогу проекта Godot (необязательно - пропустите, чтобы получить только версию Godot и статус среды выполнения)

connect_signal

Соединяет сигнал на исходном узле с методом на целевом узле, сохраняя соединение в .tscn. Сначала используйте get_node_signals, чтобы подтвердить имена: соединение одной и той же пары дважды создаёт дублирующее соединение. Сохраняет автоматически. Возвращает подтверждение в виде простого текста с указанием источника, сигнала, цели и метода. Возвращает ошибку, если сигнал или метод не существует. Возвращает ошибку, пока активна сессия выполнения Godot для этого проекта; stop_project (или detach_project) очищает её.

Параметры
  • methodstringобязательный

    Имя метода на целевом узле для вызова при срабатывании сигнала.

  • nodePathstringобязательный

    Путь к исходному узлу от корня сцены

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

  • signalstringобязательный

    Имя сигнала на исходном узле (например, "pressed", "body_entered")

  • targetNodePathstringобязательный

    Путь к целевому узлу от корня сцены, который получает сигнал.

create_sceneидемпотентный

Создаёт новый файл сцены Godot с одним корневым узлом. Записывает новый .tscn по пути scenePath. Используйте для создания новой сцены с нуля; для добавления узлов в существующую сцену используйте add_node. rootNodeType по умолчанию равен Node2D: передайте "Node3D" для 3D-сцен или "Control" для UI. Сохраняет автоматически. Перезаписывает файл без предупреждения, если он уже существует. Возвращает: success и scenePath, по которому был записан файл. Выдаёт ошибку, пока на этом проекте активна сессия Godot runtime; stop_project (или detach_project) очищает её.

Параметры
  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • rootNodeTypestring

    Тип корневого узла (по умолчанию: Node2D)

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта (например, "scenes/main.tscn")

delete_nodes

Удаляет один или несколько узлов (и их потомков) из файла сцены. Всегда массив: передайте массив nodePaths из одного элемента для разового удаления. Сохраняет один раз в конце. Нельзя удалить корень сцены: такая запись возвращает ошибку, а остальные всё равно обрабатываются. Возвращает: массив результатов с одной записью для каждого nodePath в порядке ввода (сообщение об успехе или ошибке). Выдаёт ошибку, пока на этом проекте активна сессия Godot runtime; stop_project (или detach_project) сбрасывает её.

Параметры
  • nodePathsstring[]обязательный

    Пути узлов от корня сцены для удаления (например, ["root/Player/Sprite2D"])

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта (например, "scenes/main.tscn")

detach_project

Очищает состояние рантайма в режиме присоединения и удаляет внедрённую автозагрузку McpBridge. НЕ останавливает вручную запущенный процесс Godot: он продолжает работать. Используйте после attach_project, когда закончите управлять игрой через MCP. Для порождённых сессий (run_project) вместо этого используйте stop_project. Сейчас это в основном необязательно: когда мост отключается (вы закрыли Godot), следующий вызов инструмента рантайма один раз проверяет и сам завершает присоединённую сессию, удаляя автозагрузку. Последующий вызов всё равно идемпотентен и завершается успешно, а сообщение формулируется так, чтобы отличать «присоединённая сессия существовала и уже завершилась» от «этот сервер никогда не присоединялся к проекту». Возвращает: сообщение, подтверждающее отсоединение, и externalProcessPreserved (здесь всегда true: в этом суть detach в отличие от stop_project). Выдаёт ошибку только тогда, когда активна порождённая сессия; для таких случаев используйте stop_project.

Параметры

Без параметров.

disconnect_signal

Удаляет существующее соединение сигнала между двумя узлами и сохраняет изменение в .tscn. Сначала вызовите get_node_signals, чтобы убедиться, что соединение существует; для восстановления потребуется повторно подключить его через connect_signal. Автоматически сохраняет. Возвращает текстовое подтверждение, в котором указаны отсоединённый сигнал и цель. Выдаёт ошибку, если соединение не существует. Выдаёт ошибку, пока на этом проекте активна сессия выполнения Godot; stop_project (или detach_project) очищает её.

Параметры
  • methodstringобязательный

    Имя метода на целевом узле

  • nodePathstringобязательный

    Путь к исходному узлу от корня сцены

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

  • signalstringобязательный

    Имя сигнала на исходном узле

  • targetNodePathstringобязательный

    Путь до целевого узла от корня сцены

duplicate_node

Дублирует узел и его потомков в сцене Godot, не пересобирая его по узлам через add_node. newName по умолчанию равен исходному имени + "2"; targetParentPath по умолчанию указывает на исходного родителя. Сохраняет автоматически. Возвращает: success с originalPath и newPath, где теперь находится дубликат. Возвращает ошибку, если nodePath не существует или targetParentPath не может принимать дочерние узлы. Возвращает ошибку, пока на этом проекте активна сессия выполнения Godot; stop_project (или detach_project) завершает её.

Параметры
  • newNamestring

    Имя для дублированного узла (по умолчанию: исходное имя + "2")

  • nodePathstringобязательный

    Путь узла от корня сцены до дубликата

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

  • targetParentPathstring

    Путь родительского узла для дубликата (по умолчанию: тот же родитель, что и у оригинала)

export_mesh_library

Экспортирует сцену узлов MeshInstance3D как файл .res библиотеки MeshLibrary для использования в GridMap. Только для сеточных 3D-палитр тайлов, не для 2D-сцен. Исходная сцена должна содержать дочерние узлы MeshInstance3D. Передайте meshItemNames для подмножества или не указывайте для всех. Сохраняет в outputPath, молча перезаписывая. Возвращает подтверждение в виде обычного текста с количеством экспортированных элементов. Выдаёт ошибку, если сцена не содержит допустимых мешей. Выдаёт ошибку, пока на этом проекте активна сессия Godot runtime; stop_project (или detach_project) устраняет её.

Параметры
  • meshItemNamesstring[]

    Названия конкретных элементов сетки для экспорта. Оставьте пустым, чтобы экспортировать всё.

  • outputPathstringобязательный

    Путь вывода для файла MeshLibrary .res (относительно проекта)

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

get_debug_outputтолько чтение

Получает захваченные stdout/stderr из запущенного проекта Godot. Используйте, когда инструменты времени выполнения неожиданно сбоят: ошибки скриптов, отсутствующие узлы и бэктрейсы краша всплывают именно здесь. Продолжает работать после завершения или падения процесса: сессия очищается при выходе, но захваченные логи сохраняются до stop_project. Требует run_project (не attach_project; в режиме attach вывод не захватывается). Возвращает: output/errors (последние limit строк каждого, по умолчанию 200), running (false после завершения, null в режиме attach), exitCode после завершения, attached:true с пустыми массивами в режиме attach.

Параметры
  • limitnumber

    Максимум строк для возврата (по умолчанию: 200, с конца вывода)

get_node_propertiesтолько чтение

Читает текущие значения свойств одного или нескольких узлов из файла сцены в одном процессе Godot. Всегда массив: передавайте массив из одного элемента для однократного чтения. Для каждого узла changedOnly:true отфильтровывает свойства, совпадающие со значениями по умолчанию класса (полезно для компактных diff). Возвращает: { results: [{ nodePath, nodeType, properties?, error? }] }; при неудачном чтении включается error, а properties опускается.

Параметры
  • nodesobject[]обязательный

    Узлы, из которых считываются свойства

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

get_node_signalsтолько чтение

Перечисляет все сигналы, определённые на узле, и их текущие соединения. Используйте перед connect_signal/disconnect_signal для проверки имён сигналов и методов. Поле connections[].target уже задано относительно корня сцены в форме "root/...", которую connect_signal/disconnect_signal принимают как targetNodePath (самоподключение указывается как "root") - передавайте его напрямую без преобразования. Возвращает: nodeType и signals[], каждый с именем и текущими соединениями (signal/target/method). Возвращает ошибку, если узел не найден.

Параметры
  • nodePathstringобязательный

    Путь к узлу от корня сцены (например, "root/Button")

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

get_project_filesтолько чтение

Возвращает рекурсивное дерево файлов проекта Godot. Используйте для изучения структуры проекта, когда пути неизвестны. Передайте расширения для фильтрации (например, ["gd","tscn"]); maxDepth ограничивает глубину рекурсии (-1 без ограничений). Пропускает скрытые элементы (с точкой в начале) и директорию .mcp. Возвращает: { name, type, path, extension?, children? } (вложенное дерево).

Параметры
  • extensionsstring[]

    Фильтрует только по этим расширениям файлов (например, ["gd", "tscn"]). Если не указано, включает все.

  • maxDepthnumber

    Максимальная глубина рекурсии. Значение -1 означает без ограничений (по умолчанию: -1)

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

get_project_settingsтолько чтение

Парсит project.godot в структурированный JSON. Используйте для просмотра настроек дисплея, ввода, рендеринга и т.д. без запуска Godot. Передайте section, чтобы оставить только одну INI-секцию (например, "display", "application"). Возвращает: { settings: { [section]: { [key]: value } } } или { settings: { [key]: value } }, если указана section. Сложные типы Godot (в том числе многострочные массивы/словари, например полная карта действий из секции "[input]") возвращаются как полная исходная строка, а не только первая строка; ключи, не входящие ни в одну секцию, попадают в global.

Параметры
  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • sectionstring

    Фильтрует по конкретной секции INI (например, "display", "application"). Опустите для всех секций.

get_scene_dependenciesтолько чтение

Парсит файл .tscn для поиска ссылок на ext_resource (скрипты, текстуры, под-сцены). Используйте, чтобы проверить, от чего зависит сцена перед рефакторингом или перемещением файлов. Возвращает: запрошенный путь к сцене и dependencies[] из ссылок ext_resource (path, type, optional uid). Ошибка, если файл сцены не существует.

Параметры
  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу .tscn относительно корня проекта (например, "scenes/main.tscn")

get_scene_treeтолько чтение

Получает иерархию сцены как вложенное дерево { name, type, path, script, children }. Используйте maxDepth:1 для плоского списка только прямых потомков; значение -1 по умолчанию возвращает полное дерево. parentPath ограничивает результат поддеревом. Возвращает вложенное дерево в формате JSON. Ошибка, если сцена не существует или parentPath не найден.

Параметры
  • maxDepthnumber

    Максимальная глубина рекурсии. -1 для неограниченной (по умолчанию: -1). 1 возвращает только прямых дочерних элементов.

  • parentPathstring

    Сузить область до поддерева, начиная с этого пути узла (например, "root/Player").

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

get_ui_elementsтолько чтение

Обходит дерево сцены во время выполнения и возвращает все узлы Control с позициями, размерами, типами и текстовым содержимым. Всегда вызывайте это перед действиями simulate_input click_element, чтобы узнать допустимые имена и пути элементов. Требует активной сессии выполнения (run_project или attach_project). visibleOnly по умолчанию true; передайте false, чтобы включить скрытые элементы Control. filter сужает поиск по классу. Возвращает: elements[] с path/type/rect/visible и опционально text/disabled/tooltip.

Параметры
  • filterstring

    Фильтровать по типу узла Control (например, "Button", "Label", "LineEdit")

  • visibleOnlyboolean

    Возвращайте только узлы, где Control.visible равно true (по умолчанию: true). Установите false, чтобы включить скрытые элементы.

launch_editor

Открывает графический интерфейс редактора Godot для проекта пользователя-человека. Используйте только тогда, когда пользователь явно просит «открыть редактор»; для любой работы, выполняемой агентом, используйте инструменты без графического интерфейса для сцен и узлов (add_node, set_node_properties и т. д.) вместо этого: редактор нельзя контролировать программно. Возвращает подтверждение в виде обычного текста после запуска процесса редактора. Выдает ошибку, если в projectPath отсутствует project.godot.

Параметры
  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

list_autoloadsтолько чтение

Перечисляет все зарегистрированные автозагрузки в проекте с путями и статусом singleton. Используйте в первую очередь при диагностике headless-сбоев - сломанные автозагрузки роняют все headless-операции, поэтому этот инструмент показывает, что загружено. Не требует запущенного процесса Godot (читает project.godot напрямую). Возвращает: [{ name, path, singleton }].

Параметры
  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

list_projectsтолько чтение

Находит проекты Godot в каталоге по файлам project.godot. Используется для обнаружения доступных проектов, если пользователь не указал конкретный; для проверки известного проекта используйте check_project. recursive:true спускается в подкаталоги (пропуская скрытые); по умолчанию false проверяет только сам каталог и его непосредственные подкаталоги. Возвращает: [{ path, name }], пустой массив при отсутствии совпадений.

Параметры
  • directorystringобязательный

    Директория для поиска проектов Godot

  • recursiveboolean

    Выполнять ли рекурсивный поиск (по умолчанию: false)

load_spriteидемпотентный

Устанавливает текстуру на существующий узел Sprite2D, Sprite3D или TextureRect. Для новых узлов вместо этого передавайте текстуру через свойства add_node. Сохраняет автоматически. texturePath должен указывать на существующий файл внутри projectPath. Возвращает текстовое подтверждение с именем загруженной текстуры. Выдаёт ошибку, если узел не относится к одному из этих трёх классов или файл текстуры не существует. Выдаёт ошибку, пока для этого проекта активна сессия выполнения Godot; stop_project (или detach_project) завершает её.

Параметры
  • nodePathstringобязательный

    Путь к целевому узлу от корня сцены (например, "root/Player/Sprite2D")

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

  • texturePathstringобязательный

    Путь к файлу текстуры относительно проекта (например, "assets/player.png")

profile_project

Захватывает окно функционального профайлера Godot - данные вкладки Profiler редактора. Требует run_project с profiling: true. Блокирует выполнение на seconds секунд (по умолчанию 5). Время указано затраченное, а не процессорное; вложенные строки перекрываются - никогда не суммируйте totalMs. Возвращает: rows (function, file, line, calls, selfMs/totalMs, средние значения за кадр, percentOfFrame, peak), бюджет кадра, servers, worstFrame, а также frames/frameGaps/limitReached для оценки качества захвата. Возвращает ошибку, если профилирование было отключено при запуске или если захват уже открыт.

Параметры
  • captureLimitnumber

    Число строк, которые движок кладёт в каждый пакет кадра, 16..512 (по умолчанию: 512). Godot отбирает их по инклюзивному времени, поэтому меньшее ограничение скрывает дешёвые функции и выставляет limitReached.

  • secondsnumber

    Длительность захвата в секундах, больше 0 и не больше 60 (по умолчанию: 5).

  • sortenum

    Ранжирует по собственному времени ("selfMs", по умолчанию), полному времени ("totalMs") или количеству вызовов ("calls").

  • topnumber

    Сколько функций возвращать, 1..100 (по умолчанию: 20).

remove_autoload

Отменяет регистрацию автозагрузки в проекте по имени. Используйте для восстановления после сломанной автозагрузки, которая вызывает сбой headless-операций. Процесс Godot не требуется. Возвращает подтверждение в виде обычного текста при успехе. Ошибка, если автозагрузки с таким именем не существует.

Параметры
  • autoloadNamestringобязательный

    Имя автозагрузки для удаления

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

run_project

Запускает проект Godot как дочерний процесс с захватом stdout/stderr. Обязателен перед take_screenshot, simulate_input, get_ui_elements, run_script или get_debug_output. Устанавливает profiling: true при запуске, чтобы включить инструменты профилирования. Использует attach_project для проекта, который вы запустили самостоятельно. Проверяет готовность моста MCP перед возвратом успешного результата. Возвращает статус с назначенным портом моста. Вызывает stop_project по завершении. Возвращает ошибку, если projectPath не является проектом Godot или другая сессия уже активна.

Параметры
  • backgroundboolean

    Если параметр включён, скрывает окно Godot за пределами экрана и блокирует весь физический ввод с клавиатуры и мыши, сохраняя при этом программный ввод (simulate_input, run_script) и скриншоты полностью активными. Полезно для автоматизированного тестирования под управлением агента, когда окно не должно быть видимым или интерактивным.

  • bridgePortnumber

    TCP-порт для MCP bridge. Можно не указывать, чтобы автоматически выбрать свободный порт (рекомендуется). Передаётся запущенному процессу через переменную окружения, поэтому на скрипт bridge на диске не влияет, какой порт использует эта сессия - безопасно для нескольких сессий в одном проекте.

  • profilingboolean

    Подключает собственный удалённый отладчик Godot, чтобы profile_project, start_profiler и stop_profiler могли измерять эту сессию. Задаётся при запуске: уже запущенную сессию профилировать нельзя, и это немного увеличивает накладные расходы во время выполнения.

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenestring

    Сцена для запуска (путь относительно проекта, например, "scenes/main.tscn"). Оставьте пустым, чтобы использовать основную сцену проекта.

run_script

Выполняет пользовательский GDScript в живом запущенном проекте с полным доступом к дереву сцены. Требует активную сессию выполнения. Скрипт должен расширять RefCounted и определять функцию execute(scene_tree: SceneTree) -> Variant. Возвращаемые значения сериализуются в JSON (примитивы, Vector2/3, Color, Dictionary, Array и строки путей Node). Используйте print() для отладочного вывода: он появляется в get_debug_output, а не в результате. В порожденном режиме ошибки выполнения stderr становятся ошибками (когда скрипт возвращает null) или всплывают как предупреждения. Возвращает: { success, result, warnings?, tip? }, где result - это сериализованное в JSON возвращаемое значение execute().

Параметры
  • scriptstringобязательный

    Исходный код GDScript. Должен содержать "extends RefCounted" и "func execute(scene_tree: SceneTree) -> Variant".

  • timeoutnumber

    Тайм-аут в миллисекундах (по умолчанию: 30000). Увеличьте для длительных скриптов.

save_sceneидемпотентный

Перепаковывает и сохраняет сцену, опционально в другой путь (save-as). Большинство мутаций (add_node, set_node_properties, delete_nodes и т.д.) сохраняются автоматически - используйте это только для save-as через newPath или для повторной канонизации вручную отредактированного .tscn. Перезаписывает молча. Возвращает подтверждение в виде обычного текста с указанием пути сохранения. Возвращает ошибку, если файл сцены не существует. Возвращает ошибку, пока активна сессия Godot runtime для этого проекта; stop_project (или detach_project) очищает её.

Параметры
  • newPathstring

    [ "Сохраняет в другой путь (относительно проекта) вместо перезаписи оригинала." ]

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

search_projectтолько чтение

Ищет подстроку в файлах проекта. Используется для поиска ссылок, вызывающих функций или сигнатур в кодовой базе. По умолчанию fileTypes: ["gd","tscn","cs","gdshader"]; caseSensitive по умолчанию false; maxResults по умолчанию 100. Пропускает скрытые элементы и каталог .mcp. Возвращает: matches[] (файл относительно проекта, lineNumber с индексацией от 1, текст строки) и truncated:true, если достигнут maxResults: подумайте об увеличении.

Параметры
  • caseSensitiveboolean

    Регистро-зависимый поиск (по умолчанию: false)

  • fileTypesstring[]

    Расширения файлов для поиска (по умолчанию: ["gd", "tscn", "cs", "gdshader"])

  • maxResultsnumber

    Максимум совпадений для возврата (по умолчанию: 100)

  • patternstringобязательный

    Строка обычного текста для поиска.

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

set_node_propertiesидемпотентный

Устанавливает одно или несколько свойств узла в сцене в одном процессе Godot. Всегда массив: передавайте массив updates с одним элементом для разовых правок. Значения проверяются на соответствие объявленному типу свойства и вызывают ошибку, а не молча сохраняют нулевое значение этого типа. Свойства объектного типа (например, CollisionShape2D.shape) принимают путь res://, словарь {type: ClassName, ...props}, который создаёт Resource на месте, или null для очистки; ключи с суффиксом через слэш, такие как shader_parameter/<uniform>, помещаются внутрь этого словаря, а не на узел. Приведение значений, правила для элементов Packed*Array/Array[T] и сведения об ошибках: Property Values в docs/tools.md. Сохраняет один раз в конце. Возвращает: results[] с одной записью на каждое обновление в порядке ввода (успех или ошибка). Вызывает ошибку, пока активна сессия Godot runtime; stop_project или detach_project сбрасывает её.

Параметры
  • abortOnErrorboolean

    Прекратить обработку при первой ошибке (по умолчанию: false)

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstringобязательный

    Путь к файлу сцены относительно проекта

  • updatesobject[]обязательный

    Обновления свойств для применения

simulate_input

Симулирует последовательный ввод в запущенном проекте и сообщает, что сделало каждое действие. Параметр type задаёт действие: key, mouse_button, mouse_motion, click_element, action, text, wait. Для key/mouse_button/action опустите pressed, чтобы выполнить тап (нажатие+отпускание); установите его в hold или release. click_element разрешает элемент по пути/имени узла (см. get_ui_elements), а не по видимому тексту. Возвращает: results[] для каждого действия с ok, timing, signals fired, затронутым Control, изменениями UI changes (appeared/disappeared/changed), сэмплами watch и ошибками errors из обработчиков ввода (только для порождённых сессий). Недопустимые пакеты ничего не вводят; ошибка выполнения останавливает пакет и пропускает остальные действия.

Параметры
  • actionsobject[]обязательный

    Массив входных действий, которые нужно выполнить последовательно. Каждый объект должен иметь поле type.

  • watchstring[]

    Строки Godot NodePath:property считываются после каждого действия и выводятся для каждого результата, например "/root/Main/Player:position". Подчинённые имена свойств допускаются ("/root/Main/Player:position:x"). Только для чтения; неразрешимый путь считывается как null, а не роняет весь пакет.

start_profiler

Запускает захват профилировщика и сразу возвращает управление, чтобы simulate_input, run_script и screenshots могли управлять игрой во время записи. Требует run_project с profiling: true. Останавливается сам через seconds (по умолчанию 30, максимум 60); вызывайте stop_profiler для получения результатов. Возвращает: active, firstFrame, captureLimit, maxSeconds. Используйте profile_project для работы без присмотра. Возвращает ошибку, если захват уже запущен или профилирование не было включено при запуске.

Параметры
  • captureLimitnumber

    Строки, которые движок помещает в каждый пакет кадра, 16..512 (по умолчанию: 512). Godot отбирает их по инклюзивному времени, поэтому меньший лимит скрывает дешёвые функции и устанавливает limitReached.

  • secondsnumber

    Максимальная длительность захвата до автоматической остановки, больше 0 и не более 60 (по умолчанию: 30).

stop_profiler

Останавливает захват, запущенный start_profiler, и ранжирует записанные функции; захват, уже достигший временного лимита, считывается как есть, и его можно перечитать с другой сортировкой. Времена указаны как прошедшие, а не процессорные; инклюзивные строки перекрываются - не суммируйте totalMs. Возвращает: ту же полезную нагрузку, что и profile_project - rows (file, line, function, calls, selfMs/totalMs, средние значения на кадр, percentOfFrame, пиковый кадр), frame budget, servers, worstFrame, frames, frameGaps, limitReached. Возвращает ошибку, если захват не был запущен.

Параметры
  • sortenum

    Ранжирует по собственному времени ("selfMs", по умолчанию), полному времени ("totalMs") или количеству вызовов ("calls").

  • topnumber

    Сколько функций возвращать, 1..100 (по умолчанию: 20).

stop_project

Останавливает запущенный проект Godot и очищает состояние моста. Вызывайте, когда закончите runtime-тестирование, даже после крэша и даже если вы сами закрыли окно Godot: инструмент освобождает слот процесса и снимает флаг, блокирующий инструменты редактирования сцены. Процесс, завершившийся сам по себе, уже удалил автозагрузку моста к этому моменту, и вызов всё равно срабатывает: возвращает alreadyExited:true вместе с кодом выхода и логами, собранными до завершения, а завершённый снимок профилировщика остаётся читаемым. Прикреплённые сессии отсоединяются, не убивая внешний процесс. Возвращает: message, mode, externalProcessPreserved, alreadyExited, exitCode (для случая уже завершённого процесса) и сокращённые finalOutput/finalErrors (не более 200); полный лог доступен через get_debug_output. Ошибка возникает только тогда, когда нет ни сессии, ни завершённого процесса, о котором можно сообщить.

Параметры

Без параметров.

take_screenshotтолько чтение

Захватывает PNG работающего окна просмотра. responseMode: preview (по умолчанию: сохраняет полный PNG, возвращает встроенное изображение предпросмотра, ограниченное до 960x540), full (полное встроенное PNG; для мелкого текста или попиксельного просмотра), path_only (только сохранённый путь, без встроенного изображения). Сохраняется в .mcp/godot-runtime/screenshots/ (остаётся после stop_project). Возвращает: встроенный блок изображения (в режимах full/preview), а также путь и размер сохранённого PNG; previewPath/previewSize в режиме preview; предупреждения о некритических ошибках выполнения. Завершается ошибкой, если нет сессии или истекает время ожидания моста (по умолчанию 10000 мс).

Параметры
  • previewMaxHeightnumber

    Максимальная высота предпросмотра в пикселях, когда responseMode имеет значение "preview" (по умолчанию: 540).

  • previewMaxWidthnumber

    Максимальная ширина предпросмотра в пикселях, когда responseMode имеет значение 'preview' (по умолчанию: 960)

  • responseModeenum

    Режим ответа. «preview» возвращает ограниченное встроенное предпросмотр и пути (по умолчанию). «full» возвращает полное встроенное изображение PNG. «path_only» возвращает только пути.

  • timeoutnumber

    Тайм-аут в миллисекундах для ожидания скриншота (по умолчанию: 10000)

update_autoloadидемпотентный

Изменяет путь или флаг singleton у существующего autoload. Передайте один из них или оба: пропущенные поля сохраняют текущее значение. Используйте вместо remove_autoload + add_autoload (одна правка, без промежуточного состояния). Не требует процесса Godot. Возвращает подтверждение в виде обычного текста при успехе. Выдаёт ошибку, если autoloadName не зарегистрирован.

Параметры
  • autoloadNamestringобязательный

    Имя автозагрузки для обновления

  • autoloadPathstring

    Новый путь к скрипту или сцене

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • singletonboolean

    Новый singleton-флаг

validateтолько чтение

Проверяет синтаксис GDScript или целостность сцены с помощью headless Godot. Необходимо использовать перед attach_script или run_script, чтобы выявлять ошибки парсинга на раннем этапе. Передайте ровно один из scriptPath, source или scenePath, либо массив targets, проверяемый в одном процессе Godot. Возвращает { valid, errors } для одного target или { results: [{ target, valid, errors }] } для пакета. Элемент errors имеет вид { line?, message } для ошибки парсинга или { check, problem?, message } для результата проверки checks[]. checks требует scenePath и создаёт экземпляр сцены, запуская _init() каждого прикреплённого скрипта. Любая ошибка парсинга приводит к valid:false.

Параметры
  • checksobject[]

    [single, requires scenePath] Структурные проверки и проверки сигналов, которые нужно выполнить для сцены. Типы: "structure" (проверяет дерево узлов на соответствие схеме) и "signals" (проверяет соединения сигналов и методы-обработчики, необязательная область nodePath). Включаются в массив errors с дискриминатором "check".

  • projectPathstringобязательный

    Путь к каталогу проекта Godot.

  • scenePathstring

    [single] Путь к файлу сцены .tscn относительно проекта для проверки (например, "scenes/main.tscn")

  • scriptPathstring

    Путь к файлу .gd относительно проекта для проверки (например, "scripts/player.gd")

  • sourcestring

    Встраивает исходный код GDScript для проверки. Записывает во временный файл и проверяет на соответствие проекту.

  • targetsobject[]

    [batch] Массив целей для проверки в одном процессе Godot. Каждый элемент должен содержать ровно одно из: scriptPath, source или scenePath.

3.8.1основная
3.8.0
3.7.1
3.7.0
3.6.0
3.5.0
3.4.0
3.3.0
3.2.5
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
3.1.2
3.1.1
3.1.0
3.0.0
2.3.0
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.0
1.1.1
1.1.0
1.0.0
0.5.2
0.5.1
0.5.0
0.4.0
0.3.0

Выберите клиент, чтобы установить Erodenn/godot-mcp-runtime:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "erodenn-godot-mcp-runtime-5qlbgybnn7": {
      "command": "npx",
      "args": [
        "-y",
        "godot-mcp-runtime"
      ],
      "env": {
        "GODOT_PATH": "<path-to-godot-executable>"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "erodenn-godot-mcp-runtime-5qlbgybnn7": {
      "command": "npx",
      "args": [
        "-y",
        "godot-mcp-runtime"
      ],
      "env": {
        "GODOT_PATH": "<path-to-godot-executable>"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "erodenn-godot-mcp-runtime-5qlbgybnn7": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "godot-mcp-runtime"
      ],
      "env": {
        "GODOT_PATH": "<path-to-godot-executable>"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"erodenn-godot-mcp-runtime-5qlbgybnn7\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"godot-mcp-runtime\"],\"env\":{\"GODOT_PATH\":\"<path-to-godot-executable>\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

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

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "erodenn-godot-mcp-runtime-5qlbgybnn7": {
      "command": "npx",
      "args": [
        "-y",
        "godot-mcp-runtime"
      ],
      "env": {
        "GODOT_PATH": "<path-to-godot-executable>"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add erodenn-godot-mcp-runtime-5qlbgybnn7 --env GODOT_PATH=<path-to-godot-executable> -- npx -y godot-mcp-runtime

Либо через JSON-конфиг:

claude mcp add-json erodenn-godot-mcp-runtime-5qlbgybnn7 "{\"command\":\"npx\",\"args\":[\"-y\",\"godot-mcp-runtime\"],\"env\":{\"GODOT_PATH\":\"<path-to-godot-executable>\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add erodenn-godot-mcp-runtime-5qlbgybnn7 --env GODOT_PATH=<path-to-godot-executable> -- npx -y godot-mcp-runtime

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.erodenn-godot-mcp-runtime-5qlbgybnn7]
command = "npx"
args = ["-y", "godot-mcp-runtime"]

[mcp_servers.erodenn-godot-mcp-runtime-5qlbgybnn7.env]
GODOT_PATH = "<path-to-godot-executable>"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите Erodenn/godot-mcp-runtime, а в поле команды запуска — строку ниже:
npx -y godot-mcp-runtime

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "erodenn-godot-mcp-runtime-5qlbgybnn7": {
      "command": "npx",
      "args": [
        "-y",
        "godot-mcp-runtime"
      ],
      "env": {
        "GODOT_PATH": "<path-to-godot-executable>"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "erodenn-godot-mcp-runtime-5qlbgybnn7": {
      "command": "npx",
      "args": [
        "-y",
        "godot-mcp-runtime"
      ],
      "env": {
        "GODOT_PATH": "<path-to-godot-executable>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например erodenn-godot-mcp-runtime-5qlbgybnn7.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: erodenn-godot-mcp-runtime-5qlbgybnn7
    command: npx
    args:
      - "-y"
      - "godot-mcp-runtime"
    env:
      GODOT_PATH: <path-to-godot-executable>
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "erodenn-godot-mcp-runtime-5qlbgybnn7": {
      "command": "npx",
      "args": [
        "-y",
        "godot-mcp-runtime"
      ],
      "env": {
        "GODOT_PATH": "<path-to-godot-executable>"
      }
    }
  }
}

Похожие MCP-сервера

n24q02m/better-godot-mcp

n24q02m/better-godot-mcp

от n24q02m

Сервер для разработки игр на Godot Engine с AI-агентами: 17 инструментов для управления сценами, скриптами и ресурсами напрямую, без запуска редактора. Ускоряет создание прототипов.

TypeScript⭐ 36
coding-solo/godot-mcp

coding-solo/godot-mcp

от coding-solo

Запускает проекты Godot, открывает редактор и перехватывает отладочный вывод. Создаёт сцены, добавляет ноды, экспортирует MeshLibrary для GridMap.

JavaScript⭐ 6197
gregario/godot-forge

gregario/godot-forge

от gregario

Godot Forge - MCP-сервер для Godot 4: тест-раннер, документация API, анализ скриптов и сцен. Исправляет типичные ошибки AI при написании GDScript и помогает мигрировать с Godot 3. Работает без конфигурации.

TypeScript⭐ 9
pzalutski-pixel/godotlens-mcp

pzalutski-pixel/godotlens-mcp

от pzalutski-pixel

MCP-сервер для семантического анализа GDScript (15 инструментов) через Godot Language Server. Дает AI-агентам точную навигацию, рефакторинг и диагностику без ложных срабатываний grep.

Python⭐ 10
HadiCherkaoui/crafty-mcp

HadiCherkaoui/crafty-mcp

от hadicherkaoui

MCP сервер для Crafty Controller 4, открывающий полный API управления Minecraft-серверами через AI-ассистентов. Запускай и останавливай серверы, отправляй консольные команды, управляй игроками, фай...

TypeScript⭐ 4
Ivy-Innovation/cubelife

Ivy-Innovation/cubelife

от ivy-innovation

MCP сервер CubeLife даёт AI-агенту пиксельного персонажа, который в реальном времени отображает статус, ошибки и завершение задач. Используется с Claude Code, Cursor, Copilot и другими AI-инструментами.

TypeScript⭐ 2
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин