Skip to main content
Glama

Server Details

Make AI videos and images from a description, on one credit balance. Sign in to generate.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
aicontentdrop/aicontentdrop
GitHub Stars
0

TDQS

A3.8/5.0

Scored across 41 tools

Disambiguation3/5

The tool set is large and mostly distinct, but several pairs could confuse an agent: get_canvas vs refresh_canvas (same purpose, different polling intent), generate_video vs generate_ugc_video vs generate_ad (all produce video but with different workflows), and add_generation_card vs run_generation_card (add vs run is clear, but both involve generation cards). The descriptions help, but the boundaries between generation tools and canvas read tools require careful reading.

Naming Consistency4/5

The naming is largely consistent with verb_noun patterns: add_*, get_*, list_*, generate_*, estimate_*, search_*. Minor deviations exist: ad_to_canvas_card and write_ad_storyboard use different structures, and refresh_canvas is a get_canvas duplicate. Overall the pattern is predictable and readable.

Tool Count2/5

41 tools is heavy for a single MCP server. While the domain is broad (canvas management, generation, competitor ads, articles, brand profiles), many tools could be consolidated (e.g., refresh_canvas duplicates get_canvas, get_canvas_link could be part of get_canvas, list_* tools are numerous). The count exceeds the typical well-scoped range and will burden an agent's tool selection.

Completeness4/5

The surface covers the main workflows well: canvas CRUD (create, read, rename, list, add cards, arrange, group, move), generation (estimate, generate, poll, run cards), competitor ads (search, save, get, decode, place), and brand profiles (import, list). Minor gaps exist: no delete/remove tools for cards or canvases, no update for saved ads or brand profiles, and no cancel for jobs. But core workflows are complete.

Available Tools

41 tools
add_frameAInspect

Add a labelled frame (a region such as Week 1 or Hooks) to a board. To wrap existing cards in a frame use group_cards instead. Costs no credits. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYesThe frame's label, up to 200 characters.
widthNoOptional width in pixels; defaults to 480.
heightNoOptional height in pixels; defaults to 360.
positionNoOptional { x, y } in board pixels. When omitted the server places the card in the first free grid cell.
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cardYes
canvasYes
next_stepYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag it as a non-read-only, non-destructive, non-idempotent mutation. The description adds value beyond them by disclosing that the call costs no credits and detailing the auth requirements (OAuth or Bearer API key). It still doesn't describe what happens on revision conflicts, though the schema covers the revision parameter.

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 purpose followed by the alternative and the cost/auth notes. The auth sentence is long but earns its place as setup-critical information; overall tight with no filler.

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?

Return values needn't be explained because an output schema exists, and the annotations cover the safety profile. The description adds the two things structured fields don't convey — credit cost and authentication requirements — making it complete for this mutation tool.

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 100%, so all six parameters are already documented in the schema, including defaults, the position fallback, and revision semantics. The description only supplies illustrative label examples and adds nothing new about parameters, making the baseline 3 appropriate.

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+resource ('Add a labelled frame') and even clarifies the resource with concrete examples ('a region such as Week 1 or Hooks'). It explicitly distinguishes itself from group_cards, so an agent can tell the two apart without opening either schema.

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?

Names the alternative explicitly for the key case: use group_cards to wrap existing cards. However, it does not address when to use add_frame relative to the other 'add_*_card' siblings (add_text_card, add_media_card, etc.), leaving that boundary to inference.

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

add_generation_cardAInspect

Add a draft generation card to a board: a prompt and a model (an id from list_models) that can be rendered later with run_generation_card. Adding it costs nothing; nothing renders until it is run with a quote. Set duration and resolution on the card for a per-second model: the quote for run_generation_card must be taken with them. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoDefaults to video.
modelNoA model id from list_models.
widthNoOptional card width in pixels.
heightNoOptional card height in pixels.
promptNoThe generation prompt, up to 4000 characters.
durationNoOptional clip length in seconds, for video models that price by duration.
positionNoOptional { x, y } in board pixels. When omitted the server places the card in the first free grid cell.
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.
image_urlNoOptional public https reference image for image-to-video or image-to-image.
resolutionNoOptional, e.g. 720p, 1080p.
aspect_ratioNoOptional, e.g. 9:16, 16:9, 1:1.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cardYes
canvasYes
next_stepYes

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: no cost on add, no rendering until run, the duration/resolution values must be carried into the run_generation_card quote, and a full sign-in requirement (OAuth via host prompt or an acd_live_ API key header). The annotations only say it is a non-idempotent, non-destructive write, so the description carries the real behavioral payload.

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-loads the core action, then the lifecycle, then the duration/resolution rule, then auth. Every sentence is load-bearing, though the auth sentence is long and could be tightened without loss.

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?

An output schema exists, so return values need no explanation. Given 12 parameters (all schema-documented), a nested position object, and one enum, the description supplies exactly the missing pieces: cost behavior, deferred rendering, parameter coupling, and authentication.

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 baseline is 3, but the description adds a genuine cross-parameter constraint not in the schema: duration and resolution only apply to per-second models and must be reused in the quote. That coupling meaningfully informs how the parameters are set.

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 ('Add a draft generation card to a board') and names the two defining ingredients (a prompt and a model id from list_models). It is immediately distinguishable from the add_media_card, add_text_card, and add_frame siblings.

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?

Explains the lifecycle clearly: adding costs nothing and nothing renders until it is run, with run_generation_card named as the follow-up and the quote prerequisite spelled out. It does not explicitly say when to prefer add_media_card or add_text_card instead, but the draft-generation context is unambiguous.

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

add_media_cardAInspect

Add an image or video card to a board from a public https URL (an import_asset result, a finished generation's video_url, or an ad's video_url). Costs no credits. Returns the whole board and the new card. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic https URL of the image or video.
kindYes
titleNoOptional title, up to 200 characters.
widthNoOptional card width in pixels.
heightNoOptional card height in pixels.
sourceNoOptional provenance: where the media came from.
captionNoOptional caption, up to 2000 characters.
positionNoOptional { x, y } in board pixels. When omitted the server places the card in the first free grid cell.
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cardYes
canvasYes
next_stepYes

TDQS

A4.3/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: the operation costs no credits, it returns the whole board plus the new card, and it details the two auth paths (OAuth host prompt or an 'Authorization: Bearer acd_live_…' header created in settings). Annotations only cover read-only/idempotent/destructive flags, so this auth and cost context is genuinely additive.

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 the core action and input constraint before the cost, return, and auth sentences. The auth/sign-in block is long, but it is operational information an agent needs rather than filler.

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?

For a 10-parameter tool with nested objects, an output schema, and 90% schema coverage, the description supplies the missing pieces: cost, return shape, and authentication. Nothing critical is absent, though the revision/position defaults are only covered in the schema.

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 already 90%, so the schema carries most parameter detail. The description still adds value by enumerating URL provenance ('import_asset result', 'generation's video_url', 'ad's video_url'), which maps to the enum values of the nested source.kind field (upload/generation/ad/studio) that the schema leaves unexplained.

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+resource ('Add an image or video card to a board') and immediately bounds the input ('from a public https URL'), which distinguishes it from add_text_card, add_frame, and add_generation_card.

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 context for when this applies by naming where the URL typically comes from (an import_asset result, a finished generation's video_url, an ad's video_url). It does not explicitly say when to prefer add_generation_card or ad_to_canvas_card over this tool, so the routing against those siblings is left implicit.

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

add_text_cardAInspect

Add a text card (a note, an idea, a script line) to a board. The server places it on a grid unless a position is given. Costs no credits. Returns the whole board and the new card. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe card's text, up to 4000 characters.
colorNoOptional colour name or hex the website uses for the card.
titleNoOptional title, up to 200 characters.
widthNoOptional card width in pixels.
heightNoOptional card height in pixels.
positionNoOptional { x, y } in board pixels. When omitted the server places the card in the first free grid cell.
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cardYes
canvasYes
next_stepYes

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations (which only say non-readOnly, non-idempotent, non-destructive) by disclosing that the operation is free of credit cost, that the server auto-places unpositioned cards in the first free grid cell, and that the response contains the whole board plus the new card. The detailed sign-in/OAuth-vs-API-key requirement is exactly the kind of auth context an agent needs before invoking.

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-loads the action and behavior, then cost, then returns, then auth conditions — a sensible ordering with no filler. The auth sentence is long and URL-heavy, but it carries necessary setup information rather than padding.

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?

Covers the mutation's behavior, cost, placement defaults, and authentication prerequisites, and an output schema exists so return values need not be spelled out. Nothing critical is missing for an 8-parameter mutating tool, though a brief note on revision conflicts would have closed the last gap.

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 100%, so every parameter is already documented, including the nested position {x, y}. The description restates the position-omission behavior but adds no new meaning for parameters like revision, color, or width/height, so this lands at the baseline 3.

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 (add) and resource (text card) and clarifies the resource with concrete examples ('a note, an idea, a script line'), which cleanly separates it from add_frame, add_media_card, and add_generation_card. An agent can pick this tool 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 Guidelines4/5

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

Gives clear operating context: it places the card on a grid unless a position is supplied, and explicitly notes it costs no credits, which is decision-relevant when choosing between this and credit-consuming generation tools. It never names a specific alternative or states an explicit when-not-to-use condition, so it falls short of a 5.

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

ad_to_canvas_cardAInspect

Place a saved competitor ad on a board as a media card (its video or image, the advertiser as title, the hook as caption) with its decoded brief attached when it has one. Costs no credits. Returns the whole board and the new card. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_idYesA saved ad's id, from list_saved_ads or save_competitor_ad.
revisionNoThe board revision this change is based on. Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
adYes
cardYes
canvasYes
next_stepYes

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond annotations by disclosing that the call costs no credits, that it returns the whole board plus the new card, and by spelling out the exact auth mechanics (OAuth host prompt or 'Authorization: Bearer acd_live_…' header with the settings URL). These are behavioral facts an agent cannot derive from the readOnly/idempotent/destructive hints.

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?

Front-loaded with the action and composition, then cost/return, then auth. Three sentences, each carrying distinct information with no redundancy.

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?

