
Hack GBA Pokémon ROMs with HexManiacAdvance's engine: tables, maps, scripts, text, undo.
Public tool metadata for what this MCP can expose to an agent.
open_romOpen a .gba, with HMA's .toml metadata if it's thereOpen a .gba, with HMA's .toml metadata if it's there
No parameter schema in public metadata yet.
rom_infoOpen a .gba, with HMA's .toml metadata if it's thereOpen a .gba, with HMA's .toml metadata if it's there
No parameter schema in public metadata yet.
close_romOpen a .gba, with HMA's .toml metadata if it's thereOpen a .gba, with HMA's .toml metadata if it's there
No parameter schema in public metadata yet.
list_anchorsSearch named anchors: data.pokemon.stats, scripts.…, graphics.…Search named anchors: data.pokemon.stats, scripts.…, graphics.…
No parameter schema in public metadata yet.
resolveAnchor or address → what's there: type of data, table row and field, pointer countAnchor or address → what's there: type of data, table row and field, pointer count
No parameter schema in public metadata yet.
describe_tableTable layout, and rows as JSON: enums as names, flag sets as lists, packed fields as objects, learnsets and teams as text; filter rows with where (bank=3, map=19)Table layout, and rows as JSON: enums as names, flag sets as lists, packed fields as objects, learnsets and teams as text; filter rows with where (bank=3, map=19)
No parameter schema in public metadata yet.
read_tableTable layout, and rows as JSON: enums as names, flag sets as lists, packed fields as objects, learnsets and teams as text; filter rows with where (bank=3, map=19)Table layout, and rows as JSON: enums as names, flag sets as lists, packed fields as objects, learnsets and teams as text; filter rows with where (bank=3, map=19)
No parameter schema in public metadata yet.
write_table_fieldSet one field by row number or row name (CHARMANDER), checked against the field's size; also learnsets, TM lists, trainer teamsSet one field by row number or row name (CHARMANDER), checked against the field's size; also learnsets, TM lists, trainer teams
No parameter schema in public metadata yet.
find_mapFind a map by name (PALLET TOWN → 3.0), then list its NPCs, warps, trigger scripts, signs and connections, with addresses ready for write_table_fieldFind a map by name (PALLET TOWN → 3.0), then list its NPCs, warps, trigger scripts, signs and connections, with addresses ready for write_table_field
No parameter schema in public metadata yet.
map_eventsFind a map by name (PALLET TOWN → 3.0), then list its NPCs, warps, trigger scripts, signs and connections, with addresses ready for write_table_fieldFind a map by name (PALLET TOWN → 3.0), then list its NPCs, warps, trigger scripts, signs and connections, with addresses ready for write_table_field
No parameter schema in public metadata yet.
read_textGame text at an address (a script's message, say); longer text is moved and every pointer to it updatedGame text at an address (a script's message, say); longer text is moved and every pointer to it updated
No parameter schema in public metadata yet.
write_textGame text at an address (a script's message, say); longer text is moved and every pointer to it updatedGame text at an address (a script's message, say); longer text is moved and every pointer to it updated
No parameter schema in public metadata yet.
decompile_scriptEvent, battle, animation and trainer-AI scripts, with automatic repointingEvent, battle, animation and trainer-AI scripts, with automatic repointing
No parameter schema in public metadata yet.
compile_scriptEvent, battle, animation and trainer-AI scripts, with automatic repointingEvent, battle, animation and trainer-AI scripts, with automatic repointing
No parameter schema in public metadata yet.
hma_editType into HMA's hex view using its full edit language (^anchor, <pointer>, "text")Type into HMA's hex view using its full edit language (^anchor, <pointer>, "text")
No parameter schema in public metadata yet.
read_bytesRaw access, for when you need itRaw access, for when you need it
No parameter schema in public metadata yet.
write_bytesRaw access, for when you need itRaw access, for when you need it
No parameter schema in public metadata yet.
find_free_spaceRaw access, for when you need itRaw access, for when you need it
No parameter schema in public metadata yet.
undoOne step per tool call, even when HMA records several internallyOne step per tool call, even when HMA records several internally
No parameter schema in public metadata yet.
redoOne step per tool call, even when HMA records several internallyOne step per tool call, even when HMA records several internally
No parameter schema in public metadata yet.
saveWrite the ROM and its .toml; the first save backs up the originalWrite the ROM and its .toml; the first save backs up the original
No parameter schema in public metadata yet.
Sponsors
hma-mcp: let your AI assistant hack GBA ROMs, powered by HexManiacAdvance
An MCP server for GBA Pokémon ROM hacking.
Claude (or any MCP client) reads and edits your ROM through the engine behind HexManiacAdvance:
the same anchors, tables, script compiler and repointing, with every edit undoable and saves that open straight back up in HMA.
https://github.com/dewayneku/hma-mcp/releases/download/v0.1.0/hma-mcp-darwin.mcpb