Skip to main content
Glama

create_project

Create a new RPG Maker MZ project from scratch by specifying the project path and game title to initiate game development.

Instructions

Create a new RPG Maker MZ project from scratch

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
game_titleYesTitle of the game
project_pathYesPath where the project will be created

Implementation Reference

  • The core handler function that executes the 'create_project' tool logic. It creates the full RPG Maker MZ project directory structure, Game.rpgproject file, default System.json, MapInfos.json, Map001.json, and empty database JSON files.
    export async function createNewProject(projectPath: string, gameTitle: string) { try { // Validate inputs Validator.requireString(projectPath, "project_path"); Validator.requireString(gameTitle, "game_title"); await Logger.info("Creating new project", { projectPath, gameTitle }); // Check if project already exists try { await fs.access(projectPath); throw new Error(`Project path already exists: ${projectPath}`); } catch (error) { if ((error as NodeJS.ErrnoException).code !== "ENOENT") { throw error; } } // Create directory structure const dirs = [ "audio/bgm", "audio/bgs", "audio/me", "audio/se", "data", "effects", "img/animations", "img/battlebacks1", "img/battlebacks2", "img/characters", "img/enemies", "img/faces", "img/parallaxes", "img/pictures", "img/sv_actors", "img/sv_enemies", "img/system", "img/tilesets", "img/titles1", "img/titles2", "js/plugins", "movies" ]; for (const dir of dirs) { await fs.mkdir(path.join(projectPath, dir), { recursive: true }); } // Create Game.rpgproject file const projectFile = `RPGMZ 1.0.0`; await fs.writeFile(path.join(projectPath, "Game.rpgproject"), projectFile, "utf-8"); // Create System.json const system = getDefaultSystem(gameTitle); await fs.writeFile( path.join(projectPath, "data", "System.json"), JSON.stringify(system, null, 0), "utf-8" ); // Create initial map const mapInfos = [null, getDefaultMapInfo(1, "MAP001")]; await fs.writeFile( path.join(projectPath, "data", "MapInfos.json"), JSON.stringify(mapInfos, null, 0), "utf-8" ); const map001 = getDefaultMap(1, "MAP001"); await fs.writeFile( path.join(projectPath, "data", "Map001.json"), JSON.stringify(map001, null, 0), "utf-8" ); // Create empty database files await fs.writeFile(path.join(projectPath, "data", "Actors.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "Classes.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "Skills.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "Items.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "Weapons.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "Armors.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "Enemies.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "Troops.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "States.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "Animations.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "Tilesets.json"), JSON.stringify([null], null, 0), "utf-8"); await fs.writeFile(path.join(projectPath, "data", "CommonEvents.json"), JSON.stringify([null], null, 0), "utf-8"); await Logger.info("Project created successfully", { projectPath }); return { success: true, message: `Project created at ${projectPath}` }; } catch (error) { await Logger.error("Failed to create project", { projectPath, gameTitle, error }); return createErrorResponse(error); } }
  • src/index.ts:1145-1152 (registration)
    MCP server registration of the 'create_project' tool handler in the CallToolRequestSchema switch statement, which calls the createNewProject function.
    case "create_project": { const projectPath = args.project_path as string; const gameTitle = args.game_title as string; const result = await createNewProject(projectPath, gameTitle); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; }
  • Input schema definition for the 'create_project' tool, provided in the ListToolsRequestSchema response.
    { name: "create_project", description: "Create a new RPG Maker MZ project from scratch", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path where the project will be created", }, game_title: { type: "string", description: "Title of the game", }, }, required: ["project_path", "game_title"], }, },

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/ShunsukeHayashi/rpgmaker-mz-mcp'

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