Skip to content

Prompts

Nine prompts. Two are dispatch helpers (encode the message conventions so LLMs don’t have to remember them); seven are skeletal workflow guides (return reusable template text — entry points, not full bpy reference). All blender_-prefixed via MCPMixin.

Prompts are pure templates. None of them call the bus or dispatch anything — the LLM consumes the returned text and decides what to do.

Build a properly-formed blender_send_message call for executing Python in Blender via a job_dispatch payload.

blender_dispatch_script(
target: str,
script: str,
priority: str = "info",
description: str | None = None,
) -> list[PromptMessage]

Target syntax:

PrefixRoutingExample
uuid:<client-uuid>directuuid:blender-abc123
group:<group-id>groupgroup:render-cluster
type:<client_type>type_filtertype:blender
broadcastbroadcastbroadcast

Unknown prefixes render inline as <invalid target spec: ...> so the LLM can see the error rather than silently dropping the dispatch.

Returns a single user-role text message templating the blender_send_message call (target fields, priority, full payload shape with message_type: job_dispatch, job_id, script, optional description).

Emit the canonical MCP call shape for any of the 24 dispatch tools.

blender_dispatch_recipe(command: str) -> list[PromptMessage]

Inlines a per-command kwargs template + the standard return-shape doc so the LLM can call any dispatch tool without first running list_tools and parsing schema. Pass any of the 24 command names (e.g. "get_scene_info", "download_polyhaven_asset").

These return short reusable templates — patterns and decision trees, not exhaustive bpy reference. Use them as entry points for the LLM to plan an approach before committing to specific tool calls.

blender_script_writing_assistant(goal: str) -> list[PromptMessage]

bpy patterns relevant to goal: imports, context safety, the bpy.ops vs bpy.data vs bmesh decision tree, common operator vs data-API tradeoffs.

blender_modeling_workflow(object_type: str) -> list[PromptMessage]

Operator vs modifier vs bmesh vs Geometry Nodes decision tree for the named object type.

blender_rendering_setup(engine: str = "cycles") -> list[PromptMessage]

Setup checklist for the named render engine (cycles or eevee): engine selection, sampling, resolution, camera, world setup.

blender_material_creation(material_kind: str) -> list[PromptMessage]

Principled-BSDF skeleton with inline customization points keyed to material_kind (metal, plastic, glass, fabric, etc.).

blender_animation_basics(animation_type: str) -> list[PromptMessage]

Keyframes vs drivers vs constraints guide for the requested animation type.

blender_debug_assistant(error_text: str) -> list[PromptMessage]

Diagnose a Blender traceback. Covers common patterns: context errors, KeyError, AttributeError, pickle/segfault, blank result, mode-switch failures.

blender_asset_creation_strategy(asset_kind: str) -> list[PromptMessage]

Pipeline picker: Hyper3D vs PolyHaven vs Sketchfab vs manual modeling — when each is appropriate based on the asset kind requested.

Tools force the LLM through a wrapper that hides the underlying convention. Prompts surface the convention so the LLM can call the next tool (blender_send_message, blender_execute_code, blender_download_polyhaven_asset) directly with full visibility over routing, priority, and payload shape. Think of prompts as documentation the model can ask for inline.

  • Bus toolsblender_send_message, the call dispatch_script templates
  • Dispatch tools — the 24 named tools dispatch_recipe emits recipes for
  • Routing modes — direct / group / type_filter / broadcast
  • Priority levels — what to pass for priority
  • Use cases — concrete dispatch patterns these prompts accelerate