Installation

Tools

Cubes

place_cube

stable destructive

Place Cube

Places a cube of the given size at the specified position. Texture and group are optional.

Name Type Required Description
elements object[] required Array of cubes to place. [minItems: 1]
texture string optional Texture ID or name to apply to the cube.
group string optional Group/bone to which the cube belongs.
faces "north" | "south" | "east" | "west" | "up" | "down"[] | unknown | boolean | object[] optional Faces to apply the texture to. Set to `true` to enable auto UV mapping. (default: true)

modify_cube

stable destructive

Modify Cube

Modifies the cube with the given ID. Auto UV setting: saved as an integer, where 0 means disabled, 1 means enabled, and 2 means relative auto UV (cube position affects UV)

Name Type Required Description
id string optional ID or name of the cube to modify. Defaults to selected, which could be more than one.
name string optional New name of the cube.
origin number[] optional Pivot point of the cube. [minItems: 3, maxItems: 3]
from number[] optional Starting point of the cube. [minItems: 3, maxItems: 3]
to number[] optional Ending point of the cube. [minItems: 3, maxItems: 3]
rotation number[] optional Rotation of the cube. [minItems: 3, maxItems: 3]
autouv "0" | "1" | "2" optional Auto UV setting. 0 = disabled, 1 = enabled, 2 = relative auto UV.
uv_offset number[] optional UV offset for the texture. [minItems: 2, maxItems: 2]
mirror_uv boolean optional Whether to mirror the UVs.
shade boolean optional Whether to apply shading to the cube.
inflate number optional Inflation amount for the cube.
color number optional Single digit to represent a color from a palette.
visibility boolean optional Whether the cube is visible or not.

Camera & Screenshots

capture_screenshot

stable read-only

Capture Screenshot

Returns the image data of the current view.

Name Type Required Description
project string optional Project name or UUID.

capture_app_screenshot

stable read-only

Capture App Screenshot

Returns the image data of the Blockbench app.

No parameters

set_camera_angle

experimental destructive

Set Camera Angle

Sets the camera angle to the specified value.

Name Type Required Description
position number[] required Camera position. [minItems: 3, maxItems: 3]
target number[] optional Camera target position. [minItems: 3, maxItems: 3]
rotation number[] optional Camera rotation. [minItems: 3, maxItems: 3]
projection "unset" | "orthographic" | "perspective" required Camera projection type.

Animation

create_animation

stable destructive

Create Animation

Creates a new animation with keyframes for bones.

Name Type Required Description
name string required Name of the animation
loop boolean optional Whether the animation should loop (default: false)
animation_length number optional Length of the animation in seconds
bones Record<string, object[]> required Keyframes for each bone
particle_effects Record<string, string> optional Particle effects with timestamps as keys

manage_keyframes

experimental destructive

Manage Keyframes

Creates, deletes, or edits keyframes in the animation timeline for specific bones and channels.

Name Type Required Description
animation_id string optional Animation UUID or name. If not provided, uses current animation.
action "create" | "delete" | "edit" | "select" required Action to perform on keyframes.
bone_name string required Name of the bone/group to manage keyframes for.
channel "rotation" | "position" | "scale" required Animation channel to modify.
keyframes object[] required Keyframe data for the action.

animation_graph_editor

experimental destructive

Animation Graph Editor

Controls animation curves in the graph editor for fine-tuning animations.

Name Type Required Description
animation_id string optional Animation UUID or name. If not provided, uses current animation.
bone_name string required Name of the bone/group to modify curves for.
channel "rotation" | "position" | "scale" required Animation channel to modify.
axis "x" | "y" | "z" | string optional Axis to modify curves for. (default: "all")
action "smooth" | "linear" | "ease_in" | "ease_out" | "ease_in_out" | "stepped" | "custom" required Type of curve modification to apply.
keyframe_range object optional Time range to apply the curve modification. If not provided, applies to all keyframes.
custom_curve object optional Custom bezier curve control points (only for 'custom' action).

bone_rigging

experimental destructive

Bone Rigging

Creates and manipulates the bone structure (rig) of a model for animation.

Name Type Required Description
action "create" | "parent" | "unparent" | "delete" | "rename" | "set_pivot" | "set_ik" | "mirror" required Action to perform on the bone structure.
bone_data object required Bone configuration data.

animation_timeline

experimental destructive

Animation Timeline

Controls the animation timeline, including playback, time scrubbing, and timeline settings.

Name Type Required Description
action "play" | "pause" | "stop" | "set_time" | "set_length" | "set_fps" | "loop" | "select_range" required Timeline action to perform.
time number optional Time in seconds (for set_time action).
length number optional Animation length in seconds (for set_length action).
fps number optional Frames per second (for set_fps action). [min: 1, max: 120]
loop_mode "once" | "loop" | "hold" optional Loop mode for the animation.
range object optional Time range for selection.

