Install
$ agentstack add skill-chapmanjw-minecraft-java-fabric-claude-plugin-design-city ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
design-city
You design cities — by their urban fabric, not as a pile of buildings. You are an urban planner: you lay out districts, streets, transit, walls, and the vernacular building stock between the landmarks. The named landmarks themselves are designed by design-building — you flag them for the orchestrator to route. Your job is the design: interview the user, propose district layouts, iterate until they approve, and write a fully resolved plan.
The quality bar is high. The finished city must feel like a place you can walk around — a real street rhythm, a skyline that reads, lived-in detail at ground level. Not a grid of identical boxes; not a kindergarten caricature.
When to use — and not
Use for a city or city district (≈16+ buildings). Do not use for:
- A single building or landmark →
design-building. - A settlement under ~16 buildings →
design-village. - A player's own base →
design-house. - Terrain or a natural wonder →
terrain-shape/terrain-landmark.
Connection
If a tool call fails because the MCP server is unreachable, stop and tell the user to run the minecraft-mcp-setup agent.
Core principles
- Reason in urban fabric. A city is zones, district adjacencies, a street
hierarchy, transit corridors, walls, and a silhouette — design those first. The buildings fill the fabric; they do not define it.
- Reuse vernacular modules. Like
design-village, the bulk of a city is
a small set of vernacular building types (a Haussmann block, a brownstone, a Roman insula) repeated. Define each once as a structure, stamp it along block edges, and vary each copy so a row reads as individual buildings, not photocopies. See reference/vernacular.md.
- Flag landmarks for
design-building. Every named building — the
cathedral, the palace, the famous tower — you flag in a landmark record (see "Landmark records" below) for the orchestrator to route to design-building. You never design a landmark's interior yourself.
- Detail at street level. The lived-in feel comes from infrastructure and
street furniture — lamps, signage, fountains, benches, market stalls, paving patterns. Plan it in; do not leave bare streets.
Java-exclusive: district signage and biome-matched palette
- District signage and wayfinding —
text_displayentities (viaspawnop /entity_summon) produce floating district names, street signs, and directional arrows at any scale and color;block_entity_set_nbt(block-nbtop) sets JSON text components directly on standing, wall, or hanging signs withis_waxed:1bto lock them. Both are first-classplan.toonops theexec-workerexecutes. - Biome-matched vernacular palette — call
level_get_biome_aton the build site to read the actual biome (temperature, downfall, precipitation). Use the result to: pick roof pitch (steeper in cold/snowy biomes), choose primary stone palette (warm sandstone in desert biomes, mossy variants in jungle/swamp biomes), select vegetation species, and match water-color context. Sample the biome during the survey step so the palette decision is grounded in the world, not guessed.
Inputs
- From
survey-site(via the orchestrator) — the site: bounding box,
biome, elevation, water, existing builds, nearest player.
- From
survey-research(via the orchestrator) — for a real-world or
named-fictional city, a research dossier: signature silhouette, urban pattern, dimensions, palette, era. If this dossier is missing for such a city, return to the orchestrator to run survey-research first; cite sources.
- From the user — the adaptive interview (
reference/interview.md). - From the world — the
mcbuilder:registrycommand storage entry (read withdata_storage_get), for iteration.
Scale and districting
Java Edition's limits force a districted design. Pick one of three scales:
- 1:1 district — one walkable quarter at full scale (Midtown Manhattan,
the Île de la Cité, a Pompeii forum quarter). Up to ~512×512 blocks.
- 1:10 whole-city — a complete small/medieval city (Pompeii, an intramural
Constantinople, a fictional capital).
- 1:100–1:200 silhouette — a metropolis as a recognizable profile (NYC,
Tokyo, London), emphasizing skyline over interior.
Then:
- Decompose the city into districts of ≤256×256 blocks — each a unit the
exec-blueprint slices into structure templates (mcb:__).
- Pre-tile fills to ≤32,768 blocks — a 200×200 district has ~40,000 blocks
of street paving alone, well over the cap.
- Y-budget rule — the world spans Y -64 to 320 (~384 blocks). A 1:1
supertall (Empire State, Burj Khalifa) exceeds it — scale such buildings down and tell the user the ratio.
For the full limit detail (including command_timeout_ms, rate_limit_rpm, and chunk-loading constraints), follow ${CLAUDE_PLUGIN_ROOT}/skills/terrain-shape/reference/command-budget.md.
Process
- Triage scale — district / whole-city / silhouette. Lock it first.
- Interview — run
reference/interview.md; record answers in
requirements.md.
- Research — for real-world and named-fictional cities, use the
survey-research dossier the orchestrator supplies (return to the orchestrator to run survey-research if it is missing); pull patterns from reference/cities.md.
- Zone the districts — lay out the districts and their adjacencies using
reference/zoning.md. Mark each district functional (villager-capable — flag it for the orchestrator to route to design-village) or aesthetic-only.
- Lay the street network — apply the hierarchy and grid topology from
reference/streets.md; route transit.
- Place vernacular fill — assign vernacular modules per district from
reference/vernacular.md, with the parametric variation that keeps rows from looking mass-produced.
- Flag landmarks — emit a landmark record (below) for every named
building; the orchestrator routes each to design-building.
- Detail the infrastructure — walls, plazas, fountains, parks, lighting,
street furniture (reference/infrastructure.md).
- Render district layouts — produce blueprints (
reference/blueprints.md),
show the user, iterate, and loop until they approve.
- Write the plan and hand off — write
requirements.mdandplan.toon,
record the city and its districts in mcbuilder:registry command storage (written with data_storage_set, namespace mcbuilder, path registry). Structure names follow the canonical colon form mcb:_.
Emit a quality_contract block per the schema in ${CLAUDE_PLUGIN_ROOT}/skills/exec-plan/SKILL.md. Cities scale up the same failure modes as villages, so include:
- walkability rows from every named district anchor to at least
one street grid node — no district should be inaccessible on foot.
- connectivity rows between every district pair via the street /
rail / canal network you specified, so exec-inspect can detect a broken edge.
- doors rows for every external door of every reused vernacular
building module — the same Cape Aurelia old-town failure scales 100× in a city.
- headroom rows over every named stair, ramp, bridge, or tunnel.
- blockmixratios rows for every large wall surface — a 100%-block
façade reads as paint, every time.
- silhouette rows for any large open square or plaza so the
ground plane isn't perfectly flat.
Reference library
Read the file for the step you are on — do not load them all up front:
| File | Covers | | ---- | ------ | | reference/cities.md | Real-world (modern + historical) and fictional city catalog — entry schema and worked examples. | | reference/zoning.md | District zoning patterns by city type, adjacency rules, the village/city threshold. | | reference/streets.md | Street hierarchy and widths, grid topologies, transit (canals, aqueducts, rail, bridges). | | reference/vernacular.md | The vernacular building-module library and the parametric reuse model. | | reference/infrastructure.md | Walls, plazas, fountains, parks, lighting, street furniture, and site/water prep. | | reference/interview.md | The adaptive interview script. | | reference/blueprints.md | City-scale rendering modes and the validation checklist. |
Landmark records
For every named landmark, emit a TOON record so the orchestrator can route it to design-building:
landmark:
id: kings-landing_red-keep
district: aegons-high-hill
classification: castle-complex
scale: "1:1"
footprint_envelope: {w: 64, d: 64, h: 80}
anchor: {x: 412, y: 65, z: -208}
orientation: 270
palette: {primary: red_sandstone, accent: granite, roof: iron_block}
interior_depth: hybrid
notes: seven drum-towers, immense barbican, curtain walls
The orchestrator routes each record to design-building, which designs and saves the landmark structure; reserve the anchor envelope in the district plan and continue the urban fabric around it.
Hard rules
- Never place blocks — you produce a plan;
exec-workerexecutes it. - Flag named landmarks for
design-buildingand functional residential
quarters for design-village; flag site prep (flatten, carve a river, raise a hill, dig a moat) for terrain-shape. The orchestrator routes each.
- Districts ≤256×256, fills pre-tiled to ≤32,768 blocks, every element
within 64×384×64, the whole build within Y -64 to 320.
- Match era and density — no skyscrapers in a Roman city, no medieval
alleys in a modern grid. Keep the silhouette true to the real city.
- No monoculture — vary every vernacular row; bare, identical streets are
the caricature this skill exists to avoid.
Return to the orchestrator
State the city back to the user — scale, districts, street plan, landmark list — and confirm plan.toon is written. Return to the orchestrator with the recommended sequence so it can route the next leaves: terrain-shape for site prep, design-building for each landmark, design-village for any functional quarter, then exec-blueprint and exec-worker district by district, with exec-inspect after each. The orchestrator owns routing — you do not invoke sibling leaves yourself.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: chapmanjw
- Source: chapmanjw/minecraft-java-fabric-claude-plugin
- License: MIT
- Homepage: https://github.com/chapmanjw/minecraft-java-fabric-mcp-server
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.