Current situation
- A mature tree-sitter grammar for GDScript already exists (prestonknopp/tree-sitter-gdscript, also published as
tree-sitter-gdscript on npm).
- Godot is widely used by indie developers and small teams.
- RagCode currently provides full AST-based indexing for Go, PHP (incl. Laravel), and Python, with JavaScript/TypeScript planned (tree-sitter based).
- GDScript is not supported. In Godot repositories, workspace detection typically resolves to the generic
.git marker (project_type: git), so .gd files are not parsed by any language analyzer and do not produce semantic chunks in Qdrant.
- As a result, RagCode has limited usefulness for Godot projects: GDScript symbols, relationships, and semantic search are effectively unavailable.
Potential scope
Implementation could follow the existing per-language analyzer pattern under internal/ragcode/analyzers/<lang>/ (similar to the planned JS/TS tree-sitter approach):
- Add tree-sitter-gdscript support — new GDScript analyzer with semantic chunking (functions, classes, signals, enums).
- Extract and index:
class_name / classes
- functions and methods
- signals (
signal declarations)
- enums
- optional: doc comments,
@export, @onready metadata where useful for search
- Add reference indexing — cross-file symbol references for navigation (
find_implementations, get_function_details, etc.).
- Workspace detection — recognize
project.godot as a workspace marker and set an appropriate project_type (e.g. godot / gdscript) so the language manager selects the GDScript analyzer.
- Optional:
.tscn scene file support — parse ext_resource script references and node paths to link scenes and attached scripts.
- Scene ↔ script navigation — where feasible, expose relationships between
.tscn nodes and their attached .gd scripts through existing MCP tools (search_code, hybrid_search, get_code_context).
Expected outcome
- Better repository navigation for Godot projects.
- Meaningful semantic and hybrid search over GDScript codebases.
- Improved support for Godot developers using RagCode with Cursor, Windsurf, Copilot, and other MCP clients.
- Increased adoption among the Godot community.
Context
Validated against the current homiodev/rag-code-mcp repository (README language table, workspace detection docs, analyzer layout). No existing open or closed issues request Godot/GDScript support.
Current situation
tree-sitter-gdscripton npm)..gitmarker (project_type: git), so.gdfiles are not parsed by any language analyzer and do not produce semantic chunks in Qdrant.Potential scope
Implementation could follow the existing per-language analyzer pattern under
internal/ragcode/analyzers/<lang>/(similar to the planned JS/TS tree-sitter approach):class_name/ classessignaldeclarations)@export,@onreadymetadata where useful for searchfind_implementations,get_function_details, etc.).project.godotas a workspace marker and set an appropriateproject_type(e.g.godot/gdscript) so the language manager selects the GDScript analyzer..tscnscene file support — parseext_resourcescript references and node paths to link scenes and attached scripts..tscnnodes and their attached.gdscripts through existing MCP tools (search_code,hybrid_search,get_code_context).Expected outcome
Context
Validated against the current
homiodev/rag-code-mcprepository (README language table, workspace detection docs, analyzer layout). No existing open or closed issues request Godot/GDScript support.