mcp-retroarch
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RETROARCH_HOST | No | UDP destination host for RetroArch | 127.0.0.1 |
| RETROARCH_PORT | No | UDP port for RetroArch network commands | 55355 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| retroarch_pingA | Verify connectivity to RetroArch's Network Control Interface. Returns the RetroArch version string if reachable. |
| retroarch_get_statusA | Get the current emulation status: playing/paused state, system identifier, game basename, and CRC32. Returns 'contentless' if no game is loaded. |
| retroarch_get_configA | Read a RetroArch configuration parameter by name. Useful values: |
| retroarch_read_memoryA | Read up to 4096 bytes from emulated memory via the loaded core's system memory map. Returns an array of byte values. RetroArch exposes two distinct memory APIs:
|
| retroarch_write_memoryA | Write a byte sequence to emulated memory via the system memory map. Returns the number of bytes actually written (may be less than requested if a read-only descriptor is hit). Disables hardcore mode for the session. RetroArch exposes two distinct memory APIs:
|
| retroarch_read_ramA | Read memory via the CHEEVOS (achievements) address space. Use this if |
| retroarch_write_ramA | Write to CHEEVOS memory address space. Fire-and-forget — RetroArch sends no acknowledgement for this command. Disables hardcore mode for the session. |
| retroarch_pause_toggleA | Toggle the pause state. There's no separate pause/unpause command in the NCI — this single command flips the current state. Check |
| retroarch_frame_advanceA | Step exactly one frame forward. Only effective while paused; pause first with |
| retroarch_resetA | Hard-reset the running game (equivalent to pressing the console's reset button). |
| retroarch_screenshotA | Capture a screenshot of the current display. RetroArch saves it to its configured screenshot directory (which the NCI doesn't report — check RetroArch's settings). Fire-and-forget; returns immediately. |
| retroarch_show_messageA | Display a notification message overlaid on the RetroArch window. Useful for debugging or telling the user something during a long-running script. |
| retroarch_save_state_currentA | Save state to the currently-selected slot. RetroArch's NCI doesn't expose a 'save to slot N' command — you must walk the slot selector to N first using state_slot_plus/minus, then call this. The current slot is RetroArch's internal state and isn't reported back. |
| retroarch_load_state_currentA | Load state from the currently-selected slot. Use |
| retroarch_load_state_slotA | Load state from an explicit numbered slot. Doesn't change the 'current slot' selector (unlike state_slot_plus/minus + load_state_current). |
| retroarch_state_slot_plusA | Increment the currently-selected save state slot. Combine with retroarch_save_state_current / retroarch_load_state_current to target a specific slot for SAVE. |
| retroarch_state_slot_minusA | Decrement the currently-selected save state slot. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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/dmang-dev/mcp-retroarch'
If you have feedback or need assistance with the MCP directory API, please join our Discord server