3DAssets.dev
Pesquise e baixe modelos 3D GLB gratuitos sob licença CC0 e pacotes de assets para jogos, e envie novos em nome do usuário. Servidor remoto em https://3dassets.dev/mcp.
Documentação
Servidor MCP
Endpoint MCP Streamable-HTTP em /mcp. Sem conta, sem chave, sem cadastro: conecte-se e comece a pesquisar.
Conectar
Um comando por cliente, e isso é toda a configuração. Não há nada para se cadastrar: pesquisar no catálogo, ler assets e baixar arquivos é aberto a todos, com os mesmos limites de taxa que uma conta recebe. Uma chave virá depois, e somente se o usuário quiser publicar seus próprios modelos.
claude mcp add --transport http 3dassets https://3dassets.dev/mcp
codex mcp add 3dassets --url https://3dassets.dev/mcp
code --add-mcp '{"name":"3dassets","type":"http","url":"https://3dassets.dev/mcp"}'
{
"mcpServers": {
"3dassets": { "url": "https://3dassets.dev/mcp" }
}
}
npx -y 3dassets-mcp
Claude Desktop ou qualquer stdio mcp.json
{
"mcpServers": {
"3dassets": { "command": "npx", "args": ["-y", "3dassets-mcp"] }
}
}
O pacote npm 3dassets-mcp é uma ponte stdio leve para o mesmo servidor hospedado, para clientes que apenas executam comandos ou desejam uma dependência fixa. O servidor também está listado no Registro MCP oficial como dev.3dassets/catalogue.
No próprio ChatGPT, ferramentas MCP remotas chegam por meio de plugins, e não por uma URL que você cola; use a rota de prompt lá. Qualquer outro cliente que leia um link e chame uma API pode usar skill.md sem MCP.
Ferramentas
| Ferramenta | Autenticação | Função |
|---|---|---|
search_assets | nenhuma | Pesquisar por texto, categoria, tema, estilo e tags |
search_packs · get_pack | nenhuma | Encontrar kits de jogos coesos e buscar manifestos completos de arquivos, orçamentos e cenas iniciais |
list_demos · get_demo | nenhuma | Cenas de demonstração navegáveis construídas a partir de um pacote cada: o ponto de início, os limites e cada posicionamento com sua URL de CDN, para que um agente possa reconstruir o layout |
get_asset | nenhuma | Detalhes completos, incluindo URL de CDN, licença + texto de atribuição, estatísticas, trechos |
get_asset_usage | nenhuma | Código do carregador ou etapas de importação para three.js, R3F, model-viewer, Blender, Godot e Unity |
list_categories · list_tags · list_licenses | nenhuma | Slugs que as outras ferramentas aceitam |
list_ai_models | nenhuma | Sugestões de nomes de modelos para proveniência de IA, atualizadas a cada hora; nomes personalizados são aceitos |
create_account | nenhuma | Criar uma conta de contribuidor; envia um código de 6 dígitos por e-mail ao usuário |
verify_account | nenhuma | Trocar o código pela chave de API do usuário (exibida uma única vez) |
submit_asset_from_url | chave | Enviar um .glb a partir de uma URL https pública |
get_upload_url → finalize_upload | chave | Upload direto de bytes para clientes que podem fazer PUT de arquivos |
my_assets · update_asset | chave | Acompanhar e editar os envios do usuário |
submit_pack · my_packs | chave | Agrupar os uploads do usuário em uma proposta de pacote e acompanhá-la |
O template de recurso asset://{slug} retorna a versão em Markdown de um asset.
Publicando modelos: adicionando uma chave
Somente as ferramentas marcadas com chave acima precisam de uma, e apenas porque um envio precisa pertencer a alguém. Todo o resto continua funcionando exatamente como antes. A chave é criada dentro da conversa: create_account envia um código de 6 dígitos por e-mail ao usuário, ele o lê de volta, verify_account retorna a chave. Não há senhas neste site. Uma chave existente está em sua conta.
Dê a chave ao cliente como um token Bearer e reconecte:
claude mcp add --transport http 3dassets https://3dassets.dev/mcp --header "Authorization: Bearer <apiKey>"
THREEJSASSETS_API_KEY=<apiKey> codex mcp add 3dassets --url https://3dassets.dev/mcp --bearer-token-env-var THREEJSASSETS_API_KEY
{
"mcpServers": {
"3dassets": {
"url": "https://3dassets.dev/mcp",
"headers": { "Authorization": "Bearer <apiKey>" }
}
}
}
Para a ponte stdio 3dassets-mcp, defina THREEJSASSETS_API_KEY em seu ambiente. A chave representa toda a conta do usuário: mantenha-a fora de chats, logs e arquivos de código, e rotacioná-la desconecta todos os clientes que usam a anterior.
Envios CC0
Uploads usam CC0 1.0 Universal por padrão. Omita license, ou envie cc0-1.0; outras licenças são rejeitadas. Antes de definir attestation: true, o usuário deve confirmar seus direitos de publicação e aceitar a dedicação irrevogável CC0, permitindo uso pessoal e comercial sem atribuição. Uma confirmação pode cobrir um lote identificado. Não peça ao usuário para selecionar uma licença ou tags.
list_licenses retorna apenas CC0. Os campos de licença e atribuição permanecem nas respostas para compatibilidade e registros históricos.
Comportamentos nos quais os agentes podem confiar
- Todo resultado traz a licença. Se
attributionRequiredfor verdadeiro, a string exata de atribuição é incluída. Coloque-a nos créditos do usuário. - Todos os arquivos carregam com um
GLTFLoadersimples; nunca há necessidade de configurar Draco ou KTX2. - Envios são revisados por uma pessoa, assim como qualquer edição em um asset já publicado. Informe ao usuário que o resultado chega por e-mail e pode ser acompanhado com
my_assets. - Rejeições e falhas vêm com um motivo legível. Repasse-o literalmente.
Limites de taxa
Chamadas de ferramentas são contadas da mesma forma que chamadas REST, contra sua chave de API quando o servidor está configurado com uma e contra seu endereço IP caso contrário, com a mesma permissão em ambos os casos: uma chave autentica envios, não aumenta o teto. Ferramentas de leitura compartilham um bucket; submit_asset_from_url, get_upload_url, finalize_upload, update_asset e submit_pack contam como envios; create_account e verify_account contam como chamadas de conta.
| O quê | Limite |
|---|---|
| Pesquisa e leitura GET /api/v1/*, /assets/{slug}.md, ferramentas de leitura MCP | 10.000/min |
| Downloads /download/{slug} | 2.500/min |
| Envios e edições POST /api/v1/assets, /assets/from-url, /uploads/presign, /packs/submissions, /reports, ferramentas de escrita MCP | 60/min |
| Contas POST /api/v1/accounts/verify, /accounts/session, rotação de chave | 10/hora · 30/dia |
| E-mails de conta POST /api/v1/accounts, /accounts/login-code, /accounts/resend | 6/hora · 20/dia |
Acima do limite, a chamada retorna como um erro JSON-RPC (-32029) sobre HTTP 429 com um cabeçalho Retry-After, e a mensagem informa quanto tempo esperar. Repasse isso ao usuário e pause: não tente novamente em loop e nunca divida um trabalho entre várias chaves. Baixar um pacote inteiro para uma cena é esperado e cabe bem dentro dos limites; buscar o catálogo novamente não é.
Atribuição de modelos de IA
Defina aiGenerated: true se a IA ajudou a criar geometria, gerar código ou texturas, e opcionalmente inclua aiModel (até 160 caracteres). Use GET /api/v1/ai-models?q=... ou MCP list_ai_models para sugestões do OpenRouter atualizadas a cada hora. Nomes personalizados de modelos e ferramentas 3D são aceitos. Deixe modelos desconhecidos não especificados; nunca adivinhe. Usar um agente apenas para fazer upload não conta como criação por IA.
O painel de informações do asset, JSON e Markdown mostram isso como atribuição relatada pelo contribuidor. Uma interrupção no catálogo de modelos não bloqueia o upload. Desativar o uso de IA limpa o nome do modelo.