Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.Redseb/rpgmaker-mz-mcp

NPM · RPGMAKER-MZ-MCP

MCP server for RPG Maker MZ: maps, tile painting, events, database editing, and validation.

Available components

0 this week 81 Trust /100

Last scanned (9 hours ago)

Scores higher than 69% of npm servers

Category Developer Tools

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 24829 tokens (~193/item across 128 items; 128 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 97% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_map" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 128 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 1 Nov 26 +1
    • Stability: 0.97 → pass security
  • 31 Oct 26 −1
    • Stability: pass → 0.97 functional
  • 21 Oct 26 +1
    • Stability: 0.97 → pass security
  • 20 Oct 26 −1
    • Stability: pass → 0.97 functional
  • 17 Oct 26 +3
    • Stability: 0.83 → pass security
    • Package version: 1.2.0 → 1.4.0 functional
  • 15 Oct 26 −3
    • Stability: pass → 0.80 functional
  • 14 Oct 26 +1
    • Stability: 0.97 → pass security
  • 12 Oct 26 +1
    • Security disclosure: unverified → fail ▼ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/rpgmaker-mz-mcp@1.4.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 93 packages
Packages resolved 93
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 128 exposed · ~24,829 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
search_troops ~33

Search troops by name (case-insensitive)

NameTypeReqDescription
searchTermstringyesThe search term to find troops

No output schema declared.

No examples provided.

set_class_param_curve ~156

Replace one of a class's 8 parameter growth curves. paramId is 0-7 ([maxHP,maxMP,atk,def,mat,mdf,agi,luk]); values must match the existing curve length (same max level).

NameTypeReqDescription
classIdintegeryesThe ID of the class to edit
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
paramIdintegeryesWhich param: 0 maxHP,1 maxMP,2 atk,3 def,4 mat,5 mdf,6 agi,7 luk
valuesarrayyesNew curve, indexed by level; must match the existing curve length

No output schema declared.

No examples provided.

set_currency_unit ~61

Set the currency unit shown next to gold amounts (e.g. "G", "Gold").

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
unitstringyesThe currency unit string

No output schema declared.

No examples provided.

set_encounters ~183

Set a map's random-encounter list (replaces it wholesale) and optionally its encounterStep (average steps between encounters). Each encounter is { troopId, weight?, regionSet? }: weight biases the random pick (default 5), regionSet restricts it to those map region ids (empty/omitted = anywhere). Every troopId is validated against Troops.json — a non-existent troop throws. Prefer this over update_map for encounters (it validates and hides the on-disk shape).

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
encounterStepinteger–Average number of steps between encounters (unchanged if omitted)
encountersarrayyesThe full encounter list to set (replaces any existing entries)
mapIdintegeryesThe ID of the map

No output schema declared.

No examples provided.

set_event_page ~569

Update an existing event page's graphic and behavior in one call, without rebuilding the whole page or touching its command list: sprite (characterName/characterIndex/direction/pattern or a tileId), trigger, priority, movement (type/speed/frequency/route), and the through/walkAnime/stepAnime/directionFix flags. Graphic fields merge onto the current image; warns (never blocks) on an unknown characterName. Refuses the write if the change would leave the event unreachable (an action-button page with priority `below` on an impassable tile) — pass force: true to override.

NameTypeReqDescription
characterIndexinteger–Sprite index 0–7 in the sheet
characterNamestring–Sprite sheet basename (from list_assets("characters")); "" = no sprite
directionstring–Facing direction of the sprite
directionFixboolean–Lock the facing direction
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
eventIdintegeryesThe ID of the event
forceboolean–Write even if validation finds structural problems (wrong parameter count, unterminated command list). Off by default: such a write is refused and nothing is written. Advisory warnings never block re…
indentinteger–(unused; page-level tool)
mapIdintegeryesThe ID of the map
moveFrequencyinteger–Movement frequency 1–5 (3 = normal)
moveRouteobject–Autonomous move route (from create_move_route); pairs with moveType "custom"
moveSpeedinteger–Movement speed 1–6 (4 = normal)
moveTypestring–Autonomous movement (custom uses moveRoute)
pageIndexintegeryesZero-based page index
patterninteger–Sprite animation frame 0–2 (1 = idle)
prioritystring–Stacking vs. the player: below/same/above characters (same = solid)
stepAnimeboolean–Animate in place while stopped
throughboolean–Let the player/others pass through the event
tileIdinteger–Use a tile as the graphic instead of a sprite (0 = none)
triggerstring–What starts the page
verboseboolean–Echo the full written record instead of the default summary. Off by default: the response reports identity, counts and command-list shape, which is what you would assert on, and omits the parameters/…
walkAnimeboolean–Animate the walk cycle while moving

No output schema declared.

No examples provided.

set_map_tile ~151

Set a single raw tile ID at (x, y) on a given z-layer (0-5). Note: tile IDs are raw engine integers; this is a low-level primitive without autotile/passability awareness.

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
layerintegeryesZ-layer 0-5 (0-1 lower, 2-3 upper, 4 shadow, 5 region)
mapIdintegeryesThe ID of the map
tileIdintegeryesRaw tile ID
xintegeryesX tile position
yintegeryesY tile position

No output schema declared.

No examples provided.

set_movement_route ~285

Insert a forced "Set Movement Route" (event command 205, plus the 505 continuation rows the editor expects) into an event page’s command list, moving a character as part of that page. characterId: -1 player, 0 this event, N event id. Pass a moveRoute from create_move_route. A structurally invalid route or page refuses the write (nothing is saved) — pass force: true to override.

NameTypeReqDescription
characterIdintegeryesTarget character: -1 player, 0 this event, N event id on the map
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
eventIdintegeryesThe ID of the event
forceboolean–Write even if validation finds structural problems (wrong parameter count, unterminated command list). Off by default: such a write is refused and nothing is written. Advisory warnings never block re…
indentinteger–Indentation level in the list (default 0)
mapIdintegeryesThe ID of the map
moveRouteobjectyesThe move route to force (e.g. from create_move_route)
pageIndexintegeryesZero-based page index
positioninteger–Insertion index; defaults to the end of the list

No output schema declared.

No examples provided.

set_party ~69

Set the starting party (the actor ids the game begins with, in order). Every id must reference an existing actor.

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
partyMembersarrayyesOrdered actor ids for the starting party

No output schema declared.

No examples provided.

set_project ~76

Point the server at a different RPG Maker MZ project directory for the rest of the session (overrides RPGMAKER_PROJECT_PATH until the server restarts). The directory must contain game.rmmzproject and data/System.json.

NameTypeReqDescription
pathstringyesPath to the RPG Maker MZ project directory (a leading ~ is expanded).

No output schema declared.

No examples provided.

set_switch_name ~123

Set a switch name. Grows the project's switch list if the id is past the end (padded to the editor's 20-slot block), so an id from next_free_id can always be labelled. Naming a switch as soon as you claim it is what makes it visible to the next session — see list_allocated_ids.

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
namestringyesThe name to assign
switchIdintegeryesThe 1-based switch ID

