Bismuth_MCP_Godot
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bismuth_MCP_Godot run Main.tscn headless, step 10 frames, and screenshot it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bismuth_MCP_Godot
MCP-сервер, который даёт AI-агенту полноценный доступ к движку Godot 4.x: чтение и правка сцен и ресурсов, интроспекция классов, запуск игры в управляемом headless-процессе, покадровая отладка, ввод, скриншоты, проверка скриптов, диагностика через встроенный GDScript LSP и мост к уже открытому редактору.
Сервер написан на TypeScript (Node ≥ 20), а вся работа с движком вынесена в GDScript-хост, который запускается внутри Godot. Поэтому сцены, ресурсы и поведение игры агент изучает настоящим движком, а не приблизительной реконструкцией формата файлов.
Автор: QkartBismuth · лицензия MIT · текущая версия 0.0.1 · история изменений в CHANGELOG.md
Содержание
Related MCP server: Godot MCP Toolkit
Возможности
Область | Что умеет |
Сцены | точное чтение |
Игра | запуск сцены в headless-хосте, пошаговое выполнение кадров, пауза, |
Справочник API | классы, методы, свойства, сигналы, enum, константы через ClassDB; официальная документация из кэша |
Код | структура GDScript-файла с номерами строк и docstring, поиск использований символа, проверка синтаксиса всех скриптов, разбор ошибок компиляции |
Ресурсы | чтение и запись любых Resource, создание ресурсов, поиск ассетов, обратные ссылки «где упоминается этот ресурс» |
Проект | настройки |
Редактор | мост к открытому редактору (открытие/правка/сохранение сцен, запуск проекта, лог, снимок окна) и диагностика через встроенный GDScript LSP |
Как это работает
AI-агент ── MCP (stdio, JSON-RPC) ──▶ Bismuth_MCP_Godot (Node/TS)
│ реестр инструментов, лимиты, песочница путей
│ индекс API из --dump-extension-api-with-docs
│
├─ TCP 127.0.0.1 (JSONL + одноразовый токен)
│ └─▶ godot --headless --script res://.mcp/host.gd
│ долгоживущий SceneTree-хост: ClassDB,
│ ресурсы, сцены, живой рантайм, ввод, скриншоты
├─ разовые запуски CLI: --import, --check-only, --export-*
├─ LSP (Content-Length) ──▶ godot --editor --lsp-port N
└─ TCP-сервер ◀── @tool-плагин addons/bismuth_mcp_godot
(открытый редактор: сцены, запуск, лог, скриншот)Ключевая идея: один headless-процесс Godot живёт всё время сессии агента. Он поднимает автолоаны проекта, а сцены загружает в своё дерево — поэтому связка «запустить игру → посмотреть дерево узлов → вызвать метод → сделать скриншот → проиграть 10 кадров» работает без перезапусков процесса.
Протокол хоста. Godot подключается к серверу (а не наоборот) и говорит на JSON-строк��х:
{"type":"req","id":N,"cmd":"scene.tree","params":{…}} → {"type":"res","id":N,"ok":true,"data":{…}}.
События (step_complete, runtime_started, host_shutdown) идут отдельными сообщениями.
Всё, что приходит в stdout/stderr процесса Godot, попадает в кольцевой буфер логов.
Что сервер создаёт внутри Godot-проекта (всё это игнорируется движком и исключается из VCS):
Каталог | Содержимое |
| скрипты GDScript-хоста + |
| автобэкапы сцен перед каждой записью |
| PNG-скриншоты |
Требования
Node.js ≥ 20.10 (проверено на 26.x)
Godot 4.x редакторной сборки — на ней построены и host-скрипты, и аддон моста, и LSP. Проверено на 4.4.1 (GitHub Actions) и 4.7.2 (локально), Linux/AMD64
Для скриншотов и рендера: графическая сессия (
DISPLAYилиWAYLAND_DISPLAY)
Установка
git clone https://github.com/QkartBismuth/Bismuth_MCP_Godot.git
cd Bismuth_MCP_Godot
npm install
npm run buildnpm run build собирает TypeScript в dist/ и делает dist/index.js исполняемым.
Проверить, что всё видно (движок, проект, скриншоты, LSP, мост):
GODOT_PROJECT=/path/to/your/project node dist/cli.jsУбрать служебные каталоги из проекта:
GODOT_PROJECT=/path/to/your/project node dist/cli.js --cleanМожно установить глобально как команду:
npm link # доступны команды bismuth-mcp-godot и bismuth-mcp-godot-doctorИмя пакета в npm — bismuth-mcp-godot: спецификация npm не допускает верхний регистр
в имени пакета, поэтому в технических идентификаторах используется нижний регистр,
а человекочитаемое название — Bismuth_MCP_Godot.
Подключение к MCP-клиенту
Сервер работает через stdio, поэтому в конфиге указывается только команда.
Каталог проекта фиксируется один раз: переменная GODOT_PROJECT (рекомендуется)
или текущий рабочий каталог клиента.
opencode
~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bismuth-mcp-godot": {
"type": "local",
"command": ["node", "/путь/к/Bismuth_MCP_Godot/dist/index.js"],
"environment": { "GODOT_PROJECT": "/путь/к/godot/проекту" },
"enabled": true
}
}
}Claude Desktop
claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json
на macOS, %APPDATA%\Claude\claude_desktop_config.json на Windows):
{
"mcpServers": {
"bismuth-mcp-godot": {
"command": "node",
"args": ["/путь/к/Bismuth_MCP_Godot/dist/index.js"],
"env": { "GODOT_PROJECT": "/путь/к/godot/проекту" }
}
}
}Cursor / Windsurf / VS Code / любой клиент с MCP
{
"mcpServers": {
"bismuth-mcp-godot": {
"command": "node",
"args": ["/путь/к/Bismuth_MCP_Godot/dist/index.js"],
"env": { "GODOT_PROJECT": "/путь/к/godot/проекту" }
}
}
}После правки конфига перезапустите клиент: MCP-серверы читаются при старте.
Первый сеанс агента
Типичный цикл работы агента — от «понять проект» до «увидеть результат»:
// 1. Окружение
godot_status {}
// 2. Что в проекте
godot_project_info { input_actions: true }
godot_scene { mode: "state", path: "res://scenes/main.tscn" } // что реально записано в файле
godot_scene { mode: "tree", path: "res://scenes/main.tscn" } // дерево узлов
// 3. Справка и код
godot_class { mode: "info", class: "CharacterBody2D", sections: ["methods", "properties"] }
godot_script { mode: "symbols", path: "res://scripts/player.gd" }
// 4. Правка сцены: сначала dry run, потом запись
godot_scene_edit { path: "res://scenes/main.tscn", save: false, ops: [
{ "op": "add_node", "parent": "Player", "type": "CollisionShape2D", "name": "Body",
"props": { "shape": { "$": "ClassRef", "class": "CapsuleShape2D" } } }
]}
godot_scene_edit { /* те же ops */ , save: true }
// 5. Проверка и запуск
godot_script_check { dir: "res://scripts", boot_check: true }
godot_run { mode: "start", render: true, scene: "res://scenes/main.tscn" }
godot_input { mode: "action", action: "jump", pressed: true }
godot_run { mode: "step", frames: 30 }
godot_screenshot { node: "Player" }
godot_runtime { mode: "get", node: "Player", property: "position" }
godot_logs { mode: "errors" }Готовый сценарий целиком можно посмотреть в scripts/e2e-demo.mjs
(npm run build && node scripts/e2e-demo.mjs): создание сцены из операций, проверка
скриптов, запуск с рендером, 60 кадров физики, скриншот и чтение живой позиции игрока.
Справочник инструментов
Всего 23 инструмента. Схемы и описания отдаются клиенту автоматически; ниже — поведение и важные параметры.
Проект и окружение
Инструмент | Поведение |
| версия движка и бинарь, корень проекта, состояние host-процесса, режим рендера, готовность импорта, индекс документации, лимиты. |
| имя, features, главная сцена, автолоаны, слои физики/рендера, плагины, глобальные классы, пресеты экспорта. Флаги |
|
|
|
|
|
|
|
|
| новый проект: |
|
|
Сцены и ресурсы
Инструмент | Поведение |
|
|
| батч операций над сценой; |
| список автобэкапов из |
|
|
Операции godot_scene_edit (выполняются по порядку, первая ошибка останавливает батч):
Операция | Ключевые поля |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сцены сохраняются через PackedScene движка, поэтому корректно пишутся owner,
ext_resource, UID и связи. Перед записью создаётся бэкап в .mcp-backups.
Рантайм
Инструмент | Поведение |
|
|
|
|
|
|
| PNG окна или с кропом по узлу ( |
| текстура проекта как PNG-блок (визуальная проверка спрайтов, иконок, атласов) |
| буфер stdout/stderr, разбор |
Справочник и код
Инструмент | Поведение |
|
|
|
|
|
|
Формат значений Godot в JSON
Свойства задаются и возвращаются в наглядном виде:
{ "$": "Vector2", "x": 100, "y": 0 }
{ "$": "Color", "hex": "#ff8800" }
{ "$": "Resource", "class": "Texture2D", "path": "res://art/hero.png" }
{ "$": "ClassRef", "class": "CircleShape2D" }
"Vector2(10, 20)" // строковая запись тоже понимается
"theme/colors/font_color" // вложенное свойство
"PackedStringArray(\"a\", \"b\")" // упакованные массивыТип подставляется автоматически по property_list цели, поэтому {"energy": 2.5}
на PointLight2D станет float, а {"visible": true} — bool. Массивы и словари
конвертируются рекурсивно.
Редактор: мост и LSP
Мост редактора
godot_editor { "mode": "install_bridge" }Аддон res://addons/bismuth_mcp_godot копируется в проект, прописывается в секцию
[editor_plugins] файла project.godot и подключается к MCP-серверу по данным из
.mcp/bridge.json (переподключается сам при перезапуске сервера). После этого:
перезапустите редактор;
включите плагин: Проект → Настройки плагинов → Bismuth MCP Godot Bridge.
Дальше доступны status, open_scene, save, reload, log, run, stop,
edit_scene (правка открытой в редакторе сцены с автосохранением) и screenshot
(снимок окна редактора).
GDScript LSP
godot_lsp подключается к встроенному языковому серверу Godot: сначала пробует уже
открытый редактор (порт 6005 или GODOT_MCP_LSP_PORT), иначе поднимает собственный
headless-редактор (первый вызов занимает 5–10 секунд). Режимы: diagnostics (ошибки
и предупреждения по файлам), hover, definition, completion, symbols,
references, status.
Переменные окружения
Переменная | По умолчанию | Назначение |
| текущий каталог | корень Godot-проекта |
|
| путь к бинарю движка |
|
|
|
|
|
|
|
|
|
|
| размер окна в рендер-режиме |
|
| положение окна (можно увести за пределы экрана) |
|
| фиксированный порт TCP-моста |
|
| порт LSP уже открытого редактора |
|
| таймаут команд хоста |
|
| таймаут запуска host-процесса и импорта |
|
| таймаут пошагового выполнения |
|
| таймаут разовых запусков CLI |
|
| таймаут фонового |
|
| размер кольцевого буфера логов |
|
| лимит размера ответа хоста |
|
| кэш индекса API |
|
|
|
|
| резерв для запуска произвольного GDScript |
Безопасность и ограничения
Песочница. Все файловые операции ограничены корнем проекта; попытка выйти за его пределы возвращает ошибку
sandbox.Локальный транспорт. TCP-мост слушает только
127.0.0.1и требует одноразовый токен, который каждый раз генерируется заново при старте сервера.Импорт проекта идёт в фоне. При старте сервера, если каталога
.godotнет, запускаетсяgodot --import. На больших проектах это минуты, поэтому запросы не блокируются: инструмент вернёт ошибкуimportingс подсказкой, а состояние видно вgodot_status→import.state(running→ready).Работа без проекта. Если
project.godotне найден, сервер всё равно стартует:godot_statusпокажет причину, остальные инструменты вернутno_project.Ничего не меняется без
save. Правки сцен и ресурсов применяются в памяти, пока не переданsave: true; перед записью сцены создаётся бэкап.Лимиты. Размер ответа ограничен (по умолчанию 8 МБ) — при превышении приходит подсказка уменьшить выборку (
max_nodes,props,limit).Скриншоты требуют реального display-драйвера. В headless рендерер фиктивный; сервер вернёт ошибку
no_rendererс инструкцией, как включить рендер.Рендер-режим открывает настоящее окно Godot — на время работы агента.
Если игра вызывает
get_tree().quit(), процесс хоста завершается: сервер пометит рантайм как остановленный и поднимет новый при следующем обращении.Два экземпляра редактора на одном проекте конфликтуют, поэтому
godot_lspсначала подключается к уже открытому редактору, и только потом поднимает свой.
Разработка
npm install
npm run build # tsc + chmod точки входа
npm run typecheck # проверка типов без сборки
npm test # 29 тестов: интеграционные (реальный Godot), MCP-уровень, юнит-тесты
npm run check:gd # синтаксис всех GDScript-файлов хоста и аддона
npm run doctor # диагностика окружения
node scripts/e2e-demo.mjs # полный демо-цикл агентаСтруктура
src/
index.ts точка входа: stdio MCP-сервер
cli.ts doctor / doctor --clean
config.ts env, поиск корня проекта, песочница путей
engine/
godot.ts менеджер host-процесса, установка скриптов, аддона, runCli
bridge.ts TCP-мост: пиры, протокол JSONL, роутинг запросов
logs.ts кольцевой буфер логов, разбор ошибок и трассировок
editor.ts менеджер редактора и LSP-сессии
apiIndex.ts кэш extension_api.json: классы, методы, поиск
lsp/client.ts клиент GDScript LSP поверх TCP
mcp/
helpers.ts контекст, ответы, ошибки, типы инструментов
server.ts регистрация 23 инструментов
tools/
project.ts scene.ts inspect.ts runtime.ts editor.ts
godot/
host/ GDScript-хост: host.gd, variant.gd, commands/*.gd
editor_bridge/ @tool-плагин редактора: plugin.cfg, plugin.gd, ops.gd
test/
unit.test.ts config, песочница, логи, индекс API
import.test.ts фоновый импорт и работа без проекта
integration.test.ts сценарии на реальном Godot (копия фикстуры в /tmp)
mcp.test.ts протокол MCP через in-memory транспорт
fixtures/demo-project/ маленький проект Godot 4 для тестовКак отлаживать протокол
GODOT_MCP_VERBOSE=1 node dist/index.js # весь вывод Godot в stderr
bash scripts/check-gd.sh # синтаксис GDScript (--check-only)Инструкции для ИИ-агентов, работающих с этим репозиторием, — в AGENT.md.
Известные грабли Godot 4.x
Зафиксированы при разработке, полезны при доработке хоста:
--scriptтребует наследования отMainLoop/SceneTree(даже вместе с-e), но автолоаны проекта при этом поднимаются — на этом построен рантайм.Статус
StreamPeerTCPобновляется только послеpoll(): нельзя читатьget_status()до опроса сокета, иначе соединение не поднимется.SceneTree::process()вызываетMainLoop::process()первым — обработчик_processхоста выполняется до обработки узлов, и в нём удобно читать сокет.Предупреждение
inference_on_variantв 4.7 считается ошибкой; в файлах хоста оно подавлено на уровне файла через@warning_ignore_start.Оператор
%со списком аргументов внутри словаря ломает парсер GDScript — используется обёрткаfmt().PackedScene.pack()не требуетowner == self, но включает только узлы сowner == root; содержимое подсцен оставляется внутри инстансов.Часть API появилась только в 4.5+:
FileAccess.get_size()иSceneState.get_base_scene_state(). Для совместимости с 4.4 используетсяhost.file_size()(черезget_length()) и проверкаhas_method().RegEx.new()не принимает аргументы — шаблон задаётся черезcompile().ResourceLoader.get_resource_type()не доступен из скриптов — тип определяется по карте «расширение → класс», собранной изClassDB.Часть методов движка отдаёт в
argsне словари — значения приводятся к словарю перед разбором.Списком
[1, 2, 3][:limit]нельзя взять срез прямо в литерале словаря — результат вычисляется заранее.
Лицензия
MIT © 2026 QkartBismuth
Available Tools
23 toolsgodot_assetsПоиск ресурсовBRead-only
Поиск ассетов проекта по имени/пути и типу ресурса (Texture2D, PackedScene, Script, AudioStream, Font, Shader...) с uid, размером и признаком импорта. Дополнительно mode=references находит, где ресурс упоминается в текстовых файлах.
Inputs: dir, mode, path, type, +3 more.
godot_classСправка по API GodotARead-only
Справка по классам движка. mode=info — методы, свойства, сигналы, перечисления, константы класса (структура берётся из ClassDB, точная и актуальная; mode=docs добавляет официальную документацию из кэша --dump-extension-api-with-docs). mode=search — поиск по всему API (классы, методы, свойства, сигналы, enum) и по глобальным классам проекта. mode=props — допустимые значения перечисляемого свойства. mode=inheritors — кто наследуется от класса.
Inputs: mode, class, kinds, limit, +5 more.
godot_editorРедактор GodotADestructive
Управление редактором через аддон-мост (нужен запущенный редактор с плагином Bismuth MCP Godot Bridge). mode=status — состояние, mode=install_bridge — установить аддон в проект (изменяет проект!), mode=open_scene — открыть сцену в редакторе, mode=save — сохранить открытую сцену, mode=reload — перечитать сцену с диска, mode=log — журнал редактора, mode=run — запустить проект из редактора, mode=stop — остановить, mode=edit_scene — применить операции к открытой в редакторе сцене, mode=screenshot — снимок окна редактора.
Inputs: ops, mode, path, limit, +1 more.
godot_exportЭкспорт и тестыADestructive
Сборка: mode=presets — список пресетов экспорта, mode=export — экспорт по пресету (pack или бинарник), mode=test — запуск тестов в headless (GUT или пользовательский раннер) с разбором вывода.
Inputs: mode, preset, target, release, +3 more.
godot_filesФайлы проектаADestructive
Работа с файлами проекта. mode=list — дерево файлов с фильтрами-глобами (*.gd, res://scenes/**), mode=read — чтение текста (с диапазоном строк), mode=write — запись (создаёт каталоги), mode=restore — восстановление файла из бэкапа .mcp-backups. Выход за пределы корня проекта запрещён.
Inputs: mode (required), path, limit, append, +9 more.
godot_imageИзображение ассетаARead-only
Возвращает текстуру проекта как PNG-блок (визуальная проверка спрайтов, иконок, атласов) и краткую информацию о размере/формате. size — привести к квадрату указанного размера (0 = без изменений).
Inputs: path (required), out, size.
godot_inputВвод в игруADestructive
Инъекция ввода в запущенную игру без участии ОС (работает и в headless). mode=action — нажать/отпустить действие InputMap (move_left, jump...), mode=key — клавиша по имени ("SPACE", "A", "ESCAPE"), mode=mouse_button, mode=mouse_motion, mode=joy_button, mode=release_all — отпустить всё. После нажатия имеет смысл выполнить godot_run { mode: "step" }.
Inputs: alt, key, ctrl, meta, +9 more.
godot_logsЛоги и ошибкиBRead-only
Вывод запущенного Godot: print из игры, ошибки и трассировки. mode=tail — последние строки, mode=errors — только ошибки и предупреждения с разобранными стек-трейсами, mode=clear — сбросить буфер. Используйте cursor из ответа для инкрементального чтения (since).
Inputs: grep, mode, level, limit, +1 more.
godot_lspДиагностика GDScript (LSP)ADestructive
Доступ к встроенному языковому серверу Godot (GDScript LSP). mode=diagnostics — ошибки и предупреждения по файлам (файл должен существовать; ставится в очередь didOpen), mode=hover — документация символа по позиции, mode=definition — переход к определению, mode=completion — автодополнение, mode=symbols — структура файла по данным редактора, mode=references — использования символа, mode=status — состояние LSP. Если редактор не открыт, сервер поднимает свой headless-редактор (первый вызов занимает до десятка секунд). Позиции: line и character 1-based.
Inputs: dir, line, mode, path, +4 more.
godot_project_importИмпорт проектаADestructive
Запускает godot --headless --import: пересканирует файловую систему проекта, импортирует/переимпортирует ассеты, генерирует uid. Нужно после добавления новых файлов ассетов перед их использованием. Возвращает сводку и хвост вывода.
Inputs: force, timeout_ms.
godot_project_infoИнформация о проектеBRead-only
Сводка по Godot-проекту: имя, версия/features, главная сцена, автолоаны, слои физики/рендера, input-карта, плагины редактора, глобальные классы (class_name), пресеты экспорта.
Inputs: autoloads, input_actions, global_classes.
godot_project_scaffoldСоздание проектаADestructive
Создаёт новый Godot 4 проект в указанном каталоге: project.godot (с корректными features), .gitignore, main.tscn, скрипт игрока и каталоги. Используйте для старта с нуля — текущий проект сервера при этом не меняется.
Inputs: dir (required), name, renderer, overwrite, +3 more.
godot_project_settingsНастройки проектаADestructive
Чтение и запись настроек проекта (project.godot): list (все ключи, опционально по префиксу), get (конкретные ключи), set (запись значений с правильной типизацией, save=true сохраняет файл). Ключи указываются без секции: "display/window/size/viewport_width".
Inputs: mode (required), keys, save, items, +2 more.
godot_resourceРесурсы GodotADestructive
Чтение и изменение любого Resource (.tres, темы, шейдеры, ресурсы сцен). mode=info — метаданные и зависимости, mode=get — свойства, mode=set — запись свойств (save=true сохраняет файл, save_as — в новый), mode=create — создание ресурса. Значения свойств: примитивы (число/строка/bool), вложенные пути вида "theme/colors/font_color", строки вида "Vector2(10, 20)" или объекты {"$":"Vector2","x":10,"y":20}, {"$":"Color","hex":"#ff8800"}, ссылки на ресурсы {"path":"res://icon.svg"} или {"$":"ClassRef","class":"PointLight2D"}.
Inputs: path (required), base, mode, save, +7 more.
godot_runЗапуск игрыADestructive
Управление запущенной игрой внутри headless-хоста Godot. mode=start — загрузить сцену в дерево (по умолчанию main_scene), mode=stop — выгрузить, mode=status — состояние, mode=step — выполнить N кадров (или seconds) с автоматической паузой после (удобно для пошаговой отладки), mode=configure — пауза, time_scale, max_fps. Важно: чтобы увидеть игру, сначала вызовите mode=start с render=true, затем godot_screenshot.
Inputs: mode, scene, frames, paused, +7 more.
godot_runtimeИнспекция и управление рантаймомADestructive
Работа с живой игрой. mode=tree — дерево узлов, mode=inspect — свойства узла, mode=find — поиск по имени/типу/группе/скрипту, mode=get / set — чтение и запись свойств (в том числе вложенных вида "theme/colors/font_color"), mode=call — вызов метода узла, mode=emit — отправка сигнала, mode=connect — соединение сигнала с методом. Сначала запустите игру через godot_run { mode: "start" }. Значения свойств: примитивы (число/строка/bool), вложенные пути вида "theme/colors/font_color", строки вида "Vector2(10, 20)" или объекты {"$":"Vector2","x":10,"y":20}, {"$":"Color","hex":"#ff8800"}, ссылки на ресурсы {"path":"res://icon.svg"} или {"$":"ClassRef","class":"PointLight2D"}.
Inputs: to, args, from, mode, +21 more.
godot_sceneСцены GodotADestructive
Чтение сцен. mode=state — точное содержимое файла .tscn (только сохранённые свойства, ext_resource, связи): лучший способ понять, что реально записано в сцене. mode=tree — дерево узлов (файл или живая игра), mode=inspect — свойства/сигналы/методы узла, mode=create — создать новую сцену, mode=backups — бэкапы.
Inputs: ops, mode, node, path, +12 more.
godot_scene_backupsБэкапы сценBRead-only
Список автоматических бэкапов сцен из .mcp-backups (создаются перед каждой записью сцены).
Inputs: file, limit.
godot_scene_editРедактирование сценыADestructive
Транзакционное изменение .tscn пачкой операций. По умолчанию save=false (dry run: изменения применяются в памяти, в лог попадает результат, файл не трогается) — сначала проверьте результат, затем повторите с save=true, при этом автоматически создаётся бэкап в .mcp-backups. Операции: add_node, instantiate_scene, remove_node, duplicate, rename, reparent, move, set_props, group, script, connect, disconnect, set_owner, set_meta. Поля op: parent (для add_node/instantiate_scene), type, name, props, script, groups, index, path, to, signal, method, binds. Значения свойств: примитивы (число/строка/bool), вложенные пути вида "theme/colors/font_color", строки вида "Vector2(10, 20)" или объекты {"$":"Vector2","x":10,"y":20}, {"$":"Color","hex":"#ff8800"}, ссылки на ресурсы {"path":"res://icon.svg"} или {"$":"ClassRef","class":"PointLight2D"}.
Inputs: ops (required), path (required), save, backup, +1 more.
godot_screenshotСкриншот игрыADestructive
Снимок кадра игры в PNG. Требует запуска с render=true (godot_run { mode: "start", render: true }) — в headless рендерера нет. node — вырезать область узла (Control/Node2D/Node3D). Возвращает путь к файлу и само изображение.
Inputs: node, path, scale, timeout_ms.
godot_scriptСкрипты GDScriptBDestructive
Работа со скриптами. mode=info — метаданные (базовый класс, class_name, tool, строки), mode=symbols — структура: функции, сигналы, переменные (с @export и значениями по умолчанию), константы, enum, docstring и номера строк, mode=read — текст (с диапазоном строк), mode=references — где вызывается символ в .gd файлах проекта.
Inputs: dirs, mode, path, limit, +4 more.
godot_script_checkПроверка скриптовADestructive
Проверяет синтаксис и компиляцию .gd файлов (godot --check-only) и/или загружает проект в headless-режиме, чтобы поймать ошибки времени выполнения при инициализации. Возвращает список ошибок с файлами и строками. Используйте после массового редактирования скриптов.
Inputs: dir, limit, paths, boot_check, +1 more.
godot_statusСтатус GodotARead-only
Состояние MCP-сервера и движка: версия Godot, корень проекта, запущен ли headless-хост, режим рендера, готов ли импорт проекта, доступные возможности (скриншоты, LSP, редактор), лимиты. Вызывайте в начале работы. Работает даже если проект не найден — тогда остальные инструменты вернут ошибку no_project.
Inputs: refresh_api.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 23 tools
Several tools overlap: godot_scene (mode=tree/inspect) vs godot_runtime (mode=tree/inspect), godot_scene mode=backups vs the standalone godot_scene_backups, and godot_script symbols/references vs godot_lsp symbols/references. Descriptions clarify file-vs-live-game and editor-vs-analysis distinctions, but an agent could still misselect between them given the shared verbs and modes.
Every tool follows the strict pattern godot_ + snake_case noun (godot_project_info, godot_scene_edit, godot_script_check, godot_runtime). The prefix and casing are uniform throughout, making the surface highly predictable.
23 tools is on the heavy side but each targets a distinct Godot subsystem (project, files, assets, scenes, scripts, runtime, editor, LSP, export), so the breadth roughly justifies the count. It sits just above the ideal band but avoids redundancy bloat beyond the noted overlaps.
The surface covers the full Godot dev lifecycle: scaffolding, settings, assets/import, scene read/edit with backups, runtime control, input injection, screenshots, logs, class/API reference, script checks, LSP, and editor bridge. No obvious dead ends for the stated purpose.
Maintenance
Related MCP Connectors
AI game maker: build, run, screenshot and play-test Godot and retro console games in a live project
Make games with AI: one MCP server that connects your agent to Unity, Unreal and Godot editors.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Make all the audio for your game from a single prompt. Describe your game and your AI assistant plans every sound it needs (sound effects, ambience loops, music tracks and character voice lines), then generates them all in one go. You get several AI versions of each sound and keep the ones you like. Sounds are organized per game in folders and scenes, and the free Godot plugin installs them into your project, ready to play with one line of code. Works with Claude, Claude Code, Cursor and any MCP client, with OAuth login (no API key needed). Free plan included; sounds can be used in commercial games.
Related MCP Servers
- AlicenseCqualityCmaintenanceEnables AI agents to interact with the Godot game engine, including project inspection, scene/script parsing, headless exports, runtime control with live scene-tree inspection and evaluation, and API documentation search.100772 npm5MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to automate Godot 4 projects via headless tooling, live editor control, and runtime remote control, including scene building, testing, and observation.431MIT
- AlicenseBqualityCmaintenanceEnables AI agents to inspect, modify, run, and debug Godot projects, including scene and script analysis, editor and project management, and visual verification through screenshots.2210 npm14MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to build, run, and debug Godot projects by editing scenes and scripts, inspecting live game state, injecting input, capturing viewports, and examining native debugger state through 42 tools.European Union Public 1.2