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.

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_assetsandget_asset, for finding one model and getting its URL, size, triangle count and loader snippetsearch_packsandget_pack, for a whole kit built to one scale, plus its assembled starter scenelist_demosandget_demo, for complete walkable scenes staff have laid outlist_categoriesandlist_tags, so it filters on real vocabulary rather than invented tagsget_upload_urlandfinalize_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 whole3scene 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.mdis a complete instruction sheet an assistant can read in one fetchhttps://3dassets.dev/llms.txtindexes the site for a model that wants an overview firsthttps://3dassets.dev/api/v1/assets?q=oak+treeis the search endpoint, and it needs no key- every asset page has a Markdown twin at
/assets/{slug}.mdwith 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.

