Blockbench MCP Plugin
API Reference — v1.5.0
Installation
Tools
Cubes
place_cube
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. |
| 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. |
modify_cube
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. |
| from | number[] | optional | Starting point of the cube. |
| to | number[] | optional | Ending point of the cube. |
| rotation | number[] | optional | Rotation of the cube. |
| 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. |
| 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
Capture Screenshot
Returns the image data of the current view.
| Name | Type | Required | Description |
|---|---|---|---|
| project | string | optional | Project name or UUID. |
capture_app_screenshot
Capture App Screenshot
Returns the image data of the Blockbench app.
No parameters
set_camera_angle
Set Camera Angle
Sets the camera angle to the specified value.
| Name | Type | Required | Description |
|---|---|---|---|
| position | number[] | required | Camera position. |
| target | number[] | optional | Camera target position. |
| rotation | number[] | optional | Camera rotation. |
| projection | "unset" | "orthographic" | "perspective" | required | Camera projection type. |
Animation
create_animation
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 |
| 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
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
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. |
| 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
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
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). |
| loop_mode | "once" | "loop" | "hold" | optional | Loop mode for the animation. |
| range | object | optional | Time range for selection. |
batch_keyframe_operations
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. |
| 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
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
List Armatures
Lists all armatures in the current project with their basic info.
No parameters
get_armature
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. |
add_armature
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. |
| visibility | boolean | optional | |
| locked | boolean | optional | |
| add_initial_bone | boolean | optional | Whether to add an initial bone to the armature. |
remove_armature
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
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
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
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. |
add_armature_bone
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. |
| origin | number[] | optional | Position of the bone. Defaults to [0, parent.length, 0] for child bones. |
| rotation | number[] | optional | 3D vector [x, y, z]. |
| length | number | optional | Length of the bone. |
| width | number | optional | Width of the bone. |
| connected | boolean | optional | Whether bone is connected to parent. |
| color | integer | optional | Marker color index (0-7). |
remove_armature_bone
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. |
update_armature_bone
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. |
| rotation | number[] | optional | New rotation [x, y, z] in degrees. |
| length | number | optional | |
| width | number | optional | |
| connected | boolean | optional | |
| color | integer | optional | |
| visibility | boolean | optional | |
| locked | boolean | optional |
update_armature_bones_batch
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 |
select_armature_bones
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. |
| clear_selection | boolean | optional | Clear existing selection before selecting. |
get_vertex_weights
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
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. |
set_vertex_weights_batch
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
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
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
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]. |
| rotation | number[] | required | 3D vector [x, y, z]. |
| parent | string | optional | |
| visibility | boolean | optional | |
| autouv | "0" | "1" | "2" | optional | Auto UV setting. 0 = disabled, 1 = enabled, 2 = relative auto UV. |
| selected | boolean | optional | |
| shade | boolean | optional |
list_outline
List Outline
Returns a list of all groups and their children in the Blockbench editor.
No parameters
duplicate_element
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]. |
| newName | string | optional |
rename_element
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
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
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
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. |
list_material_instances
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
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. |
clear_material_instances
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. |
Mesh Editing
place_mesh
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. |
| texture | string | optional | Texture ID or name to apply to the mesh. |
| group | string | optional | Group/bone to which the mesh belongs. |
extrude_mesh
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. |
| mode | "faces" | "edges" | "vertices" | optional | What to extrude: faces, edges, or vertices. |
subdivide_mesh
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. |
create_sphere
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. |
| 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
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. |
move_mesh_vertices
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]. |
| vertices | string[] | optional | Specific vertex keys to move. If not provided, moves all selected vertices. |
delete_mesh_elements
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. |
| keep_vertices | boolean | optional | When deleting faces/edges, whether to keep the vertices. |
merge_mesh_vertices
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. |
| selected_only | boolean | optional | Whether to only merge selected vertices. |
create_mesh_face
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. |
| texture | string | optional | Texture ID or name to apply to the new face. |
create_cylinder
Create Cylinder
Creates one or more cylinder meshes with optional end caps.
| Name | Type | Required | Description |
|---|---|---|---|
| elements | object[] | required | |
| texture | string | optional | Texture ID or name. If not provided, uses selected texture. |
| group | string | optional | Group/bone ID or name. |
knife_tool
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. |
Paint Tools
paint_fill_tool
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). |
| tolerance | number | optional | Color tolerance for fill. |
| fill_mode | "color" | "color_connected" | "face" | "element" | "selected_elements" | "selection" | optional | Fill mode. |
| blend_mode | "default" | "set_opacity" | "color" | "behind" | "multiply" | "add" | "screen" | "overlay" | "difference" | optional | Fill blend mode. |
draw_shape_tool
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. |
| opacity | number | optional | Shape opacity (0-255). |
| blend_mode | "default" | "set_opacity" | "color" | "behind" | "multiply" | "add" | "screen" | "overlay" | "difference" | optional | Shape blend mode. |
gradient_tool
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). |
| blend_mode | "default" | "set_opacity" | "color" | "behind" | "multiply" | "add" | "screen" | "overlay" | "difference" | optional | Gradient blend mode. |
color_picker_tool
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. |
| pick_opacity | boolean | optional | Also pick and apply the pixel's opacity. |
copy_brush_tool
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. |
| opacity | number | optional | Copy opacity (0-255). |
| mode | "copy" | "sample" | "pattern" | optional | Copy brush mode. |
eraser_tool
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. |
| opacity | number | optional | Eraser opacity (0-255). |
| softness | number | optional | Eraser softness percentage. |
| shape | "square" | "circle" | optional | Eraser shape. |
| connect_strokes | boolean | optional | Whether to connect erase strokes with lines. |
paint_settings
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
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. |
create_brush_preset
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. |
| opacity | number | optional | Opacity (0-255). |
| softness | number | optional | Brush softness percentage. |
| 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
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
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. |
texture_layer_management
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. |
| 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
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. |
Textures
create_texture
Create Texture
Creates a new texture with the given name and size.
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | required | |
| width | number | optional | |
| height | number | optional | |
| 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. |
| render_sides | "auto" | "front" | "double" | optional | Render sides for the texture. Auto, front, or double. |
apply_texture
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. |
add_texture_group
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. |
list_textures
List Textures
Returns a list of all textures in the Blockbench editor.
No parameters
get_texture
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
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. |
| mer_value | number[] | optional | Uniform MER values [Metalness, Emissive, Roughness] (0-255) when no MER texture is provided. |
| subsurface_value | number | optional | Subsurface scattering value (0-255) for Bedrock 1.21.30+ materials. |
configure_material
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. |
| mer_value | number[] | optional | Uniform MER values [Metalness, Emissive, Roughness] (0-255). |
| subsurface_value | number | optional | Subsurface scattering value (0-255). |
list_materials
List Materials
Lists all PBR materials (texture groups with is_material=true) and their assigned textures per channel.
No parameters
get_material_info
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
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
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
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
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. |
| confirmEvent | string | optional | Stringified form of event arguments. |
risky_eval
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
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
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. |
UV Mapping
set_mesh_uv
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
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. |
| faces | string[] | optional | Specific face keys to UV map. If not provided, maps all selected faces. |
rotate_mesh_uv
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. |
| faces | string[] | optional | Specific face keys to rotate UV for. If not provided, rotates all selected faces. |
Hytale Integration
hytale_get_format_info
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
Validate Hytale Model
Validates the current Hytale model against Hytale engine constraints (node count, UV sizes, etc.).
No parameters
hytale_set_cube_properties
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
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
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] |
| normal | "+X" | "-X" | "+Y" | "-Y" | "+Z" | "-Z" | optional | Normal direction: +X, -X, +Y, -Y, +Z, -Z |
| size | number[] | optional | Size [width, height]. |
| group | string | optional | Parent group/bone name |
| double_sided | boolean | optional | Whether to render both sides |
hytale_list_attachments
List Hytale Attachments
Lists all attachment collections in the current Hytale project.
No parameters
hytale_set_attachment_piece
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
List Attachment Pieces
Lists all groups marked as attachment pieces.
No parameters
hytale_create_visibility_keyframe
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
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
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]. |
hytale_get_cube_stretch
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
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
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
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
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. |
hytale_animation_workflow
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. |
hytale_attachments
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).