Skip to content

Releases: chapmanjw/minecraft-java-fabric-claude-plugin

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 00:37

Tracks the MCP server's 1.1.0 release. Two of that release's tool changes break
skills written against the old behaviour, and one documented recipe stopped working
outright, so this is a correctness pass over the skills and harness rather than new
capability.

Changed

  • The event verification recipe no longer subscribes to events that do not exist.
    events_subscribe now rejects the 11 event types the server declares but never
    emits, and the rejection covers the whole call — one stale name takes the valid
    types in the same array with it. The deliverable set is block.break, block.use,
    player.chat, player.join, player.leave, and the five server.* lifecycle
    events.
  • system-redstone/reference/verification.md: the file's only worked example
    subscribed to entity.death and failed at step one. Replaced with a block.use
    example that runs. The mob-farm and sorter bullets were built entirely on rejected
    types and could not be reworded — there is no entity or container event, so both now
    point at sampling (entity_query, inventory_count_items), which is the only thing
    that actually verifies those outcomes.
  • exec-inspect/SKILL.md, reference/contract-checks.md and
    system-redstone/reference/java-redstone.md: same substitution. The
    java-redstone bullet mattered disproportionately — it is the index an agent reads
    before opening verification.md, so it seeded the bad names first.
  • reference/terrain/palettes.md: biome examples extended with the fields the
    server now returns (precipitation, waterColor, colour overrides), and a note
    that a flat downfall: 0 across every biome means an older mod jar.

Fixed

  • tools/builder/harness.py pre-filters event types against the deliverable set.
    A legacy contract row previously failed as "could not subscribe", which is
    indistinguishable from a transport failure — so a stale row read as a broken
    mechanism rather than a stale row.
  • tools/itest/cases/level.py was asserting only that plains appeared in the
    biome listing, which passed even with no dimension filtering at all because the
    scratch dimension is the overworld. It now also asserts no foreign biomes leak in,
    and a new case checks the nether returns its own small set.
  • tools/itest/cases/loot.py described the old "Definition not available" bug as
    current behaviour.
  • Tool counts in reference/execution/engine-limits.md and skills/setup-server
    were off by one: 194 tools declared (188 server endpoint plus 6 client-side), with a
    lean default surface of ~104.

v1.0.0 — two-endpoint stack + Zion build learnings

Choose a tag to compare

@chapmanjw chapmanjw released this 08 Jun 06:47

The 1.0 milestone. The plugin learns the two-endpoint stack — the world server plus
the new client inspection endpoint for eye-level verification — and folds the Zion
showcase build's hard-won lessons (sourced rail boosters, same-generator canyon
ends, adversarial inspection, the force-load and full-footprint-clear rules) into
the builder skills and the local toolkit.

Added

  • Client inspection endpoint support (minecraft-java-client). The mod now ships a second
    MCP server — its client entrypoint — that runs inside a real, rendered Minecraft client and
    serves read-only inspection tools (view_capture for the player's actual first-person frame,
    plus sense_crosshair / sense_raycast / sense_entities / sense_screen / client_status).
    The plugin learns to set it up and use it:
    • setup-connect documents the world+inspection two-server model and the three patterns
      (server-only, client-only, server+client combo), with claude mcp add for
      minecraft-java-client and a view_capture verification step.
    • setup-server notes the separate client.json / port 8766 / MCP_CLIENT_* config and the
      eleventh client category.
    • exec-inspect uses the real-client frame for eye-level / in-game-rendering verification when
      mcp__minecraft-java-client__* is connected (aim the player from the world server, then
      view_capture), records the frame source in rider_pov, and falls back to the synthetic
      block_render_region + a user screenshot when the endpoint is absent.
    • .mcp.json.example, the architecture diagram, the tool-surface conventions in CLAUDE.md,
      and reference/execution/engine-limits.md all reflect the second endpoint.
  • Rail / wire continuity verifier (tools/voxel/continuity.py). block_fill_batch
    can silently drop a few entries from a large batch — invisible on wide terrain, fatal
    on a 1-wide rail (the cart stalls dead at each gap). find_gaps diffs the intended
    cell list against a live layer scan; verify_and_patch re-places the missing cells
    with block_set_state (reliable per block). system-transit and exec-inspect call
    it after any 1-wide placement.
  • Canyon/valley end-closer (tools/terrain/close.py, close_belt_end). Closes one
    end of a belt_from_path canyon by reusing the SAME machinery as its walls — the
    belt's own cross-section (corridor pinching shut), the same add_fbm at global grid
    coordinates (so the noise phase aligns at the seam), and the same thermal/hydraulic
    erosion via a caller regen callback, merged with np.maximum. Generalises the
    per-build endcap scripts that kept reading as pasted-in headwalls.
  • Harness force-load re-assert for self-running mechanisms. A plan may declare a
    top-level protect block ({corner_a, corner_b} chunk rectangles); builder.harness
    re-asserts those bands with forceload add as the last op of every force-toggling
    phase (run / build / freshness), so a later phase's forceload remove never unloads a
    permanently force-loaded rail loop or farm (entities freeze, redstone reverts).