An output schema exists, so return values need no elaboration, and the description still summarizes them usefully. Auth, cost, and composition semantics are all covered, leaving nothing an agent needs missing.

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 100% and each parameter already names where its value comes from (list_saved_ads, list_canvases, revision semantics). The description adds no syntax or format detail beyond the schema, so baseline 3 applies.

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+resource ('place a saved competitor ad on a board as a media card') and details exactly what is composed onto the card (video/image, advertiser as title, hook as caption, decoded brief attached). This clearly distinguishes it from generic siblings like add_media_card or add_generation_card, which have no competitor-ad origin.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Usage is implied well by 'a saved competitor ad' and the requirement that the ad come from list_saved_ads/save_competitor_ad (per schema). It also notes the 'when it has one' conditional for the brief. However, it never explicitly names an alternative (e.g. add_media_card for non-ad media) or states when not to use it.

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

arrange_cardsAInspect

Lay chosen cards (or the whole board) out as a grid, a row or a column. Costs no credits. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
gapNoOptional spacing in pixels; defaults to 24.
idsNoCard ids to arrange; omitted means every card.
layoutYes
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
canvasYes
next_stepYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=false), so the description isn't required to restate them. It does add two things annotations cannot convey: the operation is credit-free, and it requires OAuth or an 'Authorization: Bearer acd_live_…' header, which is essential operational context for calling it at all. It stops short of explaining what the revision/concurrency behavior means for repeated calls.

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?

The purpose sentence is front-loaded and tight, and the layout modes are enumerated in one clause. The sign-in block is longer than the functional text but is necessary auth information not carried anywhere else in the definition.

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?

An output schema exists, so return values need not be described, and annotations carry the mutation safety profile. The description covers scope, cost, and auth. It omits only the concurrency implications of the revision parameter, which is a minor gap for a non-destructive layout tool.

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 80%, so the schema already documents gap, ids, revision, and canvas_id well. The description only reinforces the ids semantics ('chosen cards or the whole board') and echoes the layout values already present as an enum, adding little beyond the structured fields. Baseline 3 is appropriate.

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 gives a specific verb ('Lay out') plus the resource ('chosen cards or the whole board') and enumerates the three output arrangements (grid, row, column), matching the layout enum. It is immediately clear what the tool does, though it never names or contrasts the adjacent siblings (move_cards, group_cards) that an agent might confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

'Chosen cards (or the whole board)' implies the optional-ids case, and 'Costs no credits' is a genuinely useful decision signal. However there is no explicit when-to-use guidance or any statement of when to prefer this over move_cards or group_cards, so usage must be inferred.

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

create_canvasAInspect

Create a new, empty board and return it. Costs no credits. Use one board per plan or campaign; cards are added with the add_* tools. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBoard name, up to 100 characters. Defaults to Untitled Canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
canvasYes
next_stepYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly=false, idempotent=false, destructive=false), so the bar is lower, yet the description adds meaningful context: 'Costs no credits' and a full auth requirement (OAuth sign-in or an Authorization Bearer API key). That materially helps the agent handle invocation failures.

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 the purpose, then usage, then cost, then auth. The auth sentence is long but actionable and earns its place. Minor verbosity from the full URL, but no filler.

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?

For a zero-required-param creation tool with an output schema already documenting return values, the description covers purpose, cost, usage pattern, and authentication. Nothing an agent needs to call it correctly is missing.

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 100% for the single optional 'name' parameter (including the default), so the schema already does the heavy lifting. The description adds no param detail, which is acceptable but earns only the baseline.

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+resource ('Create a new, empty board and return it') and immediately situates it among siblings by noting that cards are added with the add_* tools. An agent can distinguish it from get_canvas, list_canvases, and rename_canvas 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 Guidelines4/5

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

Gives concrete usage context ('Use one board per plan or campaign') and points to the add_* tools as the follow-up path. It lacks an explicit when-not or a named alternative, but the guidance is clear and actionable.

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

decode_adA
Idempotent
Inspect

Decode a saved competitor ad into a reusable formula: hook, script, scenes, audio, call to action and style, plus a generation-ready recreation prompt. Requires a quote_id from estimate_ad_cost with kind "decode" (a flat price). Credits are charged only when the analysis succeeds; an ad decoded before returns its stored decode and charges nothing. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_idYesA saved ad's id, from list_saved_ads or save_competitor_ad.
quote_idYesThe quote_id from estimate_ad_cost with kind "decode". Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoPresent only when the charge could not be applied to the account.
ad_idYes
cachedYesTrue when a stored decode was returned; nothing was charged.
decodeYesThe ad's formula, layer by layer, plus a generation-ready prompt.
replayedYesTrue when this quote_id had already been submitted and the original result was returned.
next_stepYes
credits_usedYesCredits charged: 0 for a stored decode or when the charge could not be applied (then note says so); null when the figure is not reported.
credits_quotedYesThe price fixed by the quote.

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial context beyond annotations: credits are charged only on success, a previously decoded ad returns its stored result at no cost (consistent with idempotentHint), and it spells out two concrete authentication paths (OAuth or an Authorization bearer key). This is exactly the billing, idempotency, and auth detail an agent needs to call it safely.

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-loads the purpose, then pricing, then auth in a logical order; every sentence carries operational weight. The sign-in block is slightly verbose boilerplate but is genuinely actionable, keeping it from a full 5.

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 an output schema present there is no need to describe return values, and the description covers the remaining critical gaps: prerequisites, billing behavior, idempotency, and authentication. Nothing an agent needs to invoke this tool correctly 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 baseline is 3; the description adds value by clarifying that quote_id must be a kind 'decode' flat-price quote from estimate_ad_cost, tying the parameter to a specific upstream tool. It does not add syntax detail for ad_id beyond the schema, so it is not a full 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 ('Decode') and resource ('a saved competitor ad') and enumerates the concrete outputs (hook, script, scenes, audio, CTA, style, recreation prompt). An agent can distinguish this from siblings like save_competitor_ad and get_saved_ad without opening the schema.

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?

Explicitly gates usage on a quote_id from estimate_ad_cost with kind 'decode', establishing the prerequisite workflow step. It does not name when-not-to-use or a sibling alternative, so it stops short of a 5, but the triggering condition is clear.

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

estimate_ad_costA
Read-onlyIdempotent
Inspect

Price a studio job before making it: a finished ad from a brief or storyboard (kind "ad"), a UGC creator video (kind "ugc"), a generated avatar (kind "avatar") or a competitor-ad decode (kind "decode"). Returns the credit lines, the total and a quote_id that generate_ad, generate_ugc_video, generate_avatar and decode_ad require. No account needed. For an ad, quote exactly the fields you will submit.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoDefaults to ad.
briefNoThe ad brief: brandName, brandOneLiner, valueProps (1-8 strings), cta, intent, format (an id from list_ad_formats), shotCount (2-5), totalDurationSec (6-20), aspect (9:16 | 16:9 | 1:1), language, quality (fast | premium), modelTier (standard | cinematic), garmentImageUrl for the try-on formats.
qualityNoLip-sync tier. premium costs more per talking shot. Defaults to the brief's quality, else fast.
model_tierNocinematic renders on Seedance with director-grade camera work and costs more per shot; needs the brief.
storyboardNoThe storyboard returned by write_ad_storyboard, as is or edited. When present it is what renders; the brief is optional alongside it.
persona_modeNosynthetic lets the studio substitute one consistent generated creator for the avatar; exact-avatar (default) keeps the avatar as given.
needs_avatar_genNoTrue when the avatar still has to be generated (billed as a line).
needs_product_genNoTrue when the product still has to be generated (billed as a line).

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
basisYes
linesYes
quote_idYesSigned quote. Pass it to the matching generate_* tool; it fixes the price and makes a retry safe.
next_stepYes
expires_atYesISO time after which the quote is refused.
credits_totalYesFor an ad, the most it can cost; the charge on success is never higher.
expires_in_secondsYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive, and the description adds genuinely new behavior: it returns credit lines, a total and a quote_id, states no account is required, and notes the quote_id is required by the four generation tools. It does not discuss quote expiry or whether a quote locks in pricing, which is the only material gap.

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?

Purpose is front-loaded in the first clause, then kinds, then return contract, then the two operational notes. Every sentence carries distinct information with no repetition of the schema, despite covering four modes.

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?

For an 8-parameter tool with nested brief/storyboard objects and an output schema, the description covers mode selection, downstream consumption, auth needs, and input consistency. Return values are properly left to the output schema, though the brief/storyboard precedence could have been spelled out slightly more explicitly.

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 baseline would be 3, but the description adds real meaning: it ties the kind enum values to their artifact types and warns "For an ad, quote exactly the fields you will submit," which is a parameter-consistency rule the schema cannot express. The storyboard/brief interaction is also clarified.

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 (price/quote) and resource (a studio job), then enumerates all four kinds and maps each to the concrete artifact it prices. It even names the sibling generators that consume the quote_id, so an agent can distinguish it from generate_ad, decode_ad, and estimate_credit_cost without opening a schema.

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?

"Price a studio job before making it" gives clear timing context, and it explicitly names the downstream tools that require the returned quote_id, telling the agent when this call is mandatory. It does not, however, contrast itself with the sibling estimate_credit_cost, so the alternative-tool dimension is left implicit.

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

estimate_credit_costA
Read-onlyIdempotent
Inspect

Price a video or image before making it. Returns the exact credit cost and a quote_id that generate_video and generate_image require. No account needed. Pass the duration and resolution you intend to use; some video models bill per second.

ParametersJSON Schema
NameRequiredDescriptionDefault
durationNoVideo length in seconds you intend to generate. Affects the price of per-second models.
model_idYesModel ID, e.g. "kling_3_0" or "veo_3_fast".
quantityNoHow many generations to price. Defaults to 1. Only a quote for exactly 1 can be spent; larger quantities are for planning.
resolutionNoVideo resolution you intend to generate, e.g. "720p" or "1080p". Affects the price of per-second models.
reference_video_secondsNoLength in seconds of the reference video you will pass as reference_video_url (seedance_2_5 up to 30 s, or seedance_2_0_fast up to 15 s at 720p). Reference seconds are billed as input, so they change the price; the server measures the file and refuses a quote whose length does not match.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
typeYes
basisYes
model_idYesNormalized to underscores.
quantityYes
quote_idYesSigned quote. Pass it to generate_video or generate_image; it fixes the price and makes a retry safe.
next_stepYes
resolutionNoThe resolution actually priced, for per-second models.
credits_eachYes
credits_totalYes
duration_secondsNoThe duration actually priced, for per-second models.
quote_expires_atYesISO time after which the quote is refused.
reference_video_secondsNoReference-video seconds priced as input, when a reference was quoted.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark the tool read-only and idempotent, and the description adds meaningful behavioral context: it returns an exact credit cost and a spendable quote_id, requires no account, and notes that some video models bill per second. This clarifies auth needs and cost behavior beyond the structured annotations.

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?

