MCP GameBoy Server

Permite que los modelos de lenguaje grandes interactúen con un emulador de GameBoy a través del servidor MCP serverboy.

Documentación

MCP GameBoy Server

smithery badge

GameBoy Server MCP server

Resumen

Un servidor de Protocolo de Contexto de Modelo (MCP) para serverboy, que permite a los LLMs interactuar con un emulador de GameBoy. Tu LLM puede...

  • Cargar ROMs
  • Pulsar teclas
  • Ver la pantalla del GameBoy
  • Saltar fotogramas

Tú puedes...

  • controlar el emulador de GameBoy usando el @modelcontextprotocol/inspector
  • controlar el emulador de GameBoy (y subir ROMs) usando una interfaz web en http://localhost:3001/emulator
  • instalar el emulador de GameBoy en tu cliente MCP favorito

Screenshot 2025-04-25 183528

Screenshot 2025-04-25 081510

image

Características

  • Soporta transportes stdio y SSE
  • Proporciona herramientas para controles de GameBoy (arriba, abajo, izquierda, derecha, A, B, start, select)
  • Proporciona herramientas para cargar diferentes ROMs
  • Proporciona herramientas para obtener la pantalla actual
  • Todas las herramientas devuelven un ImageContent con el último fotograma de la pantalla

Instalación

Instalación mediante Smithery

Para instalar GameBoy Emulator Server para Claude Desktop automáticamente mediante Smithery:

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

Instalación en FLUJO

  1. Haz clic en Add Server
  2. Copia y pega la URL de Github en FLUJO
  3. Haz clic en Parse, Clone, Install, Build y Save.

Instalación Manual

# 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

Instalación mediante Archivos de Configuración

!! ATENCIÓN : Muchos clientes MCP requieren especificar la ruta del ROM en las variables .env como una ruta absoluta

Para integrar este servidor MCP con Cline u otros clientes MCP mediante archivos de configuración:

  1. Abre la configuración de Cline:

    • En VS Code, ve a Archivo -> Preferencias -> Configuración
    • Busca "Cline MCP Settings"
    • Haz clic en "Edit in settings.json"
  2. Añade la configuración del servidor al objeto mcpServers:

    {
      "mcpServers": {
        "mcp-gameboy": {
          "command": "node",
          "args": [
            "/path/to/mcp-gameboy/dist/index.js"
          ],
          "disabled": false,
          "autoApprove": []
        }
      }
    }
    
  3. Reemplaza /path/to/mcp-gameboy/dist/index.js con la ruta real al archivo index.js en tu directorio de proyecto. Usa barras diagonales (/) o dobles barras invertidas (\\) para la ruta en Windows.

  4. Guarda el archivo de configuración. Cline debería conectarse automáticamente al servidor.

Uso

Variables de Entorno

!! ATENCIÓN : Muchos clientes MCP requieren especificar la ruta del ROM en las variables .env como una ruta absoluta

Crea un archivo .env en el directorio raíz con las siguientes variables:

# Server configuration
PORT=3001

# ROM path for stdio mode
ROM_PATH=./roms/dangan.gb

Ejecución en Modo stdio

En modo stdio, el servidor usa la ruta del ROM especificada en la variable de entorno ROM_PATH. Abrirá una ventana del navegador para mostrar la pantalla del GameBoy.

npm run start

Ejecución en Modo SSE

En modo SSE, el servidor inicia un servidor Express que sirve una página web para la selección de ROMs.

npm run start-sse

Luego abre tu navegador en http://localhost:3001 para seleccionar un ROM.

Herramientas

El servidor proporciona las siguientes herramientas:

  • press_up: Pulsa el botón ARRIBA en el GameBoy
  • press_down: Pulsa el botón ABAJO en el GameBoy
  • press_left: Pulsa el botón IZQUIERDA en el GameBoy
  • press_right: Pulsa el botón DERECHA en el GameBoy
  • press_a: Pulsa el botón A en el GameBoy
  • press_b: Pulsa el botón B en el GameBoy
  • press_start: Pulsa el botón START en el GameBoy
  • press_select: Pulsa el botón SELECT en el GameBoy
  • load_rom: Carga un archivo ROM de GameBoy
  • get_screen: Obtiene la pantalla actual del GameBoy

Todas las herramientas devuelven un ImageContent con el último fotograma de la pantalla.

Detalles de Implementación

Este servidor está construido usando el SDK de TypeScript del Protocolo de Contexto de Modelo (MCP). Utiliza:

  • McpServer de @modelcontextprotocol/sdk/server/mcp.js para la implementación del servidor
  • StdioServerTransport de @modelcontextprotocol/sdk/server/stdio.js para el transporte stdio
  • SSEServerTransport de @modelcontextprotocol/sdk/server/sse.js para el transporte SSE
  • serverboy para la emulación del GameBoy
  • express para el servidor web en modo SSE
  • canvas para renderizar la pantalla del GameBoy

Licencia

MIT