Skip to main content
Glama

request_asset_download

Read-onlyIdempotent

Resolve a login-protected browser download target for a project media asset. This does not download or save a file.

Use this when the user asks to download an asset/clip from the media pool. Open downloadUrl in a browser signed in to ChatCut as the same user. If get_editor_url returns a browserHandoff, open that handoff first, then open downloadUrl in the same browser profile. Otherwise the user must sign in through the normal ChatCut browser flow. The editor need not remain open after sign-in.

MCP authorization is not transferred to this URL or to local scripts/receivers. There is no source-download helper for those clients; never extract or forward MCP tokens or browser cookies. The URL is not a signed link and has no link expiry; the HTTP session and project access are checked on each download. Calling this tool again does not refresh HTTP authentication. downloadPath is relative to the backend origin, not the editor site.

This is different from pull_asset, which downloads bytes into the agent sandbox for analysis, and from timeline-export download URLs. Do not use either as a substitute for downloading existing source media.

Only source media assets are supported in this version. Motion graphics, effects, and transitions do not have a source media file; export those through the relevant export tools instead.

sizeKb is the file size in KILOBYTES, not bytes. Multiply by 1024 before comparing against byte counts such as an on-disk file size or a Content-Length.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "assetId": "<assetId>"
    },
    "name": "request_asset_download"
  }
}

Input Schema

NameRequiredDescriptionDefault
assetIdYesProject asset ID or unique prefix from browse_assets.
variantNoDownload variant. Currently only "source" is supported.
projectIdNoProject for this call (full ID or unambiguous prefix). Explicit-timeline calls never change the target of later calls; legacy project selection applies otherwise.
timelineIdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds substantial context the annotations cannot: the auth model (browser session as the signed-in user, browserHandoff pre-step, editor need not stay open), the fact that MCP authorization is not transferred, and that the URL has no link expiry and is re-checked per download. Idempotency nuance ("calling again does not refresh HTTP authentication") is valuable but slightly under-explained relative to the idempotentHint.

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?

Front-loaded with purpose and the non-goal, then ordered by concern: usage, auth/handoff, security constraints, sibling differentiation, scope limits, unit caveat. Dense but readable; the security paragraph ("There is no source-download helper... never extract or forward MCP tokens") is somewhat repetitive and could be tightened.

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 no output schema, the description correctly carries the burden of explaining what comes back (downloadUrl, downloadPath origin semantics, sizeKb units) — something most definitions omit. For a 4-param read-only resolution tool, an agent has everything needed to call it and to instruct the user 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 coverage is 75% and the two richly described params (assetId, variant) are already covered there, including "only source is supported" which the description merely restates. The description adds meaningful return-value semantics (downloadUrl, downloadPath relative to backend origin, sizeKb in kilobytes not bytes) but says nothing about projectId/timelineId selection behavior, which timelineId lacks a schema description for entirely.

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 and resource ("Resolve a login-protected browser download target for a project media asset") and immediately draws the crucial boundary ("This does not download or save a file"). The name alone would mislead an agent into thinking it fetches bytes; the description corrects that up front.

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 trigger ("when the user asks to download an asset/clip from the media pool") and names alternatives with the condition that selects them: pull_asset for bytes into the sandbox, timeline-export URLs for exports, export tools for motion graphics/effects/transitions. Exclusions are stated, not 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.