# Blockbench MCP Blockbench MCP Plugin screenshot
Demo Reel https://github.com/user-attachments/assets/c67d0dd8-ee50-40ba-b308-a84a21772901 > All scenes, models, and textures created through Blockbench MCP plugin using agent skills. (Rendered in Blender)
[![skills.sh](https://skills.sh/b/jasonjgardner/blockbench-mcp-project)](https://skills.sh/jasonjgardner/blockbench-mcp-project) ## Plugin Installation Open the desktop version of Blockbench, go to File > Plugins and click the "Load Plugin from URL" and paste in this URL: **[https://jasonjgardner.github.io/blockbench-mcp-plugin/mcp.js](https://jasonjgardner.github.io/blockbench-mcp-plugin/mcp.js)** ## Model Context Protocol Servers This repository contains two MCP server options. ### Headless `.bbmodel` (stdio) A separate stdio MCP server edits, validates, converts and renders `.bbmodel` files directly, without Blockbench running. Each agent can start its own process, so several can work in parallel while you keep using the editor. Run it straight from GitHub: ```bash npx -y github:jasonjgardner/blockbench-mcp-plugin --root ./models ``` See [headless/README.md](headless/README.md) for client configuration, the tool list and limits. ### Blockbench Desktop Plugin (HTTP) Configure the MCP server under Blockbench settings: **Settings** > **General** > **MCP Server Port** and **MCP Server Endpoint**. > The following installation settings examples use the default values of `:3000/bb-mcp` ## Installation The examples below configure the desktop plugin over **HTTP** and the headless server over **stdio**. You can use either server or both. HTTP requires Blockbench running with the plugin installed; stdio requires Node.js with npm and starts its own server process. For headless examples, replace `/path/to/models` with an absolute path to your model directory (for example, `C:/Users/you/models` on Windows). `--root` is required and limits file access to that directory. > On Windows, clients that cannot launch `npx` directly should use `"command": "cmd"` and prepend `"/c", "npx"` to `args`, as shown for Claude Desktop.
General ```bash # Desktop plugin (HTTP) npx mcp-add --type http --url "http://localhost:3000/bb-mcp" --scope project # Headless (stdio) npx mcp-add --name bbmodel --type stdio --command "npx -y github:jasonjgardner/blockbench-mcp-plugin --root /path/to/models" --scope project ```
VS Code **`.vscode/mcp.json`** ```json { "servers": { "blockbench": { "url": "http://localhost:3000/bb-mcp", "type": "http" }, "bbmodel": { "type": "stdio", "command": "npx", "args": [ "-y", "github:jasonjgardner/blockbench-mcp-plugin", "--root", "${input:rootDir}" ] } }, "inputs": [ { "id": "rootDir", "type": "promptString", "description": "Root directory for headless Blockbench models", "default": "${workspaceFolder}/models" } ] } ```
Claude Desktop **`claude_desktop_config.json`** (macOS/Linux) ```json { "mcpServers": { "blockbench": { "command": "npx", "args": ["-y", "mcp-remote", "http://localhost:3000/bb-mcp"] }, "bbmodel": { "command": "npx", "args": ["-y", "github:jasonjgardner/blockbench-mcp-plugin", "--root", "/path/to/models"] } } } ``` **`claude_desktop_config.json`** (Windows) ```json { "mcpServers": { "blockbench": { "command": "cmd", "args": ["/c", "npx", "-y", "mcp-remote", "http://localhost:3000/bb-mcp"] }, "bbmodel": { "command": "cmd", "args": ["/c", "npx", "-y", "github:jasonjgardner/blockbench-mcp-plugin", "--root", "C:/Users/you/models"] } } } ```
Claude Code ```bash # Desktop plugin (HTTP) claude mcp add blockbench --transport http http://localhost:3000/bb-mcp # Headless (stdio) claude mcp add bbmodel --transport stdio -- npx -y github:jasonjgardner/blockbench-mcp-plugin --root /path/to/models ```
Codex ```bash codex plugin marketplace add jasonjgardner/blockbench-mcp-project --ref codex codex plugin add blockbench-mcp@blockbench-mcp-project ``` Or register the servers directly: ```bash # Desktop plugin (HTTP) codex mcp add blockbench --url http://localhost:3000/bb-mcp # Headless (stdio) codex mcp add bbmodel -- npx -y github:jasonjgardner/blockbench-mcp-plugin --root /path/to/models ```
Antigravity ```json { "mcpServers": { "blockbench": { "serverUrl": "http://localhost:3000/bb-mcp" }, "bbmodel": { "command": "npx", "args": ["-y", "github:jasonjgardner/blockbench-mcp-plugin", "--root", "/path/to/models"] } } } ```
Cline Connecting to Blockbench MCP plugin through Cline **`cline_mcp_settings.json`** ```json { "mcpServers": { "blockbench": { "url": "http://localhost:3000/bb-mcp", "type": "streamableHttp", "disabled": false, "autoApprove": [] }, "bbmodel": { "type": "stdio", "command": "npx", "args": ["-y", "github:jasonjgardner/blockbench-mcp-plugin", "--root", "/path/to/models"], "disabled": false, "autoApprove": [] } } } ```
Ollama ```bash # Desktop plugin (HTTP) uvx ollmcp -u http://localhost:3000/bb-mcp # Headless (stdio): register, then start the client uvx ollmcp mcp add bbmodel -- npx -y github:jasonjgardner/blockbench-mcp-plugin --root /path/to/models uvx ollmcp ``` Recommended: [jonigl/mcp-client-for-ollama](https://github.com/jonigl/mcp-client-for-ollama)
OpenCode ```bash opencode mcp add ``` Choose a remote server for the desktop HTTP URL, or a local server for the headless command. You can also configure both in **`opencode.json`**: ```json { "$schema": "https://opencode.ai/config.json", "mcp": { "blockbench": { "type": "remote", "url": "http://localhost:3000/bb-mcp", "enabled": true }, "bbmodel": { "type": "local", "command": ["npx", "-y", "github:jasonjgardner/blockbench-mcp-plugin", "--root", "/path/to/models"], "enabled": true } } } ``` See the [OpenCode MCP configuration reference](https://opencode.ai/docs/mcp-servers/) for local and remote server options. Connecting to Blockbench MCP plugin through OpenCode.
## Usage [See sample project](https://github.com/jasonjgardner/blockbench-mcp-project) for prompt examples. ### [Skills](https://skills.sh/jasonjgardner/blockbench-mcp-project) Use Agent Skills to orchestrate tool usage. ## Extending from another plugin Other Blockbench plugins can register their own MCP tools through a global `MCP_QUEUE`, without bundling or importing this plugin. See [docs/plugin.md](docs/plugin.md) for the API and an example. > [!NOTE] > Plugins in the official Blockbench plugin repository are not allowed to use AI features, so a plugin that registers MCP tools has to be distributed some other way. ## Plugin Development See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed instructions on setting up the development environment and how to add new tools, resources, and prompts. ## Security The desktop plugin's HTTP server listens on this computer only (`127.0.0.1` and `::1`) by default, so `http://localhost:3000/bb-mcp` works whether a client resolves `localhost` to IPv4 or IPv6. Requests with a non-loopback `Origin` or `Host` header get `403 Forbidden`, which keeps web pages, including DNS rebinding attacks, from driving Blockbench through your browser. To accept connections from other computers (for example a client inside WSL2 without mirrored networking, a VM, or another machine), set **Settings** > **General** > **MCP Server Host** to `0.0.0.0` or `::` and reload the plugin. In that mode the `Host` header is no longer checked, since other computers reach the server by its address, but requests with a non-loopback `Origin` header are still refused. The server has no authentication: anyone who can reach the port can call every tool, including `risky_eval`. Only do this on a trusted network and keep your firewall rules restrictive. `risky_eval` runs any JavaScript a client sends. To turn it off, clear **Settings** > **General** > **Enable risky_eval**: connected clients stop seeing the tool and its calls are refused.