batch_keyframe_operations

experimental destructive

Batch Keyframe Operations

Performs batch operations on multiple keyframes at once.

Name Type Required Description
selection "all" | "selected" | "range" | "pattern" optional Which keyframes to operate on. (default: "selected")
range object optional Time range for keyframe selection.
pattern object optional Pattern-based selection.
operation "offset" | "scale" | "reverse" | "mirror" | "smooth" | "bake" required Operation to perform on keyframes.
parameters object optional Operation-specific parameters.

animation_copy_paste

experimental destructive

Animation Copy/Paste

Copies and pastes animation data between bones or animations.

Name Type Required Description
action "copy" | "paste" | "mirror_paste" required Copy or paste action.
source object optional Source data for copy operation.
target object optional Target data for paste operation.

Armature

list_armatures

stable read-only

List Armatures

Lists all armatures in the current project with their basic info.

No parameters

get_armature

stable read-only

Get Armature

Gets detailed information about a specific armature including its bones.

Name Type Required Description
id string required UUID or name of the armature.
include_bones boolean optional Whether to include bone hierarchy in response. (default: true)

add_armature

stable destructive

Add Armature

Creates a new armature in the project. An armature is a skeletal rig used for mesh deformation.

Name Type Required Description
name string optional Name for the new armature. (default: "armature")
visibility boolean optional (default: true)
locked boolean optional (default: false)
add_initial_bone boolean optional Whether to add an initial bone to the armature. (default: true)

remove_armature

experimental destructive

Remove Armature

Removes an armature and all its bones from the project.

Name Type Required Description
id string required UUID or name of the armature to remove.

update_armature

stable destructive

Update Armature

Updates properties of an existing armature.

Name Type Required Description
id string required UUID or name of the armature.
name string optional New name for the armature.
visibility boolean optional
locked boolean optional
export boolean optional Whether to export this armature.

list_armature_bones

stable read-only

List Armature Bones

Lists all armature bones, optionally filtered by a specific armature.

Name Type Required Description
armature_id string optional Filter bones by armature UUID or name. If not provided, lists all bones.

get_armature_bone

stable read-only

Get Armature Bone

Gets detailed information about a specific armature bone.

Name Type Required Description
id string required UUID or name of the bone.
include_weights boolean optional Whether to include all vertex weights in response. (default: false)

add_armature_bone

stable destructive

Add Armature Bone

Creates a new bone and adds it to an armature or parent bone.

Name Type Required Description
parent_id string required UUID or name of parent armature or bone.
name string optional Name for the new bone. (default: "bone")
origin number[] optional Position of the bone. Defaults to [0, parent.length, 0] for child bones. [minItems: 3, maxItems: 3]
rotation number[] optional 3D vector [x, y, z]. (default: [0,0,0]) [minItems: 3, maxItems: 3]
length number optional Length of the bone. (default: 8)
width number optional Width of the bone. (default: 2)
connected boolean optional Whether bone is connected to parent. (default: true)
color integer optional Marker color index (0-7). [min: 0, max: 7]

remove_armature_bone

experimental destructive

Remove Armature Bone

Removes an armature bone from the project.

Name Type Required Description
id string required UUID or name of the bone to remove.
remove_children boolean optional Whether to also remove child bones. (default: true)

update_armature_bone

stable destructive

Update Armature Bone

Updates properties of an existing armature bone.

Name Type Required Description
id string required UUID or name of the bone.
name string optional
origin number[] optional New position of the bone. [minItems: 3, maxItems: 3]
rotation number[] optional New rotation [x, y, z] in degrees. [minItems: 3, maxItems: 3]
length number optional
width number optional
connected boolean optional
color integer optional [min: 0, max: 7]
visibility boolean optional
locked boolean optional

update_armature_bones_batch

experimental destructive

Update Armature Bones (Batch)

Updates multiple armature bones at once with the same properties.

Name Type Required Description
ids string[] required Array of bone UUIDs or names to update.
visibility boolean optional
locked boolean optional
color integer optional [min: 0, max: 7]

select_armature_bones

stable

Select Armature Bones

Selects armature bones by ID. Can select single bone, multiple bones, or bone hierarchy.

Name Type Required Description
ids string[] optional Array of bone UUIDs or names to select.
armature_id string optional Select all bones in this armature.
include_descendants boolean optional Include all descendant bones in selection. (default: false)
clear_selection boolean optional Clear existing selection before selecting. (default: true)

get_vertex_weights

stable read-only

Get Vertex Weights

Gets vertex weights for a mesh from all bones affecting it.

Name Type Required Description
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
bone_id string optional Filter weights by specific bone.

set_vertex_weight

stable destructive

Set Vertex Weight

Sets the weight of a specific vertex on a bone.

Name Type Required Description
bone_id string required UUID or name of the bone.
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
vertex_key string required Key of the vertex in the mesh.
weight number required Weight value (0-1). Set to 0 to remove weight. [min: 0, max: 1]

set_vertex_weights_batch

experimental destructive

Set Vertex Weights (Batch)

Sets multiple vertex weights at once on a bone.

Name Type Required Description
bone_id string required UUID or name of the bone.
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
weights Record<string, number> required Map of vertex_key -> weight value.

clear_vertex_weights

experimental destructive

Clear Vertex Weights

Clears all vertex weights from a bone for a specific mesh.

Name Type Required Description
bone_id string required UUID or name of the bone.
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.

Elements

remove_element

experimental destructive

Remove Element

Removes the element with the given ID.

Name Type Required Description
id string required ID or name of the element to remove.

add_group

stable destructive

Add Group

Adds a new group with the given name and options.

Name Type Required Description
name string required
origin number[] required 3D vector [x, y, z]. [minItems: 3, maxItems: 3]
rotation number[] required 3D vector [x, y, z]. [minItems: 3, maxItems: 3]
parent string optional (default: "root")
visibility boolean optional (default: true)
autouv "0" | "1" | "2" optional Auto UV setting. 0 = disabled, 1 = enabled, 2 = relative auto UV. (default: "0")
selected boolean optional (default: false)
shade boolean optional (default: false)

list_outline

stable read-only

List Outline

Returns a list of all groups and their children in the Blockbench editor.

No parameters

duplicate_element

experimental destructive

Duplicate Element

Duplicates a cube, mesh or group by ID or name. You may offset the duplicate or assign a new name.

Name Type Required Description
id string required ID or name of the element to duplicate.
offset number[] optional 3D vector [x, y, z]. (default: [0,0,0]) [minItems: 3, maxItems: 3]
newName string optional

rename_element

experimental destructive

Rename Element

Renames a cube, mesh or group by ID or name.

Name Type Required Description
id string required ID or name of the element to rename.
new_name string required New name to assign.

Import/Export

from_geo_json

stable destructive

Import GeoJSON

Imports a model from a GeoJSON file.

Name Type Required Description
geojson string required Path to the GeoJSON file or data URL, or the GeoJSON string itself.

Material Instances

get_face_material_instances

stable read-only

Get Face Material Instances

Gets the material instance names for cube faces. Material instances are used in Bedrock Block format to map faces to materials defined in the minecraft:material_instances component.

Name Type Required Description
cube_id string optional ID or name of the cube. If not provided, uses the first selected cube.
faces "north" | "south" | "east" | "west" | "up" | "down"[] optional Specific faces to get/clear material instances for. If not provided, returns/clears all faces.

set_face_material_instance

experimental destructive

Set Face Material Instance

Sets the material instance name for one or more cube faces. Material instances are strings that map to materials defined in the minecraft:material_instances component for Bedrock Block format.

Name Type Required Description
cube_id string optional ID or name of the cube. If not provided, applies to all selected cubes.
material_name string required The material instance name to assign. Use empty string to clear the material instance.
faces "north" | "south" | "east" | "west" | "up" | "down"[] optional Faces to set the material instance on. Defaults to all faces. (default: ["north","south","east","west","up","down"])

list_material_instances

stable read-only

List Material Instances

Lists all unique material instance names used in the project. Returns the material instance names along with which cubes and faces use them.

No parameters

bulk_set_material_instances

experimental destructive

Bulk Set Material Instances

Sets material instance names on multiple cubes at once. Useful for assigning different material instances to different faces across the project.

Name Type Required Description
assignments object[] required Array of material instance assignments. [minItems: 1]

clear_material_instances

experimental destructive

Clear Material Instances

Clears (removes) material instance names from cube faces. Useful for resetting material assignments.

Name Type Required Description
cube_id string optional ID or name of the cube. If not provided, clears from all selected cubes.
faces "north" | "south" | "east" | "west" | "up" | "down"[] optional Specific faces to clear. If not provided, clears all faces.
all_cubes boolean optional If true, clears material instances from all cubes in the project. (default: false)

Mesh Editing

place_mesh

experimental destructive

Place Mesh

Places a mesh at the specified position. Texture and group are optional.

Name Type Required Description
elements object[] required Array of meshes to place. [minItems: 1]
texture string optional Texture ID or name to apply to the mesh.
group string optional Group/bone to which the mesh belongs.

extrude_mesh

experimental destructive

Extrude Mesh

Extrudes selected faces or edges of a mesh.

Name Type Required Description
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
distance number optional Distance to extrude. (default: 1)
mode "faces" | "edges" | "vertices" optional What to extrude: faces, edges, or vertices. (default: "faces")

subdivide_mesh

experimental destructive

Subdivide Mesh

Subdivides selected faces of a mesh to create more geometry.

Name Type Required Description
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
cuts number optional Number of subdivision cuts to make. (default: 1) [min: 1, max: 10]

create_sphere

stable destructive

Create Sphere

Creates a sphere mesh at the specified position with the given parameters. The sphere is created as a mesh with vertices and faces using spherical coordinates.

Name Type Required Description
elements object[] required Array of spheres to create. [minItems: 1]
texture string optional Texture ID or name to apply to the sphere.
group string optional Group/bone to which the sphere belongs.

select_mesh_elements

experimental destructive

Select Mesh Elements

Selects vertices, edges, or faces of a mesh for manipulation.

Name Type Required Description
mesh_id string required ID or name of the mesh to select elements from.
mode "vertex" | "edge" | "face" required Selection mode.
elements string,number[] optional Specific elements to select. If not provided, selects all.
action "select" | "add" | "remove" | "toggle" optional Selection action: select (replace), add, remove, or toggle. (default: "select")

move_mesh_vertices

experimental destructive

Move Mesh Vertices

Moves selected vertices of a mesh by the specified offset.

Name Type Required Description
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
offset number[] required Offset to move vertices by [x, y, z]. [minItems: 3, maxItems: 3]
vertices string[] optional Specific vertex keys to move. If not provided, moves all selected vertices.

delete_mesh_elements

experimental destructive

Delete Mesh Elements

Deletes selected vertices, edges, or faces from a mesh.

Name Type Required Description
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
mode "vertices" | "edges" | "faces" optional What to delete: vertices, edges, or faces. (default: "faces")
keep_vertices boolean optional When deleting faces/edges, whether to keep the vertices. (default: false)

merge_mesh_vertices

experimental destructive

Merge Mesh Vertices

Merges vertices that are within a specified distance of each other.

Name Type Required Description
mesh_id string required ID or name of the mesh.
threshold number optional Maximum distance between vertices to merge. (default: 0.1) [min: 0, max: 10]
selected_only boolean optional Whether to only merge selected vertices. (default: true)

create_mesh_face

experimental destructive

Create Mesh Face

Creates a new face from selected vertices.

Name Type Required Description
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
vertices string[] required Vertex keys to create face from. Must be 3 or 4 vertices. [minItems: 3, maxItems: 4]
texture string optional Texture ID or name to apply to the new face.

create_cylinder

experimental destructive

Create Cylinder

Creates one or more cylinder meshes with optional end caps.

Name Type Required Description
elements object[] required [minItems: 1]
texture string optional Texture ID or name. If not provided, uses selected texture.
group string optional Group/bone ID or name.

knife_tool

experimental destructive

Knife Tool

Uses the knife tool to cut custom edges into mesh faces.

Name Type Required Description
mesh_id string required ID or name of the mesh to cut.
points object[] required Points defining the cut path. [minItems: 2]

Paint Tools

paint_fill_tool

experimental destructive

Paint Fill Tool

Uses the fill/bucket tool to fill areas with color.

Name Type Required Description
texture_id string optional Texture ID or name. If not provided, uses selected texture.
x number required X coordinate to start fill.
y number required Y coordinate to start fill.
color string optional Fill color as hex string.
opacity number optional Fill opacity (0-255). [min: 0, max: 255]
tolerance number optional Color tolerance for fill. [min: 0, max: 100]
fill_mode "color" | "color_connected" | "face" | "element" | "selected_elements" | "selection" optional Fill mode. (default: "color_connected")
blend_mode "default" | "set_opacity" | "color" | "behind" | "multiply" | "add" | "screen" | "overlay" | "difference" optional Fill blend mode.

draw_shape_tool

experimental destructive

Draw Shape Tool

Draws geometric shapes on textures.

Name Type Required Description
texture_id string optional Texture ID or name. If not provided, uses selected texture.
shape "rectangle" | "rectangle_h" | "ellipse" | "ellipse_h" required Shape to draw. '_h' suffix means hollow.
start object required
end object required
color string optional Shape color as hex string.
line_width number optional Line width for hollow shapes. [min: 1, max: 50]
opacity number optional Shape opacity (0-255). [min: 0, max: 255]
blend_mode "default" | "set_opacity" | "color" | "behind" | "multiply" | "add" | "screen" | "overlay" | "difference" optional Shape blend mode.

gradient_tool

experimental destructive

Gradient Tool

Applies gradients to textures.

Name Type Required Description
texture_id string optional Texture ID or name. If not provided, uses selected texture.
start object required
end object required
start_color string required Start color as hex string.
end_color string required End color as hex string.
opacity number optional Gradient opacity (0-255). [min: 0, max: 255]
blend_mode "default" | "set_opacity" | "color" | "behind" | "multiply" | "add" | "screen" | "overlay" | "difference" optional Gradient blend mode.

color_picker_tool

experimental read-only

Color Picker Tool

Picks colors from textures and sets them as the active color.

Name Type Required Description
texture_id string optional Texture ID or name. If not provided, uses selected texture.
x number required X coordinate to pick color from.
y number required Y coordinate to pick color from.
set_as_secondary boolean optional Set as secondary color instead of primary. (default: false)
pick_opacity boolean optional Also pick and apply the pixel's opacity. (default: false)

copy_brush_tool

experimental destructive

Copy Brush Tool

Uses the copy/clone brush to copy texture areas.

Name Type Required Description
texture_id string optional Texture ID or name. If not provided, uses selected texture.
source object required
target object required
brush_size number optional Copy brush size. [min: 1, max: 100]
opacity number optional Copy opacity (0-255). [min: 0, max: 255]
mode "copy" | "sample" | "pattern" optional Copy brush mode. (default: "copy")

eraser_tool

experimental destructive

Eraser Tool

Erases parts of textures with customizable settings.

Name Type Required Description
texture_id string optional Texture ID or name. If not provided, uses selected texture.
coordinates object[] required Array of coordinates to erase at.
brush_size number optional Eraser brush size. [min: 1, max: 100]
opacity number optional Eraser opacity (0-255). [min: 0, max: 255]
softness number optional Eraser softness percentage. [min: 0, max: 100]
shape "square" | "circle" optional Eraser shape.
connect_strokes boolean optional Whether to connect erase strokes with lines. (default: true)

paint_settings

experimental destructive

Paint Settings

Configures paint mode settings and preferences.

Name Type Required Description
mirror_painting object optional Mirror painting settings.
lock_alpha boolean optional Lock alpha channel while painting.
pixel_perfect boolean optional Enable pixel perfect drawing.
paint_side_restrict boolean optional Restrict painting to current face side.
color_erase_mode boolean optional Enable color erase mode.
brush_opacity_modifier "none" | "pressure" | "tilt" optional Brush opacity modifier for stylus.
brush_size_modifier "none" | "pressure" | "tilt" optional Brush size modifier for stylus.
paint_with_stylus_only boolean optional Only allow painting with stylus input.
pick_color_opacity boolean optional Pick opacity when using color picker.
pick_combined_color boolean optional Pick combined layer colors.

paint_with_brush

experimental destructive

Paint with Brush

Paints on textures using the brush tool with customizable settings.

Name Type Required Description
texture_id string optional Texture ID or name. If not provided, uses selected texture.
coordinates object[] required Array of coordinates to paint at.
brush_settings object optional Brush settings to apply.
connect_strokes boolean optional Whether to connect paint strokes with lines. (default: true)

create_brush_preset

experimental destructive

Create Brush Preset

Creates a custom brush preset with specified settings.

Name Type Required Description
name string required Name of the brush preset.
size number optional Brush size. [min: 1, max: 100]
opacity number optional Opacity (0-255). [min: 0, max: 255]
softness number optional Brush softness percentage. [min: 0, max: 100]
shape "square" | "circle" optional Brush shape.
color string optional Brush color as hex string.
blend_mode "default" | "set_opacity" | "color" | "behind" | "multiply" | "add" | "screen" | "overlay" | "difference" optional Brush blend mode.
pixel_perfect boolean optional Enable pixel perfect drawing.

load_brush_preset

experimental destructive

Load Brush Preset

Loads and applies a brush preset by name.

Name Type Required Description
preset_name string required Name of the brush preset to load.

texture_selection

experimental destructive

Texture Selection

Creates, modifies, or manipulates texture selections for painting.

Name Type Required Description
action "select_rectangle" | "select_ellipse" | "select_all" | "clear_selection" | "invert_selection" | "expand_selection" | "contract_selection" | "feather_selection" required Selection action to perform.
texture_id string optional Texture ID or name. If not provided, uses selected texture.
coordinates object optional Selection area coordinates.
radius number optional Radius for expand/contract/feather operations.
mode "create" | "add" | "subtract" | "intersect" optional Selection mode. (default: "create")

texture_layer_management

experimental destructive

Texture Layer Management

Creates, manages, and manipulates texture layers.

Name Type Required Description
action "create_layer" | "delete_layer" | "duplicate_layer" | "merge_down" | "set_opacity" | "set_blend_mode" | "move_layer" | "rename_layer" | "flatten_layers" required Layer management action.
texture_id string optional Texture ID or name. If not provided, uses selected texture.
layer_name string optional Name of the layer.
opacity number optional Layer opacity percentage. [min: 0, max: 100]
blend_mode "normal" | "multiply" | "screen" | "overlay" | "soft_light" | "hard_light" | "color_dodge" | "color_burn" | "darken" | "lighten" | "difference" | "exclusion" optional Layer blend mode.
target_index number optional Target position for moving layers.

Project

create_project

stable destructiveopen-world

Create Project

Creates a new project with the given name and project type.

Name Type Required Description
name string required
format string optional Project format ID from Blockbench's Formats registry. (default: "bedrock_block")

Textures

create_texture

experimental destructiveopen-world

Create Texture

Creates a new texture with the given name and size.

Name Type Required Description
name string required
width number optional (default: 16) [min: 16, max: 4096]
height number optional (default: 16) [min: 16, max: 4096]
data string optional Path to the image file or data URL.
group string optional
fill_color number[] | string | string optional RGBA color to fill the texture, as tuple or HEX string.
layer_name string optional Name of the texture layer. Required if fill_color is set.
pbr_channel "color" | "normal" | "height" | "mer" optional PBR channel to use for the texture. Color, normal, height, or Metalness/Emissive/Roughness (MER) map.
render_mode "default" | "emissive" | "additive" | "layered" optional Render mode for the texture. Default, emissive, additive, or layered. (default: "default")
render_sides "auto" | "front" | "double" optional Render sides for the texture. Auto, front, or double. (default: "auto")

apply_texture

stable destructive

Apply Texture

Applies the given texture to the element with the specified ID.

Name Type Required Description
id string required ID or name of the element to apply the texture to.
texture string required ID or name of the texture to apply.
applyTo "all" | "blank" | "none" optional Apply texture to element or group. (default: "blank")

add_texture_group

experimental destructive

Add Texture Group

Adds a new texture group with the given name.

Name Type Required Description
name string required
textures string[] optional Array of texture IDs or names to add to the group.
is_material boolean optional Whether the texture group is a PBR material or not. (default: true)

list_textures

stable read-only

List Textures

Returns a list of all textures in the Blockbench editor.

No parameters

get_texture

stable read-only

Get Texture

Returns the image data of the given texture or default texture.

Name Type Required Description
texture string optional Texture ID or name. If not provided, uses selected texture.

create_pbr_material

experimental destructive

Create PBR Material

Creates a new PBR material (texture group with is_material=true) and optionally assigns textures to PBR channels. Use this for Minecraft Bedrock resource packs or any format supporting PBR.

Name Type Required Description
name string required Name of the material.
color_texture string optional Texture ID/name for the color (albedo) channel.
normal_texture string optional Texture ID/name for the normal map channel.
height_texture string optional Texture ID/name for the height/displacement map channel.
mer_texture string optional Texture ID/name for the MER (Metalness/Emissive/Roughness) channel.
color_value number[] optional Uniform RGBA color [R,G,B,A] when no color texture is provided. [minItems: 4, maxItems: 4]
mer_value number[] optional Uniform MER values [Metalness, Emissive, Roughness] (0-255) when no MER texture is provided. [minItems: 3, maxItems: 3]
subsurface_value number optional Subsurface scattering value (0-255) for Bedrock 1.21.30+ materials. [min: 0, max: 255]

configure_material

experimental destructive

Configure Material

Configures an existing PBR material's properties including channel assignments, uniform values, and subsurface scattering.

Name Type Required Description
material string required Material name or UUID to configure.
color_texture string optional Texture ID/name for the color channel, or 'none' to use uniform color.
normal_texture string optional Texture ID/name for the normal map, or 'none' to remove.
height_texture string optional Texture ID/name for the height map, or 'none' to remove.
mer_texture string optional Texture ID/name for MER channel, or 'none' to use uniform values.
color_value number[] optional Uniform RGBA color [R,G,B,A] when no color texture. [minItems: 4, maxItems: 4]
mer_value number[] optional Uniform MER values [Metalness, Emissive, Roughness] (0-255). [minItems: 3, maxItems: 3]
subsurface_value number optional Subsurface scattering value (0-255). [min: 0, max: 255]

list_materials

stable read-only

List Materials

Lists all PBR materials (texture groups with is_material=true) and their assigned textures per channel.

No parameters

get_material_info

stable read-only

Get Material Info

Gets detailed information about a PBR material including the compiled texture_set.json preview for Bedrock export.

Name Type Required Description
material string required Material name or UUID.

import_texture_set

experimental destructiveopen-world

Import Texture Set

Imports a Minecraft Bedrock texture_set.json file and creates a PBR material with the associated textures.

Name Type Required Description
path string required Path to the .texture_set.json file to import.

assign_texture_channel

experimental destructive

Assign Texture Channel

Assigns a texture to a specific PBR channel within a material.

