Skip to content

mcmeta HarvestMetadata harvester tool

Collects and publishes Minecraft ecosystem metadata.

mcmeta Harvest preview

Running locally

bash
cargo build
./target/debug/mcmeta-harvest harvest all --out /tmp/mcmeta

Download referenced artifacts into a local cache:

bash
./target/debug/mcmeta-harvest artifacts fetch --input /tmp/mcmeta --out /tmp/mcmeta-artifacts

Upload cached artifacts to S3:

bash
MCMETA_S3_ENDPOINT="https://YOUR-S3-ENDPOINT" \
MCMETA_S3_REGION="eu-central-1" \
MCMETA_S3_BUCKET="mcmeta" \
MCMETA_S3_PREFIX="artifacts" \
MCMETA_S3_ACCESS_KEY="..." \
MCMETA_S3_SECRET_KEY="..." \
./target/debug/mcmeta-harvest artifacts upload --dir /tmp/mcmeta-artifacts

Publishing

Run from inside the mcmeta data checkout so git operations apply to that copy:

bash
cd /path/to/mcmeta
/path/to/mcmeta-harvest/target/debug/mcmeta-harvest publish one --mc 1.21.4 --remote origin

Caching

Harvest runs cache upstream responses to disk for faster re-runs. Override defaults with:

  • MCMETA_SOURCE_CACHE_DIR
  • MCMETA_SOURCE_CACHE_MINUTES
  • MCMETA_SOURCE_CACHE (set to 0 to disable)

Feature checklist

Track feature progress in the checklist.

Feature highlights

  • Branch publishing
  • CLI workflow
  • Configurable sources
  • Add feature checklist page to track project progress.
  • Add S3 upload for harvested artifacts with configurable prefix and endpoint.
  • Harvest Yarn mapping versions per Minecraft version into mcmeta metadata.
  • Log harvest steps with per-source summaries.
  • Allow harvest commands to publish directly to git with --publish.
  • Support mc=latest and mc=custom in harvest commands.
  • Cache upstream source responses on disk to speed up harvest re-runs.
  • Add Purpur builds to harvested artifacts output.
  • Add mcmeta harvest docs and changelog pages.
  • Harvest Mojang download metadata and release details into mcmeta branches.