router_set_goalLABSCO SUMMARY
Vision suggests, measurement decides.
The design treats a screenshot as interpretation and the measure and assert tools as the truth layer, which is what keeps a modelling session from drifting on the model's own description of its work. Start every session with router_set_goal — the guided surface is deliberately small, and if a tool is not visible you are expected to find it with search_tools and run it through call_tool rather than guessing the name.
What it is
A Python MCP server plus a Blender addon. The server handles routing, validation and discovery; the addon runs the operation on Blender's main thread, which is where context-sensitive operators actually work.
What you get
- A small guided entry surface —
router_set_goal,router_get_status,browse_workflows,search_tools,call_tool— so the model is not flooded with the whole catalog - Task-sized macro tools such as
macro_cutout_recessfor openings,macro_relative_layoutfor placement, andmacro_finish_formfor bevel, subdivision and solidify passes - Grouped scene tools under readable names:
check_scene,inspect_scene,configure_scene - Deterministic verification via the
scene_measure_andscene_assert_families, so a result is checked rather than eyeballed - Read-only spatial artifacts:
scene_scope_graph,scene_relation_graph, andscene_view_diagnosticsfor projected extent, frame coverage and occlusion verdicts - Reference-image workflows:
reference_imagesto attach one, then staged comparison and correction against it
Requirements
Python 3.11+ and the blender-ai-mcp package, plus the Blender addon that executes the operations. Vision is pluggable: a local MLX runtime by default, or an external provider selected with VISION_EXTERNAL_PROVIDER and, if needed, VISION_EXTERNAL_CONTRACT_PROFILE. Prompt-only clients can turn on the prompt bridge with MCP_PROMPTS_AS_TOOLS_ENABLED.
Setup effort
One command — docker run -i --rm -v /tmp:/tmp -e BLENDER_AI_TMP_INTERNAL_DIR=/tmp -e BLENDER_AI_TMP_EXTERNAL_DIR=/tmp -e ROUTER_ENABLED=true -e MCP_SURFACE_PROFILE=llm-guided -e BLENDER_RPC_HOST=host.docker.internal ghcr.io/patrykiti/blender-ai-mcp:latest
USE CASES
Cutting an opening into a part
Set the goal first, then run the recess macro rather than composing boolean operators by hand.
Checking a placement is really correct
Inspect the scene, then measure and assert the relationship instead of trusting a rendered view.
Working towards a reference image
Attach the reference, compare the current stage against it from several views, and let the correction loop remember what it already tried.
Understanding what is where before moving anything
Pull the structural and pair-relation graphs, plus the view diagnostics, so the model has explicit spatial state rather than inferring it from names.
Starting from a clean file
Clear the scene through the guided utility path before you set the goal, rather than recovering mid-build.
11 tools
Listed in project docs. Your client may show a different list.
router_get_statusbrowse_workflowsreference_imagesscene_scope_graphscene_relation_graphscene_view_diagnosticssearch_toolscall_toollist_promptsget_promptBEFORE YOU INSTALL
What to know first
Tools you get
11 tools named in the project's documentation.
Requires
- docker on PATH
- The Blender AI addon, installed and enabled in Blender — it runs the RPC server on port 8765 that the container connects to (download blender_ai_mcp.zip from the project's Releases page, or build it with python scripts/build_addon.py)
INSTALLATION
Connect your client
Add the block to your client, or run the command directly.
Server setup
Configuration file
{
"mcpServers": {
"blender-ai-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/tmp:/tmp",
"-e",
"BLENDER_AI_TMP_INTERNAL_DIR=/tmp",
"-e",
"BLENDER_AI_TMP_EXTERNAL_DIR=/tmp",
"-e",
"ROUTER_ENABLED=true",
"-e",
"MCP_SURFACE_PROFILE=llm-guided",
"-e",
"BLENDER_RPC_HOST=host.docker.internal",
"ghcr.io/patrykiti/blender-ai-mcp:latest"
]
}
}
}docker
docker run -i --rm \
-v /tmp:/tmp \
-e BLENDER_AI_TMP_INTERNAL_DIR=/tmp \
-e BLENDER_AI_TMP_EXTERNAL_DIR=/tmp \
-e ROUTER_ENABLED=true \
-e MCP_SURFACE_PROFILE=llm-guided \
-e BLENDER_RPC_HOST=host.docker.internal \
ghcr.io/patrykiti/blender-ai-mcp:latest