Skip to content
CAI
Software that uses CAICheck a score

ahujasid/blender-mcp

50.2

Adequate · 18 September 2026

22.7k

lines of production code

Python

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Model Context Protocol (MCP) server and Blender addon designed to enable external clients to interact with Blender scenes. It provides capabilities for exporting 3D assets, searching for assets via the Poly Pizza API, and executing generated Python code within a strict safe mode to mitigate security risks. The system manages its own lifecycle, including telemetry consent and version updates, while enforcing performance limits on scene data to ensure stability.

Features

The Blender MCP server now includes an opt-in safe mode (enabled via the BLENDER\_MCP\_SAFE\_MODE environment variable) that validates generated Python code against a strict allowlist before execution, blocking dangerous imports and builtins to mitigate prompt injection risks. Telemetry collection is now gated by explicit user consent, with a first-run elicitation prompt for compatible clients and persistent state tracking to avoid repeated asks. Additionally, the server manages the bundled Blender addon lifecycle by detecting outdated addon installations on startup and providing clear instructions for updates, ensuring the client and server remain compatible.

_src/blender\mcp · high confidence

Behavioural changes

Project renamed to MCP for Blender with new Docker support and telemetry terms

The project has been renamed from 'Blender MCP' to 'MCP for Blender' (PyPI package \mcp-for-blender\), introducing a new Dockerfile and .dockerignore for containerized server runs, and adding a TERMS\_AND\_CONDITIONS.md file that defines data collection practices for prompts, scene metadata, and manual edits. The Blender addon entry point has been consolidated into a single \addon.py\ file (replacing the previous split between \blender\_mcp\_addon.py\ and \blender\_mcp\_server.py\), and the server entry point now delegates to \blender\_mcp.server.main\. Documentation has been updated to reflect the new name, installation via \uvx\, and integration with various MCP clients.

(repo-wide) · high confidence

Updated bundled addon to version 1.7 with protocol v7 and new object caps

The bundled Blender addon has been updated to version 1.7, bumping the internal protocol version to 7 to align with the export\_scene command. This update introduces stricter limits on world state snapshots, capping the total number of objects at 4,000 and selected objects at 1,000 to prevent performance issues in large scenes. Additionally, the addon now includes Poly Pizza API integration for 3D asset searching and enforces row size caps in socket communication to handle multi-byte UTF-8 sequences more robustly.

_src/blender\mcp/bundled · high confidence

Test coverage

Initial test suite for Blender MCP server and addon

Added a comprehensive test suite covering the Blender MCP server and addon behavior. Tests verify the addon auto-start lifecycle, addon installation and protocol handshake, connection argument resolution (CLI flags, environment variables, and defaults), and the export\_scene command for GLB/FBX formats. The suite also includes regression tests for the PolyPizza and Hunyuan3D API integrations, ensuring correct URL routing, account profile selection, and security checks like zip-slip prevention. Additionally, tests validate the new safe-mode code execution validator, server threading model to prevent timer registration on non-main threads, and the consistency of server instructions provided to clients.

tests · high confidence

Dependencies

Package renamed to mcp-for-blender with dependency and build updates

The project has been renamed from 'blender-mcp' to 'mcp-for-blender' (version 2.0.0), updating the package name, entry point script, and description. The 'mcp' dependency has been upgraded to version 1.9.0 (with a cap below 2.0) and the 'mcp\[cli\]' extra has been removed, while 'httpx' (\>=0.27.0) has been added as a new dependency. Build requirements now specify setuptools \>=77.0, and the package structure has been adjusted to use a 'src' layout with specific package data inclusion for the bundled addon.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 50.

Lenses

  • Code Health 72
  • Architecture 100
  • Maturity 53
  • Readiness 32
  • Security 87

Changes since last survey

  • 212 commits — 176 feature/other, 36 fixes

By area

  • (root) — 174 commits
  • (repo) — 24 commits
  • src/blender_mcp — 13 commits
  • tests/test_export_scene.py — 1 commit

Notable commits

  • fix: Bugfix: not finding parent_obj correctly
  • fix: Fix Cursor Install MCP Server link (#173)
  • fix: Fix arbitrary file write in download_polyhaven_asset (#258)
  • fix: Fix for create_object(type="PLANE") when scale given.
  • fix: Fix return that was not up to date for create_object
  • fix: Fix server stability with thread-based networking
  • fix: Fix set_texture on Blender 4.0+: version-guard ARM channel split (SeparateRGB removed in 4.0) (#280)
  • fix: Fix the create_object in server and addon, as torus receive different parameters
  • fix: Fix: wrong active object after creation/before deletion
  • fix: Merge pull request #143 from yunseorim1116/fix/description
  • fix: Merge pull request #86 from ahujasid/revert-84-main
  • fix: Merge pull request #87 from ahujasid/revert-86-revert-84-main
  • fix: Potential bugfix for finding imported asset + fix for bbox_condition api parameter
  • fix: Revert "Fix for create_object(type="PLANE") when scale given."
  • fix: Revert "Hide Hyper3D API key in UI Panel"
  • fix: Revert "Revert "Fix for create_object(type="PLANE") when scale given.""
  • fix: Revert "removed description from server"
  • fix: bugfix: remove description in FastMCP
  • fix: fix(addon): handle split multi-byte UTF-8 sequences in socket buffer (#324)
  • fix: fix(tests): match export_scene command amid telemetry consent call
  • …and 192 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ahujasid/blender-mcp was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 18 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 6f992ffbca3cb715d111fc640b737b808632273c — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.