Three concise sentences, front-loaded with the purpose, followed by the key output and usage pointers. Every sentence earns its place with no filler or repetition.

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?

The description covers the tool's purpose, the required output, the no-account condition, and the pricing nuance. Since an output schema exists, return values are sufficiently specified, and the overall combination of description, schema, and annotations is complete for correct invocation.

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 100%, so the schema already documents all parameters. The description reminds users to pass duration and resolution, but that information is already present in the schema, so it adds little beyond the baseline.

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 verb and resource: "Price a video or image before making it." It further distinguishes the tool by stating it returns a quote_id required by generate_video and generate_image, which sets it apart from cost tools like estimate_ad_cost.

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 clearly says to use this tool before generating and to pass the intended duration and resolution. It does not explicitly mention alternatives or when not to use it, but the precondition and typical workflow are unambiguous.

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

generate_adA
Idempotent
Inspect

Make a finished video ad — multi-shot, with a speaking creator, product shots, captions and an optional music bed — from a brief or a storyboard plus an avatar image and a product image. Requires a quote_id from estimate_ad_cost for exactly these fields; returns a job_id to poll with get_ad_job. Credits are charged only when the ad succeeds, and never more than the quote. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
briefNoThe ad brief: brandName, brandOneLiner, valueProps (1-8 strings), cta, intent, format (an id from list_ad_formats), shotCount (2-5), totalDurationSec (6-20), aspect (9:16 | 16:9 | 1:1), language, quality (fast | premium), modelTier (standard | cinematic), garmentImageUrl for the try-on formats.
musicNoOptional music bed.
qualityNoLip-sync tier. premium costs more per talking shot. Defaults to the brief's quality, else fast.
quote_idYesThe quote_id from estimate_ad_cost for these exact fields (kind ad). Required.
canvas_idNoOptional board id (from list_canvases or create_canvas): the ad is placed on it as a generation card that fills in when the render lands.
avatar_urlYesPublic https URL of the creator's reference image (a catalogue portrait, a generate_avatar result, or an import_asset URL).
model_tierNocinematic renders on Seedance with director-grade camera work and costs more per shot; needs the brief.
project_idNoOptional studio project (uuid) to file the run under.
storyboardNoThe storyboard returned by write_ad_storyboard, as is or edited. When present it is what renders; the brief is optional alongside it.
persona_modeNosynthetic lets the studio substitute one consistent generated creator for the avatar; exact-avatar (default) keeps the avatar as given.
needs_avatar_genNoTrue when the avatar still has to be generated (billed as a line).
needs_product_genNoTrue when the product still has to be generated (billed as a line).
product_image_urlYesPublic https URL of the product image.
avatar_descriptionNoOptional one-line identity note for the creator (20-500 characters).
product_descriptionNoOptional one-line product note (10-500 characters).

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesPoll this with get_ad_job.
run_idNo
statusYes
replayedYesTrue when this quote_id had already been submitted and the original job was returned.
next_stepYes
credits_quotedYesThe ceiling fixed by the quote.
poll_after_secondsYes

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations, which only declare non-readonly, open-world, idempotent and non-destructive. The description adds the billing contract (credits charged only on success and never more than the quote), the async job/poll pattern via get_ad_job, and the concrete auth requirement (OAuth connect or an 'Authorization: Bearer acd_live_…' header).

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?

Three sentences, front-loaded with what is produced, then prerequisites, then cost and auth. Dense but every clause carries obligations an agent needs; the long parenthetical listing of ad components is the only slight slack.

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?

For a 15-parameter, nested-object, async generation tool with an output schema, the description covers the prerequisites (quote_id, avatar/product images), the return handle (job_id), billing behavior and auth. Nothing needed to invoke it correctly 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 already 100%, so the baseline is 3, but the description adds genuinely non-obvious semantics: quote_id must come from estimate_ad_cost and match these exact fields, and the storyboard-vs-brief precedence rule ('when present it is what renders').

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+resource with full scope: a finished multi-shot video ad with speaking creator, product shots, captions and optional music bed. It also names the two input modes (brief or storyboard) and the image inputs, which separates it from generate_video, generate_ugc_video and write_ad_storyboard.

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 workflow context: requires a quote_id from estimate_ad_cost for exactly these fields, and returns a job_id to poll with get_ad_job. It also clarifies that storyboard takes precedence when present and that the brief is optional alongside it. It stops short of explicitly contrasting itself with sibling generators like generate_ugc_video, so no exclusions are stated.

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

generate_avatarA
Idempotent
Inspect

Generate a creator portrait (Nano Banana) to use as the avatar in generate_ad, checked for hands, face and background defects. Requires a quote_id from estimate_ad_cost with kind "avatar". Finishes within the call; credits are charged only when a portrait comes back. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesWho the creator is: age, look, clothing, setting, mood (20-800 characters).
save_asNoOptional name; saves the portrait on a brand profile for reuse.
quote_idYesThe quote_id from estimate_ad_cost with kind "avatar". Required.
aspect_ratioNoDefaults to 9:16.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoPresent only when the charge could not be applied to the account.
qa_notesYes
replayedYes
next_stepYes
qa_passedYes
avatar_urlYesPass as avatar_url to generate_ad.
credits_usedYesThe charge that landed; 0 when no portrait came back or the charge could not be applied (then note says so).
credits_quotedYes
brand_profile_idNo

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: the call finishes synchronously, credits are only charged when a portrait returns (billing semantics), defect checking on hands/face/background, and full auth requirements (OAuth or Bearer API key). Annotations only cover the safety profile (non-readonly, idempotent, non-destructive).

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-loads the core purpose and the prerequisite quote_id before the billing and auth details. Dense but every clause carries distinct value (defect check, billing trigger, auth options); the auth sentence is long but necessary.

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?

For a generation tool with an output schema and full annotation coverage, the description supplies the missing pieces: prerequisite tool, billing trigger, and auth setup. Nothing an agent needs to invoke it correctly is absent.

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 baseline is 3, but the description adds a cross-tool constraint the schema doesn't: quote_id must originate from estimate_ad_cost with kind "avatar". Other params (prompt, save_as, aspect_ratio) are already well documented in the schema.

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 (Generate) and resource (creator portrait / avatar) with clear downstream usage ('to use as the avatar in generate_ad'), distinguishing it from siblings like generate_image and generate_ugc_video. An agent can identify its role without opening the schema.

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 context: it's the avatar source for generate_ad and requires a quote_id from estimate_ad_cost with kind "avatar", effectively naming the prerequisite step. It stops short of explicitly stating when to prefer this over generate_image, but the workflow routing is strong.

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

generate_imageA
Idempotent
Inspect

Make an AI image: a product still, a thumbnail, a poster, concept art, or a reference frame to animate later. Requires a quote_id from estimate_credit_cost so the price is agreed first; then returns a job id to poll with get_generation (kind "image"). Credits are charged only when the image succeeds. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoImage model ID from list_models with type "image". Must match the quoted model; omitted means the quoted model.
promptYesWhat the image should show.
quote_idYesThe quote_id from estimate_credit_cost for this exact image model. Required.
image_urlNoOptional public reference image (image-to-image). Only these models accept one: gpt_image_2, gpt_image_2_edit, gpt_image_2_5_flare, gpt_image_2_5_sunburst, seedream_5_0_pro.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesPoll this with get_generation.
kindYes
modelNo
statusYes
replayedYesTrue when this quote_id had already been submitted and the original job was returned.
image_urlNoNull until the render finishes.
next_stepYesWhat to do next, in words, so a model need not infer it.
unlimitedNo
video_urlNoNull until the render finishes.
credits_usedYes0 until the render succeeds; billing is post-deduct.
credits_quotedYesThe price fixed by the quote.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, the description discloses that credits are charged only on successful generation, that the call returns a job id rather than an immediate image, and that OAuth or an API key is required. These are meaningful behavioral details that an agent needs to manage cost expectations and polling flow.

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 organized logically: purpose, workflow prerequisite, return behavior, pricing, then auth. It is dense but every sentence adds needed information, and the primary purpose is front-loaded before the procedural details.

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?

For a tool with four parameters and an output schema, the description covers the full invocation contract: what to prepare (quote_id), what happens next (job id poll via get_generation), cost timing, auth methods, and input constraints. Nothing essential for calling the tool correctly 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?

The input schema already documents all parameters with 100% coverage, so the baseline is 3. The description adds practical semantics by explaining that quote_id must come from estimate_credit_cost, that model must match the quoted model, and that only certain models accept image_url, which goes beyond the schema's individual field descriptions.

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 verb and resource, 'Make an AI image,' and lists concrete output types such as product still, thumbnail, poster, concept art, and reference frame. It further distinguishes the tool's output channel by noting the job returns a kind of 'image' to poll with get_generation, separating it from video generation.

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 clearly states the prerequisite workflow: first obtain a quote_id from estimate_credit_cost, then call this tool, then poll with get_generation. It also explains when authentication is needed and how to provide it, but it does not explicitly name a sibling alternative such as generate_video for when video output is desired.

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

generate_ugc_videoA
Idempotent
Inspect

Make a UGC-style creator video: a catalogue creator (template from list_ugc_avatars) or a person's own photo (image_url) speaks the script with lip-sync, optional voice choice and ambience. Requires a quote_id from estimate_ad_cost with kind "ugc", and image_rights_consent: true given by the person. Returns an id to poll with get_generation. Credits are charged only on success. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
voiceNoOptional voice id or name.
scriptYesWhat the creator says, up to 1000 characters.
ambienceNoOptional background sound, e.g. cafe, street, none.
languageNoOptional language code, e.g. en.
quote_idYesThe quote_id from estimate_ad_cost with kind "ugc". Required.
templateNoA creator id from list_ugc_avatars. Alternative to image_url.
image_urlNoPublic https URL of the person's photo. Alternative to template.
image_rights_consentYesMust be true, and only after the person confirmed they hold the rights to the face and accept the acceptable-use terms. No default.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesPoll this with get_generation.
kindYes
statusYes
replayedYes
next_stepYes
credits_usedYes0 until the render succeeds; billing is post-deduct.
credits_quotedYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (non-destructive, idempotent, open-world), and the description adds substantial context beyond them: credits are charged only on success, the call returns an id to poll, an explicit image_rights_consent requirement, and full auth instructions (OAuth or Bearer acd_live_ key with URL). This is genuinely rich behavioral disclosure.

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 the core action and modes, then prerequisites, then cost/polling behavior. The trailing SIGN-IN block is dense but earns its place for an auth-required tool; overall efficient though slightly long.

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?

