Log all download-related links, schematic file references, and
download path types found on the project page to diagnose 404s.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add debug logging to dump page titles, HTML lengths, and snippets
when the schematic download page is loaded. Also switch to
waitUntil: 'load' and add 3s delay for async JS execution.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The download pipeline was getting HTML instead of the binary file because
PMC's /download/schematic/ returns a countdown confirmation page. Added
downloadSchematic() that uses a full browser flow (project visit → download
page → extract static URL → capture file). Also added ZIP extraction via
adm-zip for schematics wrapped in ZIP archives.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
minecraft-schematics.com has Cloudflare WAF blocking POST requests to
its AJAX search endpoint, making automated search impossible. Switched
to Planet Minecraft which has server-rendered search results and direct
schematic download URLs.
Also added browser stealth settings (custom user-agent, webdriver flag
hiding, AutomationControlled disable) and Cloudflare challenge detection
to all Playwright functions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Playwright Docker image v1.58.2-noble doesn't exist on MCR, breaking
the CI build. Switch to node:20-slim and install Playwright chromium at
build time for resilience against future version mismatches.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Switch Docker base image from node:22-alpine to Playwright Noble for
in-container Chromium support. Add persistent cache volume for schematics.
New files: schematics browser, cache, Java block ID mapping.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The external myRenderObject script is loaded dynamically, not via a
static <script> tag. Add fallback patterns to extract model_id or
product_id from the page HTML and construct the JS URL from that.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GrabCraft moved myRenderObject data from inline scripts to external JS
files (/js/RenderObject/myRenderObject_XXXX.js). This adds extraction of
the external script URL, fetching and parsing the nested JSON object, with
fallback to the original inline extraction for legacy pages.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Deploys to 10.0.0.247 via SSH on push to main.
Clones on first run, pulls on subsequent. Builds Docker
image and runs docker compose up.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MCP server that bridges Minecraft Bedrock Edition's WebSocket API
to Claude Code CLI. Exposes 6 tools: minecraft_command, minecraft_chat,
minecraft_build, minecraft_get_events, minecraft_get_status, minecraft_subscribe.
Supports both SSE and Streamable HTTP MCP transports.
Privacy-first: no disk persistence, no telemetry, memory-only event buffer.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>