Erodenn/godot-mcp-runtime

Erodenn/godot-mcp-runtime

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

Godot MCP Runtime

godot-runtime-mcp MCP server

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

A lightweight MCP server that pairs comprehensive headless editing with 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, and live GDScript 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.

Think of it as Playwright MCP, but for Godot. This does the same thing for games: run the project, take a screenshot, simulate input, read what's on screen, execute a script against the live scene tree. The agent closes the loop on its own changes rather than handing off to you to verify.

add_autoload

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

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

Параметры

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

    Path to the Godot project directory

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

    Name of the autoload node (e.g. "MyManager")

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

    Path to the script or scene (e.g. "res://autoload/my_manager.gd" or "autoload/my_manager.gd")

  • singletonboolean

    Register as a globally accessible singleton by name (default: true)

add_node

Добавляет узел в сцену Godot. Сохраняется автоматически. Стандартные пространственные свойства (position, position3d, rotation, scale, visible, modulate) можно задавать как параметры верхнего уровня; для любого другого свойства передавайте его в properties. Значения Vector2/Vector3/Color преобразуются автоматически из {x,y}/{x,y,z}/{r,g,b,a}. parentNodePath по умолчанию указывает на корень сцены. Возвращает обычное текстовое подтверждение с именем нового узла и его типом. Ошибка, если nodeType не является зарегистрированным классом Godot или parentNodePath не существует.

Добавляет узел в сцену Godot. Сохраняется автоматически. Стандартные пространственные свойства (position, position3d, rotation, scale, visible, modulate) можно задавать как параметры верхнего уровня; для любого другого свойства передавайте его в properties. Значения Vector2/Vector3/Color преобразуются автоматически из {x,y}/{x,y,z}/{r,g,b,a}. parentNodePath по умолчанию указывает на корень сцены. Возвращает обычное текстовое подтверждение с именем нового узла и его типом. Ошибка, если nodeType не является зарегистрированным классом Godot или parentNodePath не существует.

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Godot node class to instantiate (e.g. "Sprite2D", "CollisionShape2D", "Label")

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

    Name for the new node as it appears in the scene tree

  • parentNodePathstring

    Parent node path from scene root (e.g. "root/Player"). Defaults to the root node.

  • positionobject

    Vector2 position (e.g. {"x": 100, "y": 200})

  • position3dobject

    Vector3 position for 3D nodes (e.g. {"x": 0, "y": 1, "z": 0})

  • rotationnumber

    Rotation in radians

  • scaleobject

    Vector2 scale (e.g. {"x": 2, "y": 2})

  • visibleboolean

    Whether the node is visible

  • modulateobject

    Color modulation (e.g. {"r": 1, "g": 0, "b": 0, "a": 1})

  • propertiesobject

    Additional property values as a JSON object. Top-level params (position, rotation, etc.) take precedence over keys in this dict.

attach_project

Внедрите мост MCP в процесс Godot, который вы запускаете сами, затем подождите до 15 секунд, пока мост не ответит. Вызывайте ДО запуска Godot: Godot читает автозагрузки только при запуске процесса, поэтому поздний вызов вернёт «bridge did not respond». Рекомендуемый подход: запустите Godot параллельно с этим вызовом, чтобы ожидание поглотило время запуска. Используйте run_project, если только MCP не должен запускать Godot. Возвращает статус в виде обычного текста с определённым портом моста. Вызовите detach_project или stop_project, когда закончите.

Внедрите мост MCP в процесс Godot, который вы запускаете сами, затем подождите до 15 секунд, пока мост не ответит. Вызывайте ДО запуска Godot: Godot читает автозагрузки только при запуске процесса, поэтому поздний вызов вернёт «bridge did not respond». Рекомендуемый подход: запустите Godot параллельно с этим вызовом, чтобы ожидание поглотило время запуска. Используйте run_project, если только MCP не должен запускать Godot. Возвращает статус в виде обычного текста с определённым портом моста. Вызовите detach_project или stop_project, когда закончите.

Параметры

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

    Path to the Godot project directory

  • bridgePortnumber

    TCP port for the MCP bridge. Omit to auto-select a free port (recommended). The chosen port is baked into the project's `mcp_bridge.gd` at inject time, so the running Godot listens on exactly this port.

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

Прикрепляет существующий GDScript-файл к узлу в сцене. Используйте после написания скрипта стандартными файловыми инструментами и проверки через инструмент проверки. Заменяет любой ранее прикреплённый скрипт. Сохраняет автоматически. Возвращает: успех с разрешённым nodePath и scriptPath, которые были прикреплены. Ошибка, если scriptPath не существует или nodePath не найден.

