Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MISTERFPGA_HOSTSNoComma-separated addresses of MiSTers, replacing the list from config.json, keeping names from the file.
MISTERFPGA_DRY_RUNNoSet to 1 to enable dry-run mode (or use serve --dry-run). Reads the MiSTers but changes nothing.
MISTERFPGA_BACKUP_DIRNoBackup directory for saves. Has no default; backup_saves will not work until set.
MISTERFPGA_CONFIG_DIRNoDirectory containing config.json (default ~/.config/mcp-server-misterfpga).
MISTERFPGA_LOG_UNREDACTEDNoSet to 1 to log addresses and MACs without redaction (or use --no-redact). Keys and tokens are always redacted.

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
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_statusA

Start here. Every MiSTer (or just host): its model, what it's playing, and what works on it right now.

capabilities names what works (search, launch, screenshot, ini_write, backup_saves, ...); limitations says what doesn't and how to fix it, e.g. Zaparoo Core not installed, or SSH not set up. core is the running MiSTer core (MENU in the menu) and attract_mode is true while MiSTer Super Attract Mode cycles games; both need SSH. dry_run true means this server reports writes instead of doing them.

list_systemsA

The systems each MiSTer can launch (consoles, computers, arcade), with how many games each has indexed and the MiSTer core that runs it. Use a system's id with search_games, or launch(system=...) to open the core with no game (e.g. a computer core).

search_gamesA

Find games in each MiSTer's Zaparoo library by name (every word must match), optionally in one system.

Each result has a ref for launch. The same game on two MiSTers comes back twice, with two refs: the ref says which TV it launches on. variant tells apart files with the same name (region, revision, hack).

play_historyA

What's been played on each MiSTer, from Zaparoo's own records: games launched from the MiSTer's menu count too. Rows have a ref, so 'play the last thing again' is one launch call.

get_iniA

Read a MiSTer's MiSTer.ini (or an alternate ini), parsed into sections the way MiSTer reads it. [MiSTer] is global; [SNES] and other core-named sections override it for that core. Needs SSH.

list_nfcC

A MiSTer's NFC readers, the card-to-game mappings Zaparoo has, and the last card scanned (its UID is what map_nfc_card uses by default).

launchA

Launch a game (by ref) or open a system's core (by id) and wait until the MiSTer reports it running.

Refuses while anything is running on that MiSTer: ending a game loses unsaved progress, so that's return_to_menu's job, and you should ask first. Rapid repeated launches are rate-limited.

return_to_menuA

End whatever is running and go back to the MiSTer menu. Unsaved progress in the game is lost, so confirm with the user first. Without host, acts on the one MiSTer that's running something.

screenshotA

Capture what a MiSTer is showing, as an image. MiSTer also saves it under /media/fat/screenshots. Without host, uses the one MiSTer that's running something.

set_iniA

Set (or remove) one MiSTer.ini setting, globally or for one core, keeping the rest of the file as it is.

The previous file is saved next to it first (MiSTer.ini..bak). The change takes effect the next time a core loads. A few keys are refused (main, bootcore, shared_folder, debug; see misterfpga://ini-keys). Needs SSH.

backup_savesA

Copy a MiSTer's saves and save states into a new dated snapshot in the configured backup folder.

Files unchanged since the last snapshot are hard-linked rather than downloaded, so each snapshot is complete but only changes cost space. The MiSTer is only read. Old snapshots beyond the configured number are removed. Needs SSH and a backup folder (backup_dir).

run_updateA

Start Update All on a MiSTer's own screen (cores, Main, Linux, and whatever else it's set to update).

It runs for several minutes and the MiSTer may reboot at the end. Refuses while a game is running. Limited to once an hour per MiSTer.

write_nfc_cardA

Write a game onto the NFC card sitting on the reader attached to the game's MiSTer, so tapping it launches the game. Overwrites whatever the card held. Ask the user to place the card first; the call waits up to a minute for it.

map_nfc_cardA

Make a card launch a game without writing to it: Zaparoo remembers 'this card's UID means this game'. Works with read-only cards and toys. Ask the user to scan the card on the game's MiSTer first, then call this without uid. Refuses a card that's already mapped.

Prompts

Interactive templates invoked by user choice

NameDescription
make_nfc_cardsWalk through turning a list of games into NFC cards, one card at a time.

Resources

Contextual data attached and managed by the client

NameDescription
ini-keys

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation4/5

Most tools have clearly distinct resource+action targets, and the descriptions explicitly delimit the tricky pairs (write_nfc_card writes to the card vs map_nfc_card registers a UID mapping; get_ini vs set_ini; launch vs return_to_menu). Minor overlap remains between get_status, list_systems and play_history, which all return some form of device/system state, but the intended entry point and granularity are spelled out.

Naming Consistency4/5

The dominant pattern is verb_noun (get_status, list_systems, search_games, set_ini, backup_saves, run_update, write_nfc_card, map_nfc_card), which is predictable. A few deviations exist — play_history is noun-based, and launch/screenshot/return_to_menu are bare verbs or phrases — but they are still readable and unambiguous.

Tool Count5/5

14 tools sit comfortably in the well-scoped range for a device-control server covering discovery, launching, screen capture, config, backups, updates and NFC. Each tool maps to a distinct operation with no filler or redundant entries.

Completeness4/5

The lifecycle is largely covered: discover (status, systems, search, history), act (launch, return_to_menu, screenshot, run_update), configure (get/set_ini), and maintain (backup_saves, NFC list/write/map). Notable gaps are the absence of an unmap/remove NFC mapping operation (map exists with no inverse), no restore-from-backup, and no way to enumerate all games in a system without a name query.

Maintenance

ActivityMaintained
ResponsivenessSyncing