游戏引擎AI编辑器自动化服务

通过Model Context Protocol为s&box游戏引擎提供AI驱动的编辑器自动化服务,支持场景操作、组件编辑、云资产管理等功能。

  • by StephenSHorton
  • C#
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 StephenSHorton/sbox-mcp

使用说明

sbox mcp——机顶盒的mcp服务器

通过模型上下文协议为s&box游戏引擎提供人工智能驱动的编辑器自动化。


建筑

flowchart LR
    AI["AI Client\n(Claude, etc.)"]
    MCP["MCP Server\n(.NET 9)"]
    Bridge["s&box Editor\nBridge Addon"]

    AI <-->|stdio| MCP
    MCP <-->|WebSocket :29015| Bridge

MCP服务器公开了以下工具 标准 (由Claude Desktop或Claude Code等AI客户端使用)。它通过某种方式转发命令 WebSocket 与在s&box编辑器中运行的Bridge插件的连接,该编辑器在实时场景中执行这些插件并返回结果。


特性

  • 场景操纵 --创建、克隆、重新分配、转换和删除游戏对象
  • 组件编辑 --添加、检查和修改组件属性,包括s和box资源类型(模型、材质、颜色、矢量3)
  • 云资产 --从s&box云存储中搜索、获取和挂载资产;自动添加到项目PackageReferences
  • 标签管理 --在GameObjects上添加、删除和列出标签
  • 文件操作 --读写项目文件; .cs 文件转到 code/ 目录自动
  • 模式 --启动/停止播放模式并检查状态
  • 编辑器控件 --选择、撤消/重做、保存、场景信息
  • 代码执行 --在编辑器上下文中运行C#表达式和控制台命令
  • 零部件编写 --通过MCP编写新的C#组件并将其附加到GameObjects

先决条件


设置

快速安装(推荐)

  1. 下载最新 sbox-mcp-<version>-win-x64.zip 从 发布页面.

  2. 在任何你喜欢的地方提取它——只需选择一个你不会移动的稳定位置。zip包含:

    • SboxMcp.Server.exe --独立的MCP服务器(不需要.NET运行时)。
    • bridge/ --编辑器加载源文件。
  3. 在客户端注册MCP服务器(替换 <install-dir> 无论你在哪里解压zip):

    克劳德代码:

    claude mcp add -s user sbox -- "<install-dir>\SboxMcp.Server.exe"
    

    克劳德桌面/其他MCP客户端:

    {
      "mcpServers": {
        "sbox": {
          "command": "<install-dir>\\SboxMcp.Server.exe"
        }
      }
    }
    
  4. 将网桥插件复制到您的s和box安装中:

    cp -r bridge/* "<sbox-install>/addons/tools/Code/McpBridge/"
    

当s&box编辑器打开时,插件会自动启动。可停靠 MCP电桥 面板显示连接状态、命令计数和活动日志。

从源代码构建

如果你想从源代码构建,你需要 .NET 9 SDK:

git clone https://github.com/StephenSHorton/sbox-mcp.git
cd sbox-mcp
dotnet build sbox-mcp.sln --configuration Release

然后使用注册服务器 dotnet run:

claude mcp add -s user sbox -- dotnet run --project /path/to/src/SboxMcp.Server -c Release

并将网桥复制到您的s&box安装中:

cp -r src/SboxMcp.Bridge/code/* "<sbox-install>/addons/tools/Code/McpBridge/"

可用工具

场景(10个工具)

工具 说明
scene_list_objects 列出场景中的所有游戏对象
scene_get_object 获取包含组件的详细游戏对象信息
scene_create_object 创建新游戏对象
scene_delete_object 删除游戏对象
scene_find_objects 按名称搜索游戏对象(支持 * 通配符)
scene_set_transform 设置位置/旋转/比例
scene_get_hierarchy 以缩进文本的形式获取完整的场景树
scene_clone_object 复制游戏对象
scene_reparent_object 将游戏对象移动到其他父对象
scene_load 在编辑器中打开场景文件

场景搜索(2个工具)

工具 说明
scene_find_by_component 查找具有特定组件类型的所有对象
scene_find_by_tag 查找具有特定标记的所有对象

组件(5个工具)

工具 说明
component_list 列出游戏对象上的组件
component_get 获取组件属性和值
component_set 设置组件属性(控制柄模型、材质、颜色、矢量3、角度)
component_add 按类型名称添加组件
component_remove 移除组件

标签(3个工具)

工具 说明
tag_add 向游戏对象添加标签
tag_remove 从游戏对象中删除标签
tag_list 列出游戏对象上的所有标签

云资产(4个工具)

工具 说明
asset_search 搜索s&box云资产存储
asset_fetch 获取特定云包的元数据
asset_mount 挂载云包(自动添加到项目PackageReferences)
asset_browse_local 浏览本地项目资产

编辑器(8个工具)

工具 说明
editor_get_selection 获取当前选定的游戏对象
editor_select_object 按ID选择游戏对象
editor_undo 撤消上次操作
editor_redo 重做上次操作
editor_save_scene 保存当前场景
editor_play 启动播放模式
editor_stop 停止播放模式
editor_is_playing 检查编辑器是否处于播放模式
editor_scene_info 获取场景名称、路径和脏状态
editor_console_output 获取最近的控制台日志条目

文件和执行(5个工具)

工具 说明
file_read 读取项目文件
file_write 编写项目文件(.cs 文件自动目标 code/ 目录)
file_list 列出带有glob模式的项目文件
project_info 获取项目元数据
execute_csharp 在编辑器上下文中执行C#
console_run 运行控制台命令
get_bridge_status 检查网桥连接状态

云资产工作流

MCP服务器可以从s&box资产存储中搜索、挂载和使用云资产:

1. asset_search "barrel"           → find available assets
2. asset_mount "polyhaven.barrel_03" → download and mount
3. component_set Model → "polyhaven.barrel_03"  → auto-fetches, mounts, and loads

当云资源被挂载或设置在组件上时,它会自动添加到项目的 PackageReferences 在 .sbproj 因此,它在编辑器重新启动时仍然存在。


配置

变量 默认值 描述
SBOX_MCP_PORT 29015 用于网桥连接的WebSocket端口

发展

构建

dotnet build sbox-mcp.sln

跑

dotnet run --project src/SboxMcp.Server

部署网桥更改

cp -r src/SboxMcp.Bridge/code/* "<sbox-install>/addons/tools/Code/McpBridge/"

s&box热重新加载C#更改。只有编译失败时才需要重新启动。

项目结构

sbox-mcp/
├── src/
│   ├── SboxMcp.Server/          # .NET 9 MCP server (stdio transport)
│   │   ├── Tools/               # MCP tool definitions
│   │   └── Bridge/              # WebSocket server + message types
│   └── SboxMcp.Bridge/          # s&box Roslyn addon
│       └── code/
│           ├── Handlers/        # Command handlers (Scene, Component, Asset, Editor, File)
│           ├── CommandRouter.cs # Routes commands to handlers
│           └── McpEditorTool.cs # Editor dock widget
├── .github/workflows/
├── sbox-mcp.sln
└── README.md

运作原理

  1. AI客户端将MCP服务器作为子进程启动,并通过以下方式进行通信 标准 使用模型上下文协议。
  2. 当AI调用工具时,MCP服务器对请求进行序列化,并通过 WebSocket 到s&box编辑器中运行的Bridge插件。
  3. Bridge插件对实时场景执行请求(读取/写入游戏对象、组件、资产、文件等),并返回JSON响应。
  4. MCP服务器通过stdio将响应转发回AI客户端。

服务器在端口冲突时自动杀死过时的实例,因此多个会话不会死锁。


贡献

欢迎拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。

该项目根据 MIT许可证.


致谢