Прикрепляет существующий GDScript-файл к узлу в сцене. Используйте после написания скрипта стандартными файловыми инструментами и проверки через инструмент проверки. Заменяет любой ранее прикреплённый скрипт. Сохраняет автоматически. Возвращает: успех с разрешённым nodePath и scriptPath, которые были прикреплены. Ошибка, если scriptPath не существует или nodePath не найден.

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Node path from scene root (e.g. "root/Player")

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

    Path to the GDScript file relative to the project (e.g. "scripts/player.gd")

batch_scene_operations

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

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

Параметры

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

    Path to the Godot project directory

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

    Ordered list of scene operations. Each item has its own operation and scenePath.

  • abortOnErrorboolean

    Stop processing on first error (default: false)

connect_signal

Подключает сигнал на исходном узле к методу на целевом узле, сохраняя соединение в .tscn. Используйте после get_node_signals, чтобы проверить имя сигнала на источнике и имя метода на цели. Подключение одной и той же пары сигнал+метод дважды создаёт дублирующееся соединение — сначала вызовите get_node_signals, если не уверены. Сохраняется автоматически. Возвращает подтверждение в виде обычного текста с указанием источника, сигнала, цели и метода. Выдаёт ошибку, если сигнал не существует на исходном узле или метод не существует на целевом узле.

Подключает сигнал на исходном узле к методу на целевом узле, сохраняя соединение в .tscn. Используйте после get_node_signals, чтобы проверить имя сигнала на источнике и имя метода на цели. Подключение одной и той же пары сигнал+метод дважды создаёт дублирующееся соединение — сначала вызовите get_node_signals, если не уверены. Сохраняется автоматически. Возвращает подтверждение в виде обычного текста с указанием источника, сигнала, цели и метода. Выдаёт ошибку, если сигнал не существует на исходном узле или метод не существует на целевом узле.

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Source node path from scene root

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

    Signal name on the source node (e.g. "pressed", "body_entered")

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

    Target node path from scene root that receives the signal

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

    Method name on the target node to call when the signal fires

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

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project (e.g. "scenes/main.tscn")

  • rootNodeTypestring

    Root node type (default: Node2D)

delete_nodes

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project (e.g. "scenes/main.tscn")

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

    Node paths from scene root to delete (e.g. ["root/Player/Sprite2D"])

detach_project

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

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

Параметры

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

disconnect_signal

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Source node path from scene root

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

    Signal name on the source node

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

    Target node path from scene root

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

    Method name on the target node

duplicate_node

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Node path from scene root to duplicate

  • newNamestring

    Name for the duplicated node (default: original name + "2")

  • targetParentPathstring

    Parent node path for the duplicate (default: same parent as original)

export_mesh_library

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Output path for the MeshLibrary .res file (relative to project)

  • meshItemNamesstring[]

    Names of specific mesh items to export. Omit to export all.

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

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

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

Параметры

  • limitnumber

    Max lines to return (default: 200, from end of output)

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

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Nodes to read properties from

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

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Node path from scene root (e.g. "root/Button")

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

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

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

Параметры

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

    Path to the Godot project directory

  • maxDepthnumber

    Maximum recursion depth. -1 means unlimited (default: -1)

  • extensionsstring[]

    Filter to only these file extensions (e.g. ["gd", "tscn"]). Omit to include all.

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

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

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

Параметры

  • projectPathstring

    Path to the Godot project directory (optional — omit to get Godot version only)

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

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

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

Параметры

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

    Path to the Godot project directory

  • sectionstring

    Filter to a specific INI section (e.g. "display", "application"). Omit for all sections.

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

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

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

Параметры

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

    Path to the Godot project directory

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

    Path to the .tscn file relative to the project root (e.g. "scenes/main.tscn")

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

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

  • parentPathstring

    Scope to a subtree starting at this node path (e.g. "root/Player")

  • maxDepthnumber

    Maximum recursion depth. -1 for unlimited (default: -1). 1 returns only direct children.

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.

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

Параметры

  • visibleOnlyboolean

    Only return nodes where Control.visible is true (default: true). Set false to include hidden elements.

  • filterstring

    Filter by Control node type (e.g. "Button", "Label", "LineEdit")

launch_editor

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

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

Параметры

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

    Path to the Godot project directory

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

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

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

Параметры

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

    Path to the Godot project directory

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

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

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

Параметры

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

    Directory to search for Godot projects

  • recursiveboolean

    Whether to search recursively (default: false)

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

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Path to the target node from scene root (e.g. "root/Player/Sprite2D")

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

    Path to the texture file relative to the project (e.g. "assets/player.png")

