Skip to main content
Glama

Upload asset

upload_asset
Destructive

Upload fal-hosted media to the authenticated user's fal Assets library, with optional tags, favorite status, collection assignment, and caption indexing.

Instructions

Upload asset for the authenticated user's fal Assets library.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNofal-hosted media URL to ingest into the asset library
typeNoMedia type for the uploaded asset
promptNoOptional caller-provided caption or description to index with the uploaded asset
accountNoExact private account key profile label, not an authenticated provider owner ID.
confirmNoSet true only when the user asked for exactly this action.
payloadNoComplete native JSON body, mutually exclusive with flat body flags and payload_file. Use schema for union bodies.
tag_idsNoTag IDs to assign to the uploaded asset
favoriteNoWhether to favorite the uploaded asset immediately
payload_fileNoAbsolute regular non-symlink private JSON file, at most 1 MiB. Cannot mix with other body inputs.
collection_idNoOptional manual collection ID to add the uploaded asset to
Idempotency_KeyNoOptional idempotency key for safe request retries

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.0.1
    • changedInput schema / properties / confirm / description
      Previous value: -"Must be true for the requested mutation, paid work or private output file."New value: +"Set true only when the user asked for exactly this action."
  2. First observedv2.0.0

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, openWorldHint=true, idempotentHint=false, so the safety profile is covered by structured data. The description adds nothing behavioral: it does not explain idempotency/retry semantics for the exposed Idempotency_Key, what the confirm flag gates, or what happens to account/library state on success.

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?

A single short sentence with no filler, front-loading the verb and target. It is efficient, though its brevity reflects under-specification rather than disciplined trimming.

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

Completeness2/5

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

This is a complex tool: 11 params, a nested payload object, three mutually exclusive body-input forms (flat flags vs payload vs payload_file), and no output schema. The description explains none of that, nor the confirm/idempotency semantics, leaving real gaps for an agent to resolve on its own.

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 all 11 parameters including the nested payload object and mutual-exclusion rules are documented in the schema itself. The description adds no extra meaning, so the 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?

States a specific verb (upload) and resource target (asset in the fal Assets library) for the authenticated user, which is clearer than a bare 'upload'. However, it never distinguishes this from the sibling upload_file, which presumably targets storage rather than the asset library, so the agent must infer the boundary.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives despite sibling overlap with upload_file, create_asset_character, and collection-assignment tools. The agent gets no signal about which upload path to pick or when this is preferred.

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