For a complex, authorized, credit-charged generation tool, the description covers inputs' provenance, consent gating, cost timing, async polling, and authentication. Since an output schema exists, no return-shape detail is needed, and nothing an agent needs to invoke it correctly 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 baseline is 3, but the description adds cross-tool meaning: it names where template comes from (list_ugc_avatars) and where quote_id comes from (estimate_ad_cost with kind "ugc"), clarifying the authoring flow beyond what the schema states.

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+resource ('Make a UGC-style creator video') and clearly delineates the two modes (catalogue creator via template vs. person's own photo via image_url), distinguishing it from generic siblings like generate_video and generate_avatar.

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 prerequisites and routes the agent to sibling tools: template 'from list_ugc_avatars', quote_id 'from estimate_ad_cost with kind "ugc"', and polling via get_generation. It implies when to use it (UGC creator content) but doesn't explicitly state when to choose generate_video or generate_avatar instead.

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

generate_videoA
Idempotent
Inspect

Make an AI video: a product ad, a vertical clip for social, a cinematic shot, or animate a photo into video (image-to-video). Requires a quote_id from estimate_credit_cost so the price is agreed first; then returns a job id to poll with get_generation. Credits are charged only when the video succeeds. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoModel ID from list_models, e.g. "kling_3_0". Must match the quoted model; omitted means the quoted model.
promptYesWhat the video should show. Detailed prompts produce better results.
durationNoLength in seconds. Must match the quoted duration for per-second models.
quote_idYesThe quote_id from estimate_credit_cost for this exact model, duration and resolution. Required.
image_urlNoOptional public image URL to animate (image-to-video).
resolutionNoe.g. "720p" or "1080p". Must match the quoted resolution for per-second models.
aspect_ratioNoDefaults to 16:9. Use 9:16 for vertical social clips.
reference_video_urlNoOptional public https URL of a reference video (for example a 3D blockout playblast) whose camera movement, shot rhythm and subject motion the generation must follow. seedance_2_5 (30 s max) or seedance_2_0_fast (15 s max, 720p). The quote must have been priced with reference_video_seconds equal to this clip's length rounded up; the server measures the clip and refuses on mismatch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesPoll this with get_generation.
kindYes
modelNo
statusYes
replayedYesTrue when this quote_id had already been submitted and the original job was returned.
image_urlNoNull until the render finishes.
next_stepYesWhat to do next, in words, so a model need not infer it.
unlimitedNo
video_urlNoNull until the render finishes.
credits_usedYes0 until the render succeeds; billing is post-deduct.
credits_quotedYesThe price fixed by the quote.

TDQS

A4.6/5.0
Behavior5/5

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

The description adds significant behavioral context beyond the annotations: it explains the asynchronous pattern (returns a job id to poll), the credit-charging policy, and the authentication requirement. These are not captured in the annotations (which only note non-read-only, open-world, idempotent, non-destructive). The description enriches the agent's understanding of side effects and required setup.

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?

The description is comprehensive and well-structured, front-loading the purpose and key use cases, then prerequisites, then authentication. It is longer than typical but every sentence carries necessary information (billing, polling, auth, reference video constraints). No filler or repetition; the structure aids comprehension.

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?

Given the tool's complexity—8 parameters, async job handling, authentication, billing, and strict quote-matching requirements—the description covers all critical operational details: the need for a quote_id, how to poll, when credits are charged, auth setup, and reference video constraints. It omits nothing an agent needs to invoke the tool correctly.

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?

While schema coverage is 100%, the description adds crucial cross-parameter semantics: quote_id must match model, duration, and resolution; model must match the quoted model; reference_video_url must have its length match the quoted reference_video_seconds. These constraints are not evident from individual parameter descriptions and are essential for correct invocation. The description therefore adds value beyond the schema.

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 clearly states the tool's purpose: generating AI videos for specific use cases (product ads, vertical clips, cinematic shots, image-to-video). It uses a specific verb ('Make') and resource ('AI video'), and explicitly distinguishes from image generation and other video variants. The mention of image-to-video and reference video further differentiates it from siblings like generate_image.

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?

It explicitly requires a quote_id from estimate_credit_cost, describes the async flow with get_generation, and details authentication methods (OAuth or API key). It does not explicitly contrast with sibling tools like generate_ugc_video, but the use cases and prerequisites are clear enough for an agent to decide when to use it. The billing caveat (credits charged only on success) is also valuable context.

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

get_accountA
Read-onlyIdempotent
Inspect

Check the signed-in account's remaining credits and current plan name before generating, and get the informational page about plans and entitlement. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
planYesfree | starter | professional | ultra | enterprise_max
info_urlYesInformational page describing plans and entitlement options.
usernameNo
can_generateYes
credits_remainingYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds the crucial behavior that sign-in is required)Skip, specifying two authentication methods and a link to create credentials. This adds meaningful context beyond annotations, though it doesn't describe the output format beyond 'informational page'.

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 two sentences, front-loading the primary purpose and then providing essential authentication guidance. Every sentence adds value, with no filler. The critical sign-in requirement is placed prominently after the purpose.

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?

For a zero-parameter tool with an output schema and readOnly annotations, the description is quite complete. It covers purpose, usage timing, and authentication details. The only minor gap is that it doesn't explicitly state that no parameters are required (though the schema shows this), which is trivial. The output schema presumably details the response structure.

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

Parameters5/5

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

The tool has zero parametersaday, so the description need not explain parameter semantics. It correctly focuses on what the tool returns, which is abundant. With 100% schema coverage (empty schema), the description compensates fully for the lack of parameters.

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 clearly states the tool checks the signed-in account's remaining credits and current plan name, and retrieves the informational page about plans and entitlement. It uses specific verbs ('Check', 'get') and a clear resource ('signed-in account', 'informational page'), which distinguishes it from siblings like 'list_models' or 'generate_image'.

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?

Explicitly instructs to use this tool before generating, and details the sign-in requirements (OAuth or API key) and where to create the key. It provides necessary context for when to call it, though it doesn't explicitly mention alternatives; however, the use case is so unique that no alternative is implied.

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

get_ad_jobA
Read-onlyIdempotent
Inspect

Check an ad job: stage and percent while it renders, then the finished video URL, the storyboard sheet, duration, size and the credits charged. Poll every 15 seconds after generate_ad; stop after 15 minutes. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job_id returned by generate_ad.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoPresent only when a succeeded job's charge could not be applied to the account.
errorNo
stageNostoryboard | rendering | done, while known.
job_idYes
run_idNo
statusYes
percentNo
next_stepYes
video_urlNoThe finished ad with burnt-in captions. Present only when succeeded.
size_bytesNo
credits_usedYesCredits charged for this job when the record reports them; null when a succeeded job's record does not carry the figure (credits_quoted from generate_ad is the ceiling). 0 while running, when failed, or when the charge could not be applied (then note says so).
duration_secondsNo
retry_after_secondsNoPresent while the job is not terminal.
storyboard_sheet_urlNoThe storyboard sheet image, when the run produced one.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered. The description goes further by disclosing the polling cadence, the stop condition, the fields returned at each stage, and the exact auth mechanism (OAuth or Bearer acd_live_ key). This is meaningful operational context well beyond the annotations, though it doesn't describe terminal error/failure states.

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 return contents, followed by polling guidance and then the auth block; each sentence carries distinct, actionable information. The credential sentence is long but is genuinely required context, so waste is minimal.

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 an output schema present, return-value documentation is not strictly required, yet the description still summarizes the payload. Combined with the polling policy and full auth instructions, an agent has everything needed to call this correctly on a post-generate_ad workflow.

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 100% and the single job_id parameter is already documented as 'returned by generate_ad'. The description does not add format or constraint detail beyond that, so the baseline of 3 is appropriate.

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 ('Check an ad job') and then enumerates exactly what it surfaces: stage, percent, finished video URL, storyboard sheet, duration, size and credits charged. This clearly distinguishes it from generate_ad and the list/get_generation siblings without needing to open either 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?

Explicitly routes the agent: 'Poll every 15 seconds after generate_ad; stop after 15 minutes.' It names the predecessor tool and the exact polling policy, so there is no ambiguity about when and how often to call it.

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

get_articleA
Read-onlyIdempotent
Inspect

Fetch the full text of one published article as markdown, by slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesArticle slug, e.g. "kling-vs-sora-comparison".

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
slugYes
titleYes
markdownYesFull article body.
publishedNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the 'published' scoping constraint and 'markdown' return format, which is useful but not rich behavioral context. No contradictions with annotations.

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?

A single, front-loaded sentence states the action, resource, format, and input in about a dozen words. Every element earns its place, with no repetition or filler.

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?

For a simple one-parameter tool with a full output schema, annotations covering safety, and no nested objects, the description provides everything an agent needs: what to pass (slug), what it returns (full text as markdown), and the published-only constraint. No missing critical context.

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 100%: the slug parameter is already documented with a description and example. The description's 'by slug' adds no new meaning beyond the schema, so it meets the baseline but does not exceed it.

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 uses a specific verb ('Fetch'), states the resource ('full text of one published article'), specifies the output format ('as markdown'), and identifies the key identifier ('by slug'). This clearly distinguishes it from sibling tools like search_articles or list_generations without needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies when to use the tool (when you have a slug and need the full published text) but does not explicitly state when not to use it or mention alternatives such as search_articles for finding articles. Usage context is implied, not explicitly routed.

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

get_canvasA
Read-onlyIdempotent
Inspect

Read one board in full: every card with its type, position, size and data, the edges, and the revision. Generation cards that are still rendering are checked against their jobs on every read. Costs no credits. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
canvasYes
next_stepYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already establish readOnly/idempotent/non-destructive, so the description goes further and adds genuinely new behavior: zero credit cost, an explicit auth requirement (OAuth via host prompt or an 'Authorization: Bearer acd_live_…' header), and the non-obvious fact that rendering generation cards are re-checked against their jobs on every read.

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?

The functional payload is front-loaded in the first two sentences with no filler, and the behavioral notes follow logically. The auth/API-key boilerplate is lengthy and partly host-handled, but it is actionable information for an agent encountering an unauthenticated server.

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?