remove_autoload

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

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

Параметры

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

    Path to the Godot project directory

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

    Name of the autoload to remove

run_project

Запускает проект Godot как дочерний процесс с захватом stdout и stderr. Требуется перед take_screenshot, simulate_input, get_ui_elements, run_script или get_debug_output. Если вы сами запустили процесс Godot, используйте attach_project. Проверяет готовность MCP bridge перед возвратом успеха. Возвращает статус в виде обычного текста с назначенным портом bridge. После завершения вызовите stop_project. Выдаёт ошибку, если projectPath не является проектом Godot или уже активна другая сессия.

Запускает проект Godot как дочерний процесс с захватом stdout и stderr. Требуется перед take_screenshot, simulate_input, get_ui_elements, run_script или get_debug_output. Если вы сами запустили процесс Godot, используйте attach_project. Проверяет готовность MCP bridge перед возвратом успеха. Возвращает статус в виде обычного текста с назначенным портом bridge. После завершения вызовите stop_project. Выдаёт ошибку, если projectPath не является проектом Godot или уже активна другая сессия.

Параметры

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

    Path to the Godot project directory

  • scenestring

    Scene to run (path relative to project, e.g. "scenes/main.tscn"). Omit to use the project's main scene.

  • backgroundboolean

    If true, hides the Godot window off-screen and blocks all physical keyboard and mouse input, while keeping programmatic input (simulate_input, run_script) and screenshots fully active. Useful for automated agent-driven testing where the window should not be visible or interactive.

  • bridgePortnumber

    TCP port for the MCP bridge. Omit to auto-select a free port (recommended). The chosen port is baked into the project's `mcp_bridge.gd` at inject time, so the running Godot listens on exactly this port.

run_script

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

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

Параметры

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

    GDScript source code. Must contain "extends RefCounted" and "func execute(scene_tree: SceneTree) -> Variant".

  • timeoutnumber

    Timeout in ms (default: 30000). Increase for long-running scripts.

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

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

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

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

  • newPathstring

    Save to a different path (relative to project) instead of overwriting the original

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

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

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

Параметры

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

    Path to the Godot project directory

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

    Plain-text string to search for

  • fileTypesstring[]

    File extensions to search (default: ["gd", "tscn", "cs", "gdshader"])

  • caseSensitiveboolean

    Case-sensitive search (default: false)

  • maxResultsnumber

    Maximum matches to return (default: 100)

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

Устанавливает одно или несколько свойств узла за один вызов в Godot. Всегда передавайте массив: для одиночного изменения используйте массив из одного элемента. Vector2 ({x,y}), Vector3 ({x,y,z}) и Color ({r,g,b,a}) преобразуются автоматически; примитивы передаются как есть. Для других сложных типов GDScript (Resource, NodePath и т.д.) используйте run_script. abortOnError останавливается при первой ошибке (по умолчанию false — продолжает). Сохраняет один раз в конце. Возвращает: results[] по одной записи на каждое обновление в порядке ввода (успех или ошибка).

Устанавливает одно или несколько свойств узла за один вызов в Godot. Всегда передавайте массив: для одиночного изменения используйте массив из одного элемента. Vector2 ({x,y}), Vector3 ({x,y,z}) и Color ({r,g,b,a}) преобразуются автоматически; примитивы передаются как есть. Для других сложных типов GDScript (Resource, NodePath и т.д.) используйте run_script. abortOnError останавливается при первой ошибке (по умолчанию false — продолжает). Сохраняет один раз в конце. Возвращает: results[] по одной записи на каждое обновление в порядке ввода (успех или ошибка).

Параметры

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

    Path to the Godot project directory

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

    Scene file path relative to the project

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

    Property updates to apply

  • abortOnErrorboolean

    Stop processing on first error (default: false)

simulate_input

Симулирует последовательный ввод в работающем проекте. Поле `type` каждого действия (key, mouse_button, mouse_motion, click_element, action, wait) определяет, какие другие поля применяются — см. документацию по каждому свойству. Для click_element сначала используйте get_ui_elements; поиск выполняется по пути/имени, а не по видимому тексту. Press/release требуют два действия; между ними вставьте wait для тактов кадра. Возвращает: success, actions_processed, warnings для ошибок времени выполнения, вызванных обработчиками ввода. Ошибка, если нет сессии или любое действие не проходит валидацию.

