MCP GameBoy Server

MIT License
3

Integrations

  • Supports configuration through environment variables, particularly for specifying ROM paths and server settings like port number.

  • Provides a web server in SSE mode for ROM selection through a browser interface, allowing the GameBoy emulator to be accessed via HTTP.

  • Supports installation via Git clone, allowing users to download the MCP server from its repository.

MCP ゲームボーイ サーバー

GameBoy エミュレータ用の Model Context Protocol (MCP) サーバー。LLM が GameBoy エミュレータと対話できるようにします。

特徴

  • stdioとSSEトランスポートの両方をサポート
  • GameBoy のコントロール用のツールを提供します (上、下、左、右、A、B、スタート、選択)
  • さまざまなROMをロードするためのツールを提供します
  • 現在の画面を取得するためのツールを提供します
  • すべてのツールは最新のスクリーンフレームを含むImageContentを返します

インストール

FLUJOへのインストール

  1. サーバーの追加をクリック
  2. Github URL をコピーして FLUJO に貼り付けます
  3. 「解析」、「複製」、「インストール」、「ビルド」、「保存」をクリックします。

手動インストール

# 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

設定ファイルによるインストール

!!注意: 多くのMCPクライアントでは、.env変数のROMパスを絶対パスとして指定する必要があります。

構成ファイルを介してこの MCP サーバーを Cline または他の MCP クライアントと統合するには、次の手順を実行します。

  1. Cline 設定を開きます:
    • VS Codeで、「ファイル」->「設定」->「設定」に移動します。
    • 「Cline MCP 設定」を検索
    • 「settings.jsonで編集」をクリック
  2. mcpServersオブジェクトにサーバー構成を追加します。
    { "mcpServers": { "mcp-gameboy": { "command": "node", "args": [ "/path/to/mcp-gameboy/dist/index.js" ], "disabled": false, "autoApprove": [] } } }
  3. /path/to/mcp-gameboy/dist/index.js 、プロジェクトディレクトリ内のindex.jsファイルへの実際のパスに置き換えてください。Windows の場合は、パスにスラッシュ (/) または二重のバックスラッシュ (\\) を使用してください。
  4. 設定ファイルを保存します。Cline は自動的にサーバーに接続します。

使用法

環境変数

!!注意: 多くのMCPクライアントでは、.env変数のROMパスを絶対パスとして指定する必要があります。

次の変数を含む.envファイルをルート ディレクトリに作成します。

# Server configuration PORT=3001 # ROM path for stdio mode ROM_PATH=./roms/dangan.gb

stdioモードで実行

stdioモードでは、サーバーはROM_PATH環境変数で指定されたROMパスを使用します。ブラウザウィンドウが開き、ゲームボーイの画面が表示されます。

npm run start

SSEモードで実行

SSE モードでは、サーバーは ROM 選択用の Web ページを提供する Express サーバーを起動します。

npm run start-sse

次に、ブラウザでhttp://localhost:3001を開き、ROM を選択します。

ツール

サーバーは次のツールを提供します。

  • press_up : ゲームボーイのUPボタンを押す
  • press_down : ゲームボーイのDOWNボタンを押します
  • press_left : ゲームボーイの左ボタンを押します
  • press_right : ゲームボーイの右ボタンを押します
  • press_a : ゲームボーイのAボタンを押す
  • press_b : ゲームボーイのBボタンを押す
  • press_start : ゲームボーイのSTARTボタンを押します
  • press_select : ゲームボーイのSELECTボタンを押す
  • load_rom : GameBoy ROMファイルをロードする
  • get_screen : 現在のゲームボーイ画面を取得する

すべてのツールは、最新の画面フレームを含む ImageContent を返します。

実装の詳細

このサーバーは、Model Context Protocol (MCP) TypeScript SDKを使用して構築されています。以下のものを使用しています。

  • サーバー実装用の@modelcontextprotocol/sdk/server/mcp.jsMcpServer
  • stdio トランスポート用の@modelcontextprotocol/sdk/server/stdio.jsからのStdioServerTransport
  • SSE トランスポート用の@modelcontextprotocol/sdk/server/sse.jsからのSSEServerTransport
  • ゲームボーイエミュレーション用のserverboy
  • SSEモードのWebサーバー用のexpress
  • ゲームボーイ画面をレンダリングするためのcanvas

ライセンス

マサチューセッツ工科大学

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

LLM が GameBoy エミュレータと対話できるようにし、GameBoy を制御し、ROM をロードし、画面フレームを取得するためのツールを提供するモデル コンテキスト プロトコル サーバー。

  1. Features
    1. Installation
      1. Installing in FLUJO
      2. Manual Installation
      3. Installing via Configuration Files
    2. Usage
      1. Environment Variables
      2. Running in stdio Mode
      3. Running in SSE Mode
    3. Tools
      1. Implementation Details
        1. License
          ID: 29ok5vpwj6