pzalutski-pixel/godotlens-mcp

pzalutski-pixel/godotlens-mcp

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

GodotLens: AI-First Code Analysis for GDScript

GitHub Release npm PyPI License: MIT

An MCP server providing 15 semantic analysis tools for GDScript, powered by Godot's built-in Language Server.

Built for AI Agents

AI coding agents work with text files but lack semantic understanding of GDScript. When an agent uses grep to find usages of a function, it cannot distinguish a function call from a comment containing the same name, a signal declaration from a signal emission, or an overridden method from an unrelated function.

GodotLens bridges this gap by exposing Godot's built-in Language Server through the Model Context Protocol (MCP), giving AI agents compiler-accurate code intelligence for GDScript — go to definition, find references, diagnostics, rename, and more.

Example: Finding all usages of _on_player_hit:

Approach Result
grep "_on_player_hit" 12 matches including comments, strings, and similarly named functions
gdscript_references Exactly 4 call sites where _on_player_hit is invoked

Prerequisites

  • Godot 4.x editor must be running with your project open — Godot's LSP server starts automatically when the editor opens a project
  • Python 3.10+ (for pip install) or Node.js 16+ (for npx)
Инструменты были проиндексированы:
debug_continue

Возобновляет приостановленную игру. Возвращает: подтверждение.

Параметры
  • thread_idinteger

    Thread id (default 1)

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

Оценивает выражение GDScript в контексте приостановленного кадра. Возвращает: результирующее значение и его тип. Используйте для проверки состояния в точке останова без добавления вызовов print() и повторного запуска.

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

    GDScript expression

  • frame_idinteger

    Frame id from debug_stack_trace

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

Проверяет переменные, видимые в стековом фрейме. Возвращает: каждую область видимости (локальные, члены, глобальные) с её переменными, значениями и типами. Используйте frame_id из debug_stack_trace. Имеет смысл только когда выполнение приостановлено.

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

    Frame id from debug_stack_trace

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

Считывает вывод консоли, который сгенерировала запущенная игра - вызовы print(), stdout, stderr и ошибки скриптов времени выполнения с указанием источника. Возвращает: захваченные строки с категорией и исходным файлом/строкой. ЭТО ЕДИНСТВЕННЫЙ СПОСОБ увидеть, что на самом деле сделала игра; языковой сервер сообщает, компилируется ли код, а не то, что он вывел. При каждом вызове вывод очищается, поэтому последующие вызовы возвращают только новые данные.

Параметры
  • clearboolean

    Drain the buffer (default true)

  • waitnumber

    Seconds to wait for output (default 1)

debug_pause

Приостанавливает выполняющуюся игру. Возвращает: место остановки. Используется для проверки состояния в произвольный момент вместо предустановленной точки останова.

Параметры
  • thread_idinteger

    Thread id (default 1)

debug_run

Запускает проект и собирает то, что он выводит. Возвращает: захваченные stdout/stderr, завершилась ли игра, и любую причину остановки. ЭТО ЗАМЫКАЕТ ЦИКЛ: редактируйте, синхронизируйте, запускайте и читайте фактическое поведение, без необходимости разработчику нажимать F5 или вставлять вывод консоли обратно. Игра запускается в уже открытом редакторе Godot. Установите точки останова с помощью debug_set_breakpoints ПЕРЕД вызовом этой функции, если хотите приостановить выполнение. Игры с долгим выполнением продолжаются - используйте debug_output для продолжения чтения и debug_terminate для остановки.

Параметры
  • collectnumber

    Seconds to collect output before returning (default 10)

  • scenestring

    Which scene to run: 'main' (default), 'current', 'pinned', or a res:// path

  • timeoutnumber

    Seconds to wait for the game to start (default 60)

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

Устанавливает точки останова в файле GDScript, заменяя любые ранее установленные в этом файле. Возвращает: каждую точку останова с указанием, подтвердил ли её Godot и к какой строке она привязана. ВАЖНО: строки нумеруются с НУЛЯ, как и во всех остальных инструментах здесь. Устанавливайте их перед запуском игры, затем используйте debug_stack_trace и debug_inspect, когда выполнение остановится.

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

    Path to the .gd file

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

    Zero-based line numbers. Pass [] to clear all breakpoints in the file.

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

Получает стек вызовов, где выполнение в данный момент приостановлено. Возвращает: фреймы с именем функции, файлом и ZERO-BASED строкой, а также причину остановки. Пустой список фреймов означает, что выполнение не приостановлено - фреймы существуют только при остановке в точке останова или из-за ошибки времени выполнения.

Параметры
  • thread_idinteger

    Thread id (default 1)

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

Проверьте соединение с отладочным адаптером Godot и сообщите, запущена ли игра, приостановлена или завершена. Адаптер запускается редактором Godot на порту 6006 и не требует аддона. Используйте его первым, если какой-либо инструмент debug_* ведёт себя неожиданно.

Параметры

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

debug_step_over

Перешагивает одну строку в приостановленной игре. Возвращает: новое местоположение остановки.

Параметры
  • thread_idinteger

    Thread id (default 1)

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

Останавливает текущую игру. Возвращает: подтверждение.

Параметры

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

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

Получает допустимые завершения в позиции курсора от собственного движка завершений Godot. Возвращает: метки кандидатов с типом и описанием. ВАЖНО: использует координаты с отсчётом от НУЛЯ. Это единственный доступный запрос с УЧЁТОМ СЦЕНЫ: Godot определяет сцену, которой принадлежит этот скрипт, и формирует завершения на основе реального узла, поэтому включаются записи $NodePath и сигналы, реально присутствующие на этом узле. Никакой анализ одного файла .gd не может этого воспроизвести.

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

    Zero-based character position

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

    Absolute or relative path to the .gd file

  • limitinteger

    Max items to return (default 100)

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

    Zero-based line number

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

Переходит к определению символа в заданной позиции. Возвращает: путь к файлу и номер строки, где определён символ. ВАЖНО: Использует координаты с отсчётом от нуля (строка редактора 1 = передаётся строка 0). Используйте, когда нужно найти, где определена функция, переменная или класс.

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

    Zero-based character position

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

    Absolute or relative path to the .gd file

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

    Zero-based line number (editor line - 1)

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

Получает определения для нескольких позиций символов за один вызов. Возвращает: список местоположений определений для каждой позиции. ВАЖНО: использует координаты с нулевой индексацией. Более эффективен, чем многократный вызов gdscript_definition.

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

    List of positions to look up definitions for

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

Получает ошибки компиляции и предупреждения для одного или нескольких файлов. Возвращает: список диагностик с строкой, серьезностью (1=Ошибка, 2=Предупреждение, 3=Информация, 4=Подсказка) и сообщением. WORKFLOW: (1) Редактируйте файлы, (2) gdscript_sync_files для обновления, (3) gdscript_diagnostics для проверки ошибок. Используйте перед коммитом, чтобы выявить проблемы на раннем этапе.

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

    List of absolute or relative paths to .gd files to check

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

Получает авторитетную документацию для класса или элемента Godot Engine из точной версии редактора, которая используется. Возвращает: сигнатуру с именами аргументов, типами и значениями по умолчанию, а также документацию. ИСПОЛЬЗУЙТЕ ЭТО вместо того, чтобы вспоминать API Godot по памяти - это истинный источник для версии пользователя и предотвращает выдумывание несуществующих методов. Передайте 'member' для конкретного метода/свойства/сигнала; опустите его, чтобы проверить существование класса.

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

    Engine class, e.g. CharacterBody2D

  • memberstring

    Method, property or signal name

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

Находит объявление символа ПО ИМЕНИ, без необходимости знать его позицию. Возвращает места объявлений с файлом, НУЛЕВОЙ строкой и символом, видом и содержащим классом. ИСПОЛЬЗУЙТЕ ЭТО В ПЕРВУЮ ОЧЕРЕДЬ, когда вы знаете имя, но не его расположение — возвращённые строка/символ напрямую передаются в gdscript_references, gdscript_hover и gdscript_rename. Если угадать смещение символа и промахнуться на один столбец, вернётся пустой результат, который выглядит так же, как 'нет такого символа'. Позиции берутся из языкового сервера, а не из текстового сопоставления.

Параметры
  • filestring

    Optional: restrict the search to one file instead of the project

  • include_referencesboolean

    Also return every reference to the first declaration found

  • max_filesinteger

    Cap on files inspected when searching the whole project (default 60). The response reports when the cap applied.

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

    Exact symbol name, e.g. take_damage

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

