Skip to main content
Glama

blender-iso-mcp

Model Context Protocol bridge for 2:1 dimetric isometric NPR assets and virtual rooms in Blender

Procedural 2:1 dimetric isometric scene generation, non-photorealistic NPR cel-shading, avatar turnaround rendering, and game engine integration for Blender.

License: Apache 2.0 Node.js Blender Tests TypeScript Package Manager: pnpm

Quickstart · Features · Archetypes · Components · Installation · Client Setup · Tools Reference · Viewer · Specifications · Security


Quickstart

Three steps: install dependencies, start the Blender bridge, and connect your client.

1. Install Dependencies and Build

# Using pnpm (recommended)
pnpm install && pnpm run build

# Or using standard npm
npm install && npm run build

2. Start Blender in Background Mode

# macOS
/Applications/Blender.app/Contents/MacOS/Blender --background --python scripts/blender_bridge_server.py

# Linux
blender --background --python scripts/blender_bridge_server.py

# Windows
blender.exe --background --python scripts\blender_bridge_server.py

3. Configure Your Client

{
  "mcpServers": {
    "blender-iso": {
      "command": "node",
      "args": [
        "dist/presentation/mcp/server.js"
      ],
      "env": {
        "BLENDER_HOST": "127.0.0.1",
        "BLENDER_PORT": "9876"
      }
    }
  }
}
{
  "mcp.servers": {
    "blender-iso": {
      "command": "node",
      "args": [
        "dist/presentation/mcp/server.js"
      ]
    }
  }
}
agy mcp add blender-iso node dist/presentation/mcp/server.js
{
  "mcp": {
    "servers": {
      "blender-iso": {
        "command": "node",
        "args": ["dist/presentation/mcp/server.js"]
      }
    }
  }
}

Note: Ensure Blender runs with the bridge addon active before issuing commands through your client.


Related MCP server: text2d

Table of Contents


Features

Capability

Description

2:1 Dimetric Camera Rig

Calibrated Euler rotation (60°, 0°, 45°) with exact tangent slope and scale synchronization.

Procedural Room Synthesis

Automated virtual social lounges with ergonomic furniture, multi-tier platforms, and capacity metrics.

Stylized NPR Cel-Shading

Palette-indexed non-photorealistic materials with defined silhouette outlines and zero sampling noise.

Multi-Angle Avatar Pipeline

Eight-direction character turnarounds rendered in subpixel dimetric projection.

2D Lighting Pass Decomposition

Automated extraction of Albedo, Normal 2D, Depth Map, and Shadow Mask for dynamic runtime shaders.

Turnkey Game Engine Manifests

Direct integration files for Phaser, PixiJS, Three.js, Babylon.js, Excalibur, and Godot 4 TileSets.

Subpixel Collision Diamonds

Mathematically exact 2:1 collision polygon coordinates, interactive seat registries, and waypoints.

Enterprise OWASP Hardening

Strict path traversal defenses, null-byte filtering, loopback network binding, and execution timeouts.


Universal Isometric Game Archetypes

While virtual lounges and social rooms serve as comprehensive architectural stress tests (validating complex occlusions, multi-tiered $Z$ platforms, and seating collisions), blender-iso-mcp is architected as an engine-agnostic 2:1 dimetric asset and world pipeline. It natively caters to any game genre operating within the dimetric 2:1 projection plane:

graph LR
    MCP["blender-iso-mcp<br/>Parametric Engine"] --> A["Dungeon Crawlers & ARPGs<br/>(Diablo / Torchlight / Hades 2D)"]
    MCP --> B["Turn-Based Tactical RPGs<br/>(FF Tactics / Tactics Ogre)"]
    MCP --> C["Tycoons & City Builders<br/>(SimCity 2000 / Theme Hospital)"]
    MCP --> D["Survival & Isometric Sandbox<br/>(Project Zomboid style)"]
    MCP --> E["Modular Props & Vehicles<br/>(8-Angle Turnarounds)"]

