Skip to main content
Glama

godot_create_folder

Create organized project-relative folders within Godot projects to structure assets, scenes, and scripts for efficient game development workflows.

Instructions

Create a safe project-relative folder inside an existing Godot project.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_pathYesPath to the Godot project directory or its project.godot file.
folder_pathYesProject-relative folder path to create, such as shaders, scenes/ui, or assets/enemies/boss.

Implementation Reference

  • The handler function for godot_create_folder, which validates the path and creates the folder in the project structure.
    def create_folder(
        self,
        project_path: str,
        folder_path: str,
    ) -> dict[str, Any]:
        project_dir = ensure_project_path(project_path)
        normalized_folder = normalize_project_subdir(folder_path)
        if not normalized_folder:
            raise GodotError("`folder_path` must point to a project-relative directory.")
    
        absolute_folder = (project_dir / normalized_folder).resolve()
        existed_before = absolute_folder.exists()
        absolute_folder.mkdir(parents=True, exist_ok=True)
    
        return {
            "project_path": str(project_dir),
            "folder_path": str(absolute_folder),
            "folder_resource_path": f"res://{normalized_folder}",
            "created": not existed_before,
        }
  • Registration of the godot_create_folder tool within the GodotMcpServer, mapping it to the GodotController handler.
        name="godot_create_folder",
        description="Create a safe project-relative folder inside an existing Godot project.",
        input_schema={
            "type": "object",
            "properties": {
                "project_path": {
                    "type": "string",
                    "description": "Path to the Godot project directory or its project.godot file.",
                },
                "folder_path": {
                    "type": "string",
                    "description": "Project-relative folder path to create, such as shaders, scenes/ui, or assets/enemies/boss.",
                },
            },
            "required": ["project_path", "folder_path"],
            "additionalProperties": False,
        },
        handler=lambda args: self.controller.create_folder(
            project_path=args["project_path"],
            folder_path=args["folder_path"],
        ),
    ),
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states it creates a 'safe' folder without defining what 'safe' means (e.g., error handling for existing folders, permission requirements, or validation). It doesn't disclose behavioral traits like whether it creates parent directories, returns success/failure, or has any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with zero waste - every word contributes essential information. Front-loaded with the core action ('Create a safe project-relative folder') followed by the critical constraint ('inside an existing Godot project').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter creation tool with no annotations and no output schema, the description is minimally adequate but lacks important context. It doesn't explain what 'safe' means operationally, what happens if the folder exists, what permissions are needed, or what the tool returns. The 100% schema coverage helps, but behavioral aspects are underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value beyond schema by mentioning 'project-relative' for folder_path and 'existing Godot project' context, but doesn't provide additional syntax, format details, or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('create') and resource ('safe project-relative folder'), specifying it must be inside an existing Godot project. It distinguishes from siblings like godot_create_project (creates entire project) and godot_create_scene (creates scene file), but doesn't explicitly contrast with other folder-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('inside an existing Godot project') but doesn't provide explicit when-to-use guidance versus alternatives. No mention of prerequisites like project structure requirements or when to use this versus other creation tools like godot_create_scene for file creation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MhrnMhrn/godot-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server