Skip to main content
Glama

Add library asset

add_asset

Import a video, image, GIF, SVG or sound into your library from a URL or uploadId, or materialize a search_assets hit as a shared copy, and optionally set it as your default intro or outro.

Instructions

Add from exactly one source: a public url or an uploadId (video, image, GIF, SVG or sound) becomes one of your library uploads; a search_assets catalog / provider hit (provider + externalId) materializes one instance-shared copy (checksum verified, license recorded; not listed in your library). Returns { id, name, kind, mime, durationSec, duplicate, restored, owner } (the same file twice returns the existing item). setDefault on an upload makes it your default intro/outro for NEW projects only.

Input Schema

NameRequiredDescriptionDefault
urlNohttp(s) link to a video (MP4/MOV/WebM), image (PNG/JPG/WebP/GIF/SVG) or sound (MP3/M4A/AAC/WAV/OGG/FLAC); the server downloads it into your library (max 50 MB, 60 s)
nameNoLibrary name (url or uploadId; default: the file name). update_asset changes it later
tagsNoSearch tags (lowercase words; max 20)
colorNoiconify hits only: icon color as hex, e.g. #ffffff (default white)
providerNoA search_assets hit's provider (catalog or an enabled provider), together with externalId; materializes the instance-shared file instead of adding an upload
uploadIdNoAn existing upload id (from POST /api/upload) instead of a url
externalIdNoA search_assets hit's externalId, together with provider
setDefaultNoAlso make it your default intro or outro for new projects
imageSecondsNoHow long a still image shows as an intro/outro (1-10 s)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.19.1

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does most of it: idempotency ('the same file twice returns the existing item'), checksum verification and license recording for provider hits, the fact that provider materializations are not listed in your library, and the forward-only effect of setDefault. It omits permission/auth requirements and any rate-limit or cost context for provider materialization.

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?

Three sentences, front-loaded with the constraint that matters most (exactly one source) and ending with the caveat about setDefault. The dense parentheticals are efficient rather than redundant, though the packed first sentence takes effort to parse.

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?

Nine parameters with 100% schema coverage and no output schema, and the description still specifies the return shape ({ id, name, kind, mime, durationSec, duplicate, restored, owner }) plus the meaning of the duplicate/restored flags via the idempotency note. An agent has everything needed to call and interpret 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 baseline is 3, but the description adds semantics the schema cannot express: that url, uploadId, and provider+externalId are mutually exclusive source selectors, and that setDefault applies only to future projects. That is genuine value beyond the field-level docs.

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?

The opening sentence gives a specific verb (add) and enumerates the three mutually exclusive source modes that produce distinct outcomes: an upload in your library, or an instance-shared copy materialized from a search_assets hit. It names the sibling tools (search_assets, update_asset) that bracket this operation, so an agent can place it without opening any schema.

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

Usage Guidelines4/5

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

'Add from exactly one source' states the mutual-exclusion rule and then maps each available input (public url, uploadId, provider+externalId) to its use case, which is real routing guidance. It also scopes setDefault to NEW projects only. It stops short of saying when not to use this tool (e.g. restore_asset for previously deleted items), so it is not fully exhaustive.

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