Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions build/docs-manifest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import type { ToolSpec, PromptSpec, ResourceSpec } from "../lib/factories";
// Tool docs imports — each file exports schemas at module level with zero Blockbench deps
import { cameraToolDocs } from "../server/tools/camera";
import { cubeToolDocs } from "../server/tools/cubes";
import { displayToolDocs } from "../server/tools/display";
import { elementToolDocs } from "../server/tools/element";
import { importToolDocs } from "../server/tools/import";
import { meshToolDocs } from "../server/tools/mesh";
Expand All @@ -29,6 +30,7 @@ export const toolManifest: CategoryGroup[] = [
{ category: "Camera & Screenshots", tools: cameraToolDocs },
{ category: "Animation", tools: animationToolDocs },
{ category: "Armature", tools: armatureToolDocs },
{ category: "Display Settings", tools: displayToolDocs },
{ category: "Elements", tools: elementToolDocs },
{ category: "Export", tools: exportToolDocs },
{ category: "History", tools: historyToolDocs },
Expand Down
221 changes: 212 additions & 9 deletions docs/api.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.6.0",
"generatedAt": "2026-05-22T14:18:59.107Z",
"version": "1.7.0",
"generatedAt": "2026-07-03T17:35:32.369Z",
"tools": [
{
"name": "place_cube",
Expand Down Expand Up @@ -1983,6 +1983,201 @@
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "get_display_transform",
"title": "Get Display Transform",
"description": "Reads Java Edition display settings (Project.display_settings). Returns translation, rotation, scale, mirror and pivots for a single slot, or a summary of every populated slot when no slot is given. Never modifies state.",
"status": "experimental",
"category": "Display Settings",
"annotations": {
"readOnlyHint": true
},
"parameters": {
"$ref": "#/definitions/get_display_transform",
"definitions": {
"get_display_transform": {
"type": "object",
"properties": {
"slot": {
"type": "string",
"enum": [
"thirdperson_righthand",
"thirdperson_lefthand",
"firstperson_righthand",
"firstperson_lefthand",
"ground",
"gui",
"head",
"embedded",
"fixed",
"on_shelf"
],
"description": "Display slot to read. If omitted, returns every populated slot in the project.",
"markdownDescription": "Display slot to read. If omitted, returns every populated slot in the project."
}
},
"additionalProperties": false
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "set_display_transform",
"title": "Set Display Transform",
"description": "Writes a Java Edition display slot's transform (translation, rotation, scale, mirror, pivots). Creates the slot if it does not exist yet and wraps the change in an undo step. This edits data that ships in the exported model JSON — it changes the deliverable, not just the preview. Requires a format that supports display mode (e.g. Java Block/Item).",
"status": "experimental",
"category": "Display Settings",
"annotations": {
"destructiveHint": true
},
"parameters": {
"$ref": "#/definitions/set_display_transform",
"definitions": {
"set_display_transform": {
"type": "object",
"properties": {
"slot": {
"type": "string",
"enum": [
"thirdperson_righthand",
"thirdperson_lefthand",
"firstperson_righthand",
"firstperson_lefthand",
"ground",
"gui",
"head",
"embedded",
"fixed",
"on_shelf"
],
"description": "Display slot to modify.",
"markdownDescription": "Display slot to modify."
},
"translation": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Translation offset as [x, y, z] (Minecraft display units).",
"markdownDescription": "Translation offset as [x, y, z] (Minecraft display units)."
},
"rotation": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Rotation in degrees as [x, y, z].",
"markdownDescription": "Rotation in degrees as [x, y, z]."
},
"scale": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Scale factor as [x, y, z].",
"markdownDescription": "Scale factor as [x, y, z]."
},
"rotation_pivot": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Rotation pivot point as [x, y, z].",
"markdownDescription": "Rotation pivot point as [x, y, z]."
},
"scale_pivot": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Scale pivot point as [x, y, z].",
"markdownDescription": "Scale pivot point as [x, y, z]."
},
"mirror": {
"type": "array",
"items": {
"type": "boolean"
},
"minItems": 3,
"maxItems": 3,
"description": "Per-axis mirror flags as [x, y, z].",
"markdownDescription": "Per-axis mirror flags as [x, y, z]."
},
"reset": {
"type": "boolean",
"default": false,
"description": "Reset the slot to its default (identity) transform before applying any of the other values.",
"markdownDescription": "Reset the slot to its default (identity) transform before applying any of the other values."
}
},
"required": [
"slot"
],
"additionalProperties": false
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "enter_display_mode",
"title": "Enter Display Mode",
"description": "Switches Blockbench into Display mode, activates the given slot and optionally loads a reference model (player, zombie, armor stand, …), then returns a screenshot. Pair with set_camera_angle / capture_screenshot for multi-angle fit checks of cosmetics and handheld items. Requires a format that supports display mode.",
"status": "experimental",
"category": "Display Settings",
"annotations": {
"destructiveHint": true,
"openWorldHint": true
},
"parameters": {
"$ref": "#/definitions/enter_display_mode",
"definitions": {
"enter_display_mode": {
"type": "object",
"properties": {
"slot": {
"type": "string",
"enum": [
"thirdperson_righthand",
"thirdperson_lefthand",
"firstperson_righthand",
"firstperson_lefthand",
"ground",
"gui",
"head",
"embedded",
"fixed",
"on_shelf"
],
"description": "Display slot to switch to and activate.",
"markdownDescription": "Display slot to switch to and activate."
},
"reference": {
"type": "string",
"description": "Optional reference model to load for a fit check (e.g. 'player', 'zombie', 'armor_stand', 'baby_zombie', 'block'). Validated against the live reference model list; an unknown value returns the available names.",
"markdownDescription": "Optional reference model to load for a fit check (e.g. 'player', 'zombie', 'armor_stand', 'baby_zombie', 'block'). Validated against the live reference model list; an unknown value returns the available names."
}
},
"required": [
"slot"
],
"additionalProperties": false
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "remove_element",
"title": "Remove Element",
Expand Down Expand Up @@ -2038,8 +2233,13 @@
},
"minItems": 3,
"maxItems": 3,
"description": "3D vector [x, y, z].",
"markdownDescription": "3D vector [x, y, z]."
"description": "Pivot point of the group as [x, y, z].",
"markdownDescription": "Pivot point of the group as [x, y, z].",
"default": [
0,
0,
0
]
},
"rotation": {
"type": "array",
Expand All @@ -2048,8 +2248,13 @@
},
"minItems": 3,
"maxItems": 3,
"description": "3D vector [x, y, z].",
"markdownDescription": "3D vector [x, y, z]."
"description": "Rotation of the group in degrees as [x, y, z].",
"markdownDescription": "Rotation of the group in degrees as [x, y, z].",
"default": [
0,
0,
0
]
},
"parent": {
"type": "string",
Expand Down Expand Up @@ -2080,9 +2285,7 @@
}
},
"required": [
"name",
"origin",
"rotation"
"name"
],
"additionalProperties": false
}
Expand Down
Loading
Loading