Skip to main content
Glama

Studio Agent Bridge

Native CAD and 3D tools for an agent team: Autodesk Fusion, Blender and Unreal Engine.

An MCP client can plan a model, execute native Python, inspect real geometry, revise the editable source, and move assets between applications. Every job retains measured evidence and artifact hashes. The included workflow assigns a planner, native modeler, geometry reviewer, interchange specialist and final reviewer.

The language model runs in your MCP client. This repository supplies the native execution layer, role handoffs and durable job state. It works with a single capable agent or a client that delegates to multiple agents; it does not bundle an LLM or require a separate inference API key.

Original complete robotics laboratory rendered in Blender

What actually runs

Native Rust graphics engine: Scenward Render draws all 961,191 grains and original Solo12 mesh geometry through wgpu/Metal, with shadows, material lighting, camera navigation and PNG capture. Measured recorded-cache playback: 57.17 frames/s at 1080p/4x MSAA on M4 Pro. The separate optimization study reduced full physics time by 16.03% and macOS physical footprint by 39.30%; an optional Rust raster step is 3.09x faster than its NumPy reference. Rendering FPS does not include physics computation.

Live Rust/Metal physics milestone: run the full Blender-lab case, with a fresh procedural seed, 961,191 GPU-integrated grains, native articulated Solo12 dynamics, 48 dynamic props and 1,619 imported render objects. Measured 2.4 simulated seconds took 75.84 wall seconds: live computation works, but physical real time is not yet achieved. Geometry counts, CPU/GPU checks and limitations are published separately from the playback FPS.

Measured live-loop diagnostics: opt-in GPU and host profiling separates solver passes, native robot stepping and completed rendering while retaining the complete scene. Published full-workload reports and a consistency checker guide the next optimization; profiling itself is not a speedup.

Solo12 walking with 961,191 simulated grains: the open-source Solo12 granular workflow includes the robot assets, CPU/Metal/CUDA/Vulkan particle solver, feedback crawl, recorded measurements, Blender rendering and video editing scripts. The recorded M4 Pro run traveled 0.578 m; the 16-second video is available without installation. A small CPU preset and CI checks help reproduce the workflow. This is offline, shallow-layer granular simulation with a load-bearing substrate; it is not a Cosmos/Newton port, calibrated sand model, learned policy, hardware validation or NVIDIA comparison.

Windows GPU routes: NVIDIA CUDA/OptiX and AMD Vulkan/HIP setup, with native Windows CPU CI and explicit device diagnostics. Full Windows GPU hardware validation remains pending.

Earlier physics cases remain available: the 604,800-grain walking case and original contact case.

Host

Native actions

Editable output

Tested locally

Autodesk Fusion

Parametric solid construction, archive inspection, parameter revision, export, API documentation and trusted Python

.f3d, sketches, dimensions, components and timeline

Fusion 2705.1.30

Blender

Scene construction, inspection, asset import/export, materials, animation, rendering and trusted Python

.blend, separate objects and retained modifiers

Blender 5.2.0 LTS

Unreal Engine

New project, FBX asset import, scene assembly, materials, lights, camera, sequence, inspection and trusted Python

.uproject, .uasset, .umap

Unreal 5.7.4

The original rover handoff contains 84 meshes and 40,176 triangles, with measured dimensions of 174 × 135.2 × 135.25 cm in Unreal. That scene has 90 actors and a four-second camera sequence; fresh-process inspection confirmed its saved camera binding. Its original checks used NullRHI. The complete laboratory below additionally exercises real GPU rendering and a substantially larger environment.

The Fusion enclosure has 8 solid bodies, 17 fully constrained sketches and 58 timeline entries. A width/height change produced a new native model measuring 180 × 100 × 80 mm, with the original file preserved. Exported F3D files are reopened and compared against seven geometry/history checks before the action is accepted as verified.

