Rpgmaker Xp MCP server
io.github.SerifeusStudio/rpgmaker-xp-mcp·v1.1.3·4 starsAuthor RPG Maker XP games in natural language: read, write and render RGSS1 .rxdata.
4 stars78 downloads/wk
Reviews
Write oneNobody has reviewed Rpgmaker Xp yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Rpgmaker Xp tools (65, 21 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_event_commandAdd a single command to an event page (for Show Text prefer add_show_text). Common XP codes: 101=Show Text first line (401=continuation lines), 102=Show Choices [[texts...],cancelType] (each 402 branch repeats its choice text and must stay in sync), 111=Conditional Branch, 121=Control Switches, 122=Control Variables, 123=Control Self Switch [ch,0=on/1=off], 125=Change Gold, 126=Change Items, 201=T
add_show_textAdd a Show Text message to an event page. Handles XP's 101/401 structure automatically: first line of each box is code 101, continuation lines are 401, and text longer than 4 lines is split into multiple message boxes. Use \ for line breaks.
apply_autotilePaint an autotile (slot 0..6 = tileset autotile_names index) and compute the correct edge variant per cell from 8-neighbour connectivity (seamless coastlines/paths/cliffs). Supply ONE of: `blob` (organic roundish shape — USE for ponds/lakes/forest patches); `path` (autotile-safe road/trail/river through waypoints, width >=2); `cells` (arbitrary [x,y] list); or `region` (rect — only for rectangular
classify_assetInspect a PNG before import and report whether it is a native RMXP asset. Goes beyond canvas dimensions: fingerprints the filename ($/! object sprites, MV/MZ A1-A5 autotile sheets, 48px-divisible MV dimensions) AND detects the true CONTENT tile size via edge-periodicity (16/24/32/48/64px). Catches assets that look fine by size but render 1.5x/2x too large in RMXP's 32px grid, and assets that are n
create_actorwrite actionCreate a new actor with RMXP defaults (linear stat growth curves unless a parameters Table is provided)
create_armorwrite actionCreate a new armor (appended to Armors.rxdata). kind: 0=shield, 1=helmet, 2=body, 3=accessory. Defaults match the RMXP editor; override any field.
create_damage_skillwrite actionCreate a damage-dealing skill (simplified). Set physical=true for ATK/PDEF based damage, otherwise INT/MDEF based (magic). Engine formula: damage = (power + ATK*atk_f/100 - PDEF*pdef_f/200 - MDEF*mdef_f/200) * (20 + STR*str_f/100 + DEX*dex_f/100 + AGI*agi_f/100 + INT*int_f/100) / 20. Reference: default-DB Fire is power 140, sp 75.
create_healing_skillwrite actionCreate a healing skill (simplified). In XP healing is negative power. Amount healed = power * (20 + INT*int_f/100) / 20 with int_f=50 (default-DB convention), so it scales with the caster's INT. Reference: default-DB Heal is power 150, sp 80.
create_mapwrite actionCreate a new map. SIZE IS THE FIRST DESIGN DECISION: a map is N screens of 20x15 tiles, so pass a `purpose` (interior/room/town/dungeon/overworld/region) to get a sensible default size, or set width/height explicitly. Returns the new map id and a size_advisory (screens, target focal-point count, scatter density, oversize warnings) plus the design guide. Writes the next-free MapXXX.rxdata (blank Ta
create_map_eventwrite actionCreate a new event on a map. If pages are omitted, a default empty page is created.
create_scriptwrite actionCreate a new RGSS script. By default it is inserted just above "Main" (the conventional slot for custom scripts).
create_skillwrite actionCreate a new skill with full control over RPG::Skill fields. XP has no damage formulas: damage = power scaled by stat influence rates (atk_f/str_f for physical, int_f for magical). Negative power heals.
create_state_skillwrite actionCreate a state-inflicting skill (poison, sleep, etc.). State IDs come from States.rxdata (XP defaults: 3=poison, 5=blind, 6=silence, 7=confuse, 8=sleep, 9=paralyze).
create_tileset_identification_harnesswrite actionCreate a review bundle for one tileset that separates engine facts from semantic claims. Produces the exact source sheet, isolated transparent tile images, source-row strips, manifest.json (priority, passage flags, alpha bounds), catalog templates, and an interactive index.html for identifying single tiles and rectangular multi-tile objects. Use this before assigning map-design roles to an uncatal
create_transfer_eventwrite actionWire two maps together: create a Transfer Player (command 201) event at (x,y) on a map that warps the player to (targetX,targetY) on targetMapId. trigger 0 = action button (a door — give it a graphic); trigger 1 = player touch (an edge teleport — leave it invisible). Validates both endpoints exist and are in-bounds before writing. Use validate_connectivity afterwards to check the whole world graph
create_weaponwrite actionCreate a new weapon (appended to Weapons.rxdata). Defaults match the RMXP editor; override any field. Equippable in the weapon slot.
fill_regionFill a rectangle of a layer with one tile id (or the whole layer if `rect` is omitted). Tile id 0 clears. For autotiles this places the base variant (P1) — smart edges come with apply_autotile.
get_actorGet a specific actor by ID, including its 6x100 parameters table (MaxHP, MaxSP, STR, DEX, AGI, INT per level)
get_actorsGet all actors from the RPG Maker XP project (parameter tables omitted)
get_armorsGet all armors from the project
get_databaseList all entries of a database file. Kinds: classes, states, enemies, troops, common_events, tilesets, animations (also actors/skills/items/weapons/armors). Tables and command lists are summarized; use get_database_entry for full data.
get_database_entryGet one full database entry by ID, including Tables (tileset passages/priorities/terrain_tags, enemy element_ranks, class element_ranks) and event command lists (common events, troop pages)
get_game_titleGet the game title (from Game.ini)
get_itemsGet all items from the project
get_mapGet map data by ID (Data/MapXXX.rxdata). Tile data is summarized unless includeTiles is true.
get_map_design_guideReturn the level/map design guide (MAP-DESIGN.md): layer roles (z0 terrain / z1 ground clutter / z2 overhead), tile priority & passability, the multi-tile-object no-overlap rule, composition principles, and the authoring workflow. Load this before authoring or editing maps.
get_map_eventGet a specific event from a map
get_map_eventsGet all events from a specific map
get_map_infosGet information about all maps (names, parent, order)
get_map_size_advisorySize advisory for an EXISTING map: screens (ceil(w/20)*ceil(h/15)), target focal-point and path-junction counts, recommended scatter density, approx clutter tile budget, and oversize/purpose-mismatch warnings. Use this first when editing a map so size and tile budget guide the design. Optionally pass a purpose to check the size against its sweet spot.
get_map_tilesRead a map's tile ids as a 2D grid (rows top-to-bottom). Returns one layer if `layer` is given, else all three. Tile id 0 = empty, 48..383 = autotiles, >=384 = regular tiles. Use `region` to crop and avoid large payloads.
get_scriptGet an RGSS script's Ruby source code by index
get_scriptsList all RGSS scripts in Scripts.rxdata (index, name, source length)
get_skillGet a specific skill by ID
get_skillsGet all skills from the project
get_switchesGet all game switch names (index = switch ID)
get_systemGet system data (System.rxdata: party, elements, switches, variables, vocabulary, start position, audio settings)
get_tileset_catalogRead the structured semantic catalog for a tileset together with its generated engine-fact manifest and validation summary. Absence from the catalog means unreviewed, not safe to infer.
get_variablesGet all game variable names (index = variable ID)
get_weaponsGet all weapons from the project
register_tilesetwrite actionCreate a Tilesets.rxdata entry for a graphic already in Graphics/Tilesets, sizing the passability/priority/terrain Tables to the image (384 + height/4). GUARDED: refuses object sprites, MV A-series sheets, non-256px-wide, or non-32px-content assets (pass force:true to override). This is the gate that keeps mis-classified art out of the database.
render_mapRender a map's tile layers to a flat top-down PNG preview (outside the editor) and return the file path. Composites all 3 tile layers using the tileset graphic and autotiles. Use this to SEE a map you built/edited and self-check it. Layout preview only: no priority/overhead draw-order, fog/panorama/weather, autotile animation (frame 0), or event sprites. Reads project Graphics/ then falls back to
render_tileset_atlasRender a labeled atlas of a tileset to a PNG: the tileset graphic scaled with a grid, each regular tile's id burned in, passability indicators, and the 7 autotile slots. This is a quick numeric reference, not semantic proof; use create_tileset_identification_harness before assigning map-design roles.
save_tileset_catalogValidate and save reviewed semantic findings for a tileset. Accepts incremental tile/object/autotile arrays or the complete catalog JSON exported by the review page. Generated engine facts cannot be overwritten by catalog claims.
scatter_tilesScatter clutter tile ids over a region with natural random distribution at a target density (fraction of cells), skipping occupied cells. Optional focal point with falloff for a density gradient (denser near a landmark). Use for flowers/bushes/rocks/tall grass instead of hand-placing lone tiles — fixes sparse/corner-clustered decoration. Deterministic given seed.
search_actorsSearch actors by name
search_itemsSearch items, weapons and armors by name or description
search_map_eventsSearch events on a map by name
search_scriptsSearch all RGSS script sources with a regex pattern; returns matching lines with script name and line number
search_skillsSearch skills by name or description
set_map_tilesStamp a 2D block of tile ids into a layer with its top-left at (x, y). `grid` is rows of ids (0 clears a cell). Cells outside the map are skipped. Preview with render_map.
set_switch_nameSet a switch name
set_variable_nameSet a variable name
update_actorwrite actionUpdate an actor's properties (XP fields: name, class_id, initial_level, final_level, exp_basis, exp_inflation, character_name, character_hue, battler_name, battler_hue, weapon_id, armor1_id..armor4_id, weapon_fix, armor1_fix..armor4_fix, parameters)
update_database_entrywrite actionUpdate any database entry's properties (e.g. a class's weapon_set, a state's rates, an enemy's stats, tileset passability Tables). Tables must be written as { "_class": "Table", dim, xsize, ysize, zsize, data: [...] }. Tileset passages: value 0=passable, 1/2/4/8 = down/left/right/up blocked, 15=impassable, +64 bush, +128 counter.
update_game_titlewrite actionUpdate the game title (in Game.ini)
update_itemwrite actionUpdate an item's properties (XP fields: name, icon_name, description, scope, occasion, price, consumable, recover_hp, recover_sp, parameter_type, parameter_points, element_set, plus_state_set, minus_state_set, ...)
update_map_eventwrite actionUpdate a map event's properties (name, x, y, pages)
update_scriptwrite actionReplace an RGSS script's source code and/or name
update_skillwrite actionUpdate a skill's properties
update_starting_positionwrite actionUpdate the party starting position (map ID and coordinates in System.rxdata)
validate_assetsScan all data files for referenced graphic/audio filenames (tilesets, autotiles, panoramas, fogs, battlebacks, character/battler/icon graphics, animations, windowskin/title/gameover/transition, BGM/BGS/ME, and map event sprites) and report any with no matching file on disk. Checks the project Graphics/ and Audio/ first, then the RTP (RPGMAKER_RTP_PATH). Catches broken references that are otherwise
validate_connectivityBuild and validate the world transfer graph. Scans every map's events for Transfer Player (201) commands, checks each targets a real map at in-bounds coords, computes reachability from System.start_map_id, and flags orphan maps (no inbound transfer) and unreachable maps. Variable-designated transfers are reported as dynamic (runtime destination, unverifiable). Returns nodes, edges, errors, warning
validate_tileset_catalogValidate a tileset catalog against its engine manifest. Reports invalid ids, malformed object grids, contradictory layer/priority choices, transparent z0 placement, and unreviewed tiles. strict=true requires every regular tile to have a reviewed entry.
verify_tilesetRender an asset with two overlaid grids — the RMXP 32px grid (red) and the detected content grid (cyan) — and write a preview PNG for multimodal review. If a tile motif fills a 2x2 block of red cells the art is 64px (too big); if red and cyan coincide it is native 32px. Returns the preview path, detected tile size, and an alignment verdict. Read the returned preview_png to confirm visually before
Public scan report
scanner v0.1.10 · 2026-11-04 · same rubric, same numbers if you re-run it
- Code scan41 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 49 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Rpgmaker Xp compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 88/100
- higher than 75% of 48,255 servers
- Tools
- 65
- the typical server has 7
- Tools that change things
- 32%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 4
- more than 82% of 28,688 servers
- Downloads a week
- 78
- more than 57% of 12,191 servers with a package
What its tools let an agent do: 37 read · 16 create · 11 change · 1 run or deploy
Install Rpgmaker Xp in Claude Code, Cursor or VS Code
Runs npx -y rpgmaker-xp-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add rpgmaker-xp-mcp -- npx -y rpgmaker-xp-mcp
What the publisher says
From the Rpgmaker Xp repository's README, as published. We do not edit it. Read it on GitHub
RPG Maker XP MCP Server
Build RPG Maker XP games by describing what you want.
"Make a healing potion that restores 200 HP and costs 150 gold."
"Create a 40×30 forest map with a pond in the north-east, then show it to me."
"Find every NPC on map 3 whose dialogue mentions the king."
This is an MCP server that reads and writes an RPG Maker XP project's .rxdata files directly — actors, skills, items, maps, events, scripts and system data — and renders map previews to PNG so you can see what was built without opening the editor.
It talks to XP's native Ruby 1.8 Marshal format. Nothing is exported, converted, or kept in a side file: it edits your real project, and the editor opens the result normally.
⚠️ Read this before your first run
1. Close the RPG Maker XP editor while the server is running. The editor holds all data files in memory and rewrites every one of them when you save. If it is open, it will overwrite anything this server changed. This is the single most common way to lose work.
2. Back up your project first. Copy the whole Data/ folder somewhere safe. Do this even though the server takes its own backups, because:
3. The automatic backup is not version history. Before its first write to a file in a session, the server copies the original to Data/.mcp-backup/. That is one .bak per file per session — the next session overwrites it. It protects you from the last thing you did, not from something you broke a week ago. If your project matters, put it in git.
4. Test your game after changes. A file can be structurally valid and still be wrong for your game.
What is MCP?
The Model Context Protocol is a standard way for AI assistants to use external tools. This server is not a chat program and has no interface of its own — it is a backend that an MCP client connects to.
You need one of those clients. Common choices:
local models through Ollama (see below)
- Claude Code — terminal-based
- Claude Desktop — desktop app
- Open WebUI, Cursor, Windsurf, or any other MCP-capable client — including
If you have never used an MCP client, start with Claude Desktop; the Configuration section has a copy-paste config.
Requirements
The RTP (the default tiles, autotiles, character sprites and audio) is read from your own installation at runtime. This project does not bundle or redistribute any Enterbrain assets.
Does it work with Pokémon Essentials?
Structurally, yes — Essentials games are RPG Maker XP projects, and every tool here operates on standard .rxdata. Two honest caveats: Essentials layers its own conventions on top of the engine (its own data files, a very large Scripts.rxdata, PBS text files) which this server knows nothing about, and its projects are big enough that you should be especially sure about backup point 2 above. Reading, map work and database edits behave normally.
Installation
The published package ships prebuilt, so there is no build step. Most clients can launch it on demand with npx.
npm install -g rpgmaker-xp-mcpFrom source
git clone https://github.com/SerifeusStudio/rpgmaker-xp-mcp.git
cd rpgmaker-xp-mcp
npm install
npm run buildThen use node with the path to dist/index.js as the command in the configs below.
Configuration
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Rpgmaker Xp: common questions
- Is Rpgmaker Xp MCP server safe?
- Yes, by our scan: it is graded A (88/100). Read the Rpgmaker Xp safety report
- How do I install Rpgmaker Xp?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Rpgmaker Xp need an API key?
- No secret keys are declared. It reads 2 settings from the environment.
- Is Rpgmaker Xp maintained?
- The last commit was 49 days ago (2026-09-16). The latest release is v1.1.3.
- How does Rpgmaker Xp compare with other MCP servers?
- safety score 88/100 (higher than 75% of 48,255 servers); tools 65 (the typical server has 7); tools that change things 32% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.