Получает информацию о типе и документацию для символа в заданной позиции. Возвращает: сигнатуру типа, строку документации или описание символа. ВАЖНО: Использует координаты, начиная с НУЛЯ. Используется, чтобы понять, какой тип имеет переменная или что возвращает функция.

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

    Zero-based character position

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

    Absolute or relative path to the .gd file

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

    Zero-based line number (editor line - 1)

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

Находит все ссылки на символ во всём проекте. Возвращает: список местоположений (файл, строка, символ), где используется символ. ВАЖНО: использует координаты с отсчётом от нуля. Необходимо для анализа последствий перед рефакторингом: «Какой код использует этот символ?»

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

    Zero-based character position

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

    Absolute or relative path to the .gd file

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

    Zero-based line number (editor line - 1)

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

Находит ссылки для нескольких символов за один вызов. Возвращает: список расположений ссылок для каждой позиции. ВАЖНО: использует координаты с отсчётом от нуля. Эффективнее, чем многократный вызов gdscript_references. Используйте для массового анализа влияния на несколько символов.

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

    List of positions to find references for

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

Находит вхождения символа в ОДНОМ файле. Возвращает: список позиций строка/символ. ВАЖНО: использует координаты с НУЛЕВОЙ базой. Гораздо дешевле, чем gdscript_references, который заново разбирает каждый .gd файл в проекте на Godot 4.6+. Требует Godot 4.7+; в противном случае сообщает об отсутствии поддержки.

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

    Zero-based character position

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

    Absolute or relative path to the .gd file

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

    Zero-based line number

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

Освобождает файл из сессии LSP, чтобы Godot перестал обслуживать копию, открытую этой сессией, и снова читал с диска. Возвращает: был ли файл открыт, и что именно было сделано. КОГДА ВЫЗЫВАТЬ: после удаления .gd-файла или когда нужно, чтобы LSP забыл содержимое, которое вы синхронизировали ранее. ПРИМЕЧАНИЕ: Godot удалил уведомление об удалении файла в версии 4.6, так что это не может очистить состояние на уровне проекта — оно сбрасывается при перезапуске редактора.

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

    Absolute or relative path to the .gd file

gdscript_renameтолько чтениеидемпотентный

Переименовывает символ во всех файлах проекта. Возвращает: workspace edit со всеми необходимыми изменениями. ВАЖНО: использует индексацию от НУЛЯ. ПОРЯДОК ДЕЙСТВИЙ: (1) gdscript_references для предварительного просмотра последствий, (2) gdscript_rename для переименования, (3) gdscript_sync_files для обновления состояния LSP.

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

    Zero-based character position

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

    Absolute or relative path to the .gd file

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

    Zero-based line number (editor line - 1)

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

    New name for the symbol

  • old_namestring

    Current name of the symbol. Optional but recommended: enables scanning .tscn/.tres files for references Godot cannot see or update.

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

Получает сигнатуру функции и информацию о параметрах в месте вызова. Возвращает: имя функции, параметры с типами и тип возвращаемого значения. ВАЖНО: Использует координаты с отсчётом от нуля. Используйте, когда нужно узнать правильные параметры для вызова функции.

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

    Zero-based character position

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

    Absolute or relative path to the .gd file

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

    Zero-based line number (editor line - 1)

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

Проверяет статус подключения к серверу Godot LSP. Возвращает: статус подключения, хост и порт. Используйте это, чтобы убедиться, что редактор Godot запущен, перед использованием других инструментов. Если подключение отсутствует, запустите редактор Godot с открытым вашим проектом.

Параметры

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

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

Перечисляет все символы (классы, функции, переменные, сигналы, перечисления) в файле. Возвращает: дерево символов с именем, типом и номером строки для каждого символа. Используется для понимания структуры файла перед внесением изменений. WORKFLOW: gdscript_symbols для исследования, затем gdscript_hover или gdscript_definition для подробностей.

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

    Absolute or relative path to the .gd file

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

Получает символы из нескольких файлов за один вызов. Возвращает: карту пути к файлу с деревом символов для каждого файла. Эффективнее, чем многократный вызов gdscript_symbols. Используйте для понимания структуры нескольких файлов за один раз.

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

    List of absolute or relative paths to .gd files

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

Уведомляет LSP Godot об изменении файла и получает обновлённую диагностику. Возвращает: диагностику (ошибки/предупреждения) для синхронизированного файла. КОГДА ВЫЗЫВАТЬ: После использования инструментов Edit/Write для изменения .gd файла. LSP не отслеживает файлы, поэтому вы должны вызвать это для обновления анализа. Опционально передайте содержимое напрямую, чтобы избежать чтения с диска.