These original assets exercise the pipeline. Native scripts allow models beyond the examples, using the installed applications' exposed Python APIs. A script running successfully does not establish that an arbitrary design brief is complete; the client must compare the output with its requirements.

Related MCP server: Ceratops-Blender-MCP

Applied case: a complete robotics laboratory

Explore the detailed environment — native render gallery, interactive interior mesh, recorded checks and downloadable day/night Blender scenes with the reusable transfer bundle.

Inspection workcell update: explore the utility revision with six editable cable routes, measured endpoint attachments, separate Blender/Unreal close and wide views, and a native download. Fresh readback preserves the declared fields of 1,820 earlier meshes; a deliberately disconnected cable is rejected. The exact sanitized transfer contains 1,988 mesh instances and 182 reusable assets. Reproduce the native workflow and inspect its limits. This is visual geometry, without electrical operation or robot-motion safety claims; human visual acceptance remains pending. The original lab demo above is preserved separately.

The original laboratory contains complete architecture, an equipped robotics cell, an electronics bench, compute racks, utilities and original PBR surfaces: 1,571 mesh instances, 84 evaluated FBX prototypes, 17 materials, 18 texture maps and 253,920 placed triangles. Four native cameras and nine lights are retained in the interchange manifest. The editable Blender files preserve source curves, text, separate objects and bevel modifiers.

A chat-directed revision changed the lighting to evening and moved the diagnostic cart by 0.4 m. Both native scenes were reopened. Reversing the edit restored all lights exactly and the 28 cart components within floating-point tolerance. A fresh Blender import of the public GLB preserved mesh count, materials and measured bounds.

Unreal independently reopened the final saved level with 1,571 mesh actors, 84 shared mesh assets, 17 materials, nine lights and four cameras. All mesh bounds and instance placements passed the transfer checks. A real 1920 × 1080 GPU capture was inspected; the native operation exited successfully. PBR textures and original camera framing transfer, while renderer exposure and shadow appearance remain target-specific. Robot control, navigation baking and packaged gameplay are not part of this case.

The case exposed and fixed a real shared-mesh export failure: the initial GLB silently lost materials. The exporter now uses temporary evaluated prototypes and checks every object's material assignment. Geometry counts alone would not have caught the loss. See the environment workflow for chat prompts, native evidence and transfer limits.

Portable publication copies. The current native download is a separately verified v2 package. Its Blender scenes are resaved and reopened, and its FBX metadata refers to packaged files instead of the author's machine. The publication gate scans every archive member, including decompressed Blender data, and refuses to overwrite an existing version. The publication record distinguishes exact source-geometry comparisons, bounded floating-point differences in evaluated geometry, and a new Unreal transfer check. Original renders and historical execution hashes remain dated evidence; this follow-up makes no new appearance or performance claim. See the design and limits.

Reliability case: recovering interrupted native actions

Explore the recovery lab — step through recorded process interruptions, preserved effects and explicit reconciliation. The Python bridge and SQLite are real; these fault-injection traces use synthetic host adapters, not native modeling applications.

A durable action intent is published before run-directory allocation or native dispatch. Inspection uses a consistent database snapshot, avoiding false event-chain failures when another process commits concurrently. The new studio_recovery_report tool explains unresolved intent and preserved run directories without launching an editor or changing state. Recovery does not automatically replay an action or infer that an external process is idle.

See the recovery design, threat model and reproduction guide and the executable experiment. Native geometry evidence remains in the separate cases above and below.

Reliability case: editing the scene version you reviewed

Compare source-bound native revisions — compare matching-camera Blender renders, inspect the reviewed source identity and follow the recorded Unreal handoff.

An existing-scene Blender run_script request now requires expected_source_sha256. The adapter hashes the bytes copied into its run-local snapshot and rejects a stale source before launching Blender. A valid edit opens the preserved snapshot, saves a separate scene, and checks the source and snapshot independently after execution. Supplying the hash also enables this protection for inspection, rendering, export and imports into an existing scene.