No output schema declared.

No examples provided.

set_term ~123

Set one vocabulary term. For category 'basic'/'commands'/'params' the key is a numeric index (as a string); for 'messages' it's a message key (e.g. 'actorDamage'). Returns the updated terms.

NameTypeReqDescription
categorystringyesWhich term group to edit
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
keystringyesIndex (for basic/commands/params) or message key (for messages)
valuestringyesThe new term text

No output schema declared.

No examples provided.

set_tile_flags ~403

Edit a tile's passability/terrain/behaviour flags in a tileset's flags[] array (the write side of get_tile_flags). Only the fields you pass change — everything else on the tile is preserved (a non-destructive merge onto the current flag word). `passage` is walkability (down/left/right/up, true = a character can walk off that way). Also settable: star ([*] overlay), ladder, bush, counter, damage (damage floor), and terrainTag (0–7). For an autotile id (A1–A4) the change is applied to all 48 shape slots of its kind by default (set applyToAutotileKind:false to touch only the exact id) so painting any border shape keeps the same passability. Writes data/Tilesets.json through the commit choke point (dry-run/diff). Returns { tilesetId, tileId, appliedTileCount, before, after }.

NameTypeReqDescription
applyToAutotileKindboolean–When the tile is an autotile (A1–A4), apply the change to all 48 shape slots of its kind (default true). Ignored for flat tiles.
bushboolean––
counterboolean––
damageboolean–Damage floor (standing on it hurts).
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
ladderboolean––
passageobject–Walkability per direction (true = walkable). Only the given directions change.
starboolean–[*] overlay: tile drawn above the character.
terrainTaginteger–Terrain tag 0–7 (0 = none).
tileIdintegeryesThe raw tile id whose flags to edit
tilesetIdintegeryesTileset id (from Tilesets.json / the map)

