Blockbench MCP

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)

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
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:
npx -y github:jasonjgardner/blockbench-mcp-plugin --root ./models
See 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
# 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
{
"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)
{
"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)
{
"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
# 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
codex plugin marketplace add jasonjgardner/blockbench-mcp-project --ref codex
codex plugin add blockbench-mcp@blockbench-mcp-project
Or register the servers directly:
# 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
{
"mcpServers": {
"blockbench": {
"serverUrl": "http://localhost:3000/bb-mcp"
},
"bbmodel": {
"command": "npx",
"args": ["-y", "github:jasonjgardner/blockbench-mcp-plugin", "--root", "/path/to/models"]
}
}
}
Cline

cline_mcp_settings.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
# 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
OpenCode
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:
{
"$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 for local and remote server options.
Usage
See sample project for prompt examples.
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 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 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.