The recorded case rejected a stale hash with zero Blender launches, then moved 28 cart components by 0.25 m while preserving the original source and 1,571 mesh instances. Fresh Blender processes confirmed the saved positions and matching-camera renders. Unreal reopened the transferred level with 1,571 mesh actors, 82 reusable mesh assets and 17 materials. The initial NullRHI build crashed in viewport actor placement; an explicit GPU-mode retry in a new destination and a separate reopen passed. This run verifies target structure, not Unreal appearance. The failed attempt remains in the public evidence.

Only the .blend bytes are pinned. The native gate rejects known unsupported external resources before running the edit script; supported resources must be packed. Read-only snapshot permissions are a cooperative safeguard, not OS immutability or a Python sandbox. Other scene-consuming actions remain available without a pin for compatibility and report that weaker mode. See the design and threat model and native reproduction case.

Follow-up: reject the known Unreal crash before launch. The adapter now blocks manifest-driven build_scene with NullRHI on macOS with detected Unreal 5.7.4. Two real requests launched no subprocesses and preserved the native project tree; the Engine still recorded their lifecycle. An explicitly selected GPU build and fresh inspection of the original public lab verified 1,571 mesh actors, 84 shared mesh assets, 17 materials, nine lights and four cameras. This separate run captured no Unreal image. Explore the five recorded actions, reproduce them, or read the compatibility decision and limits.

Applied case: a board mounting fixture

Open the browser demo — explore the actual exported 3D mesh, compare verified measurements, inspect the source evidence and download the native case. The browser visualizes geometry; parametric CAD editing remains in Fusion.

The Raspberry Pi 5 open tray case starts from an official public mechanical drawing and creates an original parametric fixture. Two native configurations were built, independently reopened and measured: 101 × 72 × 11 mm and 109 × 80 × 14 mm, each with one connected solid, 15 fully constrained sketches and 43 timeline entries. BRep checks verify bore centres, diameters, full depths and open relief. The actual exported mesh was transferred to Blender, scale-checked and rendered.

Original open mounting fixture, transferred from Fusion to Blender

The case includes reproducible scripts, source attribution, measured evidence and a parameter revision. It demonstrates a useful bench-fixture workflow; physical board fit, material/process suitability and production tolerances remain untested. The source itself labels its dimensions approximate reference data.

Quick start

Supported bridge platforms: macOS and Linux (POSIX host locks). Fusion requires a supported desktop installation; host availability varies by OS. Python 3.12+ is required. Native applications and their licenses are separate.

python3.12 -m venv .venv
.venv/bin/python -m pip install -r requirements.lock.txt
.venv/bin/python -m pip install --no-deps -e .
.venv/bin/studio-agent-bridge --workspace "$HOME/StudioAgentWorkspace" status

Use a dedicated modeling workspace outside this repository. Generated models, project files, logs and the SQLite job ledger stay there.

Configure your MCP client using the absolute paths for your installation:

{
  "mcpServers": {
    "studio-agent-bridge": {
      "command": "/absolute/path/studio-agent-bridge/.venv/bin/studio-agent-bridge",
      "args": ["--workspace", "/absolute/path/StudioAgentWorkspace", "serve"],
      "env": {"STUDIO_ALLOW_SCRIPTS": "1"}
    }
  }
}

STUDIO_ALLOW_SCRIPTS=1 enables explicitly trusted native Python with the user's application and filesystem privileges. It is not a sandbox. Use 0 to retain only the predefined operations. The server itself listens on stdio; Fusion's existing native server must be enabled on loopback. For long native builds, configure a client tool timeout of at least 600 seconds.

Start a conversation in your MCP client:

Use Studio Agent Bridge to build a parametric sensor enclosure in Fusion. Use a 160 × 100 mm base, a 45 mm housing height, 3 mm walls, four mounting holes, a removable lid and an optical aperture. Preserve editable sketches and dimensions. Reopen the F3D, test a parameter change and compare measured dimensions. Use the planner, modeler and reviewer roles.

