Blender Agent Bridge
The safe, production-shaped bridge between Blender and external AI agents.
Blender Agent Bridge is a Blender extension plus a localhost MCP bridge. It lets tools such as Codex, Claude Desktop, Claude Code, Cursor, and other MCP-capable clients inspect the open Blender scene, gather visual evidence, make preview-capable edits, and run Python under explicit session trust.
1. Install the Blender Extension
Install Blender 4.2.0 or newer. CI continuously checks Blender 4.2 LTS, 4.5 LTS, and 5.1; newer versions are allowed and use capability checks instead of an artificial maximum-version gate.
Recommended: install from the extension repository
-
In Blender, open
Edit > Preferences > Get Extensions. -
Enable online access if Blender asks.
-
Press
Repositories. -
In the repository popover, press
+, chooseAdd Remote Repository, and name itBlender Agent Bridge. -
Paste this repository URL:
https://callmejones.github.io/blender-agent-bridge/index.json
-
Close the repository popover, open the down-arrow extension settings menu, and choose
Refresh Remote. -
Search for
Blender Agent Bridge. -
Press
Install, then confirm the extension is enabled. -
Close Preferences. In the 3D View, press
Nto open the sidebar and select theAgent Bridgetab. -
Press
Start. The panel should report that the bridge is on.
Updates use the same repository: sync it in Get Extensions, install the offered update, restart Blender, and copy a fresh MCP config.
Manual fallback: install the release ZIP
- Open the latest GitHub release.
- Under Assets, download
claude_blender-<version>.zip. - Do not download GitHub's generated
Source codeZIP; it is not an installable Blender extension. - In Blender, open
Edit > Preferences > Get Extensions. - Open the extension menu, choose
Install from Disk, and select the downloadedclaude_blender-<version>.zip. - Enable
Blender Agent Bridge, close Preferences, open the 3D View sidebar withN, selectAgent Bridge, and pressStart.
The extension ZIP already includes the MCP server, so the recommended bundled mode needs no Python package, pip, uv, or uvx installation. See Install from GitHub for checksum verification, command-line installation, updates, and troubleshooting.
2. Connect Claude, Codex, or Cursor
The MCP server is already bundled with the Blender extension. After pressing Start, press Copy MCP Config. Blender copies a complete mcpServers.blender JSON entry containing the correct local Python path, bridge URL, session token, version metadata, and tool-registry digest. Keep every generated command, args, and env value together; this generated entry is the source of truth for Codex, Cursor, Claude Code, and manual Claude Desktop setup.
| Client | Exact setup |
|---|---|
| Claude Desktop | Recommended: open the blender-agent-bridge-<version>.mcpb asset from the matching GitHub release and enter the bridge URL/token shown in Blender. Manual fallback: merge the complete copied mcpServers object into Claude Desktop's config, then fully restart it. |
| Claude Code | Take only the object inside mcpServers.blender, then run claude mcp add-json --scope user blender '<server-object-json>'. Run claude mcp list, restart Claude Code, and use /mcp to confirm it connected. |
| Codex app, CLI, or IDE extension | Do not install the MCPB. Open Settings > MCP servers > Add server, choose local STDIO, and copy the generated command, every args item, and every env value. Alternatively, convert the same entry to [mcp_servers.blender] in ~/.codex/config.toml. Save it, select Restart, then use /mcp or codex mcp list. |
| Cursor | Do not install the MCPB. Merge the complete generated JSON into ~/.cursor/mcp.json for all projects or .cursor/mcp.json for one project. Preserve other servers, refresh Cursor's MCP servers or restart Cursor, then check Settings > MCP. |
The MCPB installs only the Claude Desktop connector; it is not the installation format for Codex or Cursor. Install and start the Blender extension separately. The MCPB packages the same dependency-free Python MCP server code and five-tool gateway as the release. Its MCPB v0.4 uv runtime is managed by the host, so users do not need to install or configure Python. The sensitive token setting stays in the client configuration.
If you want a local coding agent to configure itself, copy the config in Blender and give that agent the matching one-line prompt:
Claude Code
Install the Blender MCP config currently on my clipboard at user scope as server blender; preserve every command, argument, environment value, and existing MCP server, never print token values, then verify it with claude mcp list.
Codex
Install the Blender MCP config currently on my clipboard as a user MCP server named blender; convert the JSON to Codex TOML without changing command, args, or env, preserve my existing config, never print token values, then verify it is listed and tell me to restart MCP.
Cursor
Merge the Blender MCP config currently on my clipboard into my global ~/.cursor/mcp.json as server blender without deleting existing servers, never print token values, then verify Cursor can see it and tell me to refresh MCP.
If the agent cannot read the clipboard, use the manual route above. The generated config contains a localhost bridge token: keep it in local configuration, never paste it into an issue or public chat, and press Copy MCP Config again after changing the extension or bridge settings. Keep only one blender entry in each client, and connect only one active MCP server to a Blender bridge at a time. Full walkthroughs: Claude, Codex, and Cursor.
3. Test the Connection
Keep Blender open with the bridge running, refresh or restart the MCP client, then ask:
Check Blender bridge status, find and invoke the scene-object inspection tool, and make no changes.
The default tool list must contain exactly blender_bridge_status, blender_tool_catalog, search_blender_tools, get_blender_tool_schema, and invoke_blender_tool. Helpers such as list_scene_objects are intentionally not top-level tools: the client must find them through search, fetch their schema, and call them through the gateway. A planner naming a non-advertised helper does not mean that helper is unavailable.
For a deterministic command-line check, run blender-bridge doctor. It verifies the MCP executable, optional client config, bridge socket, add-on/runtime compatibility, five-tool manifest, schema lookup, and a real read-only gateway invocation. See Connection Diagnostics.
Then try a reversible edit:
Move the selected cube up 1 Blender unit and make it red. Leave the change as a preview.
Helper preview edits stay pending in Blender until you use Commit, Revert, or Blender undo. Generated Python is refused while Trust Agent Scripts is off. With trust on, it runs immediately with the same filesystem, network, subprocess, project-file, persistent-cache, and Blender API permissions as Blender's Run Script command. Trusted-script changes use checkpoints and Blender undo; they do not create a pending live preview, and Commit/Revert do not apply to them.
The public beta is live: read the release announcement and share structured beta feedback.
After Updates
Restart Blender, press Start, copy the MCP config again, replace the old client config, and refresh or restart the client. This prevents cached server paths and tool lists from keeping an older extension active.
Why This Exists
AI agents are getting good at using tools, but Blender needs guardrails. This bridge gives agents real scene context and practical tools without turning Blender into a chat app or writing provider API keys into .blend files or Blender preferences.
- Blender stays the execution layer: scene state, viewport evidence, preview changes, binary script trust, checkpoints, and local resources.
- The external client stays the agent host: model connection, conversation memory, provider account, planning, and user chat.
- With runtime script trust active, authored object generation, modeling, animation, materials, custom nodes, rigging, and look development default to one cohesive generated Python script unless the user requests helpers or no Python. Trust-off sessions use bounded helpers instead; generated scripts are refused until trust is granted.
- Long cohesive scripts can run in an isolated background Blender process against a copied
.blend, with polling, cancellation, and an explicitly confirmed apply step that checkpoints the live file. - Replayable execution traces record compact gateway activity, local generated-script artifacts, timings, outcomes, and reported token usage without expanding the five-tool MCP manifest.
- Reference-model workflows persist blind evidence scorecards and bounded repair passes until they reach
ready_for_user_revieworblocked_quality_floor. - Multi-view clients can fuse calibrated silhouettes and optional signed depth into a watertight surface, automatically fit that surface against all views and reconstructed landmarks, adapt topology by region and curvature, and turn remaining critiques into form-aware semantic or screen-space repairs without an external image-to-3D model.
- Connected LLMs can author persistent semantic shape programs from general SDF primitives and tapered sweeps, compile them into continuous watertight meshes with uniform or adaptive-dual extraction, target high octree depth only around important local forms, probe their fields, and revise named forms without an external model or category-specific base mesh.
- Blender has one deliberately small sidebar panel: bridge status/start-stop,
Copy MCP Config, Trust Agent Scripts/Revoke, and pending preview Commit/Revert. Diagnostics, manifests, audit state, captures, and asset configuration stay in bridge/tool responses instead of returning as sidebar sections. - Bounded helpers handle inspection, project files, external assets, long jobs, persistent bakes, evidence, preview decisions, and deliberately isolated edits. Operational clauses remain separate from, and do not demote, the trusted script used for authored work.
Assets and Image-to-3D Providers
Every provider is optional. The bridge still supports authored scripts, bounded modeling helpers, scene inspection, rendering, and project workflows when third-party APIs are disabled or no provider is configured.
| Provider | What the bridge supports | Setup | Network, cost, and quality |
|---|---|---|---|
| Poly Haven | Search and import HDRIs, PBR textures, and models with source metadata. | None. | Downloads from Poly Haven's open API; assets are CC0. |
| Sketchfab | Public model search plus authenticated glTF downloads and imports with author, source, and license provenance. | Search needs no key. Downloads need your Sketchfab API token. | Asset licenses vary; attribution and the model's license follow the imported asset. |
| Tripo (Tripo3D API) | Hosted single-image and calibrated multi-view image-to-3D jobs, polling, cached results, import, and provenance. | Tripo API key plus Allow Third-Party Uploads. | Uploads references and consumes Tripo API credits. Best hosted route when multiple views are available. |
| Meshy | Hosted single-image and multi-image image-to-3D jobs, balance checks, polling, cached GLB import, and provenance. | Meshy API key plus Allow Third-Party Uploads. | Uploads references and consumes Meshy account credits. Generated topology can be dense or fragmented and should be evaluated after import. |
| TripoSR | Direct local single-image reconstruction, persistent tuning defaults, Z-up import normalization, cleanup, and evaluation renders. | A separate Python environment with TripoSR and CUDA-capable PyTorch, plus the local checkout path. | No vendor key, upload, or API credits. Treat it as a fast blockout route: one image cannot reveal hidden side or back structure. |
When more than one generation provider is ready, the bridge asks which provider to use and starts nothing until the user answers. It does not silently prefer local, hosted, cheap, or fast. Hosted jobs also require an explicit spend approval in Blender before a request is sent. A sole local provider may be selected automatically; a hosted provider never is.
Configure Poly Haven and Sketchfab
Poly Haven works immediately. For Sketchfab downloads:
- In Blender's
Agent Bridgesidebar, expandImage-To-3D Generationand pressSet Up Providers. - Copy your token from Sketchfab account settings into Sketchfab API Token.
- Leave Remember Keys On This Machine enabled to use the operating system credential store where available, or turn it off to keep the token only until Blender closes. The panel identifies the storage mechanism it selected.
The token field blanks itself after accepting the value; the status line below it confirms whether the token is set. As an alternative for automated MCP environments, set SKETCHFAB_API_TOKEN or BLENDER_AGENT_BRIDGE_SKETCHFAB_API_TOKEN in the MCP server process.
Configure hosted Tripo and Meshy
- Create a key in the Tripo API portal and/or Meshy API settings.
- Open
Agent Bridge > Image-To-3D Generation > Set Up Providers. - Enable Allow Third-Party Uploads.
- Paste the key into Tripo API Key or Meshy API Key. The field clears after secure capture and the status line reports that the key is set.
- Ask the agent to check generation provider diagnostics before starting the first job.
Keys entered here are held in session memory. With Remember Keys On This Machine enabled, they use the operating system credential facility where available; otherwise the panel reports a private user-only file fallback without describing it as encrypted. Keys are never written to userpref.blend, project .blend files, manifests, or audit logs. Tripo and Meshy use separate API billing from this extension, so review the provider's current credit pricing before approval.
Configure local TripoSR
TripoSR runs outside Blender's bundled Python. The official project requires Python 3.8 or newer, a platform-compatible PyTorch installation, and approximately 6 GB of VRAM at its default settings. Create a dedicated environment rather than installing Torch into Blender:
git clone https://github.com/VAST-AI-Research/TripoSR.git
python -m venv .venv-triposr
# Replace TRIPOSR_PYTHON below with:
# Windows: .venv-triposr\Scripts\python.exe
# macOS/Linux: .venv-triposr/bin/python
TRIPOSR_PYTHON -m pip install --upgrade pip setuptools
TRIPOSR_PYTHON -m pip install -r TripoSR/requirements.txt
Install the CUDA-compatible PyTorch build recommended by the official PyTorch selector into that same environment. Then open Set Up Providers and set:
- Generation Python to the environment's Python executable.
- TripoSR Folder to the cloned directory containing
run.py. - TripoSR Defaults only when you need to trade detail, VRAM, background removal, or texture behavior for a particular machine.
Verify the environment independently before using the bridge:
cd TripoSR
TRIPOSR_PYTHON run.py examples/chair.png --output-dir output
The provider diagnostics should then report TripoSR as runnable. For final assets with meaningful unseen structure, use calibrated multi-view input with Tripo or Meshy, or author and refine the model in Blender.
Showcase: Egypt Dogfight
These compressed images come from the egypt.blend project used while testing the bridge. The agent inspected a scene, used helper/workflow tools, captured playblast and render evidence, repaired issues, kicked off longer render jobs through bridge tooling, and validated the resulting output without relying on shell scripts or hidden in-Blender chat loops.
| Visual evidence | Diagnostic close-up | Render/playblast review |
|---|---|---|
The source .blend file and full 1080p videos are not committed here; the repository only includes small showcase exports so the GitHub checkout stays light. See docs/assets/PROVENANCE.md for their origin, hashes, licensing boundary, and known third-party-source limitations.
What Agents Can Do
- Inspect the current scene, selection, materials, animation, rigs, cameras, nodes, render settings, and
.blendhealth. - Keep complete inspection results by default, with optional summaries, field selection, pagination, and digest-based unchanged responses for lower-token follow-ups.
- Make reversible preview edits to common objects, materials, animation, lighting, cameras, rigs, and scene organization.
- Capture viewport, playblast, inspection-render, thumbnail, and render-job evidence.
- Search and import Poly Haven or Sketchfab assets through asynchronous download and import jobs.
- Generate and import image-to-3D assets through hosted Tripo or Meshy, or run TripoSR locally for single-image blockouts.
- Run animation and background-render workflows, including progress polling and output validation.
- Use bounded project-directory tools, or run custom Blender Python only after the user enables session script trust.
Safety Model
Connected agents do not get blanket access by default. Enabling session script trust deliberately grants broad Blender-process access.
| Path | Behavior |
|---|---|
| Preview edits | Show Commit and Revert controls in Blender and retain normal Blender undo support. |
| Project tools | Restrict generic file access to the current saved project directory. Save/open/new-project operations require explicit confirmed paths. |
| Local bridge | Off by default and bound to 127.0.0.1. Optional bearer authentication is available; without it, any local client that can reach the bridge may call its tools. |
| Generated Python | Refused while trust is off. With trust on, it has Blender Run Script permissions, including filesystem, network, subprocess, project-file, persistent-cache, and full Blender API access. |
| Script trust | Runtime-only and visibly revocable. It clears on Revoke, timed expiry, add-on reload, or Blender exit. Opening, creating, restoring, copying, renaming, saving, or modifying .blend files does not change an active grant, and file operations never extend a timed grant's expiry. Static findings are advisory, not a sandbox. |
| Credentials | Provider keys are held in session memory and redacted from responses. Optional persistence uses the operating system credential facility where available, with a clearly reported user-only file fallback; keys are never written to Blender preferences, .blend files, manifests, or audit logs. |
See SECURITY.md, PRIVACY.md, and docs/SAFETY_MODEL.md for the detailed model.
How It Works
flowchart LR
user["User in Blender"] --> agent["External AI client"]
agent --> mcp["Blender Agent Bridge MCP"]
mcp --> bridge["Localhost bridge in Blender"]
bridge --> scene["Open .blend scene"]
bridge --> helpers["Safe helper tools"]
bridge --> evidence["Viewport, playblast, render resources"]
bridge --> assets["External asset cache/jobs"]
bridge --> files["Project file lifecycle"]
bridge --> scripts["Session-trusted Python"]
helpers --> preview["Live preview transaction"]
preview --> commit["Commit / Revert / Undo"]
scripts --> trust["Trust / Revoke"]
The default MCP surface exposes exactly five stable gateway tools. Every Blender helper remains searchable, schema-addressable, and executable through that gateway, so clients that retrieve only a handful of tools cannot strand themselves with planners but no execution path. An opt-in direct surface restores the previous curated direct helpers, while full is reserved for compatibility and debugging. Initialization and tool definitions are deterministic for provider prompt-cache reuse, and content-free payload telemetry identifies response-size hotspots without storing scene output. Blender owns the open scene, previews, evidence, and trusted execution; the external MCP client owns the model, conversation, provider account, and provider cache policy.
The gateway catalog also includes versioned quality benchmark tasks, durable model-review state, execution traces, and async trusted-script jobs. These are discovered and invoked on demand, so quality and observability improve without paying the token cost of more top-level tools.
For reference construction and form repair, see docs/MULTIVIEW_RECONSTRUCTION.md and docs/SEMANTIC_SCULPTING.md.
See docs/EXTERNAL_BRIDGE_MCP.md for setup and troubleshooting.
Client-specific instructions: Codex, Claude, Cursor, VS Code/Cline/Roo, ChatGPT, Gemini CLI, OpenCode, and Ollama hosts.
Community: browse the curated showcase, propose a showcase submission, join Discussions, report issues, or read Contributing and Adding a Tool.
Try These Prompts
With an object selected:
Move the selected cube up 1 Blender unit and make it red.
Make the selected cube bounce twice over 72 frames, getting smaller each bounce. Check it against the brief and leave it as a preview.
Capture close-up inspection renders of the selected vehicle underside, review them against the brief, and suggest repair operations.
Search Poly Haven for a sunset HDRI, cache it as an external asset job, poll until it is ready, then queue the import into the world as a preview.
Check which image-to-3D providers are ready and explain their cost, privacy, and quality tradeoffs. Do not start a job.
Generate a 3D model from these confirmed reference-image paths. If more than one provider is available, ask me which provider to use before starting anything.
Render a playblast as a background job, poll it, assemble the MP4, and validate the output.
Live helper changes, including external asset imports, remain pending until you use Commit, Revert, or Blender undo. Generated Python never enters a pending approval queue: trust off refuses it, and trust on runs it immediately with Blender Run Script-equivalent permissions.
Development
Contributor setup, build commands, and the complete test matrix live in Development, Testing Guide, and Release. See Contributing before opening a change, and Adding a Tool for registry and handler conventions.
The documentation index links the architecture, MCP, preview, safety, client, and launch guides.
License
Blender Agent Bridge source and release ZIPs are licensed under the GNU General Public License, version 3 or any later version. The Blender extension manifest declares this as SPDX:GPL-3.0-or-later; see LICENSE for the full license text. Release ZIPs include the license file at the package root. The separately distributed showcase media under docs/assets/ is governed by its provenance notice, not the extension's GPL license.
Metadata
Release files for blender-bridge 0.5.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| blender_bridge-0.5.3.tar.gz | 692.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| blender_bridge-0.5.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.4 MB
Release files / blender_bridge-0.5.3.tar.gz
| Download URL | blender_bridge-0.5.3.tar.gz |
|---|---|
| Size | 692.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8824c9b43253bbdc9cfb62c35b1805dd9588ae372e7b7a410d688ff9a3821937
|
|
BLAKE2b-256 checksum How to use checksums |
76fc71c7a551b21a7f28c49639734b18afcde59b2e5cdea52a9c45a44188e032
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 9, 2026.
Transparency logRelease files / blender_bridge-0.5.3-py3-none-any.whl
| Download URL | blender_bridge-0.5.3-py3-none-any.whl |
|---|---|
| Size | 756.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a865580a3ca01b0f39b2e5996526977cc63201e38bc450a99721b777f991ff29
|
|
BLAKE2b-256 checksum How to use checksums |
2b673cfd924fa7bef2a702ff26593c48bc37807634b9c09b73faadc00c6c1db7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 9, 2026.
Transparency log