AgentSkillsCN

blockbench-mcp-overview

概述Blockbench MCP服务器工具、资源与提示词。无论是了解MCP的完整功能集、学习各工具之间的协同运作,还是在启动新的Blockbench项目时,本技能都能为您提供全面指导。它覆盖了建模、动画、纹理、PBR、UI、相机等各个领域,并详细介绍了它们各自的MCP接口。

SKILL.md
--- frontmatter
name: blockbench-mcp-overview
description: Overview of the Blockbench MCP server tools, resources, and prompts. Use to understand the full MCP capability set, learn how tools work together, or when starting a new Blockbench project. Covers all domains (modeling, animation, texturing, PBR, UI, camera) and their MCP interfaces.

Blockbench MCP Overview

Complete guide to the Blockbench MCP server for AI-assisted 3D modeling.

What is Blockbench MCP?

An MCP server that exposes Blockbench functionality to AI agents through:

  • Tools: Actions that create, modify, or query the 3D model
  • Resources: Read-only data endpoints for model information
  • Prompts: Reusable guidance for specific workflows

Tool Categories

DomainToolsPurpose
Animation7Keyframes, rigs, curves, timeline
Camera3Screenshots, camera control
Cubes2Cube creation and modification
Elements5Groups, outliner, duplication
Import1GeoJSON import
Mesh11Spheres, cylinders, extrusion, vertices
Paint12Brushes, fill, shapes, layers
Texture13Textures, PBR materials
UI4Actions, evaluation, dialogs
UV3UV mapping
Hytale12Hytale-specific (requires plugin)

Resources

ResourceURI PatternData
projectsprojects://{id}Project info, formats
texturestextures://{id}Texture metadata
nodesnodes://{id}3D node data
hytale-formathytale://formatHytale format info
hytale-attachmentshytale://attachments/{id}Attachment collections
hytale-pieceshytale://pieces/{id}Attachment pieces
hytale-cubeshytale://cubes/{id}Hytale cube properties

Prompts

PromptPurpose
blockbench_native_apisBlockbench v5.0 API security guide
blockbench_code_eval_safetySafe code evaluation patterns
model_creation_strategyModel creation guidance
hytale_model_creationHytale modeling guide
hytale_animation_workflowHytale animation guide
hytale_attachmentsHytale attachments guide

Quick Start Workflows

Create a Simple Model

code
# 1. Create project
create_project: name="my_model", format="bedrock"

# 2. Create texture
create_texture: name="skin", width=64, height=64

# 3. Add bone structure
add_group: name="root", origin=[0, 0, 0]
add_group: name="body", parent="root", origin=[0, 12, 0]

# 4. Add geometry
place_cube: elements=[{name: "torso", from: [-4, 12, -2], to: [4, 24, 2]}], group="body"

# 5. Apply texture
apply_texture: id="torso", texture="skin"

# 6. View result
capture_screenshot

Create and Animate

code
# 1. Build model (see above)

# 2. Create animation
create_animation: name="idle", animation_length=2.0, loop=true

# 3. Add keyframes
manage_keyframes: bone_name="body", channel="rotation",
  keyframes=[
    {time: 0, values: [0, 0, 0]},
    {time: 1.0, values: [0, 5, 0]},
    {time: 2.0, values: [0, 0, 0]}
  ]

# 4. Play animation
animation_timeline: action="play"

Paint a Texture

code
# 1. Create texture
create_texture: name="block", width=16, height=16, fill_color="#8B4513"

# 2. Add details
draw_shape_tool: shape="rectangle", start={x: 2, y: 2}, end={x: 14, y: 14}, color="#A0522D"
paint_with_brush: coordinates=[{x: 8, y: 8}], brush_settings={color: "#654321", size: 2}

# 3. View texture
get_texture: texture="block"

Tool Patterns

Information Gathering

code
list_outline            # View model hierarchy
list_textures           # View textures
list_materials          # View PBR materials
hytale_get_format_info  # View Hytale format (if active)

Modification Pattern

Most modification tools follow:

  1. Identify target by ID or name
  2. Specify changes
  3. Changes are recorded for undo

Screenshot Workflow

code
set_camera_angle: position=[0, 20, 50], rotation=[0, 0, 0], projection="perspective"
capture_screenshot      # 3D view only
capture_app_screenshot  # Entire Blockbench window

Evaluation (Advanced)

code
risky_eval: code="Cube.all.length"  # Query Blockbench directly
trigger_action: action="undo"       # Trigger Blockbench actions

Domain Integration

Model + Texture

code
# Create model
place_cube: elements=[{name: "block", from: [0,0,0], to: [16,16,16]}]

# Create texture
create_texture: name="block_tex", width=16, height=16

# Paint texture
paint_fill_tool: texture_id="block_tex", x=0, y=0, color="#00FF00", fill_mode="element"

# Apply
apply_texture: id="block", texture="block_tex"

Model + Animation

code
# Create bone hierarchy (important for animation)
add_group: name="root", origin=[0, 0, 0]
add_group: name="arm", parent="root", origin=[4, 12, 0]

# Add geometry to bones
place_cube: elements=[{name: "arm_geo", from: [0, 0, -1], to: [2, 10, 1]}], group="arm"

# Animate the bone
create_animation: name="wave", animation_length=1.0
manage_keyframes: bone_name="arm", channel="rotation",
  keyframes=[{time: 0, values: [0, 0, 0]}, {time: 0.5, values: [0, 0, 90]}]

PBR Material Workflow

code
# Create textures for each channel
create_texture: name="stone_color", width=16, height=16
create_texture: name="stone_normal", width=16, height=16, fill_color="#8080FF"
create_texture: name="stone_mer", width=16, height=16, fill_color=[0, 0, 200, 255]

# Create material
create_pbr_material: name="stone", textures={
  color: "stone_color",
  normal: "stone_normal",
  mer: "stone_mer"
}

# Configure
configure_material: material_id="stone", config={
  metalness_emissive_roughness: {metalness: 0, emissive: 0, roughness: 0.9}
}

Error Handling

Tools throw descriptive errors with suggestions:

  • Element not found: "Use list_outline tool to see available elements"
  • Texture not found: "Use list_textures tool to see available textures"
  • Invalid format: "Current project is not using a Hytale format"

Best Practices

  1. Query first: Use list_* tools to understand current state
  2. Build hierarchy: Create bone structure before geometry
  3. Set origins: Place group origins at pivot points for animation
  4. Name elements: Use descriptive names for easy reference
  5. Validate: Use hytale_validate_model for Hytale projects
  6. Screenshot: Capture progress with capture_screenshot

Tool Status

  • stable: Production-ready
  • experimental: Working but may change

Most tools are experimental but functional. Check tool annotations for current status.