No output schema declared.

No examples provided.

set_type_name ~110

Rename one entry in a System.json type-name array (elements/skillTypes/weaponTypes/armorTypes/equipTypes). Index 0 is the conventional empty slot. Returns the updated array.

NameTypeReqDescription
categorystringyesWhich type-name array to edit
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
indexintegeryesIndex within the array (0 = empty slot)
namestringyesThe new type name

No output schema declared.

No examples provided.

set_variable_name ~123

Set a variable name. Grows the project's variable list if the id is past the end (padded to the editor's 20-slot block), so an id from next_free_id can always be labelled. Naming a variable as soon as you claim it is what makes it visible to the next session — see list_allocated_ids.

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
namestringyesThe name to assign
variableIdintegeryesThe 1-based variable ID

No output schema declared.

No examples provided.

update_actor ~64

Update an actor's properties

NameTypeReqDescription
actorIdintegeryesThe ID of the actor to update
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
updatesobjectyesObject containing actor properties to update

No output schema declared.

No examples provided.

update_armor ~73

Update an armor's properties (shallow merge into the existing record)

NameTypeReqDescription
armorIdintegeryesThe ID of the armor to update
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
updatesobjectyesObject containing armor properties to update

No output schema declared.

No examples provided.

update_class ~128

Update a class's properties (shallow merge into the existing record). Use for name, expParams, traits, or to replace the whole learnings/params arrays; for targeted edits prefer add_class_learning / set_class_param_curve. Warns when a learned skill's stypeId has no Add Skill Type trait ({ code: 41 }).

NameTypeReqDescription
classIdintegeryesThe ID of the class to update
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
updatesobjectyesObject containing class properties to update

No output schema declared.

No examples provided.

update_common_event ~233

Update a common event's properties (shallow merge into the existing record). Use for name, trigger, switchId, or to replace the whole command list. A structurally invalid command list refuses the write (nothing is saved) — pass force: true to override.

NameTypeReqDescription
commonEventIdintegeryesThe ID of the common event to update
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
forceboolean–Write even if validation finds structural problems (wrong parameter count, unterminated command list). Off by default: such a write is refused and nothing is written. Advisory warnings never block re…
updatesobjectyesObject containing common event properties to update (name, trigger, switchId, list)
verboseboolean–Echo the full written record instead of the default summary. Off by default: the response reports identity, counts and command-list shape, which is what you would assert on, and omits the parameters/…

No output schema declared.

No examples provided.

update_enemy ~112

Update an enemy's properties (shallow merge into the existing record). Returns `{ enemy, warnings? }` — a `battlerName` not found in img/enemies (img/sv_enemies for a side-view project) is flagged warn-by-default.

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
enemyIdintegeryesThe ID of the enemy to update
updatesobjectyesObject containing enemy properties to update