Параметры
  • contentstring

    File content to sync (optional, reads from disk if not provided)

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

    Absolute or relative path to the modified .gd file

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

Пакетно синхронизирует несколько изменённых файлов с LSP Godot. Возвращает: диагностику для всех синхронизированных файлов. КОГДА ВЫЗЫВАТЬ: после изменения нескольких .gd файлов с помощью Edit/Write tools. Эффективнее, чем многократно вызывать gdscript_sync_file. Читает содержимое с диска для всех указанных файлов.

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

    List of absolute or relative paths to modified .gd files

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

Проверяет предлагаемое содержимое файла на ошибки БЕЗ записи на диск. Возвращает: флаг валидности, ошибки и предупреждения. КОГДА ВЫЗЫВАТЬ: перед записью правки, чтобы сломанный код никогда не попал в проект. После этого LSP восстанавливается до содержимого на диске.

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

    Full proposed file content

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

    Path the content is intended for

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

Получает разрешённую конфигурацию проекта: автозагружаемые синглтоны, имена действий ввода, глобальные переменные class_name и основную сцену. Имена автозагрузок и действий ввода - это ПРОСТЫЕ СТРОКИ в месте использования - GameState.add_score(1), Input.is_action_pressed("jump") - и ничто их не проверяет. Ни компилятор, ни языковой сервер не ловят опечатку; это молчаливый no-op во время выполнения. Проверяет имена здесь перед их записью. Значения берутся из ProjectSettings через движок, поэтому значения по умолчанию и переопределения с тегами функций разрешаются корректно. Требует бинарный файл Godot.

Параметры

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

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

Получает собственное разрешённое представление сцены Godot: дерево узлов с типами, прикреплёнными скриптами, флагами unique_name_in_owner, значениями экспортированных свойств и объявленными в сцене соединениями сигналов. LSP Godot читает только файлы .gd, поэтому НИЧЕГО из этого не видно для gdscript_references или gdscript_rename. Запускает движок для разрешения сцены, поэтому унаследованные сцены и инстанциированные дочерние элементы разрешаются так, как Godot на самом деле их инстанциирует. Требует бинарник Godot (GODOT_BIN или ./godot/).

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

    Scene paths, res:// or filesystem

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

Проверяет, что сигнальные соединения сцены по-прежнему указывают на существующие методы. Возвращает: проблемы для каждой сцены — отсутствующие методы-обработчики, цели без скрипта и соединения, направленные на узлы, которых нет в сцене. КОГДА ВЫЗЫВАТЬ: после редактирования .tscn, или после переименования или удаления обработчика сигнала в GDScript. Соединения хранятся как НЕПРОВЕРЕННЫЕ СТРОКИ, поэтому устаревшее соединение не вызывает ошибку компиляции и завершается ошибкой только при срабатывании сигнала во время выполнения. Существование обработчика проверяется на основе разбора скрипта LSP.

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

    Scene paths, res:// or filesystem

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

gregario/godot-forge

gregario/godot-forge

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

TypeScript8
pzalutski-pixel/sharplens-mcp

pzalutski-pixel/sharplens-mcp

MCP сервер для .NET/C# с 67 инструментами на основе Roslyn: семантический анализ кода, навигация по типам, безопасный рефакторинг с предпросмотром и кодогенерация. Оптимизирован для AI-агентов — да...

C#32
pzalutski-pixel/javalens-mcp

pzalutski-pixel/javalens-mcp

JavaLens — MCP сервер для анализа Java-кода с точностью компилятора. На базе Eclipse JDT он даёт AI-агентам точные ссылки, вызовы, тесты, неиспользуемый код. Полезен для углублённого рефакторинга и отладки.

Java38
n24q02m/better-godot-mcp

n24q02m/better-godot-mcp

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

TypeScript37
srijanshukla18/xray

srijanshukla18/xray

XRAY даёт AI-ассистентам навигацию по коду: карту проекта, поиск символов и анализ влияния. Использует ast-grep для точного синтаксического поиска, поддерживает Python, JS/TS, Go. Без БД и LSP — лё...

Python52
Erodenn/godot-mcp-runtime

Erodenn/godot-mcp-runtime

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

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

Лука Никитин