Skip to main content
Glama

List Creative Assets

adsap_list_creative_assets

List uploaded Meta creative images and videos in the ad account asset library. Filters: name_contains (case-insensitive substring on the filename), image_hash / video_id (find the library entry for an existing Meta asset, e.g. from adsap_get_ad), group_id, created_after. For large libraries set skip_thumbnails: true to get a lightweight listing (no signed preview URLs — much smaller, no picker card images).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
group_idNoFilter to one creative group (paired feed/story assets share a group_id).
video_idNoExact Meta video id to look up.
image_hashNoExact Meta image hash to look up (from adsap_get_ad or Meta exports).
type_filterNoALL
ad_account_idNo
created_afterNoISO 8601 date/time — only assets added after this moment.
name_containsNoCase-insensitive substring match on the filename.
skip_thumbnailsNotrue = no signed thumbnail URLs (lightweight mode for scanning large libraries).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / created_after
      Added value: +{
      +  "description": "ISO 8601 date/time — only assets added after this moment.",
      +  "type": "string"
      +}
    • addedInput schema / properties / group_id
      Added value: +{
      +  "description": "Filter to one creative group (paired feed/story assets share a group_id).",
      +  "type": "string"
      +}
    • addedInput schema / properties / image_hash
      Added value: +{
      +  "description": "Exact Meta image hash to look up (from adsap_get_ad or Meta exports).",
      +  "type": "string"
      +}
    • addedInput schema / properties / name_contains
      Added value: +{
      +  "description": "Case-insensitive substring match on the filename.",
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • addedInput schema / properties / skip_thumbnails
      Added value: +{
      +  "description": "true = no signed thumbnail URLs (lightweight mode for scanning large libraries).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / video_id
      Added value: +{
      +  "description": "Exact Meta video id to look up.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses useful behavioral details like case-insensitive name matching and the lightweight response mode for skip_thumbnails, but it does not explicitly confirm read-only behavior, pagination semantics, or output shape. The verb 'List' implies safety, but the transparency is incomplete.

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 concise and well-structured: a clear one-sentence purpose, then filter details, then a performance tip. Every sentence earns its place, and the most important information is front-loaded.

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

Completeness4/5

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

Given the 10 optional parameters and no output schema, the description covers the main use cases and even reveals response-size implications of skip_thumbnails. It is slightly incomplete because it does not explain cursor-based pagination or the default behavior of limit, but it is still largely sufficient for a list operation.

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 60%, and the description adds value by explaining the purpose of image_hash/video_id lookups and the skip_thumbnails tradeoff. However, it largely repeats or lightly extends the schema descriptions and leaves several parameters (limit, cursor, type_filter, ad_account_id) unaddressed.

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?

The description clearly states the verb and resource: it lists uploaded Meta creative images and videos in the ad account asset library. This is specific enough to understand the tool's core operation, but it does not explicitly differentiate it from nearby siblings like adsap_list_meta_assets, so it falls short of a 5.

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 gives clear usage context: how to find an existing asset via image_hash/video_id and when to use skip_thumbnails for large libraries. It does not mention alternatives or exclusions, but the usage guidance is concrete and actionable.

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