No output schema declared.

No examples provided.

update_game_title ~47

Update the game title

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
titlestringyesThe new game title

No output schema declared.

No examples provided.

update_item ~71

Update an item's properties (shallow merge into the existing record)

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
itemIdintegeryesThe ID of the item to update
updatesobjectyesObject containing item properties to update

No output schema declared.

No examples provided.

update_map ~212

Update a map's top-level properties (name, display name, bgm, encounters, etc.). Does not repaint tiles. Cannot change width/height (that would desync the tile data array) — use resize_map for that. The echo omits the tile `data` array and the `events` map (neither is touched here) and reports dataTileCount/eventCount instead; pass verbose: true or use get_map for the full record.

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
mapIdintegeryesThe ID of the map
updatesobjectyesPartial MapData properties to merge
verboseboolean–Echo the full written record instead of the default summary. Off by default: the response reports identity, counts and command-list shape, which is what you would assert on, and omits the parameters/…

No output schema declared.

No examples provided.

update_map_event ~210

Update a map event's properties. Refuses the write (nothing is saved) if the resulting event is structurally invalid — pass force: true to override.

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
eventIdintegeryesThe ID of the event
forceboolean–Write even if validation finds structural problems (wrong parameter count, unterminated command list). Off by default: such a write is refused and nothing is written. Advisory warnings never block re…
mapIdintegeryesThe ID of the map
updatesobjectyesObject containing event properties to update
verboseboolean–Echo the full written record instead of the default summary. Off by default: the response reports identity, counts and command-list shape, which is what you would assert on, and omits the parameters/…

No output schema declared.

No examples provided.

update_map_tree ~109

Edit the map tree (MapInfos.json) only — reparent, reorder, rename, or expand/collapse maps without touching their tiles or events. Takes a batch of per-map updates; every referenced map (and any non-zero parentId) must exist, and the resulting tree must stay acyclic.

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
updatesarrayyesOne or more per-map tree edits to apply together

No output schema declared.

No examples provided.

update_skill ~59

Update a skill's properties

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
skillIdintegeryesThe skill ID to update
updatesobjectyesProperties to update

No output schema declared.

No examples provided.

update_starting_position ~69

Update the game starting position

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
mapIdintegeryesStarting map ID
xintegeryesStarting x tile
yintegeryesStarting y tile

No output schema declared.

No examples provided.

update_state ~71

Update a state's properties (shallow merge into the existing record)

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
stateIdintegeryesThe ID of the state to update
updatesobjectyesObject containing state properties to update

No output schema declared.

No examples provided.

update_title_screen ~210

Update the title screen: background layers (title1Name/title2Name, basenames from list_assets("titles1"/"titles2")), the BGM that plays while it is shown, and/or whether the game title text is drawn over the art. Only the provided fields are changed. Warns (never blocks) when an image/audio name is not a known asset. Returns the updated title screen settings.

NameTypeReqDescription
drawTitleboolean–Whether to draw the game title text over the background art (the editor's "Draw Game Title" option)
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
title1Namestring–Background image basename from list_assets("titles1") (the far layer)
title2Namestring–Background image basename from list_assets("titles2") (drawn over title1Name)
titleBgmobject–BGM that plays while the title screen is shown

No output schema declared.

No examples provided.

update_troop ~222

Update a troop's properties (shallow merge). If `members` is provided, each enemyId is validated to exist. A structurally invalid battle-event page refuses the write (nothing is saved) — pass force: true to override.

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
forceboolean–Write even if validation finds structural problems (wrong parameter count, unterminated command list). Off by default: such a write is refused and nothing is written. Advisory warnings never block re…
troopIdintegeryesThe ID of the troop to update
updatesobjectyesObject containing troop properties to update (name, members, pages)
verboseboolean–Echo the full written record instead of the default summary. Off by default: the response reports identity, counts and command-list shape, which is what you would assert on, and omits the parameters/…

No output schema declared.

No examples provided.

update_weapon ~72

Update a weapon's properties (shallow merge into the existing record)

NameTypeReqDescription
dryRunboolean–Preview only: return a diff of what would change without writing to disk.
updatesobjectyesObject containing weapon properties to update
weaponIdintegeryesThe ID of the weapon to update

No output schema declared.

No examples provided.

validate_assets ~180

Audit asset-filename integrity across the whole project (read-only, warn-by-default): every image/audio name field — actor characterName/faceName/battlerName, enemy battlerName, tileset sheets, map bgm/bgs/parallax/battlebacks, event page graphics, event Play BGM/BGS/ME/SE / Show Picture / Show Text face / Change Actor Images, and system titles/battlebacks/default audio/vehicle graphics — is checked against the files present under img/ and audio/. Catches a wrong filename (e.g. a battlerName with no matching img/enemies/*.png) before it becomes a runtime "Failed to load" error. An asset kind whose directory is empty/missing is skipped (not flagged). Complements validate_references (which checks id integrity). Returns { ok, warnings[] }.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

validate_event ~140

Validate a single event's command lists against the known RPG Maker MZ command table, plus its placement against the tile it sits on: an action-button page with priority below on an impassable tile (can never trigger) and an invisible wall (a graphic-less, priority-same, non-through page on a walkable tile — the player bumps into nothing; an action-button page over a drawn B–E object is exempt, as the solid-landmark idiom). Read-only: reports warnings without changing anything.

NameTypeReqDescription
eventIdintegeryesThe ID of the event to validate
mapIdintegeryesThe ID of the map

No output schema declared.

No examples provided.

validate_project ~81

Validate the event command lists of every map in the project, plus each event's placement (action-button-below on an impassable tile; graphic-less priority-same invisible walls on walkable tiles, except action-button pages over a drawn B–E object). Read-only: returns aggregated, map-tagged warnings for auditing before or after a batch of edits.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

validate_references ~144

Audit cross-file reference integrity across the whole project (read-only, warn-by-default): Transfer Player targets and starting position point at existing maps; starting party, actor classes, class/enemy skills, troop members, enemy drops, and skill/item effects (states, learned skills, common events, animations) all resolve; event commands that name a record (Change Items/Weapons/Armors, Change Party Member, Battle Processing, Shop Processing, Change State/Skill, Common Event) and map random encounters point at existing rows; and the map tree has no dangling or cyclic parentId. Complements validate_project (which checks command shape). Returns { ok, warnings[] }.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the io.github.Redseb/rpgmaker-mz-mcp server?

io.github.Redseb/rpgmaker-mz-mcp runs locally as an npm package, launched with npx -y rpgmaker-mz-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · rpgmaker-mz-mcp

# add to Claude Code
claude mcp add redseb-rpgmaker-mz-mcp -- npx -y rpgmaker-mz-mcp
Common questions

What is the io.github.Redseb/rpgmaker-mz-mcp server?

io.github.Redseb/rpgmaker-mz-mcp is listed in the public MCP registry as io.github.Redseb/rpgmaker-mz-mcp. MCP server for RPG Maker MZ: maps, tile painting, events, database editing, and validation. This page covers its npm package (rpgmaker-mz-mcp).

Is the io.github.Redseb/rpgmaker-mz-mcp server safe to use?

io.github.Redseb/rpgmaker-mz-mcp scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.Redseb/rpgmaker-mz-mcp server expose?

io.github.Redseb/rpgmaker-mz-mcp exposes 128 tools: get_project, set_project, update_actor, create_actor, search_actors, and 123 more. Their descriptions and schemas cost roughly 24,829 tokens of context every time the server is loaded.

Is the io.github.Redseb/rpgmaker-mz-mcp server still maintained?

io.github.Redseb/rpgmaker-mz-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.Redseb/rpgmaker-mz-mcp server under?

io.github.Redseb/rpgmaker-mz-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.