Skip to main content
Glama
RPG Maker MZ MCP Server
by devmagary

RPG Maker MZ MCP Server 🎮✨

A powerful Model Context Protocol (MCP) server that allows AI agents (like Claude, Gemini, or Copilot) to directly manipulate RPG Maker MZ projects.

With this tool, you can ask your AI to "Create a fire sword", "Make a potion that regenerates mana", or "Generate a new map", and it will modify the game files directly!

🚀 Features

📦 Database Management (Full CRUD)

Create, Read, and Update almost any database asset:

  • Items: Create potions, keys, and hidden items. Support for HP/MP recovery and state application.

  • Weapons & Armors: Create equipment with stats, prices, and elemental effects.

  • Enemies: Define stats (HP/MP/ATK...), drops, and rewards (EXP/Gold).

  • States: Create status effects (e.g., Poison, Regen, Stun) with traits.

  • Actors & Classes: Create new heroes and classes with level curves and traits.

  • Skills: Define magic and special attacks.

🗺️ Map & World

  • Create Maps: Generate new map files (MapXXX.json) with metadata (size, tileset, BGM).

  • List Maps: See all maps in your project hierarchy.

🧩 Plugin & Resources

  • Plugin Installer: Automatically creates .js files in js/plugins and registers them in plugins.js.

  • Resource Scanner: List available graphics (img/), audio (audio/), and DLC packages.

🛡️ Safety First

  • Atomic Writes: Uses a SafeWriter to prevent data corruption.

  • Editor Sync: Automatically updates System.json version ID, forcing the RPG Maker MZ editor to reload data and preventing conflicts.


Related MCP server: RPG Maker MZ MCP Server

🛠️ Installation

  1. Clone the repository:

    git clone https://github.com/devmagary/MCP-Maker.git
    cd MCP-Maker
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

⚙️ Configuration

You need to tell the MCP client where your RPG Maker MZ project and engine are located.

Environment Variables

  • RPGMAKER_PROJECT_PATH: Full path to your game project (where game.rmmzproject is).

  • RPGMAKER_ENGINE_PATH: Full path to RPG Maker MZ installation (usually Steam folder).

configuration Examples

VS Code (Claude Dev / Copilot)

Add to your settings or MCP config:

{
  "mcpServers": {
    "rpgmaker-mz": {
      "command": "node",
      "args": ["C:/path/to/MCP-Maker/dist/index.js"],
      "env": {
        "RPGMAKER_PROJECT_PATH": "C:/Users/You/Documents/RMMZ/MyGame",
        "RPGMAKER_ENGINE_PATH": "C:/Program Files (x86)/Steam/steamapps/common/RPG Maker MZ"
      }
    }
  }
}

Claude Desktop

Edit %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "rpgmaker-mz": {
      "command": "node",
      "args": ["C:\\path\\to\\MCP-Maker\\dist\\index.js"],
      "env": {
        "RPGMAKER_PROJECT_PATH": "C:\\Users\\You\\Documents\\RMMZ\\MyGame",
        "RPGMAKER_ENGINE_PATH": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\RPG Maker MZ"
      }
    }
  }
}

💻 Tech Stack

  • TypeScript: Strictly typed for robustness.

  • Zod: Runtime schema validation for all tool inputs.

  • MCP SDK: Official Model Context Protocol SDK.

  • Node.js: Runtime environment.

🤝 Contributing

Feel free to open issues or submit PRs if you want to add more features (e.g., Event creation support)!


Created with ❤️ by DevMagary & Antigravity.

Available Tools

36 tools
create_actorB

Create a new actor in the database

Inputs: name (required), nickname, classId, initialLevel, +6 more.

create_armorB

Create a new armor in the database

Inputs: name (required), description (required), price (required), atypeId, +5 more.

create_classB

Create a new class in the database

Inputs: name (required), expBase, expAccel, maxHp, +3 more.

create_enemyC

Create a new enemy in the database

Inputs: name (required), maxHp, maxMp, atk, +9 more.

create_itemC

Create a new item in the database with HP and/or MP recovery

Inputs: name (required), description (required), price (required), type, +6 more.

create_mapC

Create a new map in the project

Inputs: name (required), displayName, width, height, +4 more.

create_skillB

Create a new skill in the database

Inputs: name (required), description (required), mpCost, tpCost, +4 more.

create_stateB

Create a new state (status effect) in the database

Inputs: name (required), iconIndex, restriction, priority, +6 more.

create_weaponB

Create a new weapon in the database with attack power and optional element

Inputs: name (required), description (required), price (required), wtypeId, +4 more.

get_actorsA

Get all actors from the database

Inputs: no named parameters.

get_armorsB

Get all armors from the database

Inputs: no named parameters.

get_classesA

Get all classes from the database

Inputs: no named parameters.

get_core_script_versionsB

List available core script versions

Inputs: no named parameters.

get_database_infoA

Get a summary of all database contents (actors, classes, items, skills, weapons, armors counts)

Inputs: no named parameters.

get_database_limitsA

Get current maximum limits for all databases

Inputs: no named parameters.

get_enemiesB

Get all enemies from the database

Inputs: no named parameters.

get_generator_partsA

List available character generator parts

Inputs: no named parameters.

get_installed_pluginsA

Get all installed plugins with their registration status

Inputs: no named parameters.

get_itemsB

Get all items from the database

Inputs: no named parameters.

get_mapsA

Get all maps from the project

Inputs: no named parameters.

get_sample_mapsA

List available sample maps from the engine

Inputs: no named parameters.

get_skillsB

Get all skills from the database

Inputs: no named parameters.

get_statesA

Get all states from the database

Inputs: no named parameters.

get_weaponsB

Get all weapons from the database

Inputs: no named parameters.

install_pluginB

Install a new plugin and register it in plugins.js

Inputs: filename (required), code (required), description (required), author (required).

scan_dlc_packagesA

List all DLC packages in the engine folder

Inputs: no named parameters.

scan_resourcesA

Scan available resources from project and/or engine

Inputs: category (required), source.

set_database_limitA

Set the maximum limit for a database (expands or shrinks the array)

Inputs: database (required), limit (required).

update_actorC

Update an existing actor's properties

Inputs: id (required), name, nickname, classId, +5 more.

update_armorC

Update an existing armor's properties

Inputs: id (required), name, description, price, +3 more.

update_classC

Update an existing class's name

Inputs: id (required), name.

update_enemyC

Update an existing enemy's properties

Inputs: id (required), name, maxHp, atk, +3 more.

update_itemC

Update an existing item in the database

Inputs: id (required), name, description, price, +1 more.

update_mapC

Update an existing map's properties

Inputs: id (required), displayName, tilesetId, encounterSteps.

update_stateC

Update an existing state's properties

Inputs: id (required), name, iconIndex, minTurns, +1 more.

update_weaponC

Update an existing weapon's properties

Inputs: id (required), name, description, price, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 36 tools

    Disambiguation5/5

    Each tool targets a distinct entity or operation (e.g., actor, armor, map) with clear verb prefixes. There is no ambiguity between tools, even those with similar patterns like get_actors and get_database_info.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun snake_case pattern (create_actor, get_actors, update_actor, set_database_limit). The naming style is uniform and predictable.

    Tool Count4/5

    36 tools is reasonable for a game development server covering multiple database entities and utilities. While slightly on the higher side, it remains well-scoped and each tool serves a clear purpose.

    Completeness3/5

    The tool set covers create, read, and update for most entities, but lacks delete operations entirely. Additionally, update_skill is missing, leaving a notable gap in the skill lifecycle management.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers