Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RPGMAKER_RTP_PATHNoPath to the RPG Maker XP RTP installation. Defaults to the Steam RPG Maker XP install location.
RPGMAKER_PROJECT_PATHYesPath to the RPG Maker XP project folder containing Game.rxproj and Data/.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_actorsB

Get all actors from the RPG Maker XP project (parameter tables omitted)

get_actorA

Get a specific actor by ID, including its 6x100 parameters table (MaxHP, MaxSP, STR, DEX, AGI, INT per level)

update_actorB

Update 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)

create_actorA

Create a new actor with RMXP defaults (linear stat growth curves unless a parameters Table is provided)

search_actorsC

Search actors by name

get_itemsB

Get all items from the project

get_weaponsB

Get all weapons from the project

get_armorsB

Get all armors from the project

get_skillsA

Get all skills from the project

get_skillA

Get a specific skill by ID

create_skillA

Create 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_damage_skillA

Create a damage-dealing skill (simplified). Set physical=true for ATK/PDEF based damage, otherwise INT/MDEF based (magic). Engine formula: damage = (power + ATKatk_f/100 - PDEFpdef_f/200 - MDEFmdef_f/200) * (20 + STRstr_f/100 + DEXdex_f/100 + AGIagi_f/100 + INT*int_f/100) / 20. Reference: default-DB Fire is power 140, sp 75.

create_healing_skillA

Create 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_state_skillA

Create 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).

update_skillC

Update a skill's properties

search_skillsB

Search skills by name or description

update_itemB

Update 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, ...)

search_itemsA

Search items, weapons and armors by name or description

create_weaponA

Create a new weapon (appended to Weapons.rxdata). Defaults match the RMXP editor; override any field. Equippable in the weapon slot.

create_armorA

Create a new armor (appended to Armors.rxdata). kind: 0=shield, 1=helmet, 2=body, 3=accessory. Defaults match the RMXP editor; override any field.

get_mapA

Get map data by ID (Data/MapXXX.rxdata). Tile data is summarized unless includeTiles is true.

get_map_infosA

Get information about all maps (names, parent, order)

get_map_eventsA

Get all events from a specific map

get_map_eventC

Get a specific event from a map

update_map_eventB

Update a map event's properties (name, x, y, pages)

create_map_eventB

Create a new event on a map. If pages are omitted, a default empty page is created.

search_map_eventsB

Search events on a map by name

add_event_commandA

Add 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=Transfer Player, 209=Set Move Route (509=continuation), 223=Change Screen Color Tone, 355=Script. indent must increase by 1 inside branch blocks; the trailing code-0 terminator is preserved automatically.

add_show_textA

Add 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 \n for line breaks.

create_transfer_eventA

Wire 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.

validate_connectivityA

Build 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, warnings, and a summary; set diagram=true for a Mermaid flowchart.

get_map_design_guideA

Return 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.

create_mapA

Create 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 Table[w,h,3]) + MapInfos entry. Paint with apply_autotile / scatter_tiles / set_map_tiles, preview with render_map.

get_map_size_advisoryA

Size 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_tilesA

Read 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.

set_map_tilesA

Stamp 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.

fill_regionA

Fill 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.

apply_autotileA

Paint 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 floors). All shapes are auto-sanitized to be autotile-safe (4-connected, no diagonal pinches or 1-cell holes) so they never render broken/pinched. The border ring of existing same-autotile cells is recomputed so it blends. Preview with render_map.

scatter_tilesA

Scatter 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.

get_databaseA

List 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_entryB

Get 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)

update_database_entryA

Update 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.

get_scriptsA

List all RGSS scripts in Scripts.rxdata (index, name, source length)

get_scriptA

Get an RGSS script's Ruby source code by index

update_scriptA

Replace an RGSS script's source code and/or name

create_scriptA

Create a new RGSS script. By default it is inserted just above "Main" (the conventional slot for custom scripts).

search_scriptsA

Search all RGSS script sources with a regex pattern; returns matching lines with script name and line number

get_systemA

Get system data (System.rxdata: party, elements, switches, variables, vocabulary, start position, audio settings)

get_variablesA

Get all game variable names (index = variable ID)

set_variable_nameD

Set a variable name

get_switchesA

Get all game switch names (index = switch ID)

set_switch_nameC

Set a switch name

get_game_titleA

Get the game title (from Game.ini)

update_game_titleA

Update the game title (in Game.ini)

update_starting_positionB

Update the party starting position (map ID and coordinates in System.rxdata)

validate_assetsA

Scan 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 silent until runtime.

classify_assetA

Inspect 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 not tilesets at all. Returns tier, recommended conversion op, target category, and flags. No writes.

verify_tilesetA

Render 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 registering.

register_tilesetA

Create 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_tileset_atlasA

Render 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.

create_tileset_identification_harnessA

Create 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 uncataloged tileset.

get_tileset_catalogA

Read 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.

save_tileset_catalogA

Validate 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.

validate_tileset_catalogA

Validate 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.

render_mapA

Render 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 the RTP (override base with RPGMAKER_RTP_PATH). Writes to Data/.mcp-preview/ by default; Read the returned path to view it.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Map design guideLevel/map design: the three-layer model (terrain/clutter/overhead), tile priority & passability, multi-tile no-overlap rule, composition, authoring workflow.
Tileset identification harnessEvidence-first workflow for identifying tile semantics, grouping multi-tile objects, assigning confidence, and validating catalogs before map authoring.
Authoring & governanceParticularities of writing for RPG Maker XP and how this MCP acts as a governance layer to prevent drift.
Engineering wisdomMarshal layer, battle math, event system, tileset model, coexisting with the editor.

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/SerifeusStudio/rpgmaker-xp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server