Or:

Use Studio Agent Bridge to create an editable inspection rover in Blender, render it, export the asset to Unreal, create a lit presentation stage and camera sequence, then reopen both native projects and verify the transferred dimensions. Keep the Blender modifiers and report conversion losses.

For complete environments:

Create a detailed industrial robotics laboratory in Blender: 12 × 9 m, an equipped robotics cell, electronics benches, server racks and utilities. Model the architecture, assemblies, cable routes, vents, fittings and props; use original PBR materials, practical lights and three interior camera views. Inspect the renders, correct unfinished details, then transfer the complete scene to Unreal and reopen both native files. Keep everything editable and preserve versions for changes through chat.

Then continue naturally:

Keep the layout and objects. Create an evening lighting revision, bring the camera closer to the robot and save it separately from the daytime scene.

The environment workflow defaults to high detail. The chat agent handles planning, native scripts, visual review and revisions. The MCP server validates the structured brief and executes host actions; the user does not need to write scripts. Blockouts remain intermediate work, and numeric geometry checks do not substitute for visual inspection.

For a custom project, include dimensions, intended behavior, materials or style, target native files and acceptance checks. The client writes a workspace script and invokes run_script; each adapter's entry point is documented below.

Agent workflow

flowchart LR
  A[Brief and acceptance checks] --> B[Planner]
  B --> C[Native modeler]
  C --> D[Fusion / Blender / Unreal]
  D --> E[Save native files]
  E --> F[Reopen and inspect]
  F --> G[Geometry QA]
  G --> H[Interop and target measurements]
  H --> I[Reviewer]
  I -->|Change required| C
  I -->|Checks satisfied| J[Deliver models and evidence]

The MCP server exposes nine tools, three workflow prompts and resources for roles, capabilities and jobs. Jobs have revision checks and a SHA-256 event chain. A per-host process lock prevents two bridge agents from changing the same application at once. Interrupted actions require inspection and reconciliation; they are never blindly replayed.

Guide

Contents

MCP and CLI

Installation, tools, configuration, ledger, concurrency and recovery

Fusion

Parametric construction, revisions, native archives and Python entry point

Blender

Scene operations, native scripts, rendering and export validation

Unreal

Editor projects, FBX handoff, scene/sequence creation and native checks

Detailed environments

Chat briefs, complete Blender scenes, Unreal transfer, visual review and revisions

Source-bound revisions

Reviewed scene hashes, preserved snapshots, packed-resource limits and native edit evidence

Portable publication

Versioned native copies, metadata checks, model comparisons and preserved historical evidence

Validation

Recorded native acceptance results and test boundaries

Agent roles

Prompts for planning, modeling, geometry QA, interchange and review

Run a native example without an LLM

.venv/bin/studio-agent-bridge --workspace "$HOME/StudioAgentWorkspace" job create \
  --name enclosure --host fusion --goal "Create and verify an editable enclosure"

# Replace JOB_ID with the returned id.
.venv/bin/studio-agent-bridge --workspace "$HOME/StudioAgentWorkspace" run \
  --job JOB_ID --revision 1 --action create_demo --parameters '{}'

Use returned artifact paths for revisions and handoffs. These commands generate a deterministic acceptance example; natural-language design is performed by the connected client agent.

Tests

.venv/bin/python -m pytest -q
.venv/bin/ruff check src tests examples

The ordinary suite checks orchestration, paths, failures, revisions, locks and real MCP stdio negotiation. Native integration is separate and needs the applications. Reports distinguish a known failure, a blocked precondition, an unverified execution and measured success. File hashes prove identity, not engineering correctness.

Scope

This is a local native tooling project, not a CAD kernel, remote rendering service or replacement for engineering review. Fusion feature history remains in F3D; mesh formats do not preserve it. Blender modifiers remain editable in the native blend file and are evaluated during export. Unreal Python automates the editor rather than gameplay runtime. Arbitrary scripts are privileged and should only come from a trusted client.

