mcpField
G
GB Studio MCP Server

GB Studio MCP Server

本地服务
github.com/eoinjordan开发工具2420 周前更新

关于 GB Studio MCP Server

GB Studio MCP Server 是面向 Game Boy 游戏开发的 MCP 服务,可通过 MCP 工具创建和修改 GB Studio 项目中的场景、角色、资源并进行校验。它也支持 GBA Studio 项目,适合教学场景和个人开发者。

主要功能

  1. 01创建场景、角色、背景、精灵等资源
  2. 02读取项目清单并列出场景与资源
  3. 03校验 .gbsproj 项目结构
  4. 04通过 REST API 与 MCP stdio 两种方式运行
  5. 05构建 GBA ROM(需本地 GBA Studio)

适用场景

  1. 01为学生生成可扩展的 Game Boy 游戏模板
  2. 02通过提示词批量生成场景与角色
  3. 03对 GB Studio 项目进行结构校验与冒烟测试

MCP 相关

该项目是 MCP 服务,将 GB Studio 项目的创建、查询、校验和构建操作以 MCP 工具形式提供给客户端,例如 Claude Desktop。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"eoinjordan-gbstudio-claude": {
"command": "npx",
"args": [
"-y",
"gbstudio-claude-mcp"
],
"env": {
"CLAUDE_API_KEY": "<CLAUDE_API_KEY>"
}
}
}
}
启动命令npx -y gbstudio-claude-mcp
需要配置的环境变量
CLAUDE_API_KEY密钥Optional Claude API key used by /claude-key endpoints.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgbstudio-claude-mcp1.0.4

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

用于创建 GameBoy 游戏的 GB Studio / GBA Studio Agentic MCP 服务。

提示词:为你的学生、孩子或自己构建一个可扩展的模板。

图片

图片

GIF

也适用于 GBA STUDIO……这是我 fork 的 GB Studio 版本,支持 GBA。

快速开始

  1. 安装:npm install -g gbstudio-claude-mcp

  2. 启动服务:gbstudio-claude-mcp

  3. 连接 Claude Desktop(参见 TUTORIAL.md)

  4. 向 Claude 提示:“检查并测试我的应用程序逻辑”

就这么简单。Claude 会检查、扩展,甚至生成可游玩的游戏模板,供你与学生在 GB Studio 中持续迭代。

氛围编程、大模型与现代教育:给学生建设性的工具,而不只是答案

教孩子编程、电子、3D 打印和游戏开发 14 年后,我明白了:最好的教育工具不只是让事情变得更简单,还会让学习成为一种有收获的活动。GB Studio 就是这样的工具。它是一款可视化游戏构建器,让你进行 Game Boy 开发,让学生、教育工作者和爱好者能够充分发挥创意,为实体硬件制作游戏。当我们将 GB Studio 与大模型(LLM)的能力教育结合起来时,就能让学生积极看待如何将大模型融入其中,而不是把它们当作拐杖依赖。

什么是氛围编程?

“氛围编程”不只是一个流行词,而是一种范式转变。它让编程摆脱语法门槛,让创作者专注于流程、逻辑和创意,而不是死记分号。Scratch、App Inventor 和 GB Studio 等工具体现了这一理念:它们消除障碍,让编程重新聚焦于真正重要的事情:创造力和解决问题。

氛围编程是孩子们成长过程中熟悉的方式。它让他们专注于编程的“为什么”和“怎么做”,而不必淹没在语法中。这不仅有帮助,也很重要:学生需要思考系统、设计和逻辑,但传统编程陡峭的学习曲线却让他们望而却步。

大模型在教育中的作用

ChatGPT 等大模型在教育领域引发了激烈讨论,这有充分的理由。如果使用不当,它们就会沦为作弊工具,用复制粘贴的心态取代思考。但如果有目的地使用,它们就能成为促进真实学习的脚手架。区别不在于工具,而在于我们如何使用它。

这正是我构建 Clawdbot MCP 服务的原因。通过将大模型直接集成到 GB Studio 中,用户和教师可以:

  • 为项目搭建脚手架:通过简单的提示词生成入门模板、素材和事件流程。
  • 自动化测试:运行冒烟测试,发现 Bug 并验证项目逻辑。
  • 鼓励迭代:通过提供建议和示例,帮助学生完善项目。

也可以从零开始制作游戏,但它们达不到 AAA 级别,所以请调整好预期,哈哈