Симулирует последовательный ввод в работающем проекте. Поле `type` каждого действия (key, mouse_button, mouse_motion, click_element, action, wait) определяет, какие другие поля применяются — см. документацию по каждому свойству. Для click_element сначала используйте get_ui_elements; поиск выполняется по пути/имени, а не по видимому тексту. Press/release требуют два действия; между ними вставьте wait для тактов кадра. Возвращает: success, actions_processed, warnings для ошибок времени выполнения, вызванных обработчиками ввода. Ошибка, если нет сессии или любое действие не проходит валидацию.

Параметры

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

    Array of input actions to execute sequentially. Each object must have a "type" field.

stop_project

Останавливает запущенный проект Godot и очищает состояние моста MCP. Всегда вызывайте после завершения тестирования во время выполнения — даже после сбоя — чтобы освободить единственный слот процесса, и run_project можно будет вызвать снова. Для присоединённых сеансов этот вызов отсоединяется, не убивая внешне запущенный процесс. Возвращает: сообщение, режим ("spawned"/"attached"), externalProcessPreserved (true только для attached), finalOutput и finalErrors (последние 200 строк каждый). Выдаёт ошибку, если нет активного сеанса.

Останавливает запущенный проект Godot и очищает состояние моста MCP. Всегда вызывайте после завершения тестирования во время выполнения — даже после сбоя — чтобы освободить единственный слот процесса, и run_project можно будет вызвать снова. Для присоединённых сеансов этот вызов отсоединяется, не убивая внешне запущенный процесс. Возвращает: сообщение, режим ("spawned"/"attached"), externalProcessPreserved (true только для attached), finalOutput и finalErrors (последние 200 строк каждый). Выдаёт ошибку, если нет активного сеанса.

Параметры

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

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

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

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

Параметры

  • timeoutnumber

    Timeout in milliseconds to wait for the screenshot (default: 10000)

  • responseModeenum

    Response payload mode. "preview" returns a bounded inline preview plus paths (default). "full" returns the full inline PNG. "path_only" returns paths only.

    fullpreviewpath_only
  • previewMaxWidthnumber

    Maximum preview width in pixels when responseMode is "preview" (default: 960)

  • previewMaxHeightnumber

    Maximum preview height in pixels when responseMode is "preview" (default: 540)

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

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

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

Параметры

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

    Path to the Godot project directory

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

    Name of the autoload to update

  • autoloadPathstring

    New path to the script or scene

  • singletonboolean

    New singleton flag

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

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

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

Параметры

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

    Path to the Godot project directory

  • scriptPathstring

    [single] Path to a .gd file relative to the project to validate (e.g. "scripts/player.gd")

  • sourcestring

    [single] Inline GDScript source code to validate. Written to a temporary file and validated against the project.

  • scenePathstring

    [single] Path to a .tscn scene file relative to the project to validate (e.g. "scenes/main.tscn")

  • targetsobject[]

    [batch] Array of targets to validate in a single Godot process. Each item must have exactly one of: scriptPath, source, or scenePath.

Другие проверенные MCP-сервера

XeroAPI/xero-mcp-server

XeroAPI/xero-mcp-server

официальный

MCP-сервер для интеграции с Xero: управление контактами, счетами, планом счетов, отчётами и расчётами зарплаты через единый протокол. Полезен разработчикам и бухгалтерам, автоматизирующим обмен дан...

TypeScript340
microsoft/azure-devops-mcp

microsoft/azure-devops-mcp

MCP сервер для Azure DevOps предоставляет AI-агентам доступ к проектам, рабочим элементам и вики. Рекомендуется удаленная версия, доступна и локальная. Инструмент упрощает взаимодействие с DevOps-данными через естественный язык.

TypeScript1895
hashicorp/terraform-mcp-server

hashicorp/terraform-mcp-server

официальный

MCP-сервер для интеграции с Terraform Registry и HCP Terraform, автоматизирующий управление workspace, переменными и запусками в Infrastructure as Code (IaC) через ИИ-ассистенты.

Go1474
callstackincubator/agent-device

callstackincubator/agent-device

agent-device — CLI для автоматизации устройств, позволяющий AI-агентам открывать приложения на iOS, Android и десктопе, инспектировать UI, взаимодействовать с элементами и собирать отладочную инфор...

TypeScript3496
Timeweb MCP

Timeweb MCP

официальный

MCP сервер для автоматизации деплоя приложений в Timeweb Cloud. Создавайте приложения, базы данных, VPC и floating IP прямо из чата. Сервер сам определяет параметры проекта и фреймворк. Идеально для быстрого развертывания в облаке.

TypeScript25
translated/lara-mcp

translated/lara-mcp

официальный

MCP сервер для профессионального перевода через Lara Translate. Переводит текст с учётом контекста, глоссариев и памяти переводов, определяет язык. Полезен разработчикам и переводчикам для точных д...

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

Лука Никитин