Skip to main content
Glama

Download asset

download_asset
Read-onlyIdempotent

Return metadata and a short-lived signed download URL for an owned output asset.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
asset_idYesOwned asset ID from task outputs, not a task ID.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesStable public asset ID; use it to refresh download metadata.
mediaNoWhitelisted measured video metadata. Unknown fields are null; non-video assets return null.
formatYesArtifact format; inspect actual outputs rather than assuming an array order.
objectNoasset
byte_sizeYesExpected file size in bytes.
mime_typeYesAsset media type.
created_atYesCreation timestamp in UTC.
download_urlYesSensitive short-lived signed URL. Download without a Bearer header, including after redirects; never log the URL.
download_expires_atYesSigned URL expiry in UTC; refresh via asset lookup when expired.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / $defs
      Added value: +{
      +  "MediaResponse": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "duration_seconds": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Playable video duration measured from presentation timestamps; never provider-requested duration.",
      +        "title": "Duration Seconds",
      +        "x-description-zh": "根据呈现时间戳测得的可播放视频时长,不使用供应商请求时长。"
      +      },
      +      "fps": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Measured average source frame rate; use presentation timestamps for VFR selection.",
      +        "title": "Fps",
      +        "x-description-zh": "实测源平均帧率;可变帧率选帧仍依据呈现时间戳。"
      +      },
      +      "frame_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Decoded source frame count, or null when unknown.",
      +        "title": "Frame Count",
      +        "x-description-zh": "解码源帧数,未知为 null。"
      +      },
      +      "height": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Displayed video height in pixels, accounting for rotation.",
      +        "title": "Height",
      +        "x-description-zh": "考虑旋转后的显示高度,单位像素。"
      +      },
      +      "width": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Displayed video width in pixels, accounting for rotation.",
      +        "title": "Width",
      +        "x-description-zh": "考虑旋转后的显示宽度,单位像素。"
      +      }
      +    },
      +    "title": "MediaResponse",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties / media
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/MediaResponse"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Whitelisted measured video metadata. Unknown fields are null; non-video assets return null.",
      +  "x-description-zh": "白名单内的实测视频信息,未知字段为 null;非视频资产为 null。"
      +}
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds meaningful behavioral context beyond annotations by disclosing that the URL is 'short-lived' and signed, which informs the agent that the response is time-sensitive and requires no separate auth setup.

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

Conciseness5/5

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

The description is a single, efficient sentence with no filler. It front-loads the action and resource, and every word contributes to conveying what the tool does.

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?

For a single-parameter, read-only tool with a rich parameter description and an output schema, the description is complete. An agent has sufficient information to invoke it correctly: asset_id, owned output asset scope, and the short-lived signed URL return behavior.

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 the schema already fully documents asset_id. The description adds little beyond the schema beyond reinforcing the 'owned output asset' scoping, which is also stated in the parameter description. Baseline 3 is appropriate.

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 description states a specific verb ('Return') and a clear resource ('metadata and a short-lived signed download URL for an owned output asset'). It distinguishes this tool from sibling get/quote/export tools by focusing on the download-specific behavior and the asset scope.

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?

The description and schema context make the usage situation clear: this is for owned output assets, using an asset_id from task outputs rather than a task ID. It does not explicitly name alternatives or exclusions, but the context is strong enough for an agent to know when to select it.

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