Name Type Required Description
material string required Material name or UUID.
texture string required Texture name or UUID to assign.
channel "color" | "normal" | "height" | "mer" required PBR channel to assign the texture to.

save_material_config

experimental destructiveopen-world

Save Material Config

Saves the material's texture_set.json file to disk (Bedrock format). Requires the color texture to have a valid file path.

Name Type Required Description
material string required Material name or UUID to save.

UI Interaction

trigger_action

experimental destructiveopen-world

Trigger Action

Triggers an action in the Blockbench editor.

Name Type Required Description
action string required Action ID from Blockbench's BarItems registry.
confirmDialog boolean optional Whether or not to automatically confirm any dialogs that appear as a result of the action. (default: true)
confirmEvent string optional Stringified form of event arguments.

risky_eval

stable destructiveopen-world

Eval

Evaluates the given expression and logs it to the console. Do not pass `console` commands as they will not work.

Name Type Required Description
code string required JavaScript code to evaluate. Do not pass `console` commands or comments.

emulate_clicks

experimental destructiveopen-world

Emulate Clicks

Emulates clicks on the given interface elements.

Name Type Required Description
position object required
drag object optional Drag options. If set, will perform a drag from position to 'to'.

fill_dialog

experimental destructiveopen-world

Fill Dialog

Fills the dialog with the given values.

Name Type Required Description
values string required Stringified form of values to fill the dialog with.
confirm boolean optional Whether to confirm or cancel the dialog after filling it. True to confirm, false to cancel. (default: true)

UV Mapping

set_mesh_uv

experimental destructive

Set Mesh UV

Sets UV coordinates for mesh faces or vertices.

Name Type Required Description
mesh_id string required ID or name of the mesh.
face_key string required Face key to set UV for.
uv_mapping Record<string, number[]> required UV coordinates for each vertex of the face.

auto_uv_mesh

experimental destructive

Auto UV Mesh

Automatically generates UV mapping for selected mesh faces.

Name Type Required Description
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
mode "project" | "unwrap" | "cylinder" | "sphere" optional UV mapping mode: project from view, unwrap, cylinder, or sphere mapping. (default: "project")
faces string[] optional Specific face keys to UV map. If not provided, maps all selected faces.

rotate_mesh_uv

experimental destructive

Rotate Mesh UV

Rotates UV coordinates of selected mesh faces.

Name Type Required Description
mesh_id string optional ID or name of the mesh. If not provided, uses selected mesh.
angle "-90" | "90" | "180" optional Rotation angle in degrees. (default: "90")
faces string[] optional Specific face keys to rotate UV for. If not provided, rotates all selected faces.

Hytale Integration

hytale_get_format_info

experimental read-only

Get Hytale Format Info

Returns information about the current Hytale format. Requires the Hytale plugin and a Hytale format project to be active.

No parameters

hytale_validate_model

experimental read-only

Validate Hytale Model

Validates the current Hytale model against Hytale engine constraints (node count, UV sizes, etc.).

No parameters

hytale_set_cube_properties

experimental

Set Hytale Cube Properties

Sets Hytale-specific properties on a cube: shading_mode (flat, standard, fullbright, reflective) and double_sided.

Name Type Required Description
cube_id string optional ID or name of the cube. If not provided, uses selected cube.
shading_mode "flat" | "standard" | "fullbright" | "reflective" optional Shading mode: flat (no lighting), standard (normal), fullbright (emissive), reflective
double_sided boolean optional Whether to render both sides of faces

hytale_get_cube_properties

experimental read-only

Get Hytale Cube Properties

Gets Hytale-specific properties from a cube (shading_mode, double_sided).

Name Type Required Description
cube_id string optional ID or name of the cube. If not provided, uses selected cube.

hytale_create_quad

experimental

Create Hytale Quad

Creates a Hytale quad (2D plane) with a specified normal direction. Quads are single-face elements useful for flat surfaces.

Name Type Required Description
name string required Name for the quad
position number[] optional Position [x, y, z] (default: [0,0,0]) [minItems: 3, maxItems: 3]
normal "+X" | "-X" | "+Y" | "-Y" | "+Z" | "-Z" optional Normal direction: +X, -X, +Y, -Y, +Z, -Z (default: "+Y")
size number[] optional Size [width, height]. (default: [16,16]) [minItems: 2, maxItems: 2]
group string optional Parent group/bone name
double_sided boolean optional Whether to render both sides (default: true)

hytale_list_attachments

experimental read-only

List Hytale Attachments

Lists all attachment collections in the current Hytale project.

No parameters

hytale_set_attachment_piece

experimental

Set Attachment Piece

Marks or unmarks a group as an attachment piece. Attachment pieces attach to like-named bones in the main model.

