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
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
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
- Haz clic en Add Server
- Copia y pega la URL de Github en FLUJO
- 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:
-
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"
-
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": [] } } } -
Reemplaza
/path/to/mcp-gameboy/dist/index.jscon la ruta real al archivoindex.jsen tu directorio de proyecto. Usa barras diagonales (/) o dobles barras invertidas (\\) para la ruta en Windows. -
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 GameBoypress_down: Pulsa el botón ABAJO en el GameBoypress_left: Pulsa el botón IZQUIERDA en el GameBoypress_right: Pulsa el botón DERECHA en el GameBoypress_a: Pulsa el botón A en el GameBoypress_b: Pulsa el botón B en el GameBoypress_start: Pulsa el botón START en el GameBoypress_select: Pulsa el botón SELECT en el GameBoyload_rom: Carga un archivo ROM de GameBoyget_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:
McpServerde@modelcontextprotocol/sdk/server/mcp.jspara la implementación del servidorStdioServerTransportde@modelcontextprotocol/sdk/server/stdio.jspara el transporte stdioSSEServerTransportde@modelcontextprotocol/sdk/server/sse.jspara el transporte SSEserverboypara la emulación del GameBoyexpresspara el servidor web en modo SSEcanvaspara renderizar la pantalla del GameBoy
Licencia
MIT