
MCP GameBoy Server
A Model Context Protocol server that enables LLMs to interact with a GameBoy emulator, providing tools for controlling the GameBoy, loading ROMs, and retrieving screen frames.
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
wait_frames
Wait for a specified number of frames
load_rom
Load a GameBoy ROM file
get_screen
Get the current GameBoy screen (advances one frame)
is_rom_loaded
Check if a ROM is currently loaded in the emulator
list_roms
List all available GameBoy ROM files
README
MCP GameBoy Server
<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>
A Model Context Protocol (MCP) server for the GameBoy emulator, allowing LLMs to interact with a GameBoy emulator.
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
Installation
Installing in FLUJO
- Click Add Server
- Copy & Paste Github URL into FLUJO
- Click Parse, Clone, Install, Build and Save.
Manual Installation
# Clone the repository
git clone https://github.com/yourusername/mcp-gameboy.git
cd mcp-gameboy
# Install dependencies
npm install
# Build the project
npm run build
Installing via Configuration Files
!! ATTENTION : Many MCP Clients require to specify the ROM-Path in the .env vars as an absolute path
To integrate this MCP server with Cline or other MCP clients via configuration files:
-
Open your Cline settings:
- In VS Code, go to File -> Preferences -> Settings
- Search for "Cline MCP Settings"
- Click "Edit in settings.json"
-
Add the server configuration to the
mcpServers
object:{ "mcpServers": { "mcp-gameboy": { "command": "node", "args": [ "/path/to/mcp-gameboy/dist/index.js" ], "disabled": false, "autoApprove": [] } } }
-
Replace
/path/to/mcp-gameboy/dist/index.js
with the actual path to theindex.js
file in your project directory. Use forward slashes (/) or double backslashes (\\) for the path on Windows. -
Save the settings file. Cline should automatically connect to the server.
Usage
Environment Variables
!! ATTENTION : Many MCP Clients require to specify the ROM-Path in the .env vars as an absolute path
Create a .env
file in the root directory with the following variables:
# Server configuration
PORT=3001
# ROM path for stdio mode
ROM_PATH=./roms/dangan.gb
Running in stdio Mode
In stdio mode, the server uses the ROM path specified in the ROM_PATH
environment variable. It will open a browser window to display the GameBoy screen.
npm run start
Running in SSE Mode
In SSE mode, the server starts an Express server that serves a web page for ROM selection.
npm run start-sse
Then open your browser to http://localhost:3001
to select a ROM.
Tools
The server provides the following tools:
press_up
: Press the UP button on the GameBoypress_down
: Press the DOWN button on the GameBoypress_left
: Press the LEFT button on the GameBoypress_right
: Press the RIGHT button on the GameBoypress_a
: Press the A button on the GameBoypress_b
: Press the B button on the GameBoypress_start
: Press the START button on the GameBoypress_select
: Press the SELECT button on the GameBoyload_rom
: Load a GameBoy ROM fileget_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 implementationStdioServerTransport
from@modelcontextprotocol/sdk/server/stdio.js
for stdio transportSSEServerTransport
from@modelcontextprotocol/sdk/server/sse.js
for SSE transportserverboy
for the GameBoy emulationexpress
for the web server in SSE modecanvas
for rendering the GameBoy screen
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.