blender-iso-mcp
Generates turnkey game engine manifests, spritesheets, and collision data for Babylon.js, enabling direct integration of isometric assets into Babylon.js projects.
Provides procedural 2:1 dimetric isometric scene generation, NPR cel-shading, avatar turnaround rendering, and game engine asset exports by controlling Blender through a WebSocket bridge.
Generates turnkey game engine manifests, spritesheets, and collision data for Three.js, enabling direct integration of isometric assets into Three.js projects.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@blender-iso-mcpBuild a modular isometric dungeon tileset with NPR shading"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
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 build2. 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.py3. 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 |
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
WorldBlueprintEntityparses elevations0through9($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_avatarandblender_iso_render_turnaroundtools 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
TypeScript MCP Server (
server/presentation/mcp/server.ts) — A Model Context Protocol server exposing typed JSON-RPC tools over standard I/O.Native Blender Addon (
addon/__init__.py) — An asynchronous WebSocket server running inside Blender that executes parametric modeling and rendering.Domain Core (
server/domain/) — Pure business logic, 2:1 dimetric projection mathematics, immutable value objects, and collision diamond calculations.Infrastructure Storage and Exporters (
server/infrastructure/) — Multi-engine export adapters, safe path sanitization, and canonical directory resolution.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 |
|
| Native Extension System ( |
Node.js |
|
| Full native support for ES Modules, |
Package Manager |
|
|
|
MCP Client Runtime |
| Any system with | No package manager required at runtime. Claude Desktop, Cursor, and Antigravity execute |
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 buildConfiguration
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
CLI Flags (Highest Priority): Pass flags directly via the client
argsarray or terminal:"args": [ "dist/presentation/mcp/server.js", "--port=9880", "--host=127.0.0.1" ]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" }Local
.envFile: Place a.envfile in the project root for local testing or custom deployment profiles:BLENDER_PORT=9876 BLENDER_HOST=127.0.0.1 BLENDER_TIMEOUT_MS=20000Zero-Config Auto-Detection (Default): If no configuration is provided, the server defaults to
127.0.0.1:9876and automatically discovers the Blender executable from systemPATHand standard installation directories across Windows, macOS, and Linux.
Configuration Reference
Option (CLI Flag) | Short Flag | Environment Variable | Default | Description |
|
|
|
| WebSocket port for bridge communication with Blender. |
|
|
|
| Loopback IP address for secure local WebSocket transport. |
|
|
| System Auto-Detect | Absolute path to the Blender executable (versions 3.6 LTS to 5.2+ LTS). |
|
|
| None | Shared secret token for WebSocket authentication when isolation is required. |
| None |
|
| 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-isoType:
commandCommand:
node dist/presentation/mcp/server.js
Register the server using the command-line interface:
agy mcp add blender-iso node dist/presentation/mcp/server.jsInstall 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 |
|
| Generates a complete virtual room diorama with furniture, lighting, and web engine integration manifests. |
|
| Generates a stylized humanoid voxel character with eight-direction turnaround sprite renders. |
|
| Produces an atomic 2:1 isometric asset catalog with collision diamonds and engine manifests. |
|
| Configures the dimetric camera rig, transparent background, and sun lighting in the active scene. |
|
| Generates parametric 3D isometric tile geometry based on standard dimetric grid templates. |
|
| Applies a cel-shaded non-photorealistic material with custom color bands and contour lines. |
|
| Renders multi-angle orthographic sprites and generates engine-ready texture atlas manifests. |
|
| Extracts 2D render passes including Albedo, Depth, Normal 2D, and Shadow Mask for runtime shaders. |
| 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.
Open
examples/interactive-viewer/index.htmlin any modern web browser.Click any location on the diorama to navigate. The client converts screen coordinates into 2:1 dimetric grid cells using inverse projection.
Observe real-time depth sorting. The avatar walks behind elevated bar counters and in front of rear walls based on its scalar depth value.
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 aSecurityError.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 | Start Blender in background mode with the addon active before connecting your MCP client. |
Blender executable not found | Define |
Path traversal rejected with | Provide a relative path inside the repository root or update permitted roots in |
Transparent background renders black | Call |
Avatar sprite renders flipped | Verify that the target angle matches the cardinal order defined in |
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 toolsblender_iso_apply_npr_materialC
Applies stylized non-photorealistic pixel/toon shading and palette quantization to objects
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | ||
| pixelSnap | No | ||
| outlineWidth | No | ||
| shadingSteps | No | ||
| smoothNormals | No | ||
| targetObjectName | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| passes | Yes | ||
| baseName | No | baked_passes | |
| tileWidth | No | ||
| objectName | Yes | ||
| outputDirectory | No | output/blender/passes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| tileWidth | No | ||
| archetypes | No | ||
| outputDirectory | No | output/isometric-assets | |
| manifestFileName | No | isometric_assets_manifest.json |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | ||
| width | No | ||
| palette | No | ||
| tileSize | No | ||
| furniture | No | ||
| floorStyle | No | checkerboard | |
| wallHeight | No | ||
| renderOutput | No | output/blender/rooms/social_room.png | |
| resolutionWidth | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | IsoAvatar | |
| scale | No | ||
| baseName | No | avatar | |
| hairColor | No | #4a2c11 | |
| skinColor | No | #fcd5b4 | |
| tileWidth | No | ||
| directions | No | ||
| pantsColor | No | #1e293b | |
| shirtColor | No | #00f0ff | |
| shoesColor | No | #111827 | |
| tileHeight | No | ||
| outputDirectory | No | output/blender/turnarounds |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | IsometricTile | |
| tileType | Yes | ||
| unitSize | No | ||
| unitHeight | No | ||
| subdivisions | No | ||
| generateCollision | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| includeCameras | No | ||
| includeObjects | No | ||
| includeMaterials | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| baseName | No | turnaround | |
| tileWidth | No | ||
| directions | No | ||
| objectName | Yes | ||
| exportTarget | No | universal | |
| outputDirectory | No | output/blender/turnarounds |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| unitSize | No | ||
| tileWidth | No | ||
| clearScene | No | ||
| colorManagement | No | Standard | |
| ambientOcclusion | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | synthesized_world | |
| seed | No | ||
| theme | No | art_deco_cyberpunk | |
| palette | No | ||
| blueprint | Yes | ||
| tileWidth | No | ||
| includePreview | No |
TDQS
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.
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.
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.
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.
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.
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.
10 tool updates
v0.9.0- First observed
blender_iso_apply_npr_material - First observed
blender_iso_bake_2d_passes - First observed
blender_iso_bake_assets - First observed
blender_iso_build_room - First observed
blender_iso_create_avatar - First observed
blender_iso_create_tile - First observed
blender_iso_inspect_scene - First observed
blender_iso_render_turnaround - First observed
blender_iso_setup_scene - First observed
blender_iso_synthesize_world
TDQS
Scored across 10 tools
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.
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.
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.
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
Related MCP Connectors
AI game assets for agents: consistent sprites, 2D animations, tiles, maps, music and engine exports.
Generate game assets with AI for 2D games, including sprites, tilesets, and animations.
Turn prompts into production-ready game assets: animated characters, textures, terrain, VFX, HUD.
Generate game assets with AI: sprites, 3D models, animations, sound effects, music, and voices.
Related MCP Servers
- FlicenseAqualityDmaintenanceGenerates 2D game assets (sprites, icons, tilesets, characters, animations) using AI workflows powered by ComfyUI with support for viewpoint control, style presets, and Unity export.132-
- AlicenseAqualityBmaintenanceEnables AI assistants to procedurally generate, edit, quantize, and export 2D retro pixel art textures and tilesets for game development, with built-in palettes, dithering, and pixel-level manipulation tools.14MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to control Blender through 150+ tools across 24 modules, including modeling, materials, lighting, animation, rendering, mesh quality analysis, and visual feedback, plus expert prompts and goal-first workflow management.209MIT

Sprixen MCP serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to create style-locked game projects and generate sprites, animations, tiles, maps, music, 3D models, and VFX, then export engine-ready packages for Godot, Phaser, Unity, GameMaker, or RPG Maker MZ.MIT