Overview
3D Asset Server (3d-asset-server) is a self-hosted TypeScript server that searches 23 sites for 3D models, materials, textures, HDRIs and game assets in one query and downloads what you pick, ready to drop into a game or a website. Sources include Poly Haven, ambientCG, BlenderKit, Kenney, Quaternius, Sketchfab, OpenGameArt, CGTrader and itch.io. The same engine is reachable four ways: a web UI, an HTTP API with an OpenAPI 3.1 description, a command-line tool, and a Model Context Protocol (MCP) server that lets an AI assistant such as Claude Code, Claude Desktop or Cursor search and fetch assets itself.

Each site has its own adapter: some are queried through official or WordPress APIs, some by parsing their public pages, and a few that sit behind bot walls (Fab, Poliigon, TurboSquid) come back only as links to the same search on that site. A search picks the sources that carry the requested asset type, queries them in parallel with a timeout each, then ranks and merges the results and returns a status report for every site. A slow or broken site never fails the whole search; it appears in the report with its error and a link to the site's own search.
Results are licence-first: every asset states its licence, whether it is free, and whether the author must be credited. From sources that allow direct downloads, the server fetches glTF with its `.bin` and textures, PBR maps at a chosen resolution, HDRIs, or zipped packs that it extracts, and keeps companion files in their relative paths so a glTF loads straight away. Paid, login-gated and hotlink-protected content is never bypassed, only public http(s) hosts are fetched, and each download has a size guard. A public instance runs at 3d.shep.bot, and the project's code is licensed under Apache-2.0.
What it does
- Searches 23 3D asset sites in parallel and returns merged, ranked results with a per-site status report (ok, error, timeout, skipped, link)

- Every result carries its licence, whether it is free and whether attribution is required; `download_asset` returns an attribution line when credit is needed
- Direct downloads from free sources: glTF with companion files, PBR maps at a chosen resolution, HDR/EXR HDRIs and auto-extracted zip packs, preferring game- and web-friendly formats
- MCP server over stdio or Streamable HTTP with four tools: `search_assets`, `get_asset`, `download_asset` and `list_providers`
- REST API (`/v1/search`, `/v1/assets/{provider}:{id}`, `/v1/assets/{id}/download`) with an OpenAPI 3.1 spec, plus a web UI and a `search` / `serve` / `mcp` CLI
- Self-hosting options including a published Docker image, an optional API key, per-client rate limiting and Prometheus metrics
Getting started
The server needs Node.js 20 or newer, or Docker. One process serves the web UI, the HTTP API and the MCP endpoint on port 8787; the commands below come from the project README.
Build from source
Clone the repository, install dependencies and build the server into `dist/`.
git clone https://github.com/arielshad/3d-asset-server.git
cd 3d-asset-server
npm install
npm run buildStart the server
Serves the web UI, the HTTP API and MCP on http://localhost:8787. Alternatively, run the published Docker image without building.
npm start
# or, with Docker
docker run -p 8787:8787 ghcr.io/arielshad/3d-asset-serverSearch from the API or the CLI
The API returns ranked results plus a report per site; the download endpoint redirects to a single file or streams a zip with its companions.
curl 'localhost:8787/v1/search?q=brick+wall&type=material&free=true&limit=5'
curl -OJ 'localhost:8787/v1/assets/polyhaven:WoodenChair_01/download?format=gltf&resolution=1k'
node dist/cli.js search "low poly tree" --type model --freeAdd it to Claude Code over stdio
`ASSET_DOWNLOAD_DIR` sets where `download_asset` saves files (default `./assets`). Claude Desktop, Cursor and other stdio clients take the same command and args in their `mcpServers` config.
claude mcp add 3d-assets -e ASSET_DOWNLOAD_DIR="$PWD/assets" -- node /path/to/3d-asset-server/dist/cli.js mcp
Or connect to the public MCP endpoint
The public server needs no setup or key. Over HTTP, `download_asset` is off by default because it would write to the server's disk; `get_asset` returns direct file URLs and a one-click `bundleUrl` zip instead. For your own server, point the client at `http://<host>:8787/mcp`.
claude mcp add --transport http 3d-assets https://3d.shep.bot/mcpCommands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Let a coding assistant find a model, a material and an HDRI for a Three.js or game scene and save them into the project's assets folder
- Check the licence and attribution terms of 3D assets across many libraries before downloading anything
- Give a game or web pipeline one REST API for searching and downloading free CC0 assets instead of integrating each site separately
- Self-host a shared asset search for a team, restricted to chosen sources with `ASSET_SERVER_PROVIDERS` and protected with an API key
How 3D Asset Server compares
3D Asset Server alongside other open-source 3d & cad generation tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| MCP for Blender | ★ 30.9k | MCP server and Blender addon that let an LLM drive Blender directly — creating, modifying and inspecting 3D objects, materials and scenes from a chat prompt. |
| Pascal Editor | ★ 24.9k | A local-first 3D building editor built on React Three Fiber and WebGPU, with a typed architectural node hierarchy and an authenticated MCP service so AI agents can inspect and edit the scene. |
| text-to-cad | ★ 20.6k | A library of agent skills for CAD, CAE and CAM: plain-language to STEP models, DXF drawings, URDF/SRDF/SDF robot files, printability checks and sliced G-code. |
| img2threejs | ★ 18.2k | An agent skill that rebuilds the object in a single reference image as procedural, animation-ready Three.js code, gating each sculpting pass on a vision review against the reference. |
| CADAM | ★ 5.3k | An open-source text-to-CAD web app that has an LLM write OpenSCAD, then exposes the model's parameters as live sliders and exports STL, SCAD and DXF. |
| MAC (Multi-Agent CAD) | ★ 1k | A multi-agent framework that turns natural-language design briefs into editable CAD parts and multi-part assemblies, exporting STEP, STL, GLB and URDF. |
| 3D Asset Server | ★ 306 | One search across 23 3D asset sites, with licences, downloads and an MCP server for AI agents |