1. ARPGs & Procedural Dungeon Crawlers (Diablo / Torchlight Style)

  • Stone Tileways & Catacombs: Generate modular dungeon floors, stone masonry walls, wall arches, and underground stairs with discrete collision polygons.

  • Dynamic 2D Lighting Normal-Maps: Using blender_iso_bake_passes, each tile and dungeon prop exports Albedo, Normal Map, Depth, and Shadow Mask passes. Web and native engines (Godot 4, Phaser, PixiJS) can illuminate 2D dungeon corridors with dynamic real-time torch light.

2. Turn-Based Tactical RPGs (Final Fantasy Tactics / Tactics Ogre Style)

  • Discrete Stepped Elevation Grids: The WorldBlueprintEntity parses elevations 0 through 9 ($Z = \text{digit} \times 0.25$), generating stepped cliffs, plateaus, and cardinal ramp slopes (^, v, <, >).

  • Subpixel Diamond Collision: Every tile quadrant exports its exact mathematical centroid and diamond vertices, allowing tactical game engines to compute jumping range, projectile trajectory arcs, and line-of-sight without manual mapping.

3. Tycoons & Management Sims (SimCity 2000 / RollerCoaster Tycoon / Theme Hospital)

  • Modular Building Units: Combine perimeter walls, interior dividers, staircases, and functional props (counters, desks, chairs, technical stations) to synthesize custom facilities.

  • Topographical Grids: Create continuous rolling terrain with stepped elevations and multi-layered infrastructure.

4. Survival & Isometric Sandbox (Project Zomboid Style)

  • Reinforced Enclosures: Generate boarded windows, modular barricades, perimeter fences, and doorways with exact anchor pivots.

  • 8-Direction Character Pipelines: The blender_iso_create_avatar and blender_iso_render_turnaround tools generate full 8-angle turnaround spritesheets for players, NPCs, zombies, and vehicles.

5. Architectural Non-Goals (Scope Boundaries)

To ensure optimal performance and specialized fidelity, the project maintains strict boundaries:

  • No Runtime 3D Meshes: The system never exports heavy 3D geometry (GLTF/FBX) for runtime rendering; it produces optimized 2D spritesheets, atlas manifests, and collision coordinates.

  • No Photorealistic Ray-Tracing: Tailored for non-photorealistic stylized rendering (Cel-Shading, Toon, and Pixel Art) with zero sampling noise.

  • No Perspective Cameras: Operates strictly within the calibrated dimetric 2:1 orthographic camera rig ($\arctan(0.5) \approx 26.565^\circ$).


Components

  1. TypeScript MCP Server (server/presentation/mcp/server.ts) — A Model Context Protocol server exposing typed JSON-RPC tools over standard I/O.

  2. Native Blender Addon (addon/__init__.py) — An asynchronous WebSocket server running inside Blender that executes parametric modeling and rendering.

  3. Domain Core (server/domain/) — Pure business logic, 2:1 dimetric projection mathematics, immutable value objects, and collision diamond calculations.

  4. Infrastructure Storage and Exporters (server/infrastructure/) — Multi-engine export adapters, safe path sanitization, and canonical directory resolution.

  5. Interactive Web Viewer (examples/interactive-viewer/index.html) — A standalone HTML5 canvas application with real-time 2:1 depth sorting and click-to-walk navigation.


Installation

Supported Versions

Technology

Supported Version Range

Recommended

Details

Blender

3.6 LTS to 5.2+ LTS

5.2+ LTS or 4.2+ LTS

Native Extension System (blender_manifest.toml) on 4.2+ / 5.2+. Classic addon on 3.6 – 4.1.

Node.js

20.0.0 to 24.x+

20.x LTS or 22.x LTS

Full native support for ES Modules, node:test, node:assert, and crypto APIs across Active LTS.

Package Manager

pnpm, npm, or bun

pnpm >=8.0

npm install && npm run build works out of the box with zero extra configuration.

MCP Client Runtime

node binary only

Any system with node

No package manager required at runtime. Claude Desktop, Cursor, and Antigravity execute node dist/presentation/mcp/server.js directly.

Build Steps

Clone the repository and compile the TypeScript source files.

# Via SSH (recommended)
git clone git@github.com:fr4ncisx/blender-mcp.git
cd blender-mcp

# Or via HTTPS
git clone https://github.com/fr4ncisx/blender-mcp.git
cd blender-mcp

# With pnpm (recommended)
pnpm install
pnpm run build

