godot_create_project
Create a new Godot project with custom display name, directory structure, and optional executable path for game development setup.
Instructions
Create a new Godot project, create common folders, and set the project display name.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | Yes | Display name for the Godot project. | |
| parent_directory | Yes | Directory where the new project folder should be created. | |
| folder_name | No | Optional folder name override. Defaults to a snake_case form of project_name. | |
| godot_executable | No | Optional explicit path to the Godot executable or .app bundle. |
Implementation Reference
- src/godot_mcp/godot.py:838-883 (handler)The `GodotController.create_project` method implements the logic for creating a new Godot project directory, common folders, and initializing the project via a bootstrap script.
def create_project( self, project_name: str, parent_directory: str, folder_name: str | None = None, godot_executable: str | None = None, ) -> dict[str, Any]: project_name = project_name.strip() if not project_name: raise GodotError("`project_name` is required.") parent_dir = Path(parent_directory).expanduser().resolve() parent_dir.mkdir(parents=True, exist_ok=True) final_folder_name = snake_case_name(folder_name or project_name, default="godot_project") project_dir = parent_dir / final_folder_name if project_dir.exists(): contents = list(project_dir.iterdir()) if contents and not (project_dir / "project.godot").exists(): raise GodotError( f"{project_dir} already exists and is not an empty Godot project directory." ) project_dir.mkdir(parents=True, exist_ok=True) for child in ("scenes", "scripts", "assets"): (project_dir / child).mkdir(exist_ok=True) project_file = project_dir / "project.godot" if not project_file.exists(): project_file.touch() executable, version = resolve_godot_executable(godot_executable) _run_godot_script( executable=executable, project_dir=project_dir, script_name="bootstrap_project.gd", user_args=["--project-name", project_name], ) return { "project_name": project_name, "project_path": str(project_dir), "project_file": str(project_file), "godot_executable": str(executable), "godot_version": version, } - src/godot_mcp/server.py:68-100 (registration)The `godot_create_project` tool is registered in `GodotMcpServer._build_tools` in `src/godot_mcp/server.py`, where it is mapped to `self.controller.create_project`.
ToolDefinition( name="godot_create_project", description="Create a new Godot project, create common folders, and set the project display name.", input_schema={ "type": "object", "properties": { "project_name": { "type": "string", "description": "Display name for the Godot project.", }, "parent_directory": { "type": "string", "description": "Directory where the new project folder should be created.", }, "folder_name": { "type": "string", "description": "Optional folder name override. Defaults to a snake_case form of project_name.", }, "godot_executable": { "type": "string", "description": "Optional explicit path to the Godot executable or .app bundle.", }, }, "required": ["project_name", "parent_directory"], "additionalProperties": False, }, handler=lambda args: self.controller.create_project( project_name=args["project_name"], parent_directory=args["parent_directory"], folder_name=args.get("folder_name"), godot_executable=args.get("godot_executable"), ), ),