Skip to content

Network tools

Licensed downloads from the web, recorded with provenance and credits.

1 tools in the network category. Badges: read-only tools never change the project; mutating tools are undoable and attributed; open-world tools reach outside the engine and MCP clients ask before running them.

Tool Summary
asset_download Download an openly licensed asset (3D model .glb/.gltf/.obj/.ply/.stl, texture, .hdr sky panorama, audio, or a .zip pack of them) from a URL into the project, record its license and author, add it to CREDITS.md, and (for models) import it — optionally placing it in the scene.

asset_download

Download asset from the web mutating open-world

Download an openly licensed asset (3D model .glb/.gltf/.obj/.ply/.stl, texture, .hdr sky panorama, audio, or a .zip pack of them) from a URL into the project, record its license and author, add it to CREDITS.md, and (for models) import it — optionally placing it in the scene. Multi-file glTF and OBJ+MTL dependencies are fetched automatically. RULES: only use assets whose license allows this project's use (CC0, CC-BY with attribution, MIT, public domain, or terms the human accepted); never bypass logins, paywalls or download limits; give the license exactly as stated on the source page. The human approves every download.

Argument Type Required Description Values
url string yes Direct file URL (http/https)
license string yes License as stated by the source, e.g. "CC0-1.0", "CC-BY-4.0", "MIT"
author string Creator / copyright holder
source_page string Page the asset was found on (for credits)
attribution string Exact attribution text required by the license, if any
folder string Project folder to save into (default downloads/<name>)
include object Extra files of a multi-file asset as {"relative/path": "url"} — for libraries that host a model's textures/buffers elsewhere (e.g. Poly Haven's file API lists them under include).
import boolean Import models after download (default true)
normalize boolean Scale models to fit 1 m (default true); false keeps real-world units
z_up boolean The model is Z-up (CAD, scans, some exporters) — rotate to Y-up
create_entity string Also place the model as a new entity with this name
position number[3] Position for the new entity
asset_download {"url": "<gltf url from the files API>", "license": "CC0-1.0", "author": "<author from the API>", "source_page": "https://polyhaven.com/a/<asset id>", "include": {"textures/<name>_diff_1k.jpg": "<url from the files API 'include' map>"}, "folder": "crate", "import": true, "normalize": false, "create_entity": "Crate", "position": [0, 0, 0]}
skywalker call asset_download '{"url": "<gltf url from the files API>", "license": "CC0-1.0", "author": "<author from the API>", "source_page": "https://polyhaven.com/a/<asset id>", "include": {"textures/<name>_diff_1k.jpg": "<url from the files API '\''include'\'' map>"}, "folder": "crate", "import": true, "normalize": false, "create_entity": "Crate", "position": [0, 0, 0]}' --project my_game
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "asset_download",
    "arguments": {
      "url": "<gltf url from the files API>",
      "license": "CC0-1.0",
      "author": "<author from the API>",
      "source_page": "https://polyhaven.com/a/<asset id>",
      "include": {
        "textures/<name>_diff_1k.jpg": "<url from the files API 'include' map>"
      },
      "folder": "crate",
      "import": true,
      "normalize": false,
      "create_entity": "Crate",
      "position": [
        0,
        0,
        0
      ]
    }
  }
}