Pong(Game Boy)
Create a Pong clone for the original Game Boy. Two paddles, a ball, and a score counter. The player controls the left paddle, the right paddle is AI-controlled. Use simple monochrome graphics and authentic GB sound effects. Generate all scenes, actors, and assets for a playable Pong game.
Pac-Man(Game Boy Color)
Build a Pac-Man style maze game for Game Boy Color. The player navigates a maze, collects pellets, and avoids ghosts. Include at least one maze layout, four ghosts with basic AI, and colorful graphics. Generate all scenes, actors, and assets needed for a playable demo.
Mario Bros 风格平台游戏(Game Boy Color)
Design a Mario Bros inspired platformer for Game Boy Color. The player can run, jump, and stomp on enemies. Include three levels, power-ups, coins, and a flagpole at the end of each level. Use bright palettes and catchy background music. Generate all scenes, actors, and assets for a classic platformer experience.
太空射击游戏(Game Boy)
Create a vertical scrolling space shooter for the original Game Boy. The player controls a spaceship, shoots enemies, and dodges obstacles. Include multiple enemy types, power-ups, and a boss fight. Use classic GB graphics and chiptune sound effects. Generate all scenes, actors, and assets for a playable shooter.

用于 GB Studio 的 Claude MCP 服务

这是一个使用 Model Context Protocol(MCP)操作 GB Studio 项目的 TypeScript 服务。它提供用于项目发现、验证和创建游戏素材的端点。


安装

使用 npm 全局安装:

npm install -g gbstudio-claude-mcp

本地环境设置(.env)

进行本地开发时,请在项目根目录的 .env 文件中保存 API 密钥和配置。这样可以避免将机密信息提交到源代码管理中,并与 GitHub Actions 使用的模式保持一致。

  1. 在项目根目录创建 .env 文件:
    CLAUDE_API_KEY=your-claude-api-key-here
    # Add other keys as needed
    
  2. 如果使用 [dotenv],服务器会自动从 .env 文件加载变量。
  3. 默认情况下,.env 文件会被 gitignore 忽略。

切勿将 .env 文件提交到源代码管理中。


使用方法

启动服务器:

gbstudio-claude-mcp

服务器默认运行在 http://localhost:3000。

配置 MCP 客户端(例如 Claude Desktop)以连接此服务器。如需完整的设置说明和故障排查方法,请参阅本文末尾链接的教程。


端到端使用:Windows 和 Linux/macOS

请参阅 TUTORIAL.md,其中提供了使用此服务器构建 GB Studio 游戏的完整分步指南,包括 Windows 和 Linux/macOS 系统的屏幕截图及故障排查提示。


MCP 协议支持

此软件包支持 Model Context Protocol(MCP)。你可以在 MCP stdio 模式下运行服务器,以便与 Claude Desktop 和其他 MCP 客户端配合使用:

npm run build:mcp
node build/mcp.js