# Or with standard npm
npm install
npm run build

Configuration

The server resolves runtime parameters dynamically with zero required setup, following a deterministic four-tier precedence hierarchy:

$$\text{CLI Flags} \succ \text{Process Environment (MCP Client JSON)} \succ \text{Local \texttt{.env}} \succ \text{Zero-Config Defaults}$$

Precedence Hierarchy & Methods

  1. CLI Flags (Highest Priority): Pass flags directly via the client args array or terminal:

    "args": [
      "dist/presentation/mcp/server.js",
      "--port=9880",
      "--host=127.0.0.1"
    ]
  2. Process Environment (MCP Client JSON): Injected per-process by your AI client (Claude Desktop, Cursor, VS Code) without polluting your host operating system:

    "env": {
      "BLENDER_PORT": "9876",
      "BLENDER_HOST": "127.0.0.1"
    }
  3. Local .env File: Place a .env file in the project root for local testing or custom deployment profiles:

    BLENDER_PORT=9876
    BLENDER_HOST=127.0.0.1
    BLENDER_TIMEOUT_MS=20000
  4. Zero-Config Auto-Detection (Default): If no configuration is provided, the server defaults to 127.0.0.1:9876 and automatically discovers the Blender executable from system PATH and standard installation directories across Windows, macOS, and Linux.

Configuration Reference

Option (CLI Flag)

Short Flag

Environment Variable

Default

Description

--port=<number>

-p <number>

BLENDER_PORT

9876

WebSocket port for bridge communication with Blender.

--host=<ip>

-h <ip>

BLENDER_HOST

127.0.0.1

Loopback IP address for secure local WebSocket transport.

--blender=<path>

-b <path>

BLENDER_PATH

System Auto-Detect

Absolute path to the Blender executable (versions 3.6 LTS to 5.2+ LTS).

--token=<secret>

-t <secret>

BLENDER_AUTH_TOKEN

None

Shared secret token for WebSocket authentication when isolation is required.

--timeout=<ms>

None

BLENDER_TIMEOUT_MS

15000

Communication timeout in milliseconds to prevent hung client calls.


Client Setup

Add the server definition to claude_desktop_config.json:

{
  "mcpServers": {
    "blender-iso": {
      "command": "node",
      "args": ["dist/presentation/mcp/server.js"],
      "env": {
        "BLENDER_HOST": "127.0.0.1",
        "BLENDER_PORT": "9876"
      }
    }
  }
}

Configure the MCP server in Settings → Features → MCP:

  • Name: blender-iso

  • Type: command

  • Command: node dist/presentation/mcp/server.js

Register the server using the command-line interface:

agy mcp add blender-iso node dist/presentation/mcp/server.js

Install the Model Context Protocol extension and add the entry to .vscode/settings.json:

{
  "mcp.servers": {
    "blender-iso": {
      "command": "node",
      "args": ["dist/presentation/mcp/server.js"]
    }
  }
}

Tools Reference

The server exposes nine declarative tools through the Model Context Protocol:

Tool

Parameters

Description

blender_iso_build_room

theme, roomScale, capacityTarget, palette, furniture, renderOutput

Generates a complete virtual room diorama with furniture, lighting, and web engine integration manifests.

blender_iso_create_avatar

name, directions, tileWidth, palette, outputDirectory

Generates a stylized humanoid voxel character with eight-direction turnaround sprite renders.

blender_iso_bake_assets

baseTileWidth, archetypes, outputDir, exportManifests

Produces an atomic 2:1 isometric asset catalog with collision diamonds and engine manifests.

blender_iso_setup_scene

resolutionWidth, unitSize, shadowColor, sunElevation

Configures the dimetric camera rig, transparent background, and sun lighting in the active scene.

blender_iso_create_tile

tileType, name, unitSize, unitHeight, subdivisions, generateCollision

Generates parametric 3D isometric tile geometry based on standard dimetric grid templates.

blender_iso_apply_npr_material

objectName, palette, outlineWidth, roughness

Applies a cel-shaded non-photorealistic material with custom color bands and contour lines.

blender_iso_render_turnaround

objectName, directions, tileWidth, outputDirectory, exportTarget