Name Type Required Description
group_name string required Name of the group to mark as attachment piece
is_piece boolean required Whether the group is an attachment piece

hytale_list_attachment_pieces

experimental read-only

List Attachment Pieces

Lists all groups marked as attachment pieces.

No parameters

hytale_create_visibility_keyframe

experimental

Create Visibility Keyframe

Creates a visibility keyframe for a bone. Hytale supports toggling node visibility at keyframes.

Name Type Required Description
bone_name string required Name of the bone/group.
time number required Time in seconds for the keyframe
visible boolean required Whether the bone is visible at this keyframe
animation_id string optional Animation UUID or name. If not provided, uses current animation.

hytale_set_animation_loop

experimental

Set Animation Loop Mode

Sets the loop mode for a Hytale animation. Hytale supports "loop" (continuous) or "hold" (freeze on last frame).

Name Type Required Description
animation_id string optional Animation UUID or name. If not provided, uses current animation.
loop_mode "loop" | "hold" | "once" required Loop mode: loop (continuous), hold (freeze on last frame), once (play once)

hytale_set_cube_stretch

experimental

Set Cube Stretch

Sets the stretch values for a cube. Hytale uses stretch instead of float sizes for better UV handling.

Name Type Required Description
cube_id string optional ID or name of the cube. If not provided, uses selected cube.
stretch number[] required Stretch values [x, y, z]. [minItems: 3, maxItems: 3]

hytale_get_cube_stretch

experimental read-only

Get Cube Stretch

Gets the stretch values for a cube.

Name Type Required Description
cube_id string optional ID or name of the cube. If not provided, uses selected cube.

Prompts

blockbench_native_apis

stable

Essential information about Blockbench v5.0 native API security model and requireNativeModule() usage. Use this when working with Node.js modules, file system access, or native APIs in Blockbench plugins.

No arguments

blockbench_code_eval_safety

stable

Critical safety guide for agents using code evaluation/execution tools with Blockbench v5.0+. Contains breaking changes, quick reference, common mistakes, and safe code patterns for native module usage.

No arguments

model_creation_strategy

stable

Model Creation Strategy

A strategy for creating a new 3D model in Blockbench.

Name Type Required Description
format "java_block" | "bedrock" optional Target model format.
approach "ui" | "programmatic" | "import" optional Creation approach to use.

hytale_model_creation

experimental

Hytale Model Creation Guide

Comprehensive guide for creating Hytale character and prop models. Covers format selection, node limits, shading modes, stretch, quads, and best practices.

Name Type Required Description
format_type "character" | "prop" | "both" optional Which format type to focus on. (default: "both")

hytale_animation_workflow

experimental

Hytale Animation Workflow

Guide for creating animations for Hytale models. Covers 60 FPS timing, quaternion rotations, visibility keyframes, loop modes, and common animation patterns.

Name Type Required Description
animation_type "walk" | "idle" | "attack" | "general" optional Type of animation to focus on. (default: "general")

hytale_attachments

experimental

Hytale Attachments System

Guide for creating and managing attachments in Hytale models. Covers attachment collections, piece bones, modular equipment, and best practices.

No arguments

Resources

projects

Blockbench Projects

projects://{id}

Returns information about available projects in Blockbench. Use without an ID to list all projects, or provide a project UUID/name to get details about a specific project.

nodes

Blockbench Nodes

nodes://{id}

Returns the current nodes in the Blockbench editor.

textures

Blockbench Textures

textures://{id}

Returns information about textures in the current Blockbench project. Use without an ID to list all textures, or provide a texture UUID/name to get details about a specific texture.

reference_models

Reference Models

reference_models://{id}

Returns information about reference models in the current Blockbench project. Requires the Reference Models plugin.

validator-status

Validator Status

validator://status

Returns the current validation status including error/warning counts and a summary of all problems.

validator-checks

Validator Checks

validator://checks/{id}

Returns information about registered validator checks. Use without an ID to list all checks, or provide a check ID to get details about a specific check.

validator-warnings

Validator Warnings

validator://warnings

Returns all current validation warnings with element references where available.

validator-errors

Validator Errors

validator://errors

Returns all current validation errors with element references where available.

hytale-format

Hytale Format Information

hytale://format

Returns comprehensive information about the current Hytale format, including format type, block size, node limits, and feature support.

hytale-attachments

Hytale Attachments

hytale://attachments/{id}

Returns information about attachment collections in the current Hytale project.

hytale-pieces

Hytale Attachment Pieces

hytale://pieces/{id}

Returns information about groups marked as attachment pieces. Attachment pieces connect to like-named bones in the main model.

hytale-cubes

Hytale Cubes

hytale://cubes/{id}

Returns information about cubes with Hytale-specific properties (shading_mode, double_sided, stretch).