For a single-parameter read tool with an output schema already defining the return shape, the description covers purpose, cost, freshness semantics, and authentication. An agent has everything needed to decide to call it and to satisfy auth on first use.

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 100% and the single canvas_id parameter is already documented in the schema with its source (list_canvases or create_canvas). The description adds no format or constraint detail beyond that, so the baseline of 3 applies when the schema carries the load.

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 ('Read one board in full') and enumerates exactly what the read returns: cards with type/position/size/data, edges, and revision. This cleanly separates it from list_canvases, which returns a collection rather than a full board.

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 phrase 'Read one board in full' implicitly positions this against list_canvases for the summary case, and the note that card ids come from list_canvases/create_canvas gives context. However, it never explicitly names an alternative tool or states when not to use this one, so the routing guidance is inferred rather than stated.

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

get_generationA
Read-onlyIdempotent
Inspect

Check whether a video or image is finished and get its URL. Poll this after generate_video or generate_image; pass kind "image" for an image job. Reports status, the finished file URL, and the credits charged. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe id returned by generate_video or generate_image.
kindNoWhich job type the id belongs to. Defaults to video.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesPoll this with get_generation.
kindNo
modelNoModel ID, underscored.
titleNo
statusYesgenerating | processing | completed | failed | timeout
image_urlNo
video_urlNo
created_atNo
credits_usedYesCharged only on success — a failed generation is 0.
error_messageNo
thumbnail_urlNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds meaningful behavioral context: what the tool reports (status, finished file URL, credits charged) and the requirement for authentication. This goes beyond the structured annotations and helps the agent understand the tool's side effects and prerequisites.

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?

The description is front-loaded with the core purpose, then usage instruction, then a necessary authentication note. It is compact and every sentence carries information. The auth detail is slightly verbose but justified given it's a hard requirement. No fluff.

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?

Given the tool's simplicity (2 parameters, 1 enum, output schema exists), the description covers purpose, usage, parameter semantics, and auth requirements. There is nothing an agent needs to call it correctly that remains unexplained. An output schema exists, so return values are already documented.

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 100% – both `id` and `kind` have descriptive schema entries. The description reinforces the relationship between `id` and the generate calls and mentions the default for `kind`, but it does not add meaning significantly beyond what the schema already provides. Per calibration, the baseline 3 applies when schema covers parameters.

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 verb ('Check whether') plus a clear resource ('a video or image is finished and get its URL'). It explicitly names the sibling tools it complements ('after generate_video or generate_image'), so an agent can immediately distinguish it from other generation-related tools without reading schemas.

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 explicitly instructs when to use the tool ('Poll this after generate_video or generate_image') and how to parameterize it ('pass kind "image" for an image job'). It also provides authentication prerequisites (OAuth or API key), which is essential usage guidance. It doesn't mention alternatives for listing batches, but given the sibling set, the context is clear enough.

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

get_saved_adA
Read-onlyIdempotent
Inspect

Read one saved competitor ad in full, with its stored decode (the ad's formula and a recreation prompt) when it has one. Costs no credits; never runs a decode. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_idYesA saved ad's id, from list_saved_ads or save_competitor_ad.

Output Schema

ParametersJSON Schema
NameRequiredDescription
adYes
decodeYesThe ad's formula, layer by layer, plus a generation-ready prompt.
next_stepYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds genuinely useful behavior: zero credit cost, the guarantee that no decode is executed, conditional decode presence ('when it has one'), and concrete auth steps including the OAuth flow and Authorization: Bearer acd_live_… header. It does not describe error/empty-decode handling, keeping it out of 5 territory.

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-loads the purpose, then cost guarantee, then auth requirements. Every clause earns its place, though the auth sentence is fairly long and could be tightened; still well-structured overall.

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 an output schema present, return-value explanation is unnecessary, and the description still covers cost, decode behavior, authentication, and the ID source. Nothing an agent needs to call this correctly is missing.

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 100% and the single ad_id parameter is already documented with its provenance (from list_saved_ads or save_competitor_ad). The description adds no additional meaning about the parameter, so the baseline 3 applies.

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 (read) and resource (one saved competitor ad) and clarifies the scope: a single ad in full, including its stored decode when present. This clearly separates it from list_saved_ads (plural listing) and decode_ad (which would generate a decode rather than read a stored one).

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 context: it costs no credits and never runs a decode, implicitly routing decode-generation needs to decode_ad. The schema also points to list_saved_ads/save_competitor_ad as ID sources. It stops short of an explicit 'use this instead of X when Y' statement, so it is a strong 4 rather than a 5.

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

group_cardsAInspect

Wrap chosen cards in a labelled frame that encloses them. Returns the board and the new frame. Costs no credits. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesThe card ids to enclose.
labelYesThe frame's label, up to 200 characters.
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cardYes
canvasYes
next_stepYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover the safety profile (not read-only, not destructive, not idempotent), so the bar is lower; the description still adds real context beyond them: the return payload (board plus new frame), that it costs no credits, and the concrete auth path (OAuth or an Authorization: Bearer acd_live_… header with a settings URL). It does not explain what happens if the revision is stale, but that is a minor omission.

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 the action, then returns and cost, then auth. Three compact sentences with no filler; the auth sentence is long but earns its place as a hard prerequisite.

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?

An output schema exists so return values need not be explained, yet the description still names the return payload. Combined with cost and auth details, an agent has what it needs; only the non-idempotent/concurrent-revision behavior 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 100%, including the revision parameter's optional read-then-write behavior, so the schema carries parameter semantics. The description adds only a loose paraphrase ('chosen cards', 'labelled frame') and no format or constraint detail, matching the baseline 3.

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?

States a specific verb and resource: 'Wrap chosen cards in a labelled frame that encloses them.' An agent can distinguish this from add_frame (which creates a frame without wrapping existing cards) and arrange_cards. It does not explicitly name those siblings, 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 Guidelines3/5

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

Usage is implied by 'chosen cards' plus the required ids/label/canvas_id parameters, but there is no explicit statement of when to use this versus add_frame or arrange_cards, and no exclusions or prerequisites beyond the auth note. Adequate but clearly gapped.

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

import_assetA
Idempotent
Inspect

Copy a public image (JPEG, PNG or WebP, at most 10 MB) onto AI Content Drop so it can be used as an avatar, product or photo reference. Returns the hosted URL. Costs no credits. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic https URL of the image.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesThe hosted copy.
bytesYes
widthNo
heightNo
next_stepYes
content_typeYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=true), the description discloses authentication requirements in detail (OAuth prompt or 'Authorization: Bearer acd_live_…' API key), the zero-credit cost, the accepted input formats/size limit, and the hosted-URL result. This is exactly the behavioral context annotations cannot carry.

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?

Three tightly packed sentences: purpose and constraints first, then return value and cost, then auth. No filler, and the auth prerequisite is clearly flagged for the agent before it attempts the call.

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 an output schema present, the description needn't explain the response, and it still mentions the hosted URL. Combined with explicit auth, cost, and input constraints, an agent has everything needed to invoke this tool successfully.

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% and the single 'url' param is already described, so the baseline is 3. The description nevertheless adds validation semantics the schema lacks: only publicly reachable images, restricted to JPEG/PNG/WebP, capped at 10 MB.

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 states a specific verb and resource ('Copy a public image ... onto AI Content Drop') plus accepted formats and size cap, and clarifies what the asset is for (avatar, product or photo reference). This clearly differentiates it from generation siblings like generate_image or generate_avatar.

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?

It gives clear context for use (importing an existing public image as a reference/avatar) and notes 'Costs no credits,' which implicitly steers an agent away from paid generation when an existing image suffices. It does not, however, explicitly name an alternative or state when-not-to-use.

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

import_brand_profileA
Idempotent
Inspect

Read a brand's website and save a brand profile from it: name, value props, CTA, tone and product images. Costs no credits. Low-confidence reads are returned for confirmation instead of being saved. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe brand's product page or app page.
modeNoWhat kind of page it is. Defaults to product.
persistNoSave when the read is confident. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
profileYesThe saved profile, or null when not saved.
warningsYes
next_stepYes
extractionNoWhat was read from the page.

TDQS

A4/5.0
Behavior4/5

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

Goes well beyond the annotations, which only declare the non-read-only/idempotent/non-destructive profile: it adds credit cost, the low-confidence confirmation branch instead of silent save, and explicit auth mechanics (OAuth prompt or Bearer acd_live_ key). It does not clarify whether saving overwrites or duplicates an existing profile, which matters for a write tool flagged idempotent.

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?

