Skip to main content
Glama
SimoneRecchia

minecraft-schematic-lab

VibeSchem

AI builder for Minecraft. Describe a build to Claude — a cottage, a fantasy castle on a floating island, a gothic cathedral, a whole village, a piston door or a redstone computer — and Claude designs it automatically, shows it in 3D with the real game textures, and exports an expert-quality schematic for WorldEdit, Litematica or structure blocks, or a vanilla data pack that needs no mods. It can also build straight on the terrain of your own world and give you back a copy of the world with the build in it.

  • Builds on your own world. Point Claude at a world and a spot ("build a village here, I'm at 120 70 -340"), or give it a schematic to start from. It reads that area straight from the save (Java 1.8 → newest, including the 26.1 folder layout), shows it in the viewer and builds on the real ground: plots levelled with slopes that blend into the hills, foundations down to the ground, paths that follow it, trees and props standing on it. It gives the result back in place: a copy of your world with the build in it (the original is only read), a vanilla data pack (/function …/build, …/undo puts back what was there, no mods), or schematics that paste at the same coordinates (//paste -o).

  • Builds like an experienced builder. Claude follows a building guide distilled from expert practice (massing, depth, palettes and gradients, roofs, styles, landscaping) and writes a compact BuildSpec with real roof generators, arches, procedural trees, terrain, reusable components, symmetry and scripts.

  • Live 3D viewer in your browser with the real Minecraft textures and block models, smooth lighting like the game, orbit/pan/zoom (Blender-style shortcuts), layer-by-layer cut, block inspector, material list, version history — a macOS-style glass interface, light and dark.

  • Claude sees what you see. It renders the build from any angle, close-ups and sections; you can pin numbered notes on blocks ("make this roof steeper") and Claude knows exactly which part of the spec made that block.

  • Redstone that works, like tested code. A simulator follows Minecraft Java's own redstone mechanics for the build's version: game ticks, neighbour and shape updates in the game's order, scheduled-tick priorities, quasi-connectivity, pistons with slime and honey, observers, comparators reading containers, torch burnout, and the differences between versions. Sand, gravel, concrete powder and anvils fall; water and lava flow, wash redstone away and make cobblestone and obsidian; hoppers, droppers and dispensers move items and buckets. A build can declare named inputs and outputs (single blocks or multi-bit buses) and tests (truth tables, delays, clock periods, memory). The tests run on every build like unit tests, and Claude fixes the circuit until they pass. It can try any scenario with the simulate tool, and check that a design works wherever it is pasted, since update order depends on world position. In the viewer you right-click levers, buttons, pressure plates, targets, lecterns and trapped chests like in the game and the circuit starts by itself; you watch blocks fall and liquids flow, run it at ¼× to max speed, step tick by tick, watch inputs and outputs, and replay tests in 3D. The labels on the blocks show every bit, only the names, or nothing (I).

  • Strict Minecraft versions from 1.8 to the newest release: only blocks that exist in the chosen version are accepted (experimental ones excluded), with suggestions for substitutes.

  • Export: WorldEdit .schem (Sponge v2/v3), MCEdit .schematic for 1.8–1.12, Litematica .litematic, vanilla structure .nbt, a vanilla data pack (1.13+: /function builds it where you stand, …/undo removes it) and a material list with stacks and shulker boxes. Files can be saved straight into your WorldEdit or Litematica folder, data packs into a world.

Everything runs locally. The textures come from the official Minecraft client: from your launcher if that version is installed, otherwise downloaded once from Mojang's servers into ~/.minecraft-schematic-lab — they are never redistributed.

Changelog · Privacy · Security · Contributing · License

Install the plugin

Requirements: macOS, Windows 10/11 or Linux, and Claude Code (terminal or desktop app) or the Claude desktop app. Nothing else: Node 22+ is used if you have it, otherwise downloaded once (no admin rights). The plugin runs a small server on your computer, so it works in Claude Code and in desktop-app tasks that run on your computer, not in a browser or phone chat without a computer.

From Anthropic's plugin directory (once VibeSchem is listed there): in the Claude app open Customize → Plugins → Discover, search for VibeSchem and click Add. In Claude Code, run /plugin and look under Discover. A plugin added on claude.ai also reaches Claude Code.

From this repository, in Claude Code:

/plugin marketplace add SimoneRecchia/minecraft-schematic-lab
/plugin install vibeschem@vibeschem

On Claude Code 2.1.275 or later one line is enough:

/plugin install vibeschem --marketplace SimoneRecchia/minecraft-schematic-lab

In the Claude app you can also open Customize → Plugins → Add → Add marketplace and enter SimoneRecchia/minecraft-schematic-lab. Or from a terminal:

claude plugin marketplace add SimoneRecchia/minecraft-schematic-lab
claude plugin install vibeschem@vibeschem

Then open a new session (or restart Claude Code) and ask, in any language:

Costruiscimi un castello fantasy su un'isola fluttuante, per la 1.20.1, massimo 100×100.

or, on your own world (save and quit it first):

Nel mio mondo "Survival", costruisci un villaggio dove sono adesso, raggio 60, e passami il mondo.

The very first start prepares the builder once (about a minute, needs internet): it uses your Node 22+ if you have one, otherwise it downloads the official Node from nodejs.org into ~/.minecraft-schematic-lab/runtime — no admin password, nothing else on your computer changes. If the tools don't show up the first time, open a new session.

The viewer opens in your browser. Ask for changes in chat or pin notes on blocks with the Note tool (N), then tell Claude "guarda le note". Export with the Export button. To build on a world, use Import in the viewer (pick the world, the centre and the radius, or drop a schematic) or just ask Claude.

In game:

  • WorldEdit: put the file in config/worldedit/schematics (single player) or plugins/WorldEdit/schematics (server), then //schem load <name> and //paste (//paste -o for a build made on your world: it goes back to its place).

  • No mods: put the data pack .zip in the world's datapacks folder (or let Claude install it), then, with cheats on, /reload and /function vibeschem:<name>/build; …/undo removes it.

  • A build made on your world: ask for the world copy, then open the new world (" (VibeSchem v2)") from Singleplayer. Your original world is never changed.

Update or remove it from the /plugin menu (or Customize → Plugins), or in a terminal with claude plugin update vibeschem@vibeschem / claude plugin uninstall vibeschem@vibeschem. Your builds stay in ~/.minecraft-schematic-lab.

Coming from minecraft-schematic-lab (the old name)? Remove it first, so the tools don't appear twice: /plugin uninstall minecraft-schematic-lab@minecraft-schematic-lab, then /plugin marketplace remove minecraft-schematic-lab, then install as above. Your builds are kept. Set the tools up by hand before (scripts/setup.sh or npx github:…)? Remove that connector too: claude mcp remove --scope user minecraft-schematic-lab.

Windows support is new: if the tools don't start there, please open an issue with what Claude shows in /mcp.

Related MCP server: meshy-youtube-mcp

Use it in a Claude desktop chat (extension)

A chat can't start a plugin's server, but it can run a desktop extension. Requirements: the Claude desktop app on macOS (Apple Silicon or Intel) or Windows (Windows not tested yet). Nothing else to install: the extension runs on the app's own Node.

  1. Download vibeschem.mcpb from the latest release.

  2. Double-click it (or drag it onto Settings → Extensions in the app) and click Install.

  3. Open a new chat and ask, in any language:

    Costruiscimi un castello fantasy su un'isola fluttuante, per la 1.20.1, massimo 100×100.

The viewer opens in your browser, exactly as with the plugin. To update, install the newer .mcpb the same way; to remove it, use Settings → Extensions. Your builds stay in ~/.minecraft-schematic-lab, shared with the plugin. Installed the old Minecraft Schematic Lab extension? Remove it in Settings → Extensions.

Optional, for better builds: the building skill. The plugin brings a skill that makes Claude follow the expert workflow on every build request; an extension can't carry it. To add it to a chat, download minecraft-builder-skill.zip from the same release, then in the app go to Customize → Skills, upload the zip and turn the skill on. Skills need Code execution turned on (Settings → Capabilities). Without the skill, Claude still gets the building guides from the extension's read_guide tool.

Also using the plugin? Extensions load in the desktop app's Code tab too, so there you'd get the tools twice (two servers, two viewer tabs). Keep just one of them: turn the extension off in Settings → Extensions while you work in the Code tab, or uninstall the plugin.

From a clone (to work on the code)

git clone https://github.com/SimoneRecchia/minecraft-schematic-lab.git
cd minecraft-schematic-lab
bash scripts/setup.sh

Restart Claude Code once and open it in this folder: the setup registers a connector that runs the sources directly, and the skill in .claude/skills loads from the project.

Privacy and security

  • Your worlds are only read. Building on a world reads its save; the result goes into a new copy of the world or a data pack folder, only when you ask. Existing world files are never changed.

  • Nothing leaves your computer except downloads: the Minecraft client from Mojang (only for game versions your launcher doesn't have), Node.js from nodejs.org and the server's npm packages (only on the first start, if missing). No account, analytics or telemetry. Details in PRIVACY.md; MSL_OFFLINE=1 turns the Mojang download off.

  • The local server answers only its own viewer: it listens on 127.0.0.1 and refuses requests from other websites (foreign Host, Origin or Sec-Fetch-Site).

  • Build scripts run in a sandbox: the JavaScript Claude writes for script operations runs in an isolated V8 context with a time limit and no way back to Node (files, network, processes).

  • Downloads are verified: Node.js is pinned to an exact version with SHA-256 sums in the launchers, the Minecraft client is checked against Mojang's SHA-1, npm packages come from the lockfile. Exports never overwrite an existing file.

Found a vulnerability? Report it privately, as SECURITY.md explains.

Viewer shortcuts

Drag / right-drag or Shift-drag / scroll

orbit / pan / zoom (toward the cursor)

Double-click

orbit around that block

1 3 7 (Ctrl = opposite) · 0

front, right, top · 3D view

4 6 8 2 · 5

orbit in steps · orthographic

Home / F

frame everything / the selection

L + ↑ ↓

layer cut

V / N

navigate / pin a note (Shift-click a second block for an area)

Right-click · U

use a block like in the game: levers, buttons, plates, targets, repeaters, comparators, doors… (redstone builds) · the hand tool, same with a left-click

Space · T

run/pause the redstone simulation · advance one game tick

I

labels on the circuit's inputs and outputs: all bits, names only, hidden

C

builds on your world: show only what the build changes

G · S · Esc

grid · sidebar · clear

Development

pnpm install
pnpm build            # web viewer (apps/web/dist)
pnpm test             # unit + integration tests
pnpm typecheck && pnpm lint
pnpm catalog          # regenerate the per-version block catalog from minecraft-data
pnpm bundle           # rebuild the plugin in plugin/ (server bundle, viewer, guides, skill)
pnpm mcpb             # bundle + the desktop extension in dist/ (.mcpb + skill zip), smoke-tested
PORT=8790 pnpm --dir apps/server start   # standalone server for development
claude plugin validate .                 # check the plugin and marketplace manifests
claude --plugin-dir ./plugin             # try the plugin from this checkout without installing it

plugin/ is committed — it's what players install — so run pnpm bundle before committing changes to the server, viewer, guides or skill. Installed plugins only update when the version changes: bump version in package.json (and packages/shared/src/version.ts), then pnpm bundle.

Anthropic's plugin directory

plugin/ is also what the directory lists. Its README.md is the listing page (it must say what the plugin runs, downloads and stores), and plugin.json gives the name, description, keywords, icon (mcpb/icon.svg, rendered to mcpb/icon.png and copied by pnpm bundle) and the documentation, support and privacy links. The name vibeschem is permanent; apps/server/src/plugin.test.ts checks the directory's blocking rules.

To submit or follow a submission, open the developer portal (paid Claude plan, GitHub account connected) → Submit new → Plugin bundle: repository SimoneRecchia/minecraft-schematic-lab, plugin path plugin, tracked branch main, then Validate. Expect a reviewer on every version: the directory always holds plugins that install npm packages from a lockfile, run launcher scripts from a repository subfolder, or ship files over 256 KiB or bundled code. After the first listing, every version merged into main is scanned and published, so bump version for each release (and add it to CHANGELOG.md). See Submit your plugin and the pre-submission checklist.

Desktop extension

The extension is built from the same bundle by pnpm mcpb (manifest and icon in mcpb/): one .mcpb for macOS and Windows that runs on Claude Desktop's built-in Node and carries the native @napi-rs/canvas binary for each OS/CPU. It isn't committed: .github/workflows/release.yml builds both files and publishes them in the GitHub release of each new version, with that version's CHANGELOG section. The directory no longer lists desktop extensions, so they're installed from the release. node scripts/mcpb.mjs --check [file] [--node <binary>] re-runs the smoke test (an Electron binary works as --node, to try the app's runtime).

Releasing a version

  1. Bump version in package.json and packages/shared/src/version.ts, run pnpm bundle, and add a ## <version> section to CHANGELOG.md.

  2. Merge into main. Claude Code users and, after its review, Anthropic's directory pick it up, and the Release workflow publishes the GitHub release v<version> with the desktop extension (it creates the tag; a version that already has a release is skipped).

See CLAUDE.md for the architecture, API and the protocol Claude follows.

License

Copyright © 2026 SimoneRecchia.

VibeSchem is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 (AGPL-3.0-only). It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for details.

In short: everyone can install, use, study and change it, and share it, as long as every copy and every changed version stays under the AGPL with its source code available, also when it is offered as an online service. Versions up to 0.2.0 were released under the MIT license and stay available under it.

Additional term under section 7(e) of the AGPL: the license grants no rights to the name VibeSchem or its logo; see TRADEMARKS.md. Contributions are accepted under the same license (CONTRIBUTING.md).

Third-party code shipped in the plugin: plugin/THIRD_PARTY_NOTICES.md. Block data from PrismarineJS/minecraft-data (MIT). Minecraft textures and models are © Mojang and are read from your own game files at runtime.

Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.

Related MCP Connectors

Related MCP Servers