Labsco
MCP SERVER

MCP GameBoy Server

by mario-andreschak

Let a model play a Game Boy — press the buttons, skip frames, and get the screen back as an image after every move.

Games, Entertainment & Fandom
Summary
A closed loop between a model and a running game.

Because every button press returns the resulting frame, the model sees what its input did without a separate screenshot step — which is what makes an actual play session possible rather than a run of blind inputs.

What it is

An MCP wrapper around the serverboy Game Boy emulator. The model loads a ROM, presses buttons and reads the screen; every tool returns the latest frame as image content, so the result of a move comes back with the move.

What you get
  • Directional and face buttons exposed as individual tools — up, down, left, right, A, B, start and select
  • The latest screen frame returned by every call, so a press and its result are one step
  • ROMs loaded and switched from the client
  • Frames skipped, for when the game needs to advance without input
  • A browser interface served on localhost for watching and for uploading ROMs, alongside the MCP session
Requirements

Node — clone, npm install, npm run build. Stdio and SSE transports are both supported. A ROM of your own, and many clients need its absolute path in the environment variables rather than a relative one.

Setup effort

One command — npx -y @smithery/cli install @mario-andreschak/mcp-gameboy --client claude