Skip to main content
Glama

launch_editor

Launch the Godot editor to open and work on a specific game project directory.

Instructions

Launch Godot editor for a specific project

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectPathYesPath to the Godot project directory

Implementation Reference

  • The handler function that executes the launch_editor tool. It validates the project path, detects Godot if needed, checks for project.godot file, and spawns the Godot process with '-e --path <projectPath>' to launch the editor.
    private async handleLaunchEditor(args: any) { // Normalize parameters to camelCase args = this.normalizeParameters(args); if (!args.projectPath) { return this.createErrorResponse( 'Project path is required', ['Provide a valid path to a Godot project directory'] ); } if (!this.validatePath(args.projectPath)) { return this.createErrorResponse( 'Invalid project path', ['Provide a valid path without ".." or other potentially unsafe characters'] ); } try { // Ensure godotPath is set if (!this.godotPath) { await this.detectGodotPath(); if (!this.godotPath) { return this.createErrorResponse( 'Could not find a valid Godot executable path', [ 'Ensure Godot is installed correctly', 'Set GODOT_PATH environment variable to specify the correct path', ] ); } } // Check if the project directory exists and contains a project.godot file const projectFile = join(args.projectPath, 'project.godot'); if (!existsSync(projectFile)) { return this.createErrorResponse( `Not a valid Godot project: ${args.projectPath}`, [ 'Ensure the path points to a directory containing a project.godot file', 'Use list_projects to find valid Godot projects', ] ); } this.logDebug(`Launching Godot editor for project: ${args.projectPath}`); const process = spawn(this.godotPath, ['-e', '--path', args.projectPath], { stdio: 'pipe', }); process.on('error', (err: Error) => { console.error('Failed to start Godot editor:', err); }); return { content: [ { type: 'text', text: `Godot editor launched successfully for project at ${args.projectPath}.`, }, ], }; } catch (error: unknown) { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; return this.createErrorResponse( `Failed to launch Godot editor: ${errorMessage}`, [ 'Ensure Godot is installed correctly', 'Check if the GODOT_PATH environment variable is set correctly', 'Verify the project path is accessible', ] ); } }
  • The input schema definition for the launch_editor tool, specifying that projectPath is required.
    inputSchema: { type: 'object', properties: { projectPath: { type: 'string', description: 'Path to the Godot project directory', }, }, required: ['projectPath'], },
  • src/index.ts:934-935 (registration)
    Registers the handleLaunchEditor function to handle calls to the 'launch_editor' tool in the CallToolRequestSchema switch statement.
    case 'launch_editor': return await this.handleLaunchEditor(request.params.arguments);
  • src/index.ts:669-682 (registration)
    Registers the launch_editor tool in the ListToolsRequestSchema response, including name, description, and schema.
    { name: 'launch_editor', description: 'Launch Godot editor for a specific project', inputSchema: { type: 'object', properties: { projectPath: { type: 'string', description: 'Path to the Godot project directory', }, }, required: ['projectPath'], }, },

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/Coding-Solo/godot-mcp'

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