Skip to main content
Glama

AdsAgent — TikTok Ads MCP

List creative folders

creatives_list_folders
Read-only

List creative folders for the authenticated tenant, optionally scoped to a single parent_id (omit for top-level). Each folder carries creative_count. Zero folders is not an empty library — root creatives_list still returns READY_LOCAL files with folder_id=null. Inspect coverage.empty_reason before telling the operator the material library is empty.

NOTE: updated_at = "row last touched", NOT "content changed". Bulk maintenance bumps it without content change — to detect content changes, cache the specific field(s) you care about and diff yourself.

REQUIRED: none. Optional: parent_id (str — UUID of parent folder). EXAMPLE: creatives_list_folders({})

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
parent_idNo
connection_contextNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / connection_context
      Added value: +{
      +  "pattern": "^mctx_v1_[0-9a-f]{64}$",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real behavioral value: each folder carries creative_count, empty results relate to coverage.empty_reason, and a NOTE warns that updated_at is 'row last touched' not 'content changed', advising self-diffing. This is meaningful beyond the annotations.

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?

Purpose is front-loaded, followed by scoping, behavioral caveats, and a parameter recap with example. The NOTE and REQUIRED/OPTIONAL/EXAMPLE blocks are dense but each earns its place; slightly verbose but not wasteful.

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?

With no output schema, the description still conveys return-relevant fields (creative_count, coverage.empty_reason). For a read-only, zero-required-param list tool this is nearly complete; only connection_context is left unaddressed.

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 0%, so the description must carry the burden. It documents parent_id well (str, UUID of parent folder, omit for top-level) but leaves connection_context entirely unexplained, so it only partially compensates for the coverage gap.

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 (List) and resource (creative folders) with scope (authenticated tenant, optionally parent_id-scoped). It distinguishes itself from the sibling creatives_list by clarifying that root creatives_list still returns READY_LOCAL files with folder_id=null.

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?

Gives clear usage context: omit parent_id for top-level, and explicitly instructs the agent to inspect coverage.empty_reason before telling the operator the library is empty. It also warns that zero folders does not mean an empty library. It lacks an explicit 'use X instead of Y' routing statement, keeping it from a 5.

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