All bundled fixture geometry and example code are original portfolio work. Third-party numerical reference facts are attributed in the applied case. No employer/client assets or proprietary source are included. MIT covers this repository's original code; application licences and source notices remain separate.

Available Tools

9 tools
studio_create_jobB

Create a durable single-host modeling job; use one job per host in an interop plan.

NameRequiredDescriptionDefault
goalYes
hostYes
nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/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 burden. 'Durable' hints at persistence, but nothing is said about permissions, idempotency, name-uniqueness constraints, what happens if the host job already exists, or what state the job starts in.

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 tight sentence with the verb and resource front-loaded and the usage rule trailing. Nothing is redundant or padded.

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 output schema relieves the description of explaining return values, but for a mutation tool with zero annotations and three undocumented required parameters, the description is too thin. An agent cannot tell what to put in 'goal' or what guarantees 'durable' provides.

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 all three required parameters rely on the description, which explains none of them. 'Single-host' loosely implies the host parameter, but 'goal' and 'name' are entirely undefined — no format, no constraints, no examples (e.g., a natural-language objective vs. an enum).

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?

Names a specific verb ('Create') and a specific resource ('durable single-host modeling job'), and 'single-host' implicitly contrasts with the multi-host planning siblings. It stops short of naming an actual sibling, but the resource is concrete enough to distinguish it.

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?

'Use one job per host in an interop plan' gives a cardinality rule that implies this tool is invoked repeatedly, once per host, after planning. It never states when to prefer this over studio_plan_workflow or studio_execute_action, nor any prerequisites such as requiring an existing plan.

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

studio_execute_actionB

Execute one serialized native action and validate output evidence. Revision is required.

Paths in parameters are relative to STUDIO_WORKSPACE. Scripts require server-side opt-in. Blender run_script with input_blend also requires expected_source_sha256 from the reviewed artifact. Return status describes this action, not completion of every project goal.

NameRequiredDescriptionDefault
actionYes
job_idYes
parametersYes
expected_revisionYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description does substantial work: it discloses the serialization/concurrency constraint, the mandatory revision check, workspace-relative path resolution, the opt-in gate for scripts, the extra integrity requirement (expected_source_sha256) for Blender run_script with input_blend, and the narrow meaning of the returned status. It still omits side effects, reversibility, and failure modes for the mutating actions.

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?

Roughly five short sentences, front-loaded with the core operation and followed by preconditions in decreasing generality. No filler; the only weakness is that the line-wrapped fragment structure makes the precondition list slightly harder to scan than a single ordered sentence would.

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

Completeness3/5

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

An output schema exists, so return values needn't be described, and the status caveat is a nice addition. But for a tool multiplexing ten distinct actions with an untyped parameters object, the description leaves too much unspecified: no action-by-action parameter contract and no preconditions or side effects for the destructive actions. Adequate as a policy statement, incomplete as an invocation guide.

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 parameters field is free-form with additionalProperties, so the description must carry the load — yet it only explains workspace-relative paths and names two keys (input_blend, expected_source_sha256) for one action. The per-action shape of 'parameters' for the other nine enum values, and the semantics of job_id and expected_revision, are left unaddressed.

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 concrete verb and resource: execute one serialized native action and validate output evidence. The 'serialized' qualifier differentiates it from the planning/inspection siblings, which don't run actions. It stops short of naming or contrasting siblings explicitly, and never enumerates what the ten actions mean.

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?

Several preconditions are implied ('Revision is required', scripts need server-side opt-in), and 'Return status describes this action, not completion of every project goal' is a useful interpretive rule for an agent reading results. But there is no statement of when to pick this over the other studio_* tools, no per-action eligibility rules, and no when-not-to-use guidance.

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

studio_inspect_jobC

