Skip to main content
Glama

list_projects

Discover and display all RPG Maker MZ projects located in a specified directory to help developers organize and access their game development work.

Instructions

List all RPG Maker MZ projects in a directory

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
directoryNoDirectory path to search for projects (defaults to ~/Documents)

Implementation Reference

  • The handler function for the 'list_projects' tool. It scans a specified directory (default: ~/Documents) for RPG Maker MZ projects by checking for the presence of 'Game.rpgproject' files and returns a list of matching project directories.
    case "list_projects": { const searchDir = (args?.directory as string) || path.join(process.env.HOME!, "Documents"); const entries = await fs.readdir(searchDir, { withFileTypes: true }); const projects = []; for (const entry of entries) { if (entry.isDirectory()) { const projectFile = path.join(searchDir, entry.name, "Game.rpgproject"); try { await fs.access(projectFile); projects.push({ name: entry.name, path: path.join(searchDir, entry.name), }); } catch { // Not an RPG Maker project } } } return { content: [ { type: "text", text: JSON.stringify(projects, null, 2), }, ], }; }
  • The input schema definition for the 'list_projects' tool, specifying an optional 'directory' parameter.
    name: "list_projects", description: "List all RPG Maker MZ projects in a directory", inputSchema: { type: "object", properties: { directory: { type: "string", description: "Directory path to search for projects (defaults to ~/Documents)", }, }, }, },
  • src/index.ts:78-822 (registration)
    Registration of the 'list_projects' tool in the ListTools response handler, making it discoverable by MCP clients.
    server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: "list_projects", description: "List all RPG Maker MZ projects in a directory", inputSchema: { type: "object", properties: { directory: { type: "string", description: "Directory path to search for projects (defaults to ~/Documents)", }, }, }, }, { name: "read_project_info", description: "Read RPG Maker MZ project information (Game.rpgproject file)", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, }, required: ["project_path"], }, }, { name: "list_maps", description: "List all maps in an RPG Maker MZ project", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, }, required: ["project_path"], }, }, { name: "read_map", description: "Read a specific map file from an RPG Maker MZ project", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, map_id: { type: "string", description: "Map ID (e.g., 'Map001')", }, }, required: ["project_path", "map_id"], }, }, { name: "list_plugins", description: "List all plugins in an RPG Maker MZ project", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, }, required: ["project_path"], }, }, { name: "generate_project_context", description: "Generate comprehensive context documentation for an RPG Maker MZ project including structure, maps, events, and plugin information", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, include_maps: { type: "boolean", description: "Include detailed map information (default: true)", }, include_events: { type: "boolean", description: "Include event data (default: true)", }, include_plugins: { type: "boolean", description: "Include plugin information (default: true)", }, }, required: ["project_path"], }, }, { name: "analyze_project_structure", description: "Analyze RPG Maker MZ project structure and provide insights about maps, connections, events, and game flow", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, }, required: ["project_path"], }, }, { name: "extract_game_design_patterns", description: "Extract common game design patterns from the project (event patterns, map layouts, etc.)", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, }, required: ["project_path"], }, }, { 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"], }, }, { name: "create_map", description: "Create a new map in the project", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, map_id: { type: "number", description: "Map ID number", }, name: { type: "string", description: "Map name", }, width: { type: "number", description: "Map width in tiles (default: 17)", }, height: { type: "number", description: "Map height in tiles (default: 13)", }, }, required: ["project_path", "map_id", "name"], }, }, { name: "update_map_tile", description: "Update a tile on a map", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, map_id: { type: "number", description: "Map ID", }, x: { type: "number", description: "X coordinate", }, y: { type: "number", description: "Y coordinate", }, layer: { type: "number", description: "Layer index (0-5)", }, tile_id: { type: "number", description: "Tile ID from tileset", }, }, required: ["project_path", "map_id", "x", "y", "layer", "tile_id"], }, }, { name: "add_event", description: "Add a new event to a map", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, map_id: { type: "number", description: "Map ID", }, event_id: { type: "number", description: "Event ID", }, name: { type: "string", description: "Event name", }, x: { type: "number", description: "X coordinate", }, y: { type: "number", description: "Y coordinate", }, }, required: ["project_path", "map_id", "event_id", "name", "x", "y"], }, }, { name: "add_event_command", description: "Add a command to an event page (e.g., show text, transfer player, etc.)", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, map_id: { type: "number", description: "Map ID", }, event_id: { type: "number", description: "Event ID", }, page_index: { type: "number", description: "Page index (0-based)", }, code: { type: "number", description: "Command code (e.g., 101=Show Text, 201=Transfer Player, 122=Control Variables)", }, parameters: { type: "array", description: "Command parameters", }, }, required: ["project_path", "map_id", "event_id", "page_index", "code", "parameters"], }, }, { name: "add_actor", description: "Add a new actor to the database", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, id: { type: "number", description: "Actor ID", }, name: { type: "string", description: "Actor name", }, }, required: ["project_path", "id", "name"], }, }, { name: "add_class", description: "Add a new class to the database", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, id: { type: "number", description: "Class ID", }, name: { type: "string", description: "Class name", }, }, required: ["project_path", "id", "name"], }, }, { name: "add_skill", description: "Add a new skill to the database", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, id: { type: "number", description: "Skill ID", }, name: { type: "string", description: "Skill name", }, }, required: ["project_path", "id", "name"], }, }, { name: "add_item", description: "Add a new item to the database", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, id: { type: "number", description: "Item ID", }, name: { type: "string", description: "Item name", }, }, required: ["project_path", "id", "name"], }, }, { name: "update_database", description: "Update an entry in any database (Actors, Classes, Skills, Items, Weapons, Armors, etc.)", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, database: { type: "string", description: "Database name (e.g., 'Actors', 'Classes', 'Skills', 'Items')", }, id: { type: "number", description: "Entry ID", }, updates: { type: "object", description: "Object containing fields to update", }, }, required: ["project_path", "database", "id", "updates"], }, }, { name: "generate_asset", description: "Generate RPG Maker MZ asset using Gemini 2.5 Flash (characters, faces, tilesets, etc.)", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, asset_type: { type: "string", enum: ["character", "face", "tileset", "battleback", "enemy", "sv_actor", "picture"], description: "Type of asset to generate", }, prompt: { type: "string", description: "Description of the asset to generate", }, filename: { type: "string", description: "Filename for the generated asset (with extension)", }, api_key: { type: "string", description: "Gemini API key (optional, uses GEMINI_API_KEY env var if not provided)", }, }, required: ["project_path", "asset_type", "prompt", "filename"], }, }, { name: "generate_asset_batch", description: "Generate multiple RPG Maker MZ assets in batch", inputSchema: { type: "object", properties: { requests: { type: "array", description: "Array of asset generation requests", items: { type: "object", properties: { project_path: { type: "string" }, asset_type: { type: "string" }, prompt: { type: "string" }, filename: { type: "string" }, api_key: { type: "string" }, }, }, }, }, required: ["requests"], }, }, { name: "describe_asset", description: "Analyze and describe an existing RPG Maker MZ asset using Gemini 2.5 Flash", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, asset_type: { type: "string", description: "Type of asset", }, filename: { type: "string", description: "Filename of the asset to analyze", }, api_key: { type: "string", description: "Gemini API key (optional)", }, }, required: ["project_path", "asset_type", "filename"], }, }, { name: "generate_scenario", description: "Generate a complete RPG game scenario using Gemini AI (story, maps, characters, events, items)", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, theme: { type: "string", description: "Theme or genre of the game (e.g., 'fantasy adventure', 'sci-fi', 'horror')", }, style: { type: "string", description: "Style or tone (e.g., 'lighthearted', 'dark', 'comedic', 'epic')", }, length: { type: "string", enum: ["short", "medium", "long"], description: "Length of the game scenario", }, api_key: { type: "string", description: "Gemini API key (optional)", }, }, required: ["project_path", "theme", "style", "length"], }, }, { name: "implement_scenario", description: "Implement a generated scenario into the RPG Maker MZ project", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, scenario: { type: "object", description: "Generated scenario object", }, }, required: ["project_path", "scenario"], }, }, { name: "generate_and_implement_scenario", description: "Generate and immediately implement a complete RPG scenario (all-in-one)", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, theme: { type: "string", description: "Theme or genre of the game", }, style: { type: "string", description: "Style or tone", }, length: { type: "string", enum: ["short", "medium", "long"], description: "Length of the game scenario", }, api_key: { type: "string", description: "Gemini API key (optional)", }, }, required: ["project_path", "theme", "style", "length"], }, }, { name: "generate_scenario_variations", description: "Generate multiple variations of a scenario for comparison", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to the RPG Maker MZ project directory", }, theme: { type: "string", description: "Theme or genre", }, style: { type: "string", description: "Style or tone", }, length: { type: "string", enum: ["short", "medium", "long"], description: "Length of scenarios", }, count: { type: "number", description: "Number of variations to generate", }, api_key: { type: "string", description: "Gemini API key (optional)", }, }, required: ["project_path", "theme", "style", "length", "count"], }, }, { name: "autonomous_create_game", description: "Autonomously create a complete RPG game from a concept. This tool orchestrates all game creation steps: project setup, scenario generation, battle system, quests, assets, balancing, and optimization. Perfect for rapid game prototyping with minimal input.", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path where the game project will be created", }, concept: { type: "string", description: "Game concept/theme (e.g., 'fantasy adventure with dragons', 'cyberpunk detective story', 'space opera epic')", }, game_title: { type: "string", description: "Game title (auto-generated from concept if not provided)", }, length: { type: "string", enum: ["short", "medium", "long"], description: "Game length - short: 1-2hrs, medium: 3-5hrs, long: 8-12hrs", }, difficulty: { type: "string", enum: ["easy", "normal", "hard"], description: "Game difficulty level", }, generate_assets: { type: "boolean", description: "Whether to generate game assets using AI (default: true)", }, asset_count: { type: "object", properties: { characters: { type: "number", description: "Number of character sprites to generate", }, enemies: { type: "number", description: "Number of enemy sprites to generate", }, tilesets: { type: "number", description: "Number of tilesets to generate", }, }, description: "Asset generation counts", }, optimize: { type: "boolean", description: "Whether to optimize the project after creation (default: true)", }, api_key: { type: "string", description: "Gemini API key (optional, uses GEMINI_API_KEY env var if not provided)", }, }, required: ["project_path", "concept"], }, }, { name: "register_resource", description: "Register a resource (template, asset, data) for reuse across the project", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Project path" }, resource_id: { type: "string", description: "Unique resource ID" }, resource_type: { type: "string", enum: ["template", "asset", "scenario", "data", "custom"], description: "Resource type" }, name: { type: "string", description: "Resource name" }, description: { type: "string", description: "Resource description" }, content: { type: "object", description: "Resource content (any JSON data)" }, tags: { type: "array", items: { type: "string" }, description: "Tags for categorization" }, }, required: ["project_path", "resource_id", "resource_type", "name", "content"], }, }, { name: "register_prompt_template", description: "Register a reusable prompt template with variable placeholders and resource references", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Project path" }, prompt_id: { type: "string", description: "Unique prompt ID" }, name: { type: "string", description: "Prompt name" }, description: { type: "string", description: "Prompt description" }, template: { type: "string", description: "Prompt template with {{variable}} placeholders" }, variables: { type: "array", items: { type: "string" }, description: "List of variable names" }, resource_refs: { type: "array", items: { type: "string" }, description: "Referenced resource IDs" }, }, required: ["project_path", "prompt_id", "name", "template", "variables"], }, }, { name: "execute_prompt", description: "Execute a prompt template with provided variables and resource references", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Project path" }, prompt_id: { type: "string", description: "Prompt template ID" }, variables: { type: "object", description: "Variables to fill in the template" }, }, required: ["project_path", "prompt_id", "variables"], }, }, { name: "list_resources", description: "List all registered resources with optional filtering", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Project path" }, type: { type: "string", description: "Filter by resource type" }, tags: { type: "array", items: { type: "string" }, description: "Filter by tags" }, }, required: ["project_path"], }, }, { name: "search_database", description: "Search game database (actors, enemies, skills, items, etc.) with filters", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Project path" }, types: { type: "array", items: { type: "string" }, description: "Database types to search" }, name_contains: { type: "string", description: "Filter by name containing text" }, id_min: { type: "number", description: "Minimum ID" }, id_max: { type: "number", description: "Maximum ID" }, }, required: ["project_path"], }, }, { name: "analyze_assets", description: "Analyze all project assets, detect usage, find unused assets, and generate optimization recommendations", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Project path" }, }, required: ["project_path"], }, }, ], }; });

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