blockbench-mcp-overview
Discover and use Blockbench MCP tools, resources, and prompts. Use for capability questions, new-project planning, mode navigation, export, display transforms, Bedrock face materials, or native armature workflows.
How do I install this agent skill?
npx skills add https://github.com/jasonjgardner/blockbench-mcp-project --skill blockbench-mcp-overviewIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill provides an overview of tools and workflows for interacting with a Blockbench Model Creator Protocol (MCP) server. It is informational and contains safety guidance for handling editor state and exports.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerwarn
1/1 file flagged
- ZeroLeakspass
Score: 93/100 · 2 sections analyzed
What does this agent skill do?
Blockbench MCP Overview
For content changes, load blockbench-use first. The running server's tool list and schemas determine available operations; this source skill can describe tools newer than an installed bundle. Tool status and success text are not a substitute for result inspection.
Discover the Host and Workflow
get_capabilities: include_tools=true
# → blockbench, plugin, project, format, formats, tools, notes
list_modes
# → current_mode, modes[{id, available, selected, ...}]
project may be null. Use exact registered format IDs: Generic Model is normally free. Inspect a prospective format with get_capabilities: format_id="free" without switching projects. Detailed feature flags can be null (unknown); compact listings distinguish true flags and unknown flags. Installed plugin formats are supported through discovery rather than a fixed whitelist in these skills.
When a tool depends on editor state, use list_modes and set_mode: mode_id="<returned ID>", then refresh availability. Animate uses animate, not animation. Changing mode does not change project format.
| Workflow | Tools or guidance |
|---|---|
| Cubes, meshes and groups | Modeling |
| Cube/mesh UVs, texture images, painting and layers | Texturing |
| Group rigs, keyframes, curves and timelines | Animation |
Particle effects, locators and particle keyframes (create_particle_effect, add_locator, manage_particle_keyframes, export_particle_pack) | Particles |
| Normal/height/MER channel materials | PBR materials |
| Generating normal/height/MER maps from a color texture (PyPBR or vgpu, Depth Anything) | Albedo to normal |
| Hytale-specific formats, attachments and visibility | Hytale |
| Native armatures and vertex weights | Armature section below |
| Java item/block display transforms | Display section below |
| Bedrock block face material names | Material-instance section below |
| Undo history and file delivery | Recovery/export sections below |
Inspection and IDs
Prefer find_elements_by_criteria and filter_by_material for targeted questions; use list_outline to understand a hierarchy. Read list_textures and list_materials before referring to existing assets. Names can collide, especially a group and its cube, so retain UUIDs.
place_mesh returns {meshes: [{name, uuid, vertex_keys, face_keys}]}. Component arrays follow input order. Other mesh creators and existing meshes can be inspected with get_mesh_info; its vertices and faces have independent next_offset values. Read to null before mutating. Positions and normals are mesh-local. Reinspect after topology changes or undo/redo. See the modeling skill for executable client-orchestration examples.
get_cube_uv: id="<cube UUID>" reads box/per-face mode, face UVs and effective texture dimensions. set_cube_uv edits those values with format checks. list_textures reports uv_size, bitmap_size, and frame_size; create_texture can set an explicit uv_width/uv_height pair in formats with per-texture UV sizing. Schemas and examples are in the texturing skill.
Resources include projects://{id}, nodes://{id}, textures://{id}, and Hytale-specific resources. Discover resource templates and concrete URIs from the live server instead of inventing IDs. Project exports can also return a live .bbmodel resource link.
A Small Model and Animation
This is tool-call pseudocode for a newly intended Bedrock entity. Confirm the format is registered and the project supports animation first.
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
Bind idle.uuid to the returned value; it is not a literal tool argument. Inspect UVs before adding detailed texture art. A rest-pose screenshot alone does not verify motion.
Native Armatures
When the running format supports armature_rig, discover the native armature tools: list_armatures, get_armature, add_armature, list_armature_bones, get_armature_bone, add_armature_bone, and the update/remove operations. ArmatureBones and group-based BoneAnimators are different APIs; the general animation tools resolve groups.
For an existing mesh and armature, inspect get_mesh_info for runtime vertex keys and get_vertex_weights: mesh_id="<UUID>" for current weights. set_vertex_weights_batch takes bone_id, mesh_id, and weights: { "<vertex key>": 0.5 }; weights are 0–1. Inspect all contributing weights and deformation at joints after changes; setting one bone's values does not establish a correctly bound or normalized whole rig. Check exporter support for the native rig before promising a skinned runtime asset.
Java Display Transforms
For formats supporting 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
Display transforms change exported data. Confirm the requested hand, inventory, ground or frame views with their corresponding slots; do not use a camera adjustment to imply those transforms were authored.
Bedrock Block Material Instances
In bedrock_block, get_face_material_instances reads and set_face_material_instance writes names mapped by the target's minecraft:material_instances component.
get_face_material_instances: cube_id="block_geo"
set_face_material_instance: cube_id="block_geo", faces=["up"], material_name="top"
The tools assign face names; they do not create the behavior-pack block components or resource-pack texture definitions. These material instances are separate from PBR texture groups and GPU instancing. Follow material-instance and texture delivery for multiple materials or cutout panels, and the appearance/performance plan before using textures to replace repeated geometry. Entities use client-entity/render-controller bindings rather than this block component. Inspect the geometry export and accompanying target configuration.
Recovery
save_checkpoint inserts a history marker. It does not save a file, preserve an existing redo branch, or make unrecorded script mutations undoable. Use get_undo_stack to locate the marker and count actual entries before undo: steps=N; a paint tool may create multiple native strokes. Preserve intervening user edits.
Use dedicated undo / redo rather than trigger_action for those operations. Direct risky_eval scripts must manage native undo aspects and failure cleanup for mutations. Prefer available dedicated tools and follow the session's existing authorization.
Export
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
Use an authorized destination on the Blockbench host. Filesystem permission may be handled by the host. only_current_format=true filters the codec listing; use the full listing to discover other available compatible exports.
export_model invokes a codec's compile operation. It does not automatically run the codec's interactive export flow, write all external images, or export separate animation files. Inspect byte_length, output path, truncation and returned content/resource metadata. A truncated text/base64 preview is not a complete downloadable asset. Embedded results contain a complete file only when it fits the response limit.
Select format, dependencies and destination checks using format and delivery guidance. Reopen a copy or inspect the destination app when available; report verification limits accurately.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/jasonjgardner/blockbench-mcp-project/blockbench-mcp-overview">View blockbench-mcp-overview on skillZs</a>