MCP stdio 服务器会代理到本地 REST API(地址为 http://localhost:3000),因此请先启动 REST 服务器。如需使用其他端口,请设置 GBSTUDIO_API_URL(完整 URL)或 GBSTUDIO_API_PORT(端口号):

gbstudio-claude-mcp

或者将以下内容添加到 MCP 客户端配置中:

{
   "mcpServers": {
      "gbstudio-mcp": {
         "command": "node",
         "args": ["/absolute/path/to/build/mcp.js"]
      }
   }
}

Clawdbot / Moltbot 兼容性

截图_20260128-214729 WhatsApp

Clawdbot 和 Moltbot 通过兼容 AgentSkills 的 SKILL.md 文件发现工具。本仓库提供了一个文件:

  • skills/gbstudio-mcp/SKILL.md

兼容性取决于传输方式:

  • 如果 Clawdbot 能够将 stdio MCP 服务作为子进程运行,那么 node build/mcp.js 就可以使用。
  • 如果你的 Clawdbot 配置需要 HTTP+SSE MCP 服务,则需要使用桥接程序,因为此 MCP 服务仅支持 stdio。
  • 如果你只运行 REST API,Clawdbot 将无法自动发现 MCP 工具。

要在 Moltbot 中启用此技能,请添加如下条目:

{
  "skills": {
    "load": {
      "extraDirs": [
        "~/.clawdbot/skills"
      ],
      "watch": true,
      "watchDebounceMs": 250
    },
    "entries": {
      "gbstudio-mcp": {
        "enabled": true,
        "env": {}
      }
    }
  }
}

项目结构

  • src/index.ts — 主服务器和端点逻辑
  • tests/ — 所有端点的 Jest 测试套件
  • tests/poachermon/ — 用于集成测试的真实 GB Studio 项目
  • gbstudio_api_endpoints.csv — 所有计划中端点的目录

本地开发

  1. 克隆仓库:
    git clone https://github.com/eoinjordan/gb-studio-agent.git
    cd gb-studio-agent
    
  2. 安装 Node.js(推荐版本:v21.7.1 或兼容版本)
  3. 安装依赖:
    npm install
    
  4. 启动开发服务器:
    npm run dev
    
  5. 运行测试套件:
    npm test
    

健康检查
  • GET /health — 健康检查时返回 { status: "ok" }。
Claude API 密钥
  • GET /claude-key — 如果环境中设置了 CLAUDE_API_KEY,则返回 { present: true };否则返回 { present: false },并附带 404 状态码。
查找项目
  • POST /find_project — 从指定目录开始查找第一个 .gbsproj 文件。
    • 请求体: { startPath: string }
    • 返回值: { projectPath: string };未找到时返回 404。
清单
  • POST /inventory — 列出 GB Studio 项目根目录中的场景、演员、触发器和资源。
    • 请求体: { projectRoot: string }
    • 返回值: { scenes, actors, triggers, assets };出错时返回 404/400。
验证
  • POST /validate — 验证 GB Studio 项目的结构(检查 .gbsproj 文件是否有效,以及必需字段是否存在)。
    • 请求体: { projectRoot: string }
    • 返回值: 有效时返回 { valid: true, message: string, scenes: number, projectPath: string, target: "gb" | "gba", engine: "gb-studio" | "gba-studio", version: string | null };无效或缺少必需字段时,返回 400/404 和错误消息。
    • 错误情况:
      • 如果缺少 projectRoot,或 .gbsproj 无效/缺少必需字段,则返回 400
      • 如果 projectRoot 不存在,或未找到 .gbsproj 文件,则返回 404
构建 GBA ROM
  • POST /gba/build — 使用本地 GBA Studio 检出目录构建 .gba ROM。
    • 请求体: { projectRoot: string, gbaStudioRoot?: string, output?: string, buildCli?: boolean, verbose?: boolean, extraArgs?: string[] }
    • 环境变量: 可使用 GBA_STUDIO_ROOT 代替 gbaStudioRoot。
    • 返回值: 成功时返回 { success: true, projectPath, gbaStudioRoot, output, stdout, stderr },失败时返回 { success: false, error, stdout, stderr }。
    • MCP 工具: build_gba_rom 向 Claude/Agent 客户端提供相同的参数。
创建场景
  • POST /scene/create — 向指定的 GB Studio 项目添加新场景。
    • 请求体: { projectRoot: string, scene: object }
    • 返回值: 成功时返回 { success: true, scene },失败时返回 400/404/500 和错误消息。
创建 Actor
  • POST /actor/create — 在指定场景中创建新的 Actor。
    • 请求体: { projectRoot: string, sceneId: string, actor: object }
    • 返回值: 成功时返回 { success: true, actor },失败时返回 400/404/500 和错误消息。
创建背景
  • POST /background/create — 在项目中创建新背景。
    • 请求体: { projectRoot: string, background: object }
    • 返回值: 成功时返回 { success: true, background },失败时返回 400/404/500 和错误消息。
创建精灵
  • POST /sprite/create — 在项目中创建新精灵。
    • 请求体: { projectRoot: string, sprite: object }
    • 返回值: 成功时返回 { success: true, sprite },失败时返回 400/404/500 和错误消息。
创建音乐
  • POST /music/create — 在项目中创建一条新音乐轨道。
    • 请求体: { projectRoot: string, music: object }
    • 返回值: 成功时返回 { success: true, music },失败时返回 400/404/500 和错误消息。
创建音效
  • POST /sound/create — 在项目中创建新的音效。
    • 请求体: { projectRoot: string, sound: object }
    • 返回值: 成功时返回 { success: true, sound },失败时返回 400/404/500 和错误消息。
创建图块集
  • POST /tileset/create — 在项目中创建新的图块集。
    • 请求体: { projectRoot: string, tileset: object }
    • 返回值: 成功时返回 { success: true, tileset },失败时返回 400/404/500 和错误消息。
创建触发器
  • POST /trigger/create — 在指定场景中创建新的触发器。
    • 请求体: { projectRoot: string, sceneId: string, trigger: object }
    • 返回值: 成功时返回 { success: true, trigger },失败时返回 400/404/500 和错误消息。
创建变量
  • POST /variable/create — 在项目中创建新变量。
    • 请求体: { projectRoot: string, variable: object }
    • 返回值: 成功时返回 { success: true, variable },失败时返回 400/404/500 和错误消息。
创建脚本
  • POST /script/create — 在项目中创建新脚本。
    • 请求体: { projectRoot: string, script: object }
    • 返回值: 成功时返回 { success: true, script },失败时返回 400/404/500 和错误消息。
创建调色板
  • POST /palette/create — 在项目中创建新调色板。
    • 请求体: { projectRoot: string, palette: object }
    • 返回值: 成功时返回 { success: true, palette },失败时返回 400/404/500 和错误消息。
创建字体
  • POST /font/create — 在项目中创建新字体。
    • 请求体: { projectRoot: string, font: object }
    • 返回值: 成功时返回 { success: true, font },失败时返回 400/404/500 和错误消息。
创建表情
  • POST /emote/create — 在项目中创建新表情。
    • 请求体: { projectRoot: string, emote: object }
    • 返回值: 成功时返回 { success: true, emote },失败时返回 400/404/500 和错误消息。
创建头像
  • POST /avatar/create — 在项目中创建新头像。
    • 请求体: { projectRoot: string, avatar: object }
    • 返回值: 成功时返回 { success: true, avatar },失败时返回 400/404/500 和错误消息。
创建常量
  • POST /constant/create — 在项目中创建新的常量。
    • 请求体: { projectRoot: string, constant: object }
    • 返回: 成功时返回 { success: true, constant },失败时返回 400/404/500 和错误消息。
创建预制体演员
  • POST /prefab/actor/create — 在项目中创建新的演员预制体。
    • 请求体: { projectRoot: string, actorPrefab: object }
    • 返回: 成功时返回 { success: true, actorPrefab },失败时返回 400/404/500 和错误消息。
创建预制体触发器
  • POST /prefab/trigger/create — 在项目中创建新的触发器预制体。
    • 请求体: { projectRoot: string, triggerPrefab: object }
    • 返回: 成功时返回 { success: true, triggerPrefab },失败时返回 400/404/500 和错误消息。
更新设置
  • POST /settings/update — 更新项目设置。
    • 请求体: { projectRoot: string, settings: object }
    • 返回: 成功时返回 { success: true, settings },失败时返回 400/404/500 和错误消息。
更新元数据
  • POST /metadata/update — 更新项目元数据。
    • 请求体: { projectRoot: string, metadata: object }
    • 返回: 成功时返回 { success: true, metadata },失败时返回 400/404/500 和错误消息。
创建引擎字段值
  • POST /engine-field-value/create — 在项目中创建新的引擎字段值。
    • 请求体: { projectRoot: string, engineFieldValue: object }
    • 返回: 成功时返回 { success: true, engineFieldValue },失败时返回 400/404/500 和错误消息。
Claude 密钥
  • POST /claude/key — 在环境中设置 Claude API 密钥。
    • 请求体: { key: string }
    • 返回: 成功时返回 { success: true },失败时返回 400 和错误消息。

从头到尾构建游戏

使用此 MCP 服务和 Claude 构建 GB Studio 游戏:

  1. 发现项目: 使用 /find_project 查找现有的 .gbsproj 文件,或从某个目录开始。
  2. 验证项目: 使用 /validate 确保项目有效。
  3. 获取清单: 使用 /inventory 列出当前的场景、演员、触发器和资源。
  4. 创建场景: 使用 /scene/create 添加新场景。
  5. 创建演员: 使用 /actor/create 向场景添加演员。
  6. 创建资源: 使用创建端点(目前为存根)添加精灵、背景等。
  7. 更新设置/元数据: 使用更新端点配置项目。
  8. 构建/导出: 使用 /gba/build 或 MCP build_gba_rom 将 GB Studio 项目编译为 .gba。

注意:所有端点现在都已完全可用。

GBA Studio 构建示例
{
  "projectRoot": "C:/Users/Eoin/git/gba-studio/examples/gba-starter-project",
  "gbaStudioRoot": "C:/Users/Eoin/git/gba-studio",
  "output": "C:/tmp/gba-starter.gba",
  "buildCli": true
}

提示词示例

请参阅 TUTORIAL.md,了解不同游戏类型的详细提示词示例和完整的端到端工作流。

测试覆盖率

所有端点均由 tests/ 目录中的 Jest 测试覆盖。运行 npm test 以验证所有功能。测试使用真实的示例项目。

发布

发布新版本:

  1. 更新 package.json 中的版本
  2. 构建项目:
    npm run build
    
  3. 登录 npm:
    npm login --auth-type=legacy
    
  4. 发布到 npm:
    npm publish --access public
    

更多信息请参阅 npm 发布文档。

贡献

  1. Fork 此仓库
  2. 创建功能分支
  3. 进行更改并添加测试
  4. 向 https://github.com/eoinjordan/gb-studio-agent 提交拉取请求

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。