Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
game_connectA

Connect to the running game and report what is on the other end.

Call this first, or after the game has been restarted. reconnect=True drops the existing sockets and dials again.

game_statusB

Connection state, current level, and any input still being held.

game_reset_inputA

Release every held button, centre the sticks, lift the mouse buttons.

Use this after hold=True actions, or any time the character seems stuck walking into a wall.

game_observeA

Look at the game: a screenshot plus the log lines since the last look.

grid=True overlays a labelled 0..1 coordinate grid -- turn it on when you intend to click something with game_mouse. show_ui=False hides the HUD/UMG overlays. log_pattern is a regex filter over the new log lines. state=True folds in game_state, so one call answers what the world looks like and what it actually contains.

game_stateA

Structured world state -- no screenshot, cheap to call often.

Returns the level name, world time and pause/dilation, the player pawn's transform, velocity and movement mode, the camera, and the nearest actors with their distance and their normalized screen position (the same 0..1 coordinates game_mouse takes, so you can aim at what you find here).

class_filter keeps only actors whose class name contains that substring, e.g. "Enemy". radius is in centimetres. Games can add their own values -- health, score, quest flags -- by implementing IRemoteGameStateProvider on an actor; those show up under "custom".

Prefer this over reading numbers off the screen: it is exact, and it costs a fraction of the tokens an image does.

game_logC

New log lines since the last read. pattern is a regex filter.

game_wait_for_logA

Block until a log line matches pattern, or the timeout expires.

This is the assertion primitive for automated tests: fire an action, then wait for the line the game prints when the thing you expected happened.

game_padA

Press pad buttons and push sticks for duration seconds, then observe.

buttons: any of A B X Y UP DOWN LEFT RIGHT L1 R1 L2 R2 L3 R3 SELECT START HOME TOUCHPAD (aliases: CROSS/CIRCLE/SQUARE/TRIANGLE, LB/RB/LT/RT, BACK/OPTIONS/MENU). sticks: lx/ly left stick, rx/ry right stick (camera), l2/r2 analog triggers. Range -1..1, UE convention -- ly=+1 is forward. hold: keep this input applied after the call returns, so the character keeps moving between your turns. Clear it with game_reset_input.

Example -- run forward for half a second and look at the result: game_pad(ly=1.0, duration=0.5) Example -- jump while running: game_pad(buttons=["A"], ly=1.0, duration=0.3) Example -- move and get exact positions back, not just a picture: game_pad(ly=1.0, duration=0.5, state=True)

game_pad_sequenceA

Run several pad states back to back in a single round trip.

Each step is {"buttons": [...], "sticks": {"ly": 1.0}, "duration": 0.2, "gap": 0.05}. Use this for combos and for anything where the timing between inputs matters more than looking in between.

Example -- a three hit combo: [{"buttons": ["X"], "duration": 0.1, "gap": 0.25}, {"buttons": ["X"], "duration": 0.1, "gap": 0.25}, {"buttons": ["Y"], "duration": 0.1}]

game_keyB

Tap a keyboard key for duration seconds.

key is a single character ("w", "e") or a name: ENTER, ESC, SPACE, TAB, SHIFT, CTRL, ALT, UP/DOWN/LEFT/RIGHT, F1-F12, TILDE.

game_mouseA

Move or click the mouse at normalized screen coordinates.

x/y are 0..1 with the origin at the top left -- exactly the numbers printed on a game_observe(grid=True) capture, so you can read a target off the image and pass it straight in. They are converted to pixels here using the game's real resolution.

action: click, down, up, double, move, setpos, wheel button: L, M, R, T1, T2

This is the fallback that works regardless of how the game builds its UI, when game_ui_click cannot see the widget tree.

game_consoleA

Run a console command and return the log lines it produced.

Useful beyond cheats: stat fps, showdebug ai, and especially getall <ClassName> <PropertyName> to read gameplay values out of the game until a structured state API exists.

via picks the executor and should stay on "auto": when the game is hosted by the editor binary the console routes through Python, which auto mode detects once and works around. Force it with "cmd" or "python" if needed.

game_time_scaleA

Slow down or speed up the world (slomo). 1.0 is normal, 0.0 freezes it.

Drop to 0.1-0.3 when you need to place an action precisely; the game keeps running but each of your turns costs far less game time.

game_ui_dumpA

Dump the UMG widget tree. mode: all, button, debug.

Only sees widgets registered through UMG. A game with custom Slate UI will come back empty or error -- that is expected, fall back to the pad or to game_observe(grid=True) plus game_mouse.

game_ui_clickB

Click a UMG widget by name. action: click, press, release, hover, unhover.

Fast and exact when it works; use game_ui_dump first to learn the names.

game_ui_focusB

Set the game's input focus. mode: game, ui, game_and_ui, window.

Bring the window forward and hand focus back to the game with mode="game" if input seems to be going nowhere.

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/hiroog/ue5_gameplay_mcp'

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