mcpField
B
blockbench-mcp-overview

blockbench-mcp-overview

github.com/jasonjgardner创意与媒体261.1k 次安装5 周前更新
代码仓库

关于 blockbench-mcp-overview

为通过 MCP 操作 Blockbench 的创作者提供工具发现、项目检查和工作流指导。它还说明原生骨架、格式专属功能、撤销恢复与导出验证。

主要功能

  1. 01发现主机、项目和工具能力
  2. 02检查模型层级、纹理和 UV
  3. 03指导建模、动画及格式专属操作
  4. 04说明原生骨架与权重检查
  5. 05提供撤销恢复和导出检查流程

适用场景

  1. 01开始操作前确认当前格式和可用工具
  2. 02定位模型元素并查看现有资源
  3. 03检查原生骨架和顶点权重
  4. 04导出模型并核验结果

MCP 相关

指导客户端通过 Blockbench MCP 服务发现工具、模式、资源和格式能力,并使用相应工具检查或编辑项目。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jasonjgardner/blockbench-mcp-project --skill blockbench-mcp-overview

安装后在 Claude Code 中输入/blockbench-mcp-overview确认已加载。

详细介绍

Blockbench MCP 概览

修改内容前,先加载 blockbench-use。运行中服务器的工具列表和架构决定可用操作;此源技能可能介绍比已安装程序包更新的工具。工具状态和成功提示不能代替对结果的检查。

探索宿主和工作流

get_capabilities: include_tools=true
# → blockbench, plugin, project, format, formats, tools, notes
list_modes
# → current_mode, modes[{id, available, selected, ...}]

project 可能为 null。使用准确的已注册格式 ID:Generic Model 通常为 free。无需切换项目即可通过 get_capabilities: format_id="free" 检查候选格式。详细功能标志可能为 null(未知);精简列表会区分 true 标志和未知标志。已安装的插件格式通过发现机制支持,而不是依赖这些技能中的固定白名单。

当工具依赖编辑器状态时,使用 list_modes 和 set_mode: mode_id="<returned ID>",然后刷新可用性。Animate 使用 animate,而不是 animation。更改模式不会改变项目格式。

工作流工具或指南
立方体、网格和组建模
立方体/网格 UV、纹理图像、绘制和图层纹理
组骨架、关键帧、曲线和时间轴动画
粒子效果、定位器和粒子关键帧(create_particle_effect、add_locator、manage_particle_keyframes、export_particle_pack)粒子
法线/高度/MER 通道材质PBR 材质
从颜色纹理生成法线/高度/MER 贴图(PyPBR 或 vgpu、Depth Anything)从反照率生成法线
Hytale 专用格式、附件和可见性Hytale
原生骨架和顶点权重见下方骨架部分
Java 物品/方块显示变换见下方显示部分
Bedrock 方块面材质名称见下方材质实例部分
撤销历史和文件交付见下方恢复/导出部分

检查和 ID

针对具体问题,优先使用 find_elements_by_criteria 和 filter_by_material;使用 list_outline 了解层级结构。引用现有资源前,先读取 list_textures 和 list_materials。名称可能冲突,尤其是组和它的立方体,因此应保留 UUID。

place_mesh 返回 {meshes: [{name, uuid, vertex_keys, face_keys}]}。组件数组遵循输入顺序。其他网格创建工具和现有网格可通过 get_mesh_info 检查;其顶点和面有各自独立的 next_offset。修改前读取到 null。位置和法线均为网格局部坐标。拓扑更改或撤销/重做后,重新检查。有关可执行的客户端编排示例,请参阅建模技能。

get_cube_uv: id="<cube UUID>" 会读取盒状/逐面模式、面 UV 和有效纹理尺寸。set_cube_uv 会在格式检查后编辑这些值。list_textures 会报告 uv_size、bitmap_size 和 frame_size;在支持逐纹理 UV 尺寸的格式中,create_texture 可设置明确的 uv_width/uv_height。架构和示例见纹理技能。

资源包括 projects://{id}、nodes://{id}、textures://{id} 以及 Hytale 专用资源。请从运行中的服务器发现资源模板和具体 URI,而不是自行编造 ID。项目导出也可能返回实时的 .bbmodel 资源链接。

一个简单的模型和动画

以下是为新建的 Bedrock 实体编写的工具调用伪代码。请先确认该格式已注册,且项目支持动画。

