Skip to main content
Glama

list assets

assets_list
Read-only

Lists media assets (VIDEO, AUDIO, IMAGE) in the current organization, page by page, so you can find an asset by name, type, creator, or project.

Instructions

List the media assets (VIDEO, AUDIO, IMAGE) you can access in the current organization, one page at a time, to find an asset id by name, type, creator or project. Not for an id you already hold (use assets_get), a total alone (use assets_count) or generation results (use generations_list, or projects_list-generations when available). Filters combine, so an asset must match all of them; deleted assets never appear. Returns {items, nextCursor, totalCount}: each item includes id, name, type, url, durationSeconds, size, format, width, height, visibility, createdAt, thumbnailUrl and proxyPath; totalCount counts every match across pages, and nextCursor is absent on the last page. Previews: show only each item's own exact thumbnailUrl, query string intact. Never search the web, generate an image, guess or construct a URL, or substitute another asset, a stock image, a voice portrait, or the asset's url or proxyPath. If thumbnailUrl is missing or fails to load, show https://mcp.sync.so/asset-placeholder.svg labeled "Thumbnail unavailable" and say it is a placeholder, not a frame from the asset; if the host cannot display it, say "Thumbnail unavailable" without substituting an image. Playback still uses the asset's media url.

Input Schema

NameRequiredDescriptionDefault
limitNoPage size, an integer from 1 to 100 (default 10); other values fail validation. Keep it small and page with cursor.
typesNoOnly these media types: VIDEO, AUDIO or IMAGE, as one value or a list; an asset of any listed type matches.
cursorNoThe nextCursor from the previous page; send the same filters and sortBy with it. Omit for the first page.
sortByNoSort order (default nameAsc). dateAsc and dateDesc sort by creation time, kindAsc and kindDesc by file format; duration, size and kind sorts put missing values last.
userIdNoOnly assets created by this user: a user UUID.
projectIdNoOnly assets attached to this project: a project UUID from projects_list or projects_create.
searchQueryNoCase-insensitive text matched anywhere in the asset name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv0.2.4
    • changedInput schema / properties / cursor / description
      Previous value: -"The previous page's nextCursor, to read the next page. Omit for the first page."New value: +"The nextCursor from the previous page; send the same filters and sortBy with it. Omit for the first page."
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum number of results to return. Keep it small and page with cursor."New value: +"Page size, an integer from 1 to 100 (default 10); other values fail validation. Keep it small and page with cursor."
    • changedInput schema / properties / projectId / description
      Previous value: -"Only assets attached to this project (an id from projects_list or projects_create)."New value: +"Only assets attached to this project: a project UUID from projects_list or projects_create."
    • changedInput schema / properties / searchQuery / description
      Previous value: -"Text to match against names."New value: +"Case-insensitive text matched anywhere in the asset name."
    • changedInput schema / properties / sortBy / description
      Previous value: -"Sort order, such as dateDesc for newest first."New value: +"Sort order (default nameAsc). dateAsc and dateDesc sort by creation time, kindAsc and kindDesc by file format; duration, size and kind sorts put missing values last."
    • changedInput schema / properties / types / description
      Previous value: -"Only these media types: VIDEO, AUDIO or IMAGE, as one value or a list."New value: +"Only these media types: VIDEO, AUDIO or IMAGE, as one value or a list; an asset of any listed type matches."
    • changedInput schema / properties / userId / description
      Previous value: -"Only assets created by this user id."New value: +"Only assets created by this user: a user UUID."
  2. Changed7 schema fields changed
    • addedInput schema / properties / cursor / description
      Added value: +"The previous page's nextCursor, to read the next page. Omit for the first page."
    • addedInput schema / properties / limit / description
      Added value: +"Maximum number of results to return. Keep it small and page with cursor."
    • addedInput schema / properties / projectId / description
      Added value: +"Only assets attached to this project (an id from projects_list or projects_create)."
    • addedInput schema / properties / searchQuery / description
      Added value: +"Text to match against names."
    • addedInput schema / properties / sortBy / description
      Added value: +"Sort order, such as dateDesc for newest first."
    • addedInput schema / properties / types / description
      Added value: +"Only these media types: VIDEO, AUDIO or IMAGE, as one value or a list."
    • addedInput schema / properties / userId / description
      Added value: +"Only assets created by this user id."
  3. Addedv0.1.5

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, but the description adds real semantics the annotations cannot: filters are AND-combined, deleted assets are never returned, totalCount spans all pages while nextCursor is absent on the last page. It also documents the item field set in lieu of an output schema. The remaining gap is minor — no note on rate limits or whether access scope varies by role.

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?

Purpose, exclusions and filter/pagination semantics are front-loaded and tight, but the preview block is disproportionately long and partly redundant: "Never ... substitute another asset, a stock image, a voice portrait, or the asset's url or proxyPath" is restated by the fallback sentence about a placeholder image. That content is operationally useful but could be roughly halved without losing meaning.

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?

There is no output schema, and the description compensates fully by enumerating the response envelope {items, nextCursor, totalCount} and every item field, plus pagination and sort tie-breaking behavior. For a 7-parameter, zero-required list tool with annotations covering safety, nothing an agent needs to call or render results is missing.

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 the schema baseline is 3; the description earns above that by adding cross-parameter semantics absent from the schema — "Filters combine, so an asset must match all of them" — and by restating the id-lookup use case that motivates searchQuery/types/userId/projectId. It does not add format or syntax detail for the UUID parameters, so it stops short of 5.

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 ("List the media assets (VIDEO, AUDIO, IMAGE)") plus the scope ("you can access in the current organization") and the user goal ("find an asset id by name, type, creator or project"). It also names the siblings it is not — assets_get, assets_count, generations_list, projects_list-generations — so an agent can discriminate 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 Guidelines5/5

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

Explicit when-not conditions are given with the correct alternative for each: "Not for an id you already hold (use assets_get), a total alone (use assets_count) or generation results (use generations_list...)". This is the full when/when-not/alternative triad with no inference required.

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