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": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_romsA

Lists ROM files available on the server (from its --roms-dir). Use the returned "name" with load_rom.

load_romA

Loads a ROM into the emulator and starts the game, paused, ready for the next tool call. Provide either "name" (from list_roms) or "romBase64" + "fileName" for a ROM not in the library. Returns the first screenshot once the game has booted — this can take a while the first time a system's core is downloaded.

reset_emulatorA

Hard-resets the currently loaded game (equivalent to a console reset button). Returns a fresh screenshot.

get_current_screenA

Captures the current emulator frame as a PNG image, without changing emulator state.

control_emulatorA

Presses or releases a controller button. The emulator briefly resumes just long enough for the input to register, then pauses again — so it never runs unattended while you're "thinking". To hold a direction across multiple skip_frames() calls, send state="down" once and state="up" later.

skip_framesA

Advances the emulator by exactly N core-internal frames (frame-accurate, not wall-clock), then pauses and returns a fresh screenshot. Use this to let held inputs or animations play out. Above ~180 frames, native fast-forward is used so long waits do not block on real time.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
OpalEmu ViewerLive view of the emulator screen with on-screen controls.

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing, loading, resetting, capturing, controlling, and advancing frames. There is no overlap or ambiguity between any pair of tools.

Naming Consistency5/5

All tool names follow the verb_noun pattern (list_roms, load_rom, reset_emulator, get_current_screen, control_emulator, skip_frames). The style is completely consistent across the set.

Tool Count5/5

6 tools is well-scoped for an emulator MCP server, providing the essential operations without bloat. The count aligns with the domain's core workflow.

Completeness4/5

The core emulator loop is covered: loading ROMs, controlling input, advancing frames, resetting, and capturing screens. However, save/load state functionality is absent, which is a common and useful feature for emulator workflows, though not strictly required for basic operation.

Maintenance

ActivitySlowing
ResponsivenessNo issues