Seven AI agents collaborate in real-time to build landmarks and villages in Minecraft.
Built on Solace Agent Mesh (SAM), this demo showcases multi-agent orchestration, parallel task execution, and autonomous build planning, all through natural language.
"Build the Eiffel Tower at x=100 z=100, medium scale" and watch seven agents coordinate to make it happen.
| Tool | Version | Install |
|---|---|---|
| Docker | Latest | docker.com/get-started |
| Node.js | >= 20.10 | nodejs.org |
| Python | >= 3.10 | python.org |
| LiteLLM API Key | — | Access to Claude models via your LiteLLM proxy |
# 1. Clone and enter the repo
git clone <this-repo-url> && cd sam-minecraft
# 2. Set your API key
export LITELLM_API_KEY="sk-..."
# 3. Launch everything
./start-demo.sh
# 4. Open the WebUI (URL printed in terminal, usually http://127.0.0.1:8000)
# 5. Pick a prompt below and send it to OrchestratorAgentThat's it. The script handles Minecraft server, Python venv, Node dependencies, MCP build, and agent startup.
Note: The demo includes its own Minecraft server via Docker — you do NOT need to own Minecraft. A Minecraft Java Edition client is optional for visual spectating only. All agent interaction happens through the WebUI at port 8000.
Copy-paste any of these into the WebUI chat with OrchestratorAgent:
Build a small village with 4 houses near x=50 z=50.
Use oak, spruce, birch, and stone styles. Add a garden in the center.
Build the Eiffel Tower at x=100 z=100, medium scale, iron classic style.
Build the Taj Mahal at x=200 z=200, medium scale.
Build the Great Wall of China at x=100 z=300, large scale with watchtowers.
Build three landmarks side by side:
1. Great Pyramid of Giza at x=0 z=0, small scale
2. Colosseum at x=80 z=0, small scale
3. Japanese Pagoda at x=160 z=0, small scale
Build a French quarter: an Arc de Triomphe at x=300 z=300 as the centerpiece,
surrounded by 4 oak houses in a grid with gardens and paths.
Build a village with 3 houses at x=200 z=200.
After completion, simulate storm damage on one house, then repair it.
Report quality scores before and after.
Every landmark below is a ready-to-go template. Just name it in a prompt.
| Landmark | Country | Prompt Example |
|---|---|---|
| Eiffel Tower | France | "Build the Eiffel Tower at x=100 z=100" |
| Arc de Triomphe | France | "Build an Arc de Triomphe near spawn" |
| Colosseum | Italy | "Build the Colosseum at x=200 z=200, large scale" |
| Leaning Tower of Pisa | Italy | "Build the Tower of Pisa at x=50 z=50" |
| Big Ben | UK | "Build Big Ben at x=300 z=300" |
| Stonehenge | UK | "Build Stonehenge near x=0 z=200" |
| La Sagrada Familia | Spain | "Build La Sagrada Familia at x=400 z=400" |
| Saint Basil's Cathedral | Russia | "Build Saint Basil's Cathedral at x=100 z=200" |
| Neuschwanstein Castle | Germany | "Build Neuschwanstein Castle at x=300 z=0" |
| Parthenon | Greece | "Build the Parthenon at x=200 z=100" |
| Amsterdam Canal House | Netherlands | "Build a Dutch canal house near spawn" |
| Dutch Windmill | Netherlands | "Build a windmill at x=50 z=150" |
| Medieval Castle | Europe | "Build a medieval castle at x=400 z=400, large scale" |
| Landmark | Country | Prompt Example |
|---|---|---|
| Great Wall of China | China | "Build the Great Wall at x=0 z=300, large scale" |
| Taj Mahal | India | "Build the Taj Mahal at x=200 z=200" |
| Japanese Pagoda | Japan | "Build a Japanese pagoda near spawn" |
| Angkor Wat | Cambodia | "Build Angkor Wat at x=300 z=300" |
| Hagia Sophia | Turkey | "Build the Hagia Sophia at x=100 z=400" |
| Gyeongbokgung Palace | South Korea | "Build Gyeongbokgung Palace at x=200 z=0" |
| Wat Arun | Thailand | "Build Wat Arun at x=400 z=200" |
| Burj Khalifa | UAE | "Build the Burj Khalifa at x=0 z=0, large scale" |
| Landmark | Country | Prompt Example |
|---|---|---|
| Statue of Liberty | USA | "Build the Statue of Liberty at x=100 z=100" |
| Chrysler Building | USA | "Build the Chrysler Building at x=200 z=0" |
| Space Needle | USA | "Build the Space Needle at x=300 z=100" |
| Golden Gate Bridge | USA | "Build the Golden Gate Bridge at x=0 z=200" |
| CN Tower | Canada | "Build the CN Tower at x=100 z=300" |
| Chichen Itza | Mexico | "Build Chichen Itza at x=200 z=200" |
| Christ the Redeemer | Brazil | "Build Christ the Redeemer at x=0 z=100" |
| Machu Picchu | Peru | "Build Machu Picchu at x=300 z=300" |
| Landmark | Country | Prompt Example |
|---|---|---|
| Great Pyramid of Giza | Egypt | "Build the Great Pyramid at x=0 z=0, large scale" |
| Petra Treasury | Jordan | "Build the Petra Treasury at x=200 z=400" |
| Sydney Opera House | Australia | "Build the Sydney Opera House at x=100 z=0" |
| Agent | Model | Role |
|---|---|---|
| OrchestratorAgent | Sonnet | Coordinates all workers, manages zones and task graphs |
| MinecraftAgent (Handy Hank) | Sonnet | Primary structure builder |
| BuildBeaAgent (Build Bea) | Sonnet | Framing, walls, and roofing |
| SupplySidAgent (Supply Sid) | Sonnet | Finishing details, arches, windows |
| MonumentMarcAgent (Monument Marc) | Sonnet | Monument masonry and GrabCraft shards |
| DesignDoraAgent (Design Dora) | Haiku | Site planning and terrain prep |
| ForestFinnAgent (Forest Finn) | Haiku | Landscaping, gardens, and cleanup |
The orchestrator plans the work, claims build zones, and dispatches tasks in parallel. Workers execute their assigned packets and report back. No worker can build outside its assigned zone — collisions are impossible by design.
User prompt
|
v
plan-landmark-mission — match prompt to a landmark template
|
v
allocate-build-graph-zones — reserve all zones atomically
|
v
dispatch-next-task (x6) — assign ready tasks to available workers
|
v
update-task-status — workers report completion
| (dependent tasks unlock automatically)
v
inspect + repair-build-graph — QA pass and fix any defects
Each landmark template defines 8-14 components with dependency chains, material palettes, and scale variants (small / medium / large). The orchestrator compiles these into a task graph and dispatches work across all six agents in parallel.
| Variable | Default | Description |
|---|---|---|
LITELLM_API_KEY |
(required) | Your LiteLLM API key |
LITELLM_API_BASE |
https://lite-llm.mymaas.net |
LiteLLM proxy URL |
LITELLM_MODEL |
openai/bedrock-claude-4-5-haiku-tools |
Model identifier |
START_WORLD_RESET_MODE |
auto |
auto = new seed, keep = preserve world, same = same seed, or a number |
# Stop everything
Ctrl+C
# Reset with a fresh world
./reset-world.sh auto
# Reset with a specific seed
./reset-world.sh 12345sam-minecraft/
├── start-demo.sh # One-command launcher
├── reset-world.sh # World reset utility
├── docker-compose.yml # Minecraft server (vanilla 1.21.4, creative)
├── configs/
│ ├── shared_config.yaml # Broker, models, services
│ ├── services/platform.yaml # SAM platform config
│ └── agents/ # 7 agent YAML configs
├── vendor/minecraft-mcp-server/ # MCP server (TypeScript)
│ ├── src/ # 33 tools, GrabCraft integration, autonomy engine
│ ├── landmark_specs/ # 32 landmark templates (20+ countries)
│ └── tests/ # Test suite
├── tools/ # Supplementary Python utilities
└── CUSTOMER_EXAMPLES.md # Extended prompt cookbook
"LITELLM_API_KEY environment variable is not set" — export LITELLM_API_KEY="sk-..."
Docker permission denied (Linux)
sudo usermod -aG docker $USER
# Log out and back in (or run: newgrp docker)"Port 25565 doesn't work in my browser"
- Port 25565 is Minecraft's game protocol, not HTTP — it won't open in Chrome.
- The WebUI is at
http://127.0.0.1:8000— that's where you send prompts and watch progress. - To spectate visually in-game, open Minecraft Java Edition (v1.21.4) → Multiplayer →
localhost:25565. - A Minecraft client is entirely optional — the demo works fully through the WebUI.
Slow first startup — First run downloads the Minecraft server image (~800MB). Subsequent starts are fast.
Docker DNS issues — Restart Docker Desktop. Check VPN/firewall.
Port conflicts — lsof -i :25565 or lsof -i :8000 to find conflicts.
MCP build fails — cd vendor/minecraft-mcp-server && npm ci && npm run build
MIT