Labsco
mario-andreschak logo

MCP GameBoy Server

โ˜… 31

from mario-andreschak

Allows Large Language Models to interact with a GameBoy emulator via the serverboy MCP server.

๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

MCP GameBoy Server

smithery badge

<a href="https://glama.ai/mcp/servers/@mario-andreschak/mcp-gameboy"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@mario-andreschak/mcp-gameboy/badge" alt="GameBoy Server MCP server" /> </a>

Overview

A Model Context Protocol (MCP) server for serverboy, allowing LLMs to interact with a GameBoy emulator. Your LLM can...

  • Load ROMS
  • Press Keys
  • Look at the Gameboy Screen
  • skip frames

You can...

  • control the gameboy emulator using the @modelcontextprotocol/inspector
  • control the gameboy emulator (and upload ROMs) using a web-interface at http://localhost:3001/emulator
  • install the gameboy emulator in your favorite MCP-Client

Screenshot 2025-04-25 183528

Screenshot 2025-04-25 081510

image

Features

  • Supports both stdio and SSE transports
  • Provides tools for GameBoy controls (up, down, left, right, A, B, start, select)
  • Provides tools to load different ROMs
  • Provides tools to get the current screen
  • All tools return an ImageContent with the latest screen frame

Tools

The server provides the following tools:

  • press_up: Press the UP button on the GameBoy
  • press_down: Press the DOWN button on the GameBoy
  • press_left: Press the LEFT button on the GameBoy
  • press_right: Press the RIGHT button on the GameBoy
  • press_a: Press the A button on the GameBoy
  • press_b: Press the B button on the GameBoy
  • press_start: Press the START button on the GameBoy
  • press_select: Press the SELECT button on the GameBoy
  • load_rom: Load a GameBoy ROM file
  • get_screen: Get the current GameBoy screen

All tools return an ImageContent with the latest screen frame.

Implementation Details

This server is built using the Model Context Protocol (MCP) TypeScript SDK. It uses:

  • McpServer from @modelcontextprotocol/sdk/server/mcp.js for the server implementation
  • StdioServerTransport from @modelcontextprotocol/sdk/server/stdio.js for stdio transport
  • SSEServerTransport from @modelcontextprotocol/sdk/server/sse.js for SSE transport
  • serverboy for the GameBoy emulation
  • express for the web server in SSE mode
  • canvas for rendering the GameBoy screen

License

MIT