Changed

  • Folded the Zion showcase build learnings into the builder skills. system-transit
    gains the sourced-booster rule, square single-block-corner U-turns, the sloped-back
    wall-bench profile, an auto-board station template, and ride-test hygiene;
    exec-inspect documents zone fan-out plus an adversarial synthesis pass that
    re-verifies "criticals", and eye-level / thin-slab cross-section judging;
    terrain-shape, build-natural-world, design-monument / terrain-landmark,
    coherence, workflow-spine, and engine-limits pick up same-generator
    end-closing, low-frequency variation on gentle slopes, distinct hero-mass placement,
    the force-load and full-prior-footprint-clear rules, the offline-preview sign-off
    gate, and a consolidated engine-caps table.

Fixed

  • Powered-rail booster guidance reversed (corrects the 0.8.0 note below). A
    redstone_block directly under a powered rail IS a real source: the rail recomputes
    to powered=true on every block-update re-eval, so it is player-proof and
    reload-proof. A source-less powered=true set via block_set_state holds only at 0
    players and reverts the instant a player is online (player-driven chunk/light/neighbour
    updates re-evaluate the rail; update_flags=2 does not save it). The earlier "set
    powered=true explicitly; a redstone_block underneath doesn't hold" guidance was
    true only for a never-visited headless test. Corrected in system-redstone
    (setblock-redstone-limits.md, verification.md), system-transit, and
    build-systems.
  • entity_query / @e only enumerates loaded chunks. Documented in engine-limits:
    a summon reporting successCount: 1 followed by an empty query usually means the
    chunk is unloaded (check forceload query), not that the entity despawned — minecarts
    and items in unloaded chunks are frozen, not removed.

v0.8.0 — continuous-field terrain, eye-level verification, engine limits

Choose a tag to compare

@chapmanjw chapmanjw released this 27 May 20:39

v0.6.0 — build+verify harness + dedicated-server support

Choose a tag to compare

@chapmanjw chapmanjw released this 25 May 06:44

Token-usage optimization + headless/dedicated-server support.

Build + verify harness (tools/builder/)

A stdlib harness that executes a plan.toon phase and mechanically verifies it against the live server outside the LLM context — plan steps are the code, acceptance + quality_contract are the assertions, the harness is the test runner, returning one compact digest instead of hundreds of in-context tool calls. Force-load-bracketed (auto-banded under the 256-chunk/dimension cap) and rate-limit resilient. Validated live against a dedicated server: all 9 plan ops and all 12 contract checks.

