Skip to main content
Glama

Import asset

asset_import

Import a validated uploaded asset into the current project head as a new revision. Use upload_create then upload_complete before this tool; for library slugs or generated provider models use asset_library_import. Stale base revisions reject with REVISION_CONFLICT. Returns an asynchronous job handle; job_wait/job_get reveal success, errors and the committed revision.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formatNoUploaded file format. auto (default) sniffs file bytes; specify gltf or stl explicitly for those formats. font covers supported uploaded font files.auto
assetIdYesValidated ast_… asset ID returned by upload_complete; quarantined or rejected uploads cannot be imported.
placementNoRequested placement policy; currently both values preserve importer-native transforms. Neither recenters the asset or moves it to the scene cursor.origin
projectIdYesStable project ID returned by project_create or projects_list.
unitPolicyNoRequested unit convention; currently reserved, with importer-native units preserved for either value. Inspect dimensions and scale explicitly after import.meters
baseRevisionIdNo"HEAD" (default) targets the project's current head. Mutations MUST build on the head: passing an older revision is rejected with REVISION_CONFLICT, since history is linear. To continue from an older scene, revision_restore it forward first.HEAD
idempotencyKeyYesStable caller-chosen key for safe retries of this same request.
targetCollectionNoExisting destination collection name or ID, up to 64 characters. If absent or not found, importer collection links are preserved.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
jobYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / assetId / description
      Added value: +"Validated ast_… asset ID returned by upload_complete; quarantined or rejected uploads cannot be imported."
    • addedInput schema / properties / format / description
      Added value: +"Uploaded file format. auto (default) sniffs file bytes; specify gltf or stl explicitly for those formats. font covers supported uploaded font files."
    • addedInput schema / properties / placement / description
      Added value: +"Requested placement policy; currently both values preserve importer-native transforms. Neither recenters the asset or moves it to the scene cursor."
    • addedInput schema / properties / targetCollection / description
      Added value: +"Existing destination collection name or ID, up to 64 characters. If absent or not found, importer collection links are preserved."
    • addedInput schema / properties / unitPolicy / description
      Added value: +"Requested unit convention; currently reserved, with importer-native units preserved for either value. Inspect dimensions and scale explicitly after import."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare the safety profile (readOnly=false, destructive=false, openWorld=true), and the description adds genuinely new behavior: asynchronous job handle return, job_wait/job_get for resolving success/errors, REVISION_CONFLICT rejection on stale bases, and that quarantined/rejected uploads cannot be imported. This is rich context beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, each carrying distinct information (purpose, prerequisites/alternative, error condition, return handling). Front-loaded with purpose and prerequisites; only minor density cost from packing routing and error semantics together.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not detail return values, yet it still tells the agent the return is a job handle and how to resolve it. Combined with annotations, the error path, prerequisites, and alternative routing, an agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter semantics by tying baseRevisionId to the REVISION_CONFLICT outcome and the linear-history rule. It does not restate per-parameter detail, but it meaningfully frames how the inputs interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Import), resource (validated uploaded asset), and target (current project head as a new revision). It also explicitly names the sibling it is not (asset_library_import), so an agent can distinguish it without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite chain (upload_create then upload_complete before this tool) and an explicit alternative with its triggering condition (library slugs or generated provider models -> asset_library_import). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources