Skip to main content
Glama

Import from the stock library

import_stock

Import one item from search_stock into the project as an asset. Pass its id. A device frame becomes an image asset and installs DeviceFrame (a picture on its screen) and DeviceFrameVideo (a video on its screen); the answer is the clip with every number filled in: bind your picture or video and place it with patch_film. A sound becomes an audio asset; the answer says where its loudest point is, so you put it on the action. A music track becomes an audio asset; the answer says its bpm, its length, its loudness and the second its big hit lands, so you slide its offset to put that hit on the payoff and set its volume from the measured level. A sound's or a track's source, author and license stay with the asset (read_asset shows them) and the answer says whether its license asks for a credit line in the video's description. A 3D model becomes a model asset; the answer lists its materials and a 3D clip that puts a picture on its screen, and a template slot takes its Asset ID (the laptop-showcase template takes macbook-pro). A green screen becomes a video asset; the answer is the that keys it and where it goes on the film for its use (a subject over footage, footage under a green device screen, a wipe, a new sky). A VFX clip becomes two video assets, the effect and its alpha, and the answer is the effect's clip with the alpha as its mask, so its light adds to the footage like a screen blend; an ink matte becomes the mask of a that holds the incoming shot. A library model (an id starting polyhaven-, kenney-, khronos-, nasa- or polypizza-) is converted to an optimised GLB like an upload. A texture (an id starting texture-) becomes one image asset a map (colour, normal, roughness); the answer is a 3D world material with its maps and the repeat that tiles them. A library item's source, author and licence stay with its asset: read_asset shows them, and a credit line its licence asks for (CC BY, NASA) goes in the video's description. Nothing is charged. Do not invent ids.

Input Schema

NameRequiredDescriptionDefault
idYesAn id from search_stock, for example iphone-pro-frame-front-black, macbook-pro or music-happy-times.
projectIdYesThe project this call runs on without changing the open project. null (or leaving it out) uses the open project. wait_for_jobs takes the projectId of the calls that started the jobs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / id / description
      Previous value: -"An id from search_stock, for example iphone-pro-frame-front-black or macbook-pro."New value: +"An id from search_stock, for example iphone-pro-frame-front-black, macbook-pro or music-happy-times."
  2. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only declare readOnly=false, idempotent=false, destructive=false; the description goes well beyond by explaining, per asset type, exactly what assets get created, what the answer contains (clip with numbers filled in, bpm/length/loudness/hit second, license/credit requirement), and that 'Nothing is charged'. It does not warn that repeat calls create duplicates (relevant given idempotentHint=false), which keeps it off a 5.

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

Conciseness3/5

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

The first two sentences are front-loaded and excellent, but the body is one sprawling paragraph of run-on, comma-chained sentences per asset type, mixing internal jargon (<chroma>, <group>, patch_film, 'the action', 'the payoff'). The information mostly earns its place, but a bulleted per-asset-type structure would make it far more scannable.

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

Completeness4/5

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

For a tool with ten distinct asset-type behaviors, no output schema and a destructive-but-unannotated write, the description does the heavy lifting by describing the return value per type and required follow-up calls. Missing are failure modes (bad id, unsupported type) and the duplicate-on-repeat behavior, but it is otherwise sufficient to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented, including examples of valid ids and the projectId/open-project behavior. The description reinforces the id source ('Do not invent ids', 'Pass its id') but adds no format or syntax detail beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

The opening states a specific verb, resource and scope: import one item from search_stock into the project as an asset, and it names the source tool (search_stock). The subsequent per-type breakdown makes the resource concrete. It does not differentiate from near-identical siblings such as add_from_library, import_element or import_gif, so an agent cannot rule those out from this text alone.

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

Usage Guidelines3/5

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

It gives real usage constraints for the input ('Pass its id', 'Do not invent ids', ids come from search_stock) and describes what to do after the call (patch_film, place on action, set offset/volume). However, there is no explicit when-to-use vs when-not guidance against the many sibling import/search tools, so selection is only implied.

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.