Renders multi-angle orthographic sprites and generates engine-ready texture atlas manifests.

blender_iso_bake_passes

objectName, resolutionWidth, passes, outputDirectory

Extracts 2D render passes including Albedo, Depth, Normal 2D, and Shadow Mask for runtime shaders.

blender_iso_inspect_scene

None

Returns topological telemetry, bounding box dimensions, and object hierarchies from the active scene.

Example Prompts

Intent

Prompt

Build an Art Déco social lounge

"Build an Art Déco social lounge with an elevated bar platform, velvet couches, and a central staircase."

Create a custom avatar

"Create an isometric humanoid avatar with brown hair, a teal shirt, and dark trousers in eight directions."

Bake an asset catalog

"Bake an atomic isometric asset library with sixty-four pixel width tiles and collision manifests."

Extract lighting passes

"Extract 2D normal and depth passes for the active room diorama."


Interactive Viewer

The repository includes a playable HTML5 canvas client located in examples/interactive-viewer/index.html.

  1. Open examples/interactive-viewer/index.html in any modern web browser.

  2. Click any location on the diorama to navigate. The client converts screen coordinates into 2:1 dimetric grid cells using inverse projection.

  3. Observe real-time depth sorting. The avatar walks behind elevated bar counters and in front of rear walls based on its scalar depth value.

  4. Toggle between rendered scenes using the room selector menu in the header.


Mathematical Specifications

Dimetric 2:1 Projection

The system enforces true 2:1 dimetric projection without perspective distortion:

  • Camera Rotation: Euler angles $X = 60.0^\circ, Y = 0.0^\circ, Z = 45.0^\circ$.

  • Projection Slope: $\arctan(0.5) \approx 26.565^\circ$.

  • Orthographic Scale: $\text{scale} = \sqrt{2} \cdot \text{unit_size}$.

  • Tile Aspect Ratio: $\text{height} = \lfloor \text{width} / 2 \rfloor$.

Subpixel Collision Diamonds

For a tile with width $W$ and height $H$, the four diamond vertices are calculated in clockwise order:

$$\left(\frac{W}{2}, 0\right), \quad \left(W, \frac{H}{2}\right), \quad \left(\frac{W}{2}, H\right), \quad \left(0, \frac{H}{2}\right)$$

Dynamic Depth Sorting

Sorting order between overlapping isometric sprites uses screen vertical position adjusted for elevation:

$$\text{depth} = \text{screenY} + (\text{elevation} \cdot 1000)$$


Security & OWASP Hardening

  • Path Traversal Defense: All output directories and file paths pass through SafePathSanitizer. Untrusted paths containing null bytes \0, directory traversal sequences .., or targets outside the project boundary trigger a SecurityError.

  • Loopback Isolation: The Blender WebSocket bridge binds exclusively to 127.0.0.1. Remote network interfaces cannot access the socket server.

  • Request Timeouts: Calls between the MCP server and Blender enforce a 15-second timeout, preventing denial of service lockups during long renders.


Troubleshooting

Problem

Fix

Connection refused on port 9876

Start Blender in background mode with the addon active before connecting your MCP client.

Blender executable not found

Define BLENDER_PATH in your environment or install Blender in the default platform directory.

Path traversal rejected with SecurityError

Provide a relative path inside the repository root or update permitted roots in SafePathSanitizer.

Transparent background renders black

Call blender_iso_setup_scene to enable transparent film rendering in the EEVEE Next engine.

Avatar sprite renders flipped

Verify that the target angle matches the cardinal order defined in getDirectionYaw.


Feedback

  • File bug reports and feature requests in the issue tracker.

  • Pull requests must pass the test suite with strict TypeScript compilation.


License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for the full license text.


Disclaimer

This project is an independent open-source tool. Blender is a registered trademark of the Blender Foundation. This tool is not affiliated with or endorsed by the Blender Foundation.


Precision 2:1 dimetric assets for web games and virtual worlds.

Available Tools

10 tools
blender_iso_apply_npr_materialC

Applies stylized non-photorealistic pixel/toon shading and palette quantization to objects