Three sentences, front-loaded with what is read and saved, then cost/confidence behavior, then the auth requirement last. No filler, and each sentence carries distinct operational information.

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 an output schema present, return values need not be described, and the description covers cost, auth, and the confirmation escape hatch. The one gap is the write semantics of persist (create vs overwrite on an existing brand profile), which is material for a tool with destructiveHint=false and idempotentHint=true.

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 100%, so url, mode, and persist are already documented in the schema, including the enum and both defaults. The description adds no parameter-level detail (e.g., what persist=false does to the confirmation flow), so the baseline 3 applies.

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 ('Read a brand's website and save a brand profile') and enumerates exactly what the profile contains (name, value props, CTA, tone, product images). An agent can distinguish it from the read-only sibling list_brand_profiles without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Provides useful operating context (no credit cost, low-confidence reads returned rather than saved, sign-in required), but never states when to prefer this over alternatives such as list_brand_profiles or refresh_canvas, nor what happens when a profile already exists for the brand.

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

list_ad_formatsA
Read-onlyIdempotent
Inspect

See the ad formats the studio can produce — UGC, talking head, unboxing, tutorial, TV spot, product hero, hyper-motion, try-on and more — with a one-line description, the default aspect and the allowed shot count and duration. No account needed. Pick one before writing a brief.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
countYes
formatsYes

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 and closed-world, so the safety profile is covered. The description adds auth context beyond the annotations ('No account needed') and previews the return payload, which is useful operational detail the structured fields do not provide.

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?

A single dense sentence with the core action and return contents front-loaded, and the usage cue last. The format enumeration (UGC, talking head, unboxing...) is somewhat long but demonstrates catalogue breadth, so it largely earns its space.

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?

For a zero-parameter, read-only listing tool with an output schema and full annotation coverage, the description supplies everything needed: what it lists, what each entry contains, that no account is required, and when to call it.

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?

The tool takes no parameters (0 params, empty schema), so the baseline is 4. The description correctly implies there is nothing to supply and instead characterizes the payload rather than inventing parameter semantics.

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 ('See the ad formats the studio can produce') and enumerates the actual catalogue contents, so an agent knows exactly what comes back. It is clearly distinguishable from sibling lists (list_models, list_canvases, list_brand_profiles) and is tied to the ad-writing workflow.

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?

'Pick one before writing a brief' explicitly places the tool in the workflow and signals the downstream consumer (write_ad_storyboard / generate_ad). It gives clear context but names no alternative tool or exclusion condition, so it stops short of a 5.

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

list_brand_profilesA
Read-onlyIdempotent
Inspect

List the account's saved brand profiles — name, site, value props, CTA, tone, product images — so ads for the same brand reuse the same facts. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
profilesYes
next_stepYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so those are covered. The description adds genuinely new operational context the annotations lack: authentication is required, via OAuth or a bearer API key header, with the exact header format and the URL to create the key. It stops short of describing pagination or result limits, so not a 5.

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?

Two sentences, front-loaded with the operation and its purpose, then the auth requirement. No filler, and the critical blocker (sign-in) is called out in caps rather than buried.

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 zero params, an output schema, and strong read-only annotations, the only real risk an agent faces is auth failure — and the description covers that thoroughly. The field list is mildly redundant against the output schema, but nothing needed to invoke the tool correctly 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?

The tool takes zero parameters, so the baseline is 4 per the rubric. The description's enumeration of returned fields adds useful shape for an agent even though the output schema already exists.

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 (the account's saved brand profiles), then enumerates the fields returned (name, site, value props, CTA, tone, product images). This clearly separates it from the write-side sibling import_brand_profile and from the generation siblings it feeds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'so ads for the same brand reuse the same facts' implies why and when to call it, but there is no explicit when-not or named alternative (e.g., how it relates to import_brand_profile or get_account). Usage is inferable but not spelled out.

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

list_canvasesA
Read-onlyIdempotent
Inspect

List the account's boards (visual canvases), newest first: id, name, revision, card count and the board's page link. Costs no credits. Start here to pick a board or to see that none exists yet. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
canvasesYes
next_stepYes

TDQS

A4.7/5.0
Behavior4/5

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

Adds meaningful context beyond the annotations: 'Costs no credits' is billing behavior not covered by readOnlyHint, and the SIGN-IN REQUIRED block discloses the OAuth vs API-key auth paths with a concrete header format and where to create the key. Annotations already cover safety, so this extra operational detail is valuable. Minor gap: no pagination behavior for large accounts.

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?

Front-loaded with the core action, then the return fields, then the cost note, then the auth requirement. Every clause earns its place and nothing is redundant.

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 an output schema present, the description need not explain return values further, and it covers cost, auth, and usage routing. For a zero-param read tool this is complete.

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?

Zero parameters, so the baseline is 4. The description correctly documents the shape of the response items even though there is no input to describe.

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 (boards/visual canvases) and enumerates the returned fields (id, name, revision, card count, page link), so the agent knows exactly what comes back. Sibling tools like list_generations, list_saved_ads, and list_ugc_avatars are clearly differentiated by resource.

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?

Explicitly says 'Start here to pick a board or to see that none exists yet', naming both when to use it and the selection decision it enables. The zero-arg, zero-cost nature makes it an obvious first call, and no alternative could serve the same purpose.

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

list_generationsA
Read-onlyIdempotent
Inspect

List the account's recent video generations, newest first, with their status and URLs. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return (1-50). Defaults to 10.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
generationsYes

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description adds meaningful operational context: sign-in requirements (OAuth or API key header) and output characteristics (status and URLs, newest first). This is useful supplementary behavior without contradicting annotations.

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?

Two sentences, front-loaded with the core behavior and then the essential auth note. No wasted words or duplication of schema details.

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?

For a simple list operation with one optional parameterweeney, an output schema, and readOnly/idempotent annotations, the description covers auth, ordering, and result content. Nothing critical is missing for an agent to invoke it 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 100%, so the description doesn't need to compensate. The description adds no extra meaning to the 'limit' parameter beyond what the schema already states, so baseline 3 is appropriate.

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 uses a specific verb and resource: 'List the account's recent video generations'. It also specifies ordering ('newest first') and what is returned ('status and URLs'), making the tool's purpose unmistakable and distinct from a single-generation getter like get_generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description clearly states the operation is scoped to the account's recent video generations)Skip and includes auth context, but it does not explicitly contrast with sibling tools like get_generation or say when not to use it. Usage is implied rather than directly guided.

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

list_modelsA
Read-onlyIdempotent
Inspect

See which AI video or image models can make a video ad, animate a photo, produce a product clip or generate an image, with the credit cost of one generation. No account needed. The list is live; count is the number of models currently offered.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoModel family to list. Defaults to video.
max_creditsNoOnly return models costing this many credits or fewer.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
typeYes
countYesModels returned after filtering.
modelsYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: 'The list is live' (dynamic data), 'No account needed' (auth not required), and clarifies that `count` reflects current offerings. This goes beyond the annotations without contradicting them.

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?

Three sentences, all informative: use cases, auth requirement, and live-data caveat. Front-loaded with the core purpose, no filler or repetition of schema details.

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?

For a read-only list tool with an output schema and full parameter documentation, the description is nearly complete. It covers auth, data freshness, and the meaning of `count`. The only minor gap is not describing pagination or result ordering, but the output schema likely covers return structure.

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 100%, so the schema already documents both parameters (type enum, max_credits). The description adds the default behavior for `type` ('Defaults to video') and ties `count` to the live list, but doesn't add much beyond the schema. Baseline 3 is appropriate.

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 states a specific verb ('See which...') and resource ('AI video or image models'), and enumerates concrete use cases (video ad, animate a photo, product clip, image). It clearly distinguishes from siblings like generate_image/generate_video by being a listing/read operation, and the 'No account needed' note adds scope.

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 implies when to use it: when you need to discover available models and their credit costs before generating. It doesn't explicitly name alternatives or exclusions, but the sibling context (generate_image/generate_video) makes the read-vs-write distinction clear. A brief 'use generate_* to actually create' would push it to 5.

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

list_saved_adsA
Read-onlyIdempotent
Inspect

List the competitor ads saved on the account, newest first: id, advertiser, hook, media and whether a decode is stored. Costs no credits. Start here to pick an ad to decode or place on a board. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
adsYes
countYes
next_stepYes

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, but the description adds genuinely new operational facts: 'Costs no credits' and a full auth requirement (OAuth host prompt or 'Authorization: Bearer acd_live_…' header with a settings URL). That auth detail is the main thing annotations cannot express, though no pagination behavior is disclosed.

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 the purpose, ordering, and cost before the call-to-action and auth block. The auth sentence is long (header prefix plus a settings URL) and could be terser, but every clause carries actionable information.

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?

Zero-parameter read tool with an output schema and full annotation coverage; the description still supplies cost, ordering, returned fields, auth, and next-step routing. Nothing an agent needs to call it correctly 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?

The tool takes zero parameters, so the baseline is 4. The description enumerates the fields that come back, which is helpful framing but is not parameter semantics, and with zero inputs there is nothing further to disambiguate.

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?

Specific verb+resource: 'List the competitor ads saved on the account', plus the exact ordering (newest first) and the returned fields (id, advertiser, hook, media, decode-stored flag). The 'saved on the account' scope implicitly separates it from search_competitor_ads and from get_saved_ad, so an agent can route without opening a schema.

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?

'Start here to pick an ad to decode or place on a board' gives concrete downstream intent, pointing at decode_ad and the ad_to_canvas_card family. It lacks an explicit contrast against sibling alternatives such as search_competitor_ads (when to search instead of list), so it is clear context without exclusions.

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

list_ugc_avatarsA
Read-onlyIdempotent
Inspect

See the catalogue creators available for a UGC video — name, style and a portrait URL — and the fields generate_ugc_video accepts. No account needed. A person's own photo can be used instead, with their consent.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
countYes
avatarsYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely non-annotation context — 'No account needed' (auth requirements) and the consent caveat for using a person's own photo — which is exactly the kind of behavioral detail the schema cannot express. No pagination or catalogue-size behavior is mentioned, so not a full 5.

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?

A single front-loaded sentence that states what the agent gets before the secondary consent note. Efficient with no filler, though the trailing photo/consent clause is slightly tangential to 'list the catalogue'.

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?

An output schema exists, so return values need no further explanation, and the description still volunteers the key fields. Combined with annotations covering safety and a no-parameter schema, the definition is complete enough for correct invocation; only routing alternatives are thin.

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?

The tool takes zero parameters, so per the baseline there is nothing for the description to document. The field mentions (name, style, portrait URL) describe output, not inputs, but do no harm.

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?

States a specific verb (see/list) and resource (catalogue of UGC creators) and enumerates the returned fields (name, style, portrait URL). It also ties itself to the consumer tool generate_ugc_video, which helps separate it from list_models and list_generations. 'See' is a slightly soft verb, keeping it just below 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 Guidelines3/5

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

Implies usage by naming generate_ugc_video and its accepted fields, so the agent can infer this is the pre-flight lookup for that tool. However, it never states when-not to use it or names alternatives like list_models or generate_avatar explicitly, leaving routing somewhat inferred.

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

move_cardsAInspect

Move one or more cards to new positions on a board. The server places new cards itself; this is for the board view's drag. Costs no credits. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
movesYesCards and their new positions.
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
canvasYes
next_stepYes

TDQS

A3.7/5.0
Behavior4/5

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

Goes meaningfully beyond the annotations by disclosing that the operation costs no credits and by spelling out the exact authentication paths (OAuth or Authorization: Bearer acd_live_…). The annotations cover the mutation/safety profile (readOnlyHint=false, destructiveHint=false), and the description adds cost and auth context without contradicting them.

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-loads the purpose, then stacks behavioral facts (no credits, sign-in) in a logical order. The auth instructions are verbose but necessary and clearly delineated; little is wasted.

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?

An output schema exists, so return values need not be described, and annotations carry the safety profile. With scope, cost, and auth covered, the definition is nearly complete, though an explicit sibling trade-off (arrange_cards vs move_cards) is the remaining gap.

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 100%, so the schema already explains moves, position, revision, and canvas_id, including the omitted-position fallback. The description adds no parameter-level syntax or format detail, so the baseline 3 applies.

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?

States a specific verb and resource ('Move one or more cards to new positions on a board') and clarifies scope by explaining that new card creation is handled by the server, not this tool. It does not name the closest siblings (arrange_cards, update_card) so an agent must still infer the boundary between repositioning and re-arranging.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Implies usage context ('this is for the board view's drag') and rules out using it for new cards, but never states when to choose it over arrange_cards or update_card. No explicit when-not conditions are given.

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

refresh_canvasA
Read-onlyIdempotent
Inspect

Re-read a board (same answer as get_canvas). Call it every 10 seconds while a generation card is rendering; a finished render sets the card's status to done and its media_url. Costs no credits. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
canvasYes
next_stepYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds important context beyond annotations: it costs no credits, requires OAuth or an API key header, should be polled every 10 seconds, and reflects render completion via card status and media_url.

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 front-loaded and efficient: purpose first, then polling cadence, then authentication requirements. Each sentence provides necessary operational information without filler.

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?

For a simple one-parameter read-only polling tool with an output schema and clear annotations, the description supplies the missing authentication, credit-cost, and polling-cadence context. Nothing essential for correct invocation is absent.

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 100%, and the single canvas_id parameter is fully documented in the schema as the board id from list_canvases or create_canvas. The description adds no parameter syntax or constraints beyond that, so the baseline 3 applies.

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 ('Re-read a board'), identifies it as equivalent to get_canvas, and explains its polling role during generation-card rendering. An agent can distinguish it from list_canvases, create_canvas, and other siblings without opening schemas.

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?

Explicitly says to call it every 10 seconds while a generation card is rendering and explains the success condition (card status becomes done with media_url). It does not explicitly say when to prefer get_canvas instead or when polling should stop, so it is clear but not fully exclusive.

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

rename_canvasAInspect

Rename a board. Costs no credits. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe new name, 1-100 characters.
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
canvasYes
next_stepYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), but the description adds genuinely new behavior: the operation is free, and it requires authentication via OAuth or a specific Authorization header with a concrete key-creation URL. That auth and cost detail is not derivable from the schema or annotations. It does not, however, address the non-idempotent hint or what happens with a stale revision.

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?

Three compact sentences with the core action front-loaded, followed by cost and auth requirements. The auth sentence is verbose but each clause carries actionable information (two connection paths plus a key URL).

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?

For a low-complexity mutation tool with an output schema and full parameter documentation, the description covers the two things an agent cannot infer elsewhere: cost and authentication setup. Missing only edge-case behavior around the revision parameter and conflict handling.

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 100%, so the schema already explains canvas_id, name (1-100 chars), and the optional revision field. The description adds no parameter-level detail beyond the schema, making the baseline of 3 appropriate.

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 opens with a specific verb and resource ('Rename a board'), which is unambiguous and distinguishes it from siblings like create_canvas, get_canvas, and list_canvases. It never explicitly contrasts itself with update_card or refresh_canvas, so it earns a 4 rather than 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 Guidelines2/5

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

There is no guidance on when to choose this tool over siblings such as update_card, refresh_canvas, or create_canvas, and no stated preconditions like needing an existing board. The cost note ('Costs no credits') is incidental context rather than usage guidance.

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

run_generation_cardA
Idempotent
Inspect

Render a generation card: its prompt and model become a video or image job whose result lands in the card. Requires a quote_id from estimate_credit_cost for the card's model and kind (quantity 1), taken with the card's duration and resolution when it has them: per-second models are priced from those, and the quote is verified against the card. Credits are charged only on success; a retry with the same quote_id returns the same job. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYesA generation card with a model and a prompt.
quote_idYesThe quote_id from estimate_credit_cost for this card's model and kind, quoted with the card's duration and resolution when it has them. Required.
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobYes
cardYes
canvasYes
next_stepYes
credits_quotedYesThe ceiling fixed by the quote.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnlyHint=false, idempotentHint=true, openWorldHint=true), and the description adds genuinely new behavioral context: credits are charged only on success, a retry with the same quote_id returns the same job, the quote is verified against the card, and full auth requirements (OAuth via host prompt or API key header with signup URL) are disclosed.

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 in the first clause, and subsequent sentences each carry distinct payloads (prerequisite, billing semantics, idempotency, auth). It is dense and a little long, and the quote_id derivation is restated from the schema, but nothing is wasted filler.

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?

An output schema exists so return values need not be explained, and for a paid, authenticated mutation the description covers the missing pieces an agent would otherwise guess at: prerequisite quote flow, cost-on-success behavior, retry idempotency, and exact sign-in options.

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 100%, so each parameter is already documented in the schema. The description reinforces the quote_id dependency (quantity 1, card duration/resolution) but adds no syntax or format detail beyond the schema's own text; baseline 3 is appropriate.

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 (render/run) and resource (a generation card), and explains the outcome mechanism: the card's prompt and model become a video or image job whose result lands back in the card. This clearly separates it from siblings like generate_image/generate_video (which create new jobs) and add_generation_card (which only adds a card).

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 an explicit prerequisite workflow: a quote_id must first come from estimate_credit_cost for the card's model and kind, quoted with the card's duration and resolution. It does not, however, state when-not to use this tool or name an alternative for cases like creating a brand-new generation.

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

save_competitor_adA
Idempotent
Inspect

Keep one ad from search_competitor_ads on the account so it can be decoded and placed on a board. Pass the row exactly as returned. Costs no credits. Saving the same ad twice returns the existing saved ad. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
adYesOne row from search_competitor_ads results[], copied as is.

Output Schema

ParametersJSON Schema
NameRequiredDescription
adYes
next_stepYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover safety (destructiveHint=false, idempotentHint=true) but the description adds context annotations cannot: no credit cost, the concrete outcome of a duplicate save ('returns the existing saved ad'), and full authentication requirements (OAuth prompt or Bearer acd_live_ key with a settings URL).

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?

Front-loads purpose and source, then the pass-through rule, cost, idempotency, and auth in short clauses. Every sentence carries distinct decision-relevant information; nothing is repeated from the schema or annotations.

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?

An output schema exists so return values need no narration, and the description closes the remaining gaps: cost, idempotency behavior, auth setup, and the input hand-off rule. Nothing an agent needs to invoke this correctly 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 description coverage is 100%, so the baseline is 3, and the nested row fields are documented inline. The description goes beyond that by prescribing how to populate the parameter ('Pass the row exactly as returned'), which prevents the agent from mutating or trimming fields.

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+resource ('keep one ad ... on the account') and names the exact source sibling (search_competitor_ads) plus the downstream use (decoded and placed on a board). An agent can distinguish it from list_saved_ads and get_saved_ad without opening a schema.

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?

Explicitly says to pass the row exactly as returned from search_competitor_ads, which tells the agent the precondition for calling it. It does not, however, explicitly rule out alternatives or state what to do if the ad was not sourced from that tool.

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

search_articlesA
Read-onlyIdempotent
Inspect

Search AI Content Drop's published guides and model comparisons about AI video generation, prompting, and ad creative.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (1-25). Defaults to 10.
queryYesKeywords, e.g. 'kling vs sora' or 'ugc hooks'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
queryYes
resultsYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover the safety profile with readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds content scope but no additional behavioral traits such as pagination, rate limits, or result ordering, so it stays at a baseline 3.

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 a single front-loaded sentence with no filler. It packs the verb, resource scope, and topic coverage efficiently, making it easy for an agent to parse quickly.

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?

For a simple search tool with two fully documented parameters, safety annotations, and an output schema, the description is largely sufficient. It is slightly incomplete in that it doesn't hint at the recommended flow of searching then fetching an article via get_article, but nothing essential to invoking the tool correctly is missing.

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 100%: query and limit are both documented with examples and constraints. The description adds no parameter-specific meaning beyond what the schema already provides, so the baseline 3 is appropriate.

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 uses a specific verb and resource: 'Search AI Content Drop's published guides and model comparisons' about AI video generation, prompting, and ad creative. It clearly differentiates from generation and listing tools, though it does not explicitly distinguish itself from the closely related get_article sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies usage when discovering published content by keyword, such as 'kling vs sora', but it provides no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives like get_article for retrieving a specific article by ID.

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

search_competitor_adsA
Read-onlyIdempotent
Inspect

Search live competitor ads by keyword on Meta or TikTok: advertiser, copy, hook, call to action, media and run time per ad. Costs no credits. When live data is not available the rows are samples, marked demo: true with a note; never present those as real ads. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoimpressions (default) ranks by reach; recent by start date.
limitNoRows to return, 1-20; defaults to 10.
keywordYesWhat to search for: a product, a category or a competitor, 1-200 characters.
platformNoDefaults to meta.

Output Schema

ParametersJSON Schema
NameRequiredDescription
demoYesTrue when results are sample rows because live data was not available.
noteNoPresent only when demo is true: why, and what the rows are.
sortYes
countYesRows returned.
keywordYes
resultsYes
platformYes
next_stepYes
total_foundYesRows the search produced before limit.

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the safety bar is covered; the description goes further by disclosing that fallback rows are synthetic and flagged demo: true, instructing the agent never to present them as real ads, and spelling out the auth path (OAuth or Authorization: Bearer acd_live_ key).

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?

Purpose is front-loaded in the first clause, followed by cost, data-quality caveat, and auth prerequisite in that priority order. Every sentence carries function; the auth URL is long but necessary and appears last.

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 an output schema present and 100% schema coverage, the description need not explain return values, and it covers cost, fallback data semantics, and authentication. The only gap is lack of comparative guidance against sibling ad tools.

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 100%, so keyword, platform, sort and limit are already fully documented in the schema; the description's mention of "by keyword on Meta or TikTok" only echoes that. No format or edge-case detail (e.g. keyword syntax caveats) is added beyond the schema.

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 (search) plus resource (competitor ads) with explicit scope: live ads by keyword on Meta or TikTok. It even enumerates the per-ad fields returned (advertiser, copy, hook, CTA, media, run time), which separates it cleanly from siblings like search_articles and list_saved_ads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

"Costs no credits" and the demo-sample caveat imply when this is worth calling, and the sign-in requirement is a clear precondition. However, it names no alternative tool (e.g. save_competitor_ad, list_saved_ads) and gives no explicit when-not-to-use guidance, so routing is left partly to inference.

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

update_cardAInspect

Change a card: merge fields into its data (text or title on a text card; prompt, model, kind, aspect_ratio, duration, resolution or image_url on a generation card; title or caption on a media card; label on a frame), or move and resize it. Costs no credits. status, job_id, job_kind, quote_id, media_url, thumbnail_url, credits_used and error are set by the server when a card runs and are refused here. A per-second model is priced from the card's duration and resolution, so set them before quoting. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoFields to merge into the card's data; fields not named are kept.
widthNoOptional card width in pixels.
heightNoOptional card height in pixels.
card_idYesThe card id, from cards[] on the board.
positionNoOptional { x, y } in board pixels. When omitted the server places the card in the first free grid cell.
revisionNoThe board revision this change is based on (from the last board you saw). Optional: when omitted the tool reads the current one first.
canvas_idYesThe board id, from list_canvases or create_canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cardYes
canvasYes
next_stepYes

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnly=false, destructive=false), the description discloses that server-managed fields are refused, that a per-second model is priced from duration and resolution, that no credits are consumed, and the exact auth requirement (OAuth or Bearer API key). This is substantial behavioral context that the annotations alone do not convey.

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?

The purpose is front-loaded and every sentence carries information (card-type fields, refused fields, pricing order, auth). It is dense rather than padded, though the auth block is somewhat long and the whole thing runs as one paragraph.

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?

For a mutation tool with nested objects, the description covers edit scope, merge behavior, server-controlled fields, pricing implications, and authentication. An output schema exists, so return values need no explanation, and nothing required to invoke the tool correctly 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 baseline is 3, but the description adds real meaning by listing which fields belong in data for each card type (e.g., prompt/model/aspect_ratio for generation cards, label for frames). The merge semantics are also reinforced here, exceeding what the generic object schema provides.

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 verb and resource ("Change a card") and then enumerates exactly what is editable per card type (text, generation, media, frame) plus move/resize. This lets an agent distinguish it from the add_* and move_cards siblings 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 Guidelines4/5

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

It gives clear context for use (merging data, moving, resizing) and useful preconditions such as "Costs no credits" and the quoting-order note. However, it never names the overlapping sibling move_cards or states when to prefer it, so the alternative selection is left to inference.

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

write_ad_storyboardA
Read-onlyIdempotent
Inspect

Turn an ad brief into a storyboard: 2-5 shots with framing, the spoken line, the caption and the duration of each. Costs no credits. Show it to the person, edit it if needed, then price it with estimate_ad_cost and submit it with generate_ad. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
briefYesThe ad brief: brandName, brandOneLiner, valueProps (1-8 strings), cta, intent, format (an id from list_ad_formats), shotCount (2-5), totalDurationSec (6-20), aspect (9:16 | 16:9 | 1:1), language, quality (fast | premium), modelTier (standard | cinematic), garmentImageUrl for the try-on formats.

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatNo
next_stepYes
storyboardYesad { aspect, totalDurationSec, voiceLanguage } and shots[].

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that the operation 'costs no credits' (consistent with readOnlyHint=true) and by spelling out the OAuth/API-key sign-in requirement — something annotations cannot convey. The ordering constraint relative to estimate_ad_cost and generate_ad is also behavioral context not present in structured fields.

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 the purpose and the output shape, then workflow, then auth. Every sentence carries information, though the auth block is verbose and could be tightened. No wasted preamble.

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?

