MCP building tools for Paper 1.12.2 and WorldEdit 6.1.9
CyanAIBuilder Legacy provides 18 tools with explicit schemas and descriptions. Naming follows verb_noun conventions (list_, get_, build, find_). Descriptions are present and contextual (avg ~150 chars), exceeding the 10-char minimum. However, parameter descriptions are sparse or missing entirely, most params lack explanations of their purpose, constraints, or valid ranges. Output schemas are undocumented. Error handling is minimal; no recovery guidance or actionable error messages visible. The build/undo/redo tools lack confirmation patterns despite irreversible consequences. Tool composition is reasonable (single responsibility), but parameter relationships (e.g., allowOverwrite + allowBlockEntities interdependencies) are underdocumented.
Browse Minecraft 1.12.2 IDs, aliases and supported state properties. Post-1.12 blocks are unavailable.
Batch placement with undo. blocks: [{dx,dy,dz,blockId,blockState?}]. Defaults to air-only edits. Existing blocks require allowOverwrite=true; block entities also require allowBlockEntities=true. Player bodies/support are always protected. All conflicts are checked before any edit.
Build cuboid/roof/line/cylinder with the same air-only protection as build. Explicit allowOverwrite permits replacement/removal; block entities additionally need allowBlockEntities. Hollow cuboids include floor and ceiling by default: set floor=false if built separately. Elements are relative; include overhangs when finding a site.
Capture block-entity/entity NBT available through WorldEdit 6, inventory and sign fields from an online player's selection. Does not provide entity spawning or plugin-private data. Page the returned snapshotId.
Find up to limit clear, level sites near an online player, in loaded chunks only. width/depth/height include all overhangs and steps; origin is the minimum corner and floor Y. One-block border and two-block horizontal player clearance. Read-only suggestion, not a reservation; inspect searchTruncated and limitations.
Parameter descriptions are missing or minimal. Most params (e.g., 'width', 'depth', 'height', 'radius', 'limit' in find_build_site; 'blockId', 'blockState' in build) lack explanations of purpose, valid ranges, or constraints. LLMs cannot infer parameter semantics from names alone.
Output schemas are not documented. Tools return JSON objects (e.g., 'ok', 'count', 'players' from list_players; 'sites' from find_build_site) but the response structure is not formally specified. LLMs cannot plan downstream calls without knowing what fields to expect.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Read live block ID/data at a coordinate.
Read 1.12.2 constraints, material rules, styles and workflow at session start.
Read recorded changed blocks from an operation, paged by occupied Y layers. These are recorded states, not a live world scan.
Read an exact online player name's live world, position, yaw and pitch. No offline or log fallback.
Read-only room checks: door halves, threshold height and both sides, bed pairs/support/headroom/side access. Provide entrance={x,y,z} (standing foot position) for same-level paths to beds and optional targets; expectedBeds is a minimum count. Bounds default to operation bounds plus 2 blocks, or provide all six region coordinates. No player or sleep simulation.
List online players in allowed worlds with live coordinates and facing. Optional world filter.
List loaded, allowed worlds. No online player required.
Redo the most recently undone build, with conflict checks.
Render live world blocks into an isometric PNG. Use latest operation, operationId, or ALL six region coordinates. Preview approximates geometry and uses flat colors. Render after each edit before submitting.
Capture an online player's WorldEdit selection as exact legacy block rows, palette and dimensional description. Page immutable snapshots. Does not infer reliable architectural style.
Single block write WITHOUT undo, with the same air-only, block-entity and player protections as build. Use build for reversible edits. Supply blockId or blockState.
Require a recent render, unchanged edited blocks, and inspect_build checks. Removal-only repairs can pass. Give whole-house bounds, entrance, targets and expectedBeds to verify usability across multiple build operations. Score is a structural checklist, not aesthetic quality or a guarantee of playability.
Undo the most recent build. operationId, if given, must be the stack top. Rejects changed block/NBT conflicts. Does not remove spread water.
Destructive operations (build, build_structure, set_block, undo, redo) lack confirmation or dry-run patterns. Agents can irreversibly modify the world without a safety gate. No explicit error recovery guidance for conflicts or failed edits.
Parameter interdependencies are underdocumented. build and build_structure have allowOverwrite and allowBlockEntities flags whose interaction is unclear. inspect_build and submit_build accept both operationId and explicit region coordinates (x1/y1/z1/x2/y2/z2) but the precedence/mutual exclusivity is not stated.
Error handling is minimal. No visible error classification (retryable vs. fatal), no actionable recovery messages, and no guidance on what to do if a build fails due to conflicts or player interference. Agents cannot self-correct.