RPG MAKER MZ · MCP SERVER

Why I gave Claude RPG Maker instead of a blank repo

An MCP server that lets Claude build RPG Maker MZ games, and why a limited engine is the whole point.

Miko Zyzanski5 min read
The release video. Every game shown is an example Claude built with the server.

I built rpgmaker-mz-mcp, an MCP server that gives Claude direct access to an RPG Maker MZ project: the database, maps, tiles, events and dialogue. It has 128 tools. With them Claude can create a skill, paint a town, place an NPC and wire up a quest. It can then boot the game headlessly and play through what it just built to check it works.

01Why RPG Maker?

RPG Maker is a limited engine, and that's exactly why it works.

Ask an AI to build an RPG from scratch and it has to invent everything before it gets to the fun part: rendering, input, a save system, menus, message windows, inventory, and the battle system with its damage formulas, turn order and status effects. Every one of those is a place for bugs to hide. Every vibe-coded game also ends up built differently, so nobody, you or the next session of Claude, has a map of how it fits together.

RPG Maker has already made those decisions. The battle system, menus, saving, shops, inventory, random encounters and event scripting all exist, and plenty of games have shipped on them. That changes the job for Claude in three ways:

The constraint is the feature. With less to invent, Claude spends its effort on the parts that make a game yours: the world, the story and the encounters.

Here is what that looks like in practice. These are all example games Claude built with the server:

A retro-style overworld with a golden tower above a forest path
OVERWORLDA retro-style adventure. Claude painted every map.
A village with a character speaking in a dialogue box
VILLAGEClaude wrote the maps, cast and dialogue.
A retro-style battle against a golem
BATTLERPG Maker's own battle system. Nobody had to write it.
A boss battle against an armored knight casting fire
BOSSA boss Claude designed, from stats to skills.

02How to work with it

After using it for a while, I've found two quite different ways to work with it.

As a precise tool

Sometimes you know exactly what you want but don't want to click through the setup yourself. Say you ask for "a potion that restores 20 HP but drains 20 MP." In the editor that means opening the Items tab, adding two effects, entering the values and picking a scope. Through the MCP, Claude turns your sentence into one call:

create_item{
  "name": "Bloodwine Tonic",
  "description": "Restores 20 HP. Drains 20 MP.",
  "scope": 7,
  "price": 60,
  "effects": [
    // Recover HP +20
    { "code": 11, "dataId": 0, "value1": 0, "value2": 20 },
    // Recover MP −20 (a negative value drains)
    { "code": 12, "dataId": 0, "value1": 0, "value2": -20 }
  ]
}

The same works for a class's EXP curve, a boss fight's mid-battle event, or a conversation that branches on a switch. You stay the designer and Claude does the data entry.

As a collaborator with free rein

Or you can hand over more: "Create a side quest in the village. A scholar lost her journal in the crypt, and the reward is a ring." Claude then paints the crypt, places the chest, writes the dialogue, sets up the switches so the quest can only complete once, and adds the ring to the database. Then it plays through the quest to check it.

Push further and you get entire games like the ones above. The same 128 tools cover both ends, so you can switch between a single potion and a whole quest in the middle of a conversation.

03No asset generation

The server doesn't generate any art or music. It uses what RPG Maker already has: the default assets plus the large library of official asset packs on Steam, covering tilesets, characters, battlers and music. DLC packs ship with tile-name files, which the server reads. That lets Claude ask for "grass" or "stone wall" by name instead of guessing tile IDs.

So there's no generated art, no clashing styles, and one less thing for Claude to worry about. You choose the look by choosing the packs, and Claude works with them.

04You can always take the wheel

To me this is the biggest win.

A fully vibe-coded game is a pile of code you didn't write. To change one line of dialogue, you first have to find where dialogue lives, then hope your change doesn't break something else. What this server produces is just an ordinary RPG Maker project. Open it in the editor and everything is where you'd expect it to be.

PAINTPaint over a corner of the map.
WRITEReword a line of dialogue.
TUNETweak a class's EXP curve.

Then save, go back to Claude and carry on. The server reads the project fresh on every call, so Claude builds on your changes instead of overwriting them. However much Claude builds, the game stays something you understand and can edit yourself.

TRY ITStart with a potion, or a whole quest

In Claude Code, this installs the server and its authoring skills:

claude plugin marketplace add Redseb/rpgmaker-mz-mcp
claude plugin install rpgmaker-mz@rpgmaker-mz-mcp

Any other MCP client can run npx -y rpgmaker-mz-mcp@latest with RPGMAKER_PROJECT_PATH set to your project.