create_project: name="robot", format="bedrock"
add_group: name="body", origin=[0, 12, 0]
place_cube: elements=[{name: "torso_geo", from: [-4, 12, -2], to: [4, 24, 2]}], group="body"

create_texture: name="skin", width=64, height=64, fill_color="#808080", layer_name="base"
apply_texture: id="torso_geo", texture="skin", applyTo="all"

idle = create_animation: name="idle", animation_length=2, loop=true, bones={}
manage_keyframes: animation_id=idle.uuid, action="create", bone_name="body",
  channel="rotation", keyframes=[
    {time: 0, values: [0, 0, 0]},
    {time: 1, values: [0, 5, 0]},
    {time: 2, values: [0, 0, 0]}
  ]
animation_timeline: animation_id=idle.uuid, action="set_time", time=1
capture_screenshot

将 idle.uuid 绑定到返回值;它不是字面量工具参数。添加精细纹理图案前,先检查 UV。仅凭静止姿势的截图无法验证动作。

原生骨架

当运行格式支持 armature_rig 时,查找原生骨架工具:list_armatures、get_armature、add_armature、list_armature_bones、get_armature_bone、add_armature_bone,以及更新和移除操作。ArmatureBones 与基于组的 BoneAnimators 是不同的 API;通用动画工具会解析组。

对于现有网格和骨架,使用 get_mesh_info 检查运行时顶点键,并使用 get_vertex_weights: mesh_id="<UUID>" 查看当前权重。set_vertex_weights_batch 接受 bone_id、mesh_id 和 weights: { "<vertex key>": 0.5 };权重范围为 0–1。更改后检查所有影响权重及关节处的变形;设置一个骨骼的数值并不能建立绑定正确或已归一化的完整骨架。在承诺提供蒙皮运行时资产之前,请检查导出器是否支持原生骨架。

Java 显示变换

对于支持 display_mode 的格式:

get_display_transform: slot="gui"
set_display_transform: slot="gui", rotation=[30, 225, 0], scale=[0.75, 0.75, 0.75]
enter_display_mode: slot="gui"
capture_screenshot

显示变换会更改导出的数据。请确认所请求的手持、背包、地面或框架视图是否使用了对应槽位;不要通过调整摄像机来暗示这些变换已被编写。

Bedrock 方块材质实例

在 bedrock_block 中,get_face_material_instances 用于读取,set_face_material_instance 用于写入目标的 minecraft:material_instances 组件中映射的名称。

get_face_material_instances: cube_id="block_geo"
set_face_material_instance: cube_id="block_geo", faces=["up"], material_name="top"

这些工具用于指定面名称;它们不会创建行为包方块组件或资源包纹理定义。这些材质实例与 PBR 纹理组和 GPU 实例化相互独立。对于多种材质或镂空面板,请参阅材质实例与纹理交付;使用纹理替代重复几何体之前,请参阅外观与性能方案。实体使用客户端实体/渲染控制器绑定,而不是此方块组件。请检查几何体导出内容和随附的目标配置。

恢复

save_checkpoint 会插入一个历史标记。它不会保存文件、保留现有的重做分支,也不会让未记录的脚本修改变得可撤销。使用 get_undo_stack 找到标记,并在执行 undo: steps=N 之前统计实际条目数;绘制工具可能会创建多个原生笔画。请保留其间用户所做的编辑。

对于这些操作,请使用专用的 undo/redo,而不是 trigger_action。直接使用 risky_eval 编写的脚本必须处理原生撤销机制,并在发生变更时清理失败状态。优先使用可用的专用工具,并遵循会话现有的授权。

导出

list_export_formats
# Inspect available, has_compile, extension and belongs_to_current_format
export_model: codec_id="project", result_format="embedded"
export_model: codec_id="project", path="C:/models/robot.bbmodel", max_content_length=0

请使用 Blockbench 主机上的授权目标路径。文件系统权限可能由主机处理。only_current_format=true 会筛选编解码器列表;如需查找其他可用的兼容导出格式,请使用完整列表。

export_model 会调用编解码器的编译操作。它不会自动运行编解码器的交互式导出流程、写入所有外部图像,也不会导出单独的动画文件。请检查 byte_length、输出路径、截断情况以及返回的内容/资源元数据。被截断的文本/base64 预览并不是完整的可下载资产。只有在嵌入的结果未超出响应限制时,才会包含完整文件。

请根据格式与交付指南选择格式、依赖项和目标路径检查方式。条件允许时,请重新打开副本或检查目标应用;准确说明验证的局限性。

评论

支持 Markdown