使用说明
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
先决条件
- s和box编辑器 (适用于Bridge Addon)
- .NET 9 SDK — 只有从源头上建设。 预构建版本是自包含的。
设置
快速安装(推荐)
-
下载最新
sbox-mcp-<version>-win-x64.zip从 发布页面. -
在任何你喜欢的地方提取它——只需选择一个你不会移动的稳定位置。zip包含:
SboxMcp.Server.exe--独立的MCP服务器(不需要.NET运行时)。bridge/--编辑器加载源文件。
-
在客户端注册MCP服务器(替换
<install-dir>无论你在哪里解压zip):克劳德代码:
claude mcp add -s user sbox -- "<install-dir>\SboxMcp.Server.exe"克劳德桌面/其他MCP客户端:
{ "mcpServers": { "sbox": { "command": "<install-dir>\\SboxMcp.Server.exe" } } } -
将网桥插件复制到您的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
运作原理
- AI客户端将MCP服务器作为子进程启动,并通过以下方式进行通信 标准 使用模型上下文协议。
- 当AI调用工具时,MCP服务器对请求进行序列化,并通过 WebSocket 到s&box编辑器中运行的Bridge插件。
- Bridge插件对实时场景执行请求(读取/写入游戏对象、组件、资产、文件等),并返回JSON响应。
- MCP服务器通过stdio将响应转发回AI客户端。
服务器在端口冲突时自动杀死过时的实例,因此多个会话不会死锁。
贡献
欢迎拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
该项目根据 MIT许可证.
致谢
- Facepunch工作室 s&box游戏引擎和编辑器
- 人类 为了 模型上下文协议 规格