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.
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.
- 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
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.
One command — npx -y @smithery/cli install @mario-andreschak/mcp-gameboy --client claude
