3DAssets.dev

AI setup

Give your AI assistant a 3D model library

An AI coding assistant can write a three.js scene in seconds and then fill it with grey cubes, because it has no models and no way to find any. Connecting it to a catalogue fixes that in one line.

3DAssets.dev4 min read

Ask any competent AI coding assistant for a forest scene in three.js and it will write you a good one: a renderer, a camera, lights, a ground plane, and a loop. Then it will fill the forest with cones. It has no models. If you push it, it will often invent a URL that looks exactly like a real asset URL and returns a 404.

This is a tooling gap, not a model failure. The assistant is perfectly capable of placing a tree; it just has no way to find one. Giving it a catalogue it can actually search takes one line of setup.

What your assistant gets

3DAssets.dev runs an MCP server over the whole catalogue. Once it is connected, your assistant has tools rather than guesses:

  • search_assets and get_asset, for finding one model and getting its URL, size, triangle count and loader snippet
  • search_packs and get_pack, for a whole kit built to one scale, plus its assembled starter scene
  • list_demos and get_demo, for complete walkable scenes staff have laid out
  • list_categories and list_tags, so it filters on real vocabulary rather than invented tags
  • get_upload_url and finalize_upload, if you want it submitting your own models back

Everything it reads is CC0 and free, so there is no licence negotiation in the middle of a build and nothing to add to your credits.

Connect it

Pick the line for your client. None of these need an account.

For Claude Code:

1claude mcp add --transport http 3dassets https://3dassets.dev/mcp

For the Codex CLI:

1codex mcp add 3dassets --url https://3dassets.dev/mcp

For any client that launches a stdio command, the 3dassets-mcp npm package is a thin bridge to the same hosted server:

1npx -y 3dassets-mcp

Most desktop clients configure that in a JSON file:

1{
2 "mcpServers": {
3 "3dassets": { "command": "npx", "args": ["-y", "3dassets-mcp"] }
4 }
5}

The server is listed on the official MCP Registry as dev.3dassets/catalogue, so a client that browses the registry can find it without any of the above.

Restart your assistant after adding the server. Most clients only read their MCP configuration at startup, and a tool list that has not refreshed is the most common reason a freshly added server appears to do nothing.

Your first prompt

The point of connecting a catalogue is that you stop describing assets and start describing scenes. This works:

1Build me a three.js scene of a small woodland clearing with a campfire.
2Use models from 3dassets.dev, search for what you need, and keep the whole
3scene under 2 MB of geometry. Show me the model list before you write code.

Three things in that prompt are doing real work. Naming the source stops the assistant reaching for a URL it half remembers. Asking for the model list first gives you a chance to swap a choice before any code exists. The size budget matters because the assistant can see fileSize and triangles on every result and will actually respect a number you give it.

For a whole environment rather than a handful of props, ask for a pack instead. A pack is a set built together at one scale with a shared palette, which is the difference between a scene that looks composed and a scene that looks like a search results page.

Do you need an API key

For reading, no. The allowance is the same with or without one, and far more than a build session uses. A key is required only for submitting models. The current figures are published in one place and read straight from the limiter, so the API docs and skill.md always have the live numbers rather than a copy of them.

If you want one, create it at your account page after signing up, and put it in your agent's environment or secret settings rather than in a prompt or a source file. Sign-up is a username and an email address; there are no passwords on this site at all.

If your assistant cannot speak MCP

It does not need to. The catalogue is designed to be usable with nothing but an HTTP tool:

  • https://3dassets.dev/skill.md is a complete instruction sheet an assistant can read in one fetch
  • https://3dassets.dev/llms.txt indexes the site for a model that wants an overview first
  • https://3dassets.dev/api/v1/assets?q=oak+tree is the search endpoint, and it needs no key
  • every asset page has a Markdown twin at /assets/{slug}.md with the snippets already in it

Pointing an assistant at skill.md and telling it to follow it is usually enough.

What comes back

So you know what your assistant is working with: every model is a self-contained binary glTF file, textures embedded, authored in metres with +Y up. Geometry is quantized and textures are WebP, both of which three.js reads natively, so there is no Draco or KTX2 decoder to configure. Each response carries the bounding box and the size in metres, which is what lets an agent place something without guessing whether it built a chair or a cathedral.

The CDN URL never changes content, so an agent can cache the file and reuse it rather than re-fetching it on every run.

Where to go next

If you work in an engine rather than the browser, the catalogue pairs with the editor's own MCP server: see Unity, Unreal and Godot.

Once the assistant is connected, the next thing that limits your results is how you ask. Prompts that work for building 3D scenes covers the phrasing that reliably produces a scene rather than a pile of props. If you would rather write the loader yourself, start with loading a GLB in three.js.

Common questions

Do I need an account to connect my AI assistant to 3dassets.dev?
No. Searching, reading and downloading models needs no account and no key: the MCP server and the REST API both answer anonymous requests, on the same rate limits a key gets. An API key is only needed to submit your own models.
Which AI assistants can use an MCP server?
Any client that speaks the Model Context Protocol. Claude Code, the Codex CLI, Cursor, Windsurf, Zed and the Claude desktop apps all do, either over Streamable HTTP or by launching a stdio command. Assistants without MCP can still use the catalogue through its plain JSON API, which needs nothing but HTTP access.
Will my assistant invent 3D model URLs?
It can, and that is the problem connecting a catalogue solves. Once the MCP server is attached, the assistant calls search_assets and get_asset and receives real slugs and real CDN URLs, so the model it places is one that exists. Every asset response also carries ready-to-paste three.js and React Three Fiber snippets, so there is nothing left for it to guess.
Can an AI agent download 3D models on its own?
Yes. Every model has a permanent, CORS-enabled URL on cdn.3dassets.dev that an agent can fetch directly, with no sign-in step and no download page to click through. The files are CC0, so there is no licence to accept and nothing to attribute.

Keep reading

Prompting

Prompts that work for building 3D scenes with AI

Most bad AI 3D scenes come from prompts that describe a mood instead of a scene. Here is the phrasing that reliably produces something you can load, with the constraints worth stating every time.

three.js guide

How to load a free GLB model in three.js

A working GLTFLoader setup, straight from a CDN URL with no build step, plus animation, sensible scaling and the four mistakes that account for most blank screens.