ParametersJSON Schema
NameRequiredDescriptionDefault
paletteYes
pixelSnapNo
outlineWidthNo
shadingStepsNo
smoothNormalsNo
targetObjectNameYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It indicates a mutating action, but does not disclose whether existing materials are replaced, whether node groups are created, whether the operation is reversible, or what happens to the target object's current shading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler or repetition. It is efficient, though the brevity comes at the cost of substantive guidance that is penalized in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, no annotations, and no output schema, this description is too thin to fully guide correct invocation. It omits workflow context, material replacement behavior, expected results, and any details about how parameters interact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description provides no explanation of the six parameters. It does not clarify what 'palette', 'pixelSnap', 'outlineWidth', 'shadingSteps', or 'smoothNormals' mean in context, leaving the agent to rely entirely on names and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Applies') and concrete effect ('stylized non-photorealistic pixel/toon shading and palette quantization') on a clear resource ('objects'). It is clearly distinct from the sibling tools, though it does not explicitly name or contrast any alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to apply this material versus using the other Blender ISO tools, no mention of workflow prerequisites, and no exclusions. The agent must infer usage entirely from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blender_iso_bake_2d_passesC

Bakes secondary 2D render passes (albedo, normal_2d, depth, shadow_mask) for isometric sprites

ParametersJSON Schema
NameRequiredDescriptionDefault
passesYes
baseNameNobaked_passes
tileWidthNo
objectNameYes
outputDirectoryNooutput/blender/passes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden for behavioral disclosure, but it does not mention side effects such as writing image files, overwriting outputs, or requiring an existing object/material setup. It merely states the action and the list of passes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single tight sentence with no filler. The verb, resource, pass list, and scope are all front-loaded, and every word contributes to the meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five parameters, no output schema, and no annotations, this description is far too sparse. It omits prerequisites, file-output behavior, naming conventions, return values, and how the tool interacts with the Blender scene, so an agent cannot reliably invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain objectName, baseName, tileWidth, and outputDirectory. It only repeats the pass names already present in the schema enum, adding no semantic value for the other four parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Bakes'), a specific resource ('secondary 2D render passes'), and the scope ('for isometric sprites'), and it enumerates the exact passes: albedo, normal_2d, depth, shadow_mask. This is specific enough to distinguish it from the broader sibling blender_iso_bake_assets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus alternatives such as blender_iso_bake_assets, nor are prerequisites or exclusions mentioned. The only usage signal is the implied context from the verb and resource.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blender_iso_bake_assetsC

Bakes 2:1 dimetric isometric asset definitions, mathematical collision diamonds, and engine manifests

ParametersJSON Schema
NameRequiredDescriptionDefault
tileWidthNo
archetypesNo
outputDirectoryNooutput/isometric-assets
manifestFileNameNoisometric_assets_manifest.json

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It lists outputs but does not disclose side effects, whether it writes or overwrites files, whether it requires an existing Blender scene, or whether the operation is destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the verb and direct object with no filler. The dense jargon ('2:1 dimetric', 'mathematical collision diamonds') slightly reduces scannability but every word contributes to the meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no annotations and no output schema, this description is under-specified. It does not explain what archetypes are valid for, what the manifest contains, how tileWidth affects output, or what an agent should expect after invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description mentions none of the four parameters by name. The schema names like tileWidth, archetypes, outputDirectory, and manifestFileName are somewhat self-explanatory, but the description adds no meaning about how they influence the bake or what values are expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation ('Bakes') and the specific outputs ('asset definitions, mathematical collision diamonds, and engine manifests'). It distinguishes this from the sibling tool blender_iso_bake_2d_passes by focusing on asset definitions and manifests rather than 2D passes. It is slightly jargon-heavy and doesn't clarify what 'bakes' means in terms of outputs or files, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus siblings such as blender_iso_create_tile, blender_iso_build_room, or blender_iso_bake_2d_passes. The description implies asset-pipeline usage but does not state conditions, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blender_iso_build_roomC

Declaratively builds a production-grade 2:1 dimetric isometric virtual avatar lounge with fine-density tiles, translucent glass shaders, ergonomic furniture with suspended legs, 50+ avatar capacity, and exports for web game frameworks (Phaser, Pixi, ThreeJS, Babylon, Excalibur)

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
widthNo
paletteNo
tileSizeNo
furnitureNo
floorStyleNocheckerboard
wallHeightNo
renderOutputNooutput/blender/rooms/social_room.png
resolutionWidthNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool 'builds' and 'exports', but does not disclose side effects such as file creation, scene mutation, Blender session requirements, or whether existing data is overwritten. The description is more of a feature list than a behavioral contract.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the main action, but it is dense with promotional adjectives like 'production-grade' and '50+ avatar capacity', which add bulk without clarifying tool behavior. It is not poorly structured, but it could be more concise and better organized into key behavior versus output details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 9 parameters, nested objects, no output schema, and no annotations, yet the description provides only a high-level feature summary. An agent would not know what the parameters mean, what the output looks like, what side effects occur, or what inputs are required, making the description inadequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for 9 undocumented parameters, but it does not explicitly explain depth, width, palette, tileSize, furniture, floorStyle, wallHeight, renderOutput, or resolutionWidth. The high-level phrases like 'fine-density tiles' and 'ergonomic furniture' only loosely hint at a couple of parameters and provide no actionable mapping.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('builds') and a specific resource ('virtual avatar lounge'), and adds concrete characteristics like '2:1 dimetric isometric' and 'exports for web game frameworks'. This clearly distinguishes it from sibling tools such as blender_iso_create_tile and blender_iso_setup_scene, which target narrower or different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives, and does not mention any exclusions or prerequisites. It only implies usage by describing what the tool builds, leaving the agent to infer the appropriate context from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blender_iso_create_avatarC

Procedurally builds and renders a 2:1 dimetric NPR stylized humanoid avatar in Blender with customizable palette, beveled hair, layered clothing, and generates 8-direction turnaround sprites

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoIsoAvatar
scaleNo
baseNameNoavatar
hairColorNo#4a2c11
skinColorNo#fcd5b4
tileWidthNo
directionsNo
pantsColorNo#1e293b
shirtColorNo#00f0ff
shoesColorNo#111827
tileHeightNo
outputDirectoryNooutput/blender/turnarounds

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose the main chain: procedural geometry, rendering, and sprite generation. But it is silent on consequential side effects such as whether it mutates or clears the current Blender scene, whether repeated runs accumulate or replace objects, whether it writes files to outputDirectory, and whether it depends on prior scene or material setup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single front-loaded sentence with the core verb chain first and no filler. The long modifier tail ('2:1 dimetric NPR stylized... beveled hair, layered clothing') is dense, but each element adds operation-relevant information and would be genuinely useful to an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-param procedural pipeline with zero annotations, no output schema, and 0% parameter documentation, the description leaves material gaps: prerequisites, scene-state effects, output file details, and how the step relates to blender_iso_render_turnaround and blender_iso_setup_scene. An agent can form an intention but not a safe, unambiguous invocation plan.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It loosely maps to the palette color parameters via 'customizable palette' and to the directions parameter via '8-direction,' but adds no meaning for scale, name, baseName, tileWidth, tileHeight, or outputDirectory. Its blanket '8-direction' claim also understates the directions enum's 4-or-8 choice.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb chain ('builds and renders') on a concrete resource ('2:1 dimetric NPR stylized humanoid avatar in Blender') plus a deliverable ('8-direction turnaround sprites'). However, it never distinguishes itself from the sibling blender_iso_render_turnaround, which appears to cover the same rendering/turnaround step, so an agent cannot rule out that sibling from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Offers no when-to-use or when-not-to-use guidance and names no alternatives, despite nine siblings including blender_iso_setup_scene (a likely prerequisite), blender_iso_apply_npr_material (NPR styling), and blender_iso_render_turnaround (rendering). The implicit reading that this is the all-in-one avatar path is plausible but unverified, leaving workflow sequencing and delegation to the agent's guesswork.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blender_iso_create_tileC

Generates 3D isometric tile geometry according to standard dimetric grid templates

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoIsometricTile
tileTypeYes
unitSizeNo
unitHeightNo
subdivisionsNo
generateCollisionNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It says the tool 'Generates' geometry, implying a creation operation, but it does not disclose whether it modifies the current scene, whether it replaces existing objects, whether it requires an active Blender context, or what the output looks like. The phrase 'standard dimetric grid templates' hints at template-based behavior but lacks concrete detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence and is concise, with no filler. However, it is under-specified: it earns conciseness points but sacrifices completeness. It is front-loaded with the main action, which is good, but the brevity leaves significant gaps.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given six parameters, no annotations, no output schema, and no usage guidance, the description is incomplete. An agent would not know how the parameters map to geometry, whether the tool mutates the scene, or what the return value is. The description is adequate only for a very high-level understanding of the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the six parameters, but it only mentions 'tile geometry' and 'dimetric grid templates' without explaining any parameter. The enum tileType values are self-explanatory to some degree, but the description does not clarify how unitSize, unitHeight, subdivisions, or generateCollision affect the generated geometry. The description adds almost no parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generates') and resource ('3D isometric tile geometry') and references 'standard dimetric grid templates', which gives the agent a clear sense of what the tool produces. It does not explicitly distinguish it from siblings like blender_iso_build_room or blender_iso_bake_assets, but the tile-generation focus is reasonably distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as blender_iso_build_room or blender_iso_bake_assets. It does not mention prerequisites, scene setup requirements, or typical workflows. The agent must infer usage from the name and schema alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blender_iso_inspect_sceneA

Inspects current Blender scene structure, objects, camera configuration, and active materials

ParametersJSON Schema
NameRequiredDescriptionDefault
includeCamerasNo
includeObjectsNo
includeMaterialsNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. 'Inspects' suggests a read-only operation, which is a moderate behavioral disclosure. However, it does not explicitly state that it does not modify anything, nor does it mention any prerequisites (e.g., an open scene) or side effects. This is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence with the primary action front-loaded. No filler or redundancy. Every word contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should clarify what the inspection returns (e.g., a summary, a list, full details). It does not, nor does it mention any prerequisites like having a scene open. For an inspection tool with three optional parameters, this is a gap—an agent knows what it inspects but not what it will receive or if any state is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the three boolean parameters. The description lists the areas inspected (objects, cameras, materials) which loosely correspond to the parameter names, but it does not explain how the include flags affect the output (e.g., whether they filter results or toggle detail levels). The agent cannot infer exact parameter behavior from the text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Inspects') and resource ('current Blender scene structure'), listing concrete aspects: objects, camera configuration, and active materials. This clearly distinguishes it from sibling tools like blender_iso_setup_scene or blender_iso_render_turnaround, which create or modify, not inspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The nature of the tool (inspection) implies it should be used to check scene state before making changes, but the description provides no explicit guidance on when to use it versus alternatives, nor any exclusions. It's an implied usage scenario, not a stated one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blender_iso_render_turnaroundC

Renders multi-angle isometric turnaround sprites and generates engine-ready atlas files

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNameNoturnaround
tileWidthNo
directionsNo
objectNameYes
exportTargetNouniversal
outputDirectoryNooutput/blender/turnarounds

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the primary behavior—rendering sprites and generating atlas files—but does not say whether it writes files to outputDirectory, overwrites existing files, depends on an existing Blender object, or modifies the scene. For a render/output-generation tool, this is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single tight sentence with no filler and starts with the core action. However, for a tool with six parameters and no schema descriptions, this brevity veers toward under-specification rather than appropriate conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and zero parameter descriptions, the context is incomplete. The description does not explain what objectName must refer to, what 'engine-ready atlas' means for each exportTarget, or how this tool fits into the broader Blender workflow, leaving too much for the agent to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining or at least hinting at parameter meaning. It mentions neither objectName, directions, exportTarget, tileWidth, outputDirectory, nor baseName, so an agent cannot infer that exportTarget selects an engine format or that directions controls the number of views.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Renders') and resource ('multi-angle isometric turnaround sprites') and names a concrete output ('engine-ready atlas files'). The word 'turnaround' helps distinguish it from sibling tools like blender_iso_create_tile or blender_iso_bake_2d_passes, though it does not explicitly name any alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus its siblings, no preconditions, and no workflow positioning. An agent cannot tell whether it should run after scene setup, before bake_assets, or instead of create_avatar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blender_iso_setup_sceneC

Configures Blender camera and scene for 2:1 dimetric isometric rendering

