Skip to main content
Glama
nicklesimba

gm-forge-mcp

by nicklesimba

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_projectB

Create a new GameMaker YYP project at the specified directory if it does not exist

add_texture_groupB

Create a new, additional texture group in the project (beyond the default one auto-provisioned for sprites/fonts)

add_audio_group

Create a new, additional audio group in the project (beyond the default one auto-provisioned for sounds)

add_scriptA

Create a new GML script and register it in the YYP

edit_script

Edit an existing script's GML code, either replacing it entirely or appending to it

add_object

Create a GameMaker object .yy file with optional event stubs and register it in the project

add_object_event

Add a new event to an existing object, with its own GML code

add_sprite_from_images

Import frames from a directory into a new sprite and register it in the project

add_room

Create a GameMaker room with default instance and background layers, register it in the project and room order

edit_room

Edit an existing room's width, height, and/or persistent flag

add_room_instance

Place an instance of an existing object into an existing room at a given position

reorder_roomB

Move a room to an absolute position in the game's room order (what room_goto_next/previous follow at runtime)

move_room_relativeA

Move a room immediately before or after another named room in the room order

add_noteA

Create a new Notes resource (plain-text project documentation, never compiled into the game) and register it in the project

get_note_infoA

Get an existing note's content

get_object_infoA

Get detailed info about an existing object: sprite, parent, physics, and its full event list with human-readable event names

get_room_infoA

Get detailed info about an existing room: dimensions, persistence, layers, and every placed instance with its position

find_tile_regionA

Check whether a world point in a room sits on a real tile, decoding GameMaker's compressed tile layer data (invisible to get_room_info's instance list). If occupied, reports the connected region of tiles it belongs to -- use this to confirm a spot is actually inside tile-drawn geometry (a building, a floor) before placing something there, not just clear of instances.

get_sprite_infoA

Get detailed info about an existing sprite: real dimensions, frame count, origin, collision settings

edit_spriteA

Edit an existing sprite's origin, collision kind, and/or bounding box -- not its frame data

get_script_info

Get an existing script's current GML code

add_shader

Create a new vertex+fragment shader pair (GLSL ES) and register it in the project

get_shader_info

Get an existing shader's vertex and fragment code

edit_shader

Edit an existing shader's vertex and/or fragment code

add_sound

Import a .wav or .ogg (Vorbis) file as a new sound and register it in the project. Metadata (sample rate, channels, duration) is derived from the real file; .mp3 isn't supported yet

get_sound_info

Get an existing sound's file, volume, and playback settings

edit_sound

Edit an existing sound's volume and/or preload flag (not its audio metadata, which is always derived from the real file)

add_font

Create a new font referencing an installed system font by name and register it in the project

get_font_info

Get an existing font's system font name, size, and style

edit_font

Edit an existing font's system font name, size, and/or style

add_tileset

Create a new tile set from an existing sprite (add the sprite first with add_sprite_from_images) and register it in the project. Column/row/tile counts are computed from the sprite's real dimensions.

get_tileset_info

Get an existing tile set's source sprite, tile dimensions, and tile count

edit_tileset

Edit an existing tile set's dimensions, spacing, or offset -- column/tile counts are recomputed from the real source sprite

add_extension

Create a new, empty extension shell (matches File > New Extension before any functions/constants/files are added in the IDE) and register it in the project

get_extension_info

Get an existing extension's version and file count

add_particle_system

Create a new particle system with one default emitter and register it in the project

get_particle_system_info

Get an existing particle system's emitter count and names

add_anim_curve

Create a new animation curve with one straight-line channel from (0,0) to (1,1) and register it in the project

get_anim_curve_info

Get an existing animation curve's channel count, names, and point counts

find_references

Find every place a resource is referenced across the whole project (rooms placing instances, other objects parenting to it, GML code calling it, etc.) -- use before deleting or renaming anything

delete_resource

Delete an existing resource. Refuses if it's still referenced elsewhere in the project unless force=true

rename_resource

Rename an existing resource, rewriting every reference to it across the whole project (other resources' name/path references, GML code) so nothing is left dangling

lint_projectA

Validate a whole project for dangling references, orphaned resources, missing folder registrations, missing event code files, and sound/sprite metadata that doesn't match the real underlying file -- run this before trusting a project is safe to open

compile_projectA

Actually compile the project with GameMaker's real build tool (Igor) to catch real GML errors -- duplicate function names, syntax errors -- that structural checks like lint_project can't see. NOTE: a successful compile briefly LAUNCHES the built game (then kills it immediately), so the project's own code runs; only compile projects you trust. Requires the GameMaker runtime to be installed (skips gracefully with a clear message if not). Windows only.

list_resourcesA

List resource names by type from the YYP file

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/nicklesimba/gm-forge-mcp'

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