An output schema exists, so return values need no explanation. The description nonetheless covers the output shape, cost implications, sign-in prerequisites, and the surrounding tool chain, which is complete for a nested-object input with no enums.

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 100% and the single 'brief' object is fully documented with field names, ranges (1-8 valueProps, 2-5 shotCount, 6-20 totalDurationSec) and enum-like options. The description adds only '2-5 shots' which duplicates the schema, so the baseline 3 for high coverage applies.

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?

Opens with a specific verb+resource ('Turn an ad brief into a storyboard') and immediately enumerates the concrete output ('2-5 shots with framing, the spoken line, the caption and the duration of each'). This clearly distinguishes it from sibling generation tools like generate_ad or estimate_ad_cost, which it explicitly names as downstream steps.

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?

Provides an explicit ordered workflow: produce the storyboard, show it to the person, edit if needed, then price with estimate_ad_cost and submit with generate_ad. It also states when auth is needed and how to satisfy it. This is about as complete as usage guidance gets.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedestimate_credit_cost2 fields changed
      • addedInput schema / properties / reference_video_seconds
        Added value: +{
        +  "description": "Length in seconds of the reference video you will pass as reference_video_url (seedance_2_5 up to 30 s, or seedance_2_0_fast up to 15 s at 720p). Reference seconds are billed as input, so they change the price; the server measures the file and refuses a quote whose length does not match.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / reference_video_seconds
        Added value: +{
        +  "description": "Reference-video seconds priced as input, when a reference was quoted.",
        +  "type": "number"
        +}
    • Changedgenerate_video1 field changed
      • addedInput schema / properties / reference_video_url
        Added value: +{
        +  "description": "Optional public https URL of a reference video (for example a 3D blockout playblast) whose camera movement, shot rhythm and subject motion the generation must follow. seedance_2_5 (30 s max) or seedance_2_0_fast (15 s max, 720p). The quote must have been priced with reference_video_seconds equal to this clip's length rounded up; the server measures the clip and refuses on mismatch.",
        +  "type": "string"
        +}
  2. 32 tool updates
    • Addedad_to_canvas_card
    • Addedadd_frame
    • Addedadd_generation_card
    • Addedadd_media_card
    • Addedadd_text_card
    • Addedarrange_cards
    • Addedcreate_canvas
    • Addeddecode_ad
    • Addedestimate_ad_cost
    • Addedgenerate_ad
    • Addedgenerate_avatar
    • Addedgenerate_ugc_video
    • Addedget_ad_job
    • Addedget_canvas
    • Addedget_canvas_link
    • Addedget_saved_ad
    • Addedgroup_cards
    • Addedimport_asset
    • Addedimport_brand_profile
    • Addedlist_ad_formats
    • Addedlist_brand_profiles
    • Addedlist_canvases
    • Addedlist_saved_ads
    • Addedlist_ugc_avatars
    • Addedmove_cards
    • Addedrefresh_canvas
    • Addedrename_canvas
    • Addedrun_generation_card
    • Addedsave_competitor_ad
    • Addedsearch_competitor_ads
    • Addedupdate_card
    • Addedwrite_ad_storyboard
  3. 6 tool updates
    • Changedestimate_credit_cost10 fields changed
      • addedInput schema / properties / duration
        Added value: +{
        +  "description": "Video length in seconds you intend to generate. Affects the price of per-second models.",
        +  "type": "number"
        +}
      • changedInput schema / properties / quantity / description
        Previous value: -"How many generations. Defaults to 1."New value: +"How many generations to price. Defaults to 1. Only a quote for exactly 1 can be spent; larger quantities are for planning."
      • addedInput schema / properties / resolution
        Added value: +{
        +  "description": "Video resolution you intend to generate, e.g. \"720p\" or \"1080p\". Affects the price of per-second models.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / basis
        Added value: +{
        +  "enum": [
        +    "flat",
        +    "per_second"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / duration_seconds
        Added value: +{
        +  "description": "The duration actually priced, for per-second models.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / next_step
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / quote_expires_at
        Added value: +{
        +  "description": "ISO time after which the quote is refused.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / quote_id
        Added value: +{
        +  "description": "Signed quote. Pass it to generate_video or generate_image; it fixes the price and makes a retry safe.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / resolution
        Added value: +{
        +  "description": "The resolution actually priced, for per-second models.",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "model_id",
        -  "name",
        -  "credits_each",
        -  "quantity",
        -  "credits_total",
        -  "type"
        -]New value: +[
        +  "model_id",
        +  "name",
        +  "credits_each",
        +  "quantity",
        +  "credits_total",
        +  "type",
        +  "basis",
        +  "quote_id",
        +  "quote_expires_at",
        +  "next_step"
        +]
    • Addedgenerate_image
    • Changedgenerate_video12 fields changed
      • changedInput schema / properties / aspect_ratio / description
        Previous value: -"Defaults to 16:9."New value: +"Defaults to 16:9. Use 9:16 for vertical social clips."
      • changedInput schema / properties / duration / description
        Previous value: -"Length in seconds. Defaults to 5."New value: +"Length in seconds. Must match the quoted duration for per-second models."
      • changedInput schema / properties / model / description
        Previous value: -"Model ID from list_models, e.g. \"kling_3_0\". Omitted means the platform picks a suitable one."New value: +"Model ID from list_models, e.g. \"kling_3_0\". Must match the quoted model; omitted means the quoted model."
      • addedInput schema / properties / quote_id
        Added value: +{
        +  "description": "The quote_id from estimate_credit_cost for this exact model, duration and resolution. Required.",
        +  "type": "string"
        +}
      • addedInput schema / properties / resolution
        Added value: +{
        +  "description": "e.g. \"720p\" or \"1080p\". Must match the quoted resolution for per-second models.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "prompt"
        -]New value: +[
        +  "prompt",
        +  "quote_id"
        +]
      • addedOutput schema / properties / credits_quoted
        Added value: +{
        +  "description": "The price fixed by the quote.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / credits_used / description
        Previous value: -"0 until the render succeeds — billing is post-deduct."New value: +"0 until the render succeeds; billing is post-deduct."
      • addedOutput schema / properties / image_url
        Added value: +{
        +  "description": "Null until the render finishes.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "video",
        +    "image"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / replayed
        Added value: +{
        +  "description": "True when this quote_id had already been submitted and the original job was returned.",
        +  "type": "boolean"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "id",
        -  "status",
        -  "credits_used",
        -  "next_step"
        -]New value: +[
        +  "id",
        +  "kind",
        +  "status",
        +  "credits_quoted",
        +  "credits_used",
        +  "replayed",
        +  "next_step"
        +]
    • Changedget_account3 fields changed
      • addedOutput schema / properties / can_generate
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / info_url
        Added value: +{
        +  "description": "Informational page describing plans and entitlement options.",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "plan",
        -  "credits_remaining"
        -]New value: +[
        +  "plan",
        +  "credits_remaining",
        +  "can_generate",
        +  "info_url"
        +]
    • Changedget_generation4 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"The id returned by generate_video."New value: +"The id returned by generate_video or generate_image."
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "Which job type the id belongs to. Defaults to video.",
        +  "enum": [
        +    "video",
        +    "image"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / image_url
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "video",
        +    "image"
        +  ],
        +  "type": "string"
        +}
    • Changedlist_generations2 fields changed
      • addedOutput schema / properties / generations / items / properties / image_url
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / generations / items / properties / kind
        Added value: +{
        +  "enum": [
        +    "video",
        +    "image"
        +  ],
        +  "type": "string"
        +}
  4. 3 tool updates
    • Changedget_account1 field changed
      • addedInput schema / required
        Added value: +[]
    • Changedlist_generations1 field changed
      • addedInput schema / required
        Added value: +[]
    • Changedlist_models1 field changed
      • addedInput schema / required
        Added value: +[]
  5. 8 tool updates
    • First observedestimate_credit_cost
    • First observedgenerate_video
    • First observedget_account
    • First observedget_article
    • First observedget_generation
    • First observedlist_generations
    • First observedlist_models
    • First observedsearch_articles

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.