Skip to main content
Glama

Trillboards DOOH Advertising

list_creatives

[AdCP Creative] List the creatives this buyer has on file with us.

OUR LIBRARY IS PER-BUY, AND THIS SAYS SO. AdCP's creative library models concepts, variables, assignments and snapshots; ours does not have those. A creative here is the one asset attached to a media buy by sync_creatives, so this is a projection of YOUR OWN buys — never someone else's assets, and never an invented concept_id to look richer than we are.

WHEN TO USE:

  • To confirm a creative you sent actually landed, and where it is in review

  • To see which media buy a creative is attached to (include_assignments: true)

  • Before cancelling a buy, to check what happens to its creative

RETURNS:

  • creatives[]: creative_id, name, format_id ({agent_url, id}), status, created_date, updated_date. Status is 'pending_review' until the buy is servable, then 'approved' — every creative goes through the same moderation every other creative on this network goes through.

  • query_summary: total_matching + returned

  • pagination: cursor-based, with total_count

EXAMPLE: User: "Did my creative go through?" list_creatives({ filters: { media_buy_ids: ["mbuy_123"] }, include_assignments: true })

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
extNo
sortNo
fieldsNo
accountNo
contextNo
filtersNoNarrow the result set. All fields optional.
paginationNo
include_itemsNo
include_purgedNo
include_pricingNo
include_snapshotNo
include_variablesNo
include_assignmentsNoInclude which media buys each creative is attached to.
webhook_activity_limitNo
include_webhook_activityNo

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and provides strong context: per-buy scoping, the relationship to sync_creatives, the status lifecycle from 'pending_review' to 'approved', moderation behavior, and cursor-based pagination. However, it claims the library does not model variables, assignments, or snapshots while the schema exposes include_assignments, include_variables, and include_snapshot, which creates some ambiguity about whether those flags have any effect.

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?

The description is well-structured with WHEN TO USE, RETURNS, and EXAMPLE sections, and the core purpose is front-loaded. However, it is verbose and contains rhetorical all-caps statements like 'OUR LIBRARY IS PER-BUY, AND THIS SAYS SO' and 'never an invented concept_id to look richer than we are,' which add noise beyond the essential guidance.

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

Completeness3/5

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

For a 15-parameter tool with no output schema and very low schema coverage, the description provides useful return-field details, pagination semantics, and an example, which is enough for a basic call. It is not complete for advanced usage: many include_* flags, filters, sort/fields behavior, and default behaviors are left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 13%, so the description needed to explain the many parameters, but it only meaningfully addresses include_assignments and media_buy_ids through the example and when-to-use bullets. Most parameters—sort, fields, account, context, include_items, include_purged, include_pricing, include_snapshot, include_variables, webhook_activity_limit, include_webhook_activity, and pagination controls—receive no semantic guidance.

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 opens with a specific action and resource: 'List the creatives this buyer has on file with us.' It further distinguishes the tool by emphasizing the per-buy scope and that creatives are projections of the caller's own buys, which separates it clearly from related sibling tools like list_creative_formats and sync_creatives.

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 'WHEN TO USE' section gives explicit, practical scenarios: confirming a creative landed, checking its review status, finding its attached media buy, and checking implications before cancelling a buy. It clearly states the per-buy limitation ('never someone else's assets'), though it does not explicitly name alternative tools or say when not to use this one.

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.

TDQS

B3.3/5.0
Disambiguation2/5

There are exact duplicates (get_task_status/tasks_get, list_tasks/tasks_list) and several overlapping analytics, attribution, and semantic search clusters (get_attention_metrics vs get_creative_attention vs get_social_attention; find_similar_moments vs semantic_search_observations; get_campaign_attribution vs get_multi_touch_attribution vs get_roas). Detailed descriptions help, but with 83 tools an agent will frequently struggle to pick the right one.

Naming Consistency3/5

Most tools follow a snake_case verb_noun pattern (list_devices, create_campaign, delete_webhook), but there are notable inconsistencies: list_* and get_* are used interchangeably for list operations, attention tools mix conventions (get_attention_metrics vs get_creative_attention vs get_social_attention), and the legacy tasks_get/tasks_list names break the established get_task_status/list_tasks pattern.

Tool Count1/5

83 tools is an extreme count for a single MCP server, spanning device management, sensing, campaigns, media buys, attribution, webhooks, billing, API discovery, and AdCP protocol concerns. This is a broad API surface dump rather than a focused tool set, and it would be far better split into several coherent servers.

Completeness2/5

Despite the enormous surface, core campaign lifecycle is incomplete: create_campaign explicitly tells the agent to use update_campaign to activate a campaign, but no update_campaign tool exists, and there are no list/delete campaign tools. Significant capabilities exist for analytics, attribution, and webhooks, but the primary advertising workflow has a dead end.

Resources