Read durable state and verify event-chain/snapshot consistency.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/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 does at least imply a read-only inspection and discloses that it performs consistency verification, which is meaningful behavioral context. However, it says nothing about whether verification has side effects, cost/rate characteristics, or error behavior for inconsistent chains. The output schema handles return-value explanation.

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?

A single short sentence with no waste, but it is under-specified rather than efficient; the brevity buys no clarity and omits basic scoping information the agent needs.

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

Completeness3/5

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

Because an output schema exists, return values needn't be described, and a one-parameter read tool is simple enough that this is nearly adequate. Still, with eight sibling tool and zero annotation coverage, the definition leaves key questions (what state, when to prefer it over studio_status or studio_reconcile_job) unanswered.

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?

There is one required parameter (job_id) at 0% schema description coverage, and the description adds nothing about it — no format, no source, no example. With coverage this low, the description should have compensated by explaining what a job_id refers to and how to obtain one, and it does not.

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

Purpose3/5

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

It gives verbs (read, verify) and objects (durable state, event-chain/snapshot consistency), so the general intent is inferable from the name plus text. But it never says the resource is a job, and 'durable state' is abstract jargon that could mean many things. Nothing distinguishes it from close siblings like studio_status, studio_recovery_report, or studio_reconcile_job.

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 statement of when to call this versus the many other studio_* introspection tool, no prerequisites, and no exclusions. The agent must guess whether this is a pre-recovery check, a general status read, or a diagnostic.

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

studio_list_artifactsC

List all completed-action artifacts and recheck their current SHA-256 and size.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It adds useful behavioral context by saying it rechecks current SHA-256 and size and scopes to completed-action artifacts, but it does not state whether the operation is read-only, whether rechecking updates stored metadata, or what happens if artifacts are missing.

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 front-loaded sentence with no wasted text. It leads with the primary action ('List') and appends the verification behavior efficiently.

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 is simple and has an output schema, so return-value explanation is not required. However, with no annotations, an undocumented required job_id, and no usage guidance, the description leaves important context missing 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?

The only required parameter is job_id, and schema description coverage is 0%. The description never mentions job_id or explains that the listed artifacts are scoped to that job, so it does not compensate for the undocumented parameter.

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 and resource: it lists completed-action artifacts and rechecks their SHA-256 and size. This is clear enough to distinguish from status/job-planning siblings by the artifact-focused purpose, but it does not explicitly name or compare against alternatives.

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 studio_inspect_job or studio_status. The phrase 'completed-action artifacts' implies a post-completion verification use case, but the description gives no exclusions or alternative routing.

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

studio_plan_environmentB

Plan a detailed editable environment built in Blender and transferred to Unreal.

The chat client performs the modeling through native actions. Defaults target high detail, complete occupied zones, PBR surfaces and multi-view visual review. This returns requirements, not a scene or evidence of completion.

NameRequiredDescriptionDefault
briefYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/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. It does disclose the key trait that this produces requirements rather than a scene, and that modeling happens client-side through native actions — valuable. It omits whether planning is idempotent, how the seed influences output, and any side effects or limits of the planning step.

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?

Four short sentences, front-loaded with the core purpose, with no filler. Tight and readable, though the defaults sentence is somewhat vague in what it is asserting.

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

Completeness3/5

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

An output schema exists, so return-value explanation is not required, and the description does cover the pipeline role and the 'requirements not evidence' caveat. For a tool whose sole parameter is a complex nested brief with no property descriptions, the description leaves too much of the input semantics unaddressed.

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 coverage is 0% across roughly nine nested brief properties (goal, seed, style, zones, detail, size_m, target, triangle_budget, reference_policy, texture_resolution), and the description explains none of them individually. It mentions 'defaults target high detail' and 'complete occupied zones' vaguely, but an agent cannot learn what triangle_budget or reference_policy mean from the description.

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 and resource ("Plan a detailed editable environment") and names the pipeline, Blender then Unreal. It stops short of naming a sibling such as studio_plan_workflow to disambiguate, so differentiation relies on the agent inferring from 'environment'.

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?

"This returns requirements, not a scene or evidence of completion" usefully signals this is a planning step that must be followed by actual modeling via the chat client. However, it never says when to prefer this over studio_plan_workflow or studio_create_job, and gives no explicit exclusions or prerequisites.

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

studio_plan_workflowB

Return role handoffs and acceptance requirements for one to three hosts, in order.

NameRequiredDescriptionDefault
goalYes
hostsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/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 burden. 'Return' implies a read-only planning operation, and the one-to-three host limit and ordering behavior are useful context, but it does not state permissions, side effects, or what happens with invalid host counts.

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 front-loaded sentence with no redundant or filler content. Every clause adds a concrete detail about output scope, host count, or ordering.

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

Completeness3/5

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

The output schema covers return values, so the description need not explain them. However, with no annotations and zero schema descriptions, the missing explanation of the required 'goal' parameter and lack of usage guidance leave meaningful gaps.

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 explain parameters. It adds the one-to-three host constraint for 'hosts', which is not in the schema, but says nothing about the required 'goal' parameter, leaving half the input undocumented.

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 return type: role handoffs and acceptance requirements for hosts. It is clear what the tool produces, though it does not explicitly distinguish itself from the sibling studio_plan_environment.

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 alternatives such as studio_plan_environment or studio_create_job. Usage is only implied by the phrase 'plan workflow' in the tool name.

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

studio_reconcile_jobA

Record trusted operator inspection after interruption, allowing new actions.

Do this only after inspecting the actual native host and output files and ensuring the previous process has stopped. This records a claim; it is not a rollback or an independent idle detector. Never infer host_is_idle from the bridge lock alone.

NameRequiredDescriptionDefault
notesYes
job_idYes
host_is_idleYes
expected_revisionYes

Output Schema

NameRequiredDescription

No output parameters

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 behavioral burden. It usefully discloses that this records a claim, is not a rollback or independent idle detector, and enables new actions, but it leaves out details about mutation effects, permissions, expected_revision conflict behavior, and idempotency.

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 short, front-loaded, and each sentence adds useful information. It moves from purpose to preconditions to limitations without waste.

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

Completeness3/5

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

The output schema exists, so return values need not be described. However, for a no-annotation tool with four fully required and undocumented inputs, the description covers the safety narrative but not enough parameter semantics to reliably call it, especially for expected_revision.

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 coverage is 0%, so the description must explain all four required parameters. It gives an important semantic warning only for host_is_idle, but job_id, notes, and especially expected_revision are left unexplained.

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 action: recording a trusted operator inspection after an interruption so new actions can proceed. It distinguishes itself from rollback and idle-detection behavior, though it does not explicitly name or compare itself to sibling tools such as studio_recovery_report.

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?

It gives clear preconditions: inspect the native host and output files and confirm the previous process stopped. It also warns that host_is_idle must not be inferred from the bridge lock alone, but it does not explicitly name alternative tools or state when to prefer them.

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

studio_recovery_reportA

Inspect durable recovery evidence without editing files or launching a host.

Reports unresolved intents and preserved run directories. It does not detect whether a native process is idle, repair files, or authorize automatic replay. Inspect the actual host and artifacts before explicit reconciliation.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does so well: it says the tool does not edit files, launch a host, detect native process idleness, repair files, or authorize replay. It omits operational details such as permissions or error behavior, so it is strong but not exhaustive.

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 front-loaded with the core action, then adds report contents, exclusions, and usage guidance. Every sentence contributes and there is no redundant framing.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the behavioral boundaries are clear. However, the required job_id is completely unaddressed, which leaves a meaningful gap for an agent trying to invoke the tool correctly.

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?

The required job_id parameter is never mentioned in the description, and schema description coverage is 0%. For a job-scoped recovery report, the description should explain what job_id identifies or where it comes from, but it provides no parameter 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 states a specific verb and resource: inspect durable recovery evidence. It also identifies what the report contains (unresolved intents and preserved run directories) and distinguishes the tool from reconciliation by saying it does not authorize automatic replay.

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?

It gives clear context for use: inspect host and artifacts before explicit reconciliation. It also states exclusions (no idle-process detection, repair, or automatic replay), though it does not explicitly name the sibling studio_reconcile_job alternative.

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

studio_statusA

Probe native hosts and list available action names without editing a document.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

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, and it does disclose the key trait that this is non-destructive and does not modify a document. However, 'probe native hosts' leaves open what a probe entails (connection attempts, latency, failure behavior when no host is available) and whether repeated calls have side effects.

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?

A single sentence with no filler, front-loading the two actions (probe, list) before the non-mutation constraint. It is slightly dense with undefined jargon ('native hosts'), but nothing is wasted or buried.

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

Completeness3/5

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

The tool is simple (no params) and an output schema exists, so return values need not be described, and the description covers the core purpose and the read-only property. Still missing is any statement of prerequisites (e.g., that a host must be reachable) or what 'action names' are used for, which matters for a discovery step that gates the other studio_* tools.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. The description adds no misleading parameter hints.

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 specific verbs and resources: 'probe native hosts' and 'list available action names', which meaningfully expands on the opaque name 'studio_status'. It also carves out a non-mutating scope ('without editing a document'), though it never names a sibling such as studio_list_artifacts or studio_plan_environment to sharpen the boundary.

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?

Usage is only implied: the phrase 'without editing a document' suggests this is a safe pre-flight/discovery call before studio_execute_action or studio_create_job, but the description never says 'use this when...' or excludes an alternative. An agent must infer the sequencing itself.

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. 9 tool updatesv0.1.0
    • First observedstudio_create_job
    • First observedstudio_execute_action
    • First observedstudio_inspect_job
    • First observedstudio_list_artifacts
    • First observedstudio_plan_environment
    • First observedstudio_plan_workflow
    • First observedstudio_reconcile_job
    • First observedstudio_recovery_report
    • First observedstudio_status

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

Each tool targets a distinct stage of the job lifecycle (create, inspect, execute, reconcile) with fairly precise descriptions. The main risk is overlap among the read-only tools: studio_inspect_job, studio_status, studio_recovery_report, and studio_list_artifacts all involve inspection, though the descriptions do delineate durable state vs. host probing vs. recovery evidence vs. artifacts.

Naming Consistency4/5

All tools share a clear 'studio_' prefix and snake_case, and most follow a verb_noun pattern (create_job, inspect_job, plan_environment, execute_action). A few, notably studio_status and studio_recovery_report, use noun forms rather than verbs, which is a minor deviation.

Tool Count5/5

Nine tools is well within a healthy range and each maps to a distinct workflow stage: planning, job creation, execution, inspection, and recovery. No tool appears redundant or frivolous for the stated bridge purpose.

Completeness4/5

The surface covers the core lifecycle: plan, create, inspect, execute, list artifacts, reconcile, and recovery reporting. The notable gap is no cancellation or deletion of a job and no explicit update/re-configure operation, which agents may need for cleanup.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients to execute editable-3D design programs, inspect their geometry, and replay or revise native project files through MCP tools.
    1
    Apache 2.0
  • A
    license
    C
    quality
    B
    maintenance
    Enables local, versioned Blender character and shot production through fixed immutable stage transitions — reference import, blockout, mesh, retopology, look development, groom, rigging, animation, and rendering — with review gates, approvals, packaging, and resumable job control. It exposes these production operations over MCP instead of executing arbitrary Blender Python, keeping every write deterministic and caller-specified by exact source version.
    30
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables users to create and manage workspace-scoped CAD contracts, build and validate STEP-backed geometry, generate technical drawings and proof renders, audit models, and sample motion through bounded MCP tools.
    -