ParametersJSON Schema
NameRequiredDescriptionDefault
unitSizeNo
tileWidthNo
clearSceneNo
colorManagementNoStandard
ambientOcclusionNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description must carry the full behavioral burden. It only says 'Configures' without disclosing that clearScene defaults to true and may clear existing scene contents, that scene settings like colorManagement and ambientOcclusion will be changed, or whether the operation is destructive or reversible. This is a significant gap for a scene-mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. The key rendering style detail is front-loaded, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five configurable parameters, no annotations, and no output schema, one sentence is far too sparse. Missing context about the destructive clearScene default, the meaning of unitSize/tileWidth, and the effect of colorManagement/ambientOcclusion makes the definition incomplete for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description mentions none of the five parameters. It does not explain how unitSize or tileWidth affect the 2:1 setup, what clearScene does, or how colorManagement options differ, leaving the agent dependent on unstated assumptions about parameter meanings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Configures') and the target ('Blender camera and scene') along with a specific rendering style ('2:1 dimetric isometric rendering'). It is distinct from most sibling bake/render/create tools, but it does not explicitly contrast with potentially overlapping tools like blender_iso_build_room.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus the sibling tools, nor any prerequisites or exclusions. The phrase 'for 2:1 dimetric isometric rendering' implies a setup step, but it does not state whether it should run before rendering, baking, or building a room, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blender_iso_synthesize_worldB

Synthesizes a full-scale 2:1 dimetric isometric world from a semantic ASCII or JSON blueprint grid with procedural geometry, stairs, furniture, collisions, and web manifests

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNosynthesized_world
seedNo
themeNoart_deco_cyberpunk
paletteNo
blueprintYes
tileWidthNo
includePreviewNo

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It mentions the generated features (procedural geometry, stairs, furniture, collisions, web manifests) but does not explain side effects, such as scene modification, preconditions, or reversibility. The agent cannot anticipate whether it mutates the Blender scene or creates new assets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently packs core purpose and output details. It is not overly verbose and conveys essential information without waste, though a slight restructuring into two sentences could improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no annotations, no output schema), the description is incomplete. It neither specifies the exact format of the blueprint grid nor describes the output structure or return values. An agent would need additional information to call the tool correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the blueprint input as a grid, but it does not elaborate on the meaning of 'name', 'seed', 'theme', 'palette', 'tileWidth', or 'includePreview'. The description does not tie these parameters to the synthesis process, leaving the agent without complete guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: synthesizing a full-scale isometric world from a blueprint grid, listing distinct output components (procedural geometry, stairs, furniture, collisions, web manifests). This is specific and differentiates it from sibling tools focused on tiles, rooms, or avatars.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'full-scale 2:1 dimetric isometric world' implies usage for whole-world generation rather than individual elements, providing context. However, it does not explicitly state when to avoid this tool or name alternatives, leaving some inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.9.0
    • First observedblender_iso_apply_npr_material
    • First observedblender_iso_bake_2d_passes
    • First observedblender_iso_bake_assets
    • First observedblender_iso_build_room
    • First observedblender_iso_create_avatar
    • First observedblender_iso_create_tile
    • First observedblender_iso_inspect_scene
    • First observedblender_iso_render_turnaround
    • First observedblender_iso_setup_scene
    • First observedblender_iso_synthesize_world

TDQS

B3.3/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct stage of the isometric pipeline—scene setup, geometry creation, material application, rendering, and baking. Even seemingly similar tools like create_tile, build_room, and synthesize_world are clearly scoped to single tiles, rooms, and full worlds respectively.

Naming Consistency5/5

All tools use the consistent blender_iso_ prefix followed by a clear verb_noun snake_case pattern. Minor variations like bake_2d_passes versus bake_assets still follow the same structural convention, so naming is highly predictable.

Tool Count5/5

10 tools is within the optimal range and each covers a dedicated function in the asset-generation workflow. There are no redundant or filler tools, and the count matches the server's specialized Blender isometric purpose.

Completeness4/5

The set covers the full pipeline from scene configuration, geometry creation, NPR materials, rendering turnarounds, and baking passes and manifests. A minor gap is the absence of explicit update/cleanup operations, but inspect_scene provides read-only oversight and the core workflow has no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers