- Python 99.2%
- Makefile 0.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The limit used the full MCP message size, so an image that just fit could still exceed the limit once wrapped in JSON. Reserve 2 KiB headroom. Ref !38 |
||
| _misc | ||
| addon | ||
| chat_client | ||
| mcp | ||
| tests | ||
| .gitignore | ||
| Makefile | ||
| readme.md | ||
| readme_local_llm.rst | ||
| readme_tools.rst | ||
Blender MCP
Overview
A lightweight MCP (Model Context Protocol) server for Blender. It offers a natural language interface with Blender's Python API, improving access to documentation, and allowing users to explore and understand complex setups.
Read the documentation at blender.org/lab/mcp-server
The project is deliberately small, maintainable, and does no more than necessary. It has two components that communicate over a TCP socket:
- A Blender add-on that runs inside Blender and executes requests.
- An MCP server that runs as a separate process, launched by the MCP client (e.g. Llama.cpp).
The data flow is:
MCP Client ⇐ MCP/stdio ⇒ blender-mcp ⇐ TCP socket ⇒ Blender Add-on
Blender Add-on
Located in addon/blender_mcp_addon/.
A Blender extension that allows the MCP server to communicate with a running Blender instance. It must be installed and enabled for any of the MCP tools to work.
The add-on provides a preferences panel for configuring the host, port, and an optional auto-start setting.
Functionality Overview
Note that this is intended to be a fairly minimal add-on.
Connectivity
- Auto-start (optional), is non-blocking any issues can be viewed from the preferences.
- Configurable polling intervals (active and idle rates) from preferences to avoid excessive overhead.
- Client timeout protection - stalled connections are evicted.
- Start/stop operators accessible from the preferences panel.
- Deferred responses are supported only by the interactive add-on server; background mode requires requests to complete synchronously and rejects deferred results.
MCP Server
Located in mcp/blmcp/, installed as a Python package with the
entry point blender-mcp.
An MCP client launches this process and communicates with it over stdio. The server connects to the add-on's TCP socket to relay requests to Blender.
mcp/blmcp/data/
Data files bundled with the package.
prompts.ymlprovides instructions sent to the LLM at connection time.api/contains Blender Python API reference in RST format.manual/contains Blender user manual excerpts in RST format.
mcp/blmcp/tools/
Each tool is a single module, auto-discovered at startup.
Modules ending in _toolcode contain code that runs inside
Blender (sent to the addon for execution) and are skipped during
discovery.
mcp/blmcp/tools_helpers/
Shared utilities used by tools. Tools should not import from each
other; shared logic lives here instead.
Tools
See readme_tools.rst for the tools the MCP server exposes.