Allows Large Language Models to interact with a GameBoy emulator via the serverboy MCP server.
A Model Context Protocol (MCP) server for serverboy, allowing LLMs to interact with a GameBoy emulator. Your LLM can...
You can...
To install GameBoy Emulator Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @mario-andreschak/mcp-gameboy --client claude
# 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
!! 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:
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 the index.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.
!! 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
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
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.
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 screenAll tools return an ImageContent with the latest screen frame.
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 screenMIT
generate lyrics, song and background music(instrumental)
Interact with EduBase, a comprehensive e-learning platform with advanced quizzing, exam management, and content organization capabilities
A 3D Printing MCP server that allows for querying for live state, webcam snapshots, and 3D printer control.
Interface with SIEMENS PLC S7-1500/1200 using their JSON-RPC 2.0 API, exposing PLC functionalities as MCP tools for programmatic interaction.
Enables Large Language Models to interact with BloodHound Community Edition data.
A philosophical reasoning system combining OpenEnded Philosophy with the Non-Axiomatic Reasoning System (NARS) for advanced analysis and synthesis.
Generates true random coin flips using the random.org API.
Provides weather data using the Open-Meteo API.
Detects Chinese mobile phone carriers, including China Mobile, China Unicom, China Telecom, and virtual operators.
MCP to interface with multiple blockchains, staking, DeFi, swap, bridging, wallet management, DCA, Limit Orders, Coin Lookup, Tracking and more.