返回市场
游戏男孩

游戏男孩

作者:mario-andreschak17 星标更新:2025-04-28

项目介绍

MCP GameBoy Server

smithery 徽章

<a href="https://glama.ai/mcp/servers/@mario-andreschak/mcp-gameboy"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=4162795701,2469749876&fm=3081&app=3081&f=PNG?w=760&h=400" alt="GameBoy Server MCP 服务器" /> </a>

概述

这是一个用于 serverboy 的模型上下文协议(MCP)服务器,允许大型语言模型(LLMs)与 GameBoy 模拟器进行交互。 你的 LLM 可以...

  • 加载 ROM 文件
  • 按键
  • 查看 GameBoy 屏幕
  • 跳过帧

你可以...

  • 使用 @modelcontextprotocol/inspector 控制 GameBoy 模拟器
  • 使用 Web 界面(http://localhost:3001/emulator)控制 GameBoy 模拟器(并上传 ROM 文件)
  • 在你最喜欢的 MCP 客户端中安装 GameBoy 模拟器

截图 2025-04-25 183528

截图 2025-04-25 081510

图像

特性

  • 支持 stdio 和 SSE 传输方式
  • 提供 GameBoy 控制工具(上、下、左、右、A、B、开始、选择)
  • 提供加载不同 ROM 文件的工具
  • 提供获取当前屏幕的工具
  • 所有工具返回带有最新屏幕帧的 ImageContent

安装

通过 Smithery 安装

要通过 Smithery 自动安装 GameBoy 模拟器服务器到 Claude Desktop:

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

FLUJO 中安装

  1. 点击添加服务器
  2. 将 GitHub URL 复制粘贴到 FLUJO 中
  3. 点击解析、克隆、安装、构建和保存。

手动安装

# 克隆仓库
git clone https://github.com/yourusername/mcp-gameboy.git
cd mcp-gameboy

# 安装依赖
npm install

# 构建项目
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 文件,并包含以下变量:

# 服务器配置
PORT=3001

# stdio 模式下的 ROM 路径
ROM_PATH=./roms/dangan.gb

在 stdio 模式下运行

在 stdio 模式下,服务器使用 ROM_PATH 环境变量中指定的 ROM 路径。它将在浏览器窗口中显示 GameBoy 屏幕。

npm run start

在 SSE 模式下运行

在 SSE 模式下,服务器启动一个 Express 服务器,提供一个用于选择 ROM 的网页。

npm run start-sse

然后打开浏览器访问 http://localhost:3001 来选择 ROM。

工具

服务器提供了以下工具:

  • press_up:按 GameBoy 的上键
  • press_down:按 GameBoy 的下键
  • press_left:按 GameBoy 的左键
  • press_right:按 GameBoy 的右键
  • press_a:按 GameBoy 的 A 键
  • press_b:按 GameBoy 的 B 键
  • press_start:按 GameBoy 的开始键
  • press_select:按 GameBoy 的选择键
  • load_rom:加载 GameBoy ROM 文件
  • get_screen:获取当前 GameBoy 屏幕

所有工具都返回带有最新屏幕帧的 ImageContent。

实现细节

此服务器使用 Model Context Protocol(MCP)TypeScript SDK 构建。它使用了:

  • McpServer@modelcontextprotocol/sdk/server/mcp.js 用于服务器实现
  • StdioServerTransport@modelcontextprotocol/sdk/server/stdio.js 用于 stdio 传输
  • SSEServerTransport@modelcontextprotocol/sdk/server/sse.js 用于 SSE 传输
  • serverboy 用于 GameBoy 模拟
  • express 用于 SSE 模式下的 Web 服务器
  • canvas 用于渲染 GameBoy 屏幕

许可证

MIT