Model routing (off Opus where reasoning isn't needed)

  • blueprinter, philosopher, and natural-landmarks now fork to Sonnet (isolated context).
  • Orchestrator runs at effort: high.
  • philosopher returns drafted memory lessons for the orchestrator to persist; natural-landmarks returns a proposed composition for the orchestrator to confirm.

Dedicated / headless-server support

  • Step 0 detects dedicated-vs-single-player by sampling gameTime at 0 players.
  • Force-loading is a first-class concern (mandatory headless, where writes silently no-op in unloaded chunks); the registry records each build's envelope.
  • The "ticking freezes when unfocused" caveat is now single-player-only.

Also

  • researcher is WebFetch-first and pulls exact dimensions from Wikipedia/Wikidata REST (no new dependency).
  • planner pins the acceptance + envelopes schema; worker drives the harness; inspector consumes its verdict and focuses on perceptual/world-fit judgement.

See CHANGELOG.md for the full list.

v0.5.0 — terrain toolkit + server-side terrain tools wiring

Choose a tag to compare

@chapmanjw chapmanjw released this 22 May 20:48

Terrain support for the builder.

terrain toolkit (tools/terrain/) — the 2.5-D counterpart of the voxel toolkit: author a HeightField (multi-octave noise, radial falloff, blob lakes, carved rivers, build pads), erode it (hydraulic + thermal), render-verify offline (hillshade / relief / cross-section profile) before placing, then materialise to fills (double-layer substrate, no-monoculture surface mix, cliffs, beaches, water columns) and place via the shared mcp_place.py. numpy + Pillow only.

Skills wired to the mod's v0.3.0 terrain tools, fallback-gatedreference/engine-limits.md gains a "Terrain helpers" section; terraforming (landforms, command-budget, weathering, palettes, SKILL) and surveyor cite block_fill_columns, level_place_feature, level_fill_biome, the block_get_top_y heightmap arg, and the block_render_region hillshade view — each "prefer if available, else current approach" so it stays safe on older mods.

Pairs with minecraft-java-fabric-mcp-server v0.3.0.

v0.4.0

Choose a tag to compare

@chapmanjw chapmanjw released this 22 May 04:47

Give the builder eyes, and drive bulk builds natively. Folds in the Rivian
R1S / "Gear Guard Gary" retrospective: a representational build iterated blind
fails on silhouette, and hundreds of one-at-a-time fills are infeasible. Pairs
with minecraft-java-fabric-mcp-server
v0.2.0, which adds the native tools this release leans on (block_fill_batch,
block_render_region, block_scan_summary, block_get_map_color, auto-tiling
fills). Verified end-to-end against a live 26.1.2 world.

Added

  • Voxel toolkit (tools/voxel/, Python — stdlib + numpy + Pillow). Author a
    form as a parametric numpy model (ellipsoid/cylinder/line3d/box,
    fractional anchors, mirror_x), render three orthogonal views to PNG
    (render_views), and decompose it to a world-space fills list (write_fills_json,
    greedy maximal boxes split to ≤32k). A building palette maps voxel codes to
    block ids + RGB. Worked example + smoke test in tools/examples/example_bean.py.
    Deps documented in tools/requirements.txt; usage in tools/README.md.
  • Render-verify workflow woven into monument-builder (+ new
    reference/render-verify.md), inspector, and surveyor: author → render →
    iterate vs. references → place via block_fill_batch → confirm with a
    scan-render (block_render_region). The "imported meshes are not authoritative"
    guardrail is spelled out.
  • reference/engine-limits.md — one canonical, cross-skill list of hard tool
    limits and verified behaviour, cited by the orchestrator and block-placing skills.
  • Bean showcase image in the README (docs/images/bean.png).

Changed

  • Scale-pinning added to the planner interview: fix the size ratio between
    co-located subjects before any blocks (a 70-tall vehicle beside an 18-tall
    figure forces rebuilds).
  • Engine-limits guidance corrected from live testing (26.1.2): fills now
    auto-tile past 32,768 server-side (confirmed); datapack functions are inert
    (function_run//reload do nothing — keep using direct block ops);
    structure_file_write writes a file but isn't loadable in-session (use
    structure_save_from_world/structure_load_to_world, which work).
  • CLAUDE.md documents the new tools/ Python layer (deps + smoke test) and
    the reference/engine-limits.md convention.

v0.3.0 — Aurelia Exposition retrospective lessons

Choose a tag to compare

@chapmanjw chapmanjw released this 21 May 15:24
79f23ef

Folds lessons from a large multi-agent autonomous build (the "Aurelia Exposition" overnight run) back into the builder skills and orchestrator. The build's final QA exposed several skill-level gaps: 4 of 11 zones shipped flat-absent, the blueprinter's mcb: templates were never persisted, transit was missing, and effort was wasted generating .mcfunction terrain the mod refuses to execute.

Skill-level changes only; still pairs with minecraft-java-fabric-mcp-server v0.1.0.

Changed

  • Single-writer registry. The orchestrator now solely owns mcbuilder:registry; worker and blueprinter report results as text instead of calling data_storage_set themselves (parallel sub-agents were clobbering the shared document).
  • Datapack functions: resolving ≠ executing. Everywhere function_run / schedule_function / /reload is recommended (engineer, planner, monument-builder, orchestrator Conduct) now requires a smoke-test that the function actually runs before planning around it — the mod can accept the call and refuse execution (/function → "should not run", /reloadsuccessCount 0). Never emit .mcfunction files expecting /function to run them; terraforming's heightmap method spells this out.
  • Loaded ≠ ticking. engineer (+ setblock-redstone-limits.md) and the orchestrator honesty contract now distinguish immediate redstone updates (resolve) from the scheduled block-tick queue (pistons, hoppers, comparator reads, lamp turn-off, crop growth), which freezes on an idle/unfocused single-player client even in a force-loaded chunk. Verify by an immediate fire, not by waiting.
  • block_get_top_y semantics. surveyor confirms once per survey whether the tool returns stand-on (air) Y vs. solid Y and records the convention so floors land flush.

Added

  • Large / autonomous multi-site build discipline in the minecraft-builder agent: a completion ledger gated on per-phase inspection, mandatory blueprinter-persistence verification before consumers reference templates, a ~3 background-sub-agent parallelism ceiling on non-overlapping zones, and a rule never to report "done" until every planned element passes inspection.

Full changelog: https://github.com/chapmanjw/minecraft-java-fabric-claude-plugin/blob/main/CHANGELOG.md

v0.2.0 — Java-exclusive builder techniques

Choose a tag to compare

@chapmanjw chapmanjw released this 21 May 04:43

Optimizes the builder skills for techniques the minecraft-java-fabric-mcp-server Fabric mod exposes but Bedrock's MCP could not. Skill-level changes only; still pairs with the mod v0.1.0. Every technique was verified live against a running server before being documented.

Highlights

  • Display entitiestext_display (3D floating text/logos), block_display (blocks at arbitrary scale/rotation/translation — sub-block detail, impossible angles, glowing forms), item_display. New monument-builder/reference/display-entities.md, with signage pointers in transit and city planners.
  • Direct block-entity NBT — signs, banners, configured spawners, lecterns, decorated pots, player-head skulls, pre-loaded containers (building-architect, player-house, engineer).
  • Item components — named/enchanted/lore/dyed items for displays and storage.
  • Scripted villagers — exact profession + full trade lists (complementary to emergent village mechanics).
  • Loot-table chest seeding and biome-aware palettes (level_get_biome_at).
  • Datapack functions for non-redstone sequencing; block_set_state update_flags control.
  • Event-based functional verification + two new quality_contract row types.
  • New block-nbt / set-slot plan ops (planner + worker) and exact structure_load_to_world enum strings.

See CHANGELOG.md for the full list.

v0.1.0 — Minecraft Java (Fabric) plugin

Choose a tag to compare

@chapmanjw chapmanjw released this 21 May 04:26

Initial release of the Minecraft Java Claude plugin. Pairs with the minecraft-java-fabric-mcp-server Fabric mod (v0.1.0) — the MCP server is embedded in the mod and runs inside Minecraft.

Forked from the Minecraft Bedrock Claude plugin and rewritten top to bottom for Java Edition.

Highlights

  • Guided setup — four ordered skills (setup-fabricinstall-mcp-modsetup-mcp-serverconnect-claude) for standing up Minecraft Java + Fabric + the mod. Single-player localhost is the default path; a dedicated Fabric server with bearer-token auth is the advanced branch.
  • World builder — the minecraft-builder agent plus 17 model-tuned skills (survey → research → plan → shape → blueprint → build → inspect → reflect), ported to the Java MCP tool surface (level_*, block_*, entity_*, structure_*, data_storage_*, …).
  • World-anchored state — blueprints saved as structure templates (mcb:<project>_<element>); a registry kept in command storage (mcbuilder:registry, TOON).
  • No behavior pack, no Beta-APIs experiment, no separate server process.

See CHANGELOG.md for the full list.