Skip to main content
Glama

Server Details

Create short-form videos and images, manage brands, and schedule social content with VidGuy.

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL

TDQS

A3.6/5.0

Scored across 84 tools

Disambiguation3/5

Many tools target genuinely distinct resources and the descriptions are unusually explicit about boundaries (e.g. generate_snacks is brand-scoped vs generate_influencer_snack for an influencer; list_characters for UGC actors vs list_influencers). However, with 84 tools there are several overlapping clusters — five video-generation entry points, four image generators (studio_*, seedance_*, generate_influencer_studio_image), multiple upload paths, and four pollers (get_job plus three dedicated ones) — where an agent can plausibly misselect.

Naming Consistency4/5

The surface is overwhelmingly consistent snake_case verb_noun (list_*, get_*, create_*, update_*, delete_*, generate_*, publish_*), with a few readable namespaced forms (studio_generate_image, seedance_generate_video). Minor deviations exist (ai_edit_upload, swap_upload, swap_import_character are noun-first), but nothing chaotic.

Tool Count1/5

84 tools is far beyond any reasonable single-server surface and sits in the extreme-mismatch band. Even though the platform is genuinely broad, the count makes selection and context bloat a serious usability problem.

Completeness4/5

Coverage is extensive across the whole platform: create/read/update/delete for brands, full lifecycle for social posts, managed accounts, influencers, snacks, uploads, generation, polling, credits and analytics. A few lifecycle gaps remain (no delete for characters or video projects; influencers are only archived via update), but nothing that blocks core workflows.

Available Tools

84 tools
ai_edit_uploadAI Edit: get upload URLAInspect

Get a presigned PUT URL for an AI Edit source video (up to 2GB). PUT the bytes to uploadUrl, then pass the returned r2Key to create_ai_edit. (Source must be uploaded this way — its key prefix is validated.)

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNameYes
fileSizeYes
fileTypeYesvideo/mp4 | video/webm | video/quicktime | video/x-matroska

TDQS

A4.4/5.0
Behavior4/5

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

Annotations give readOnlyHint=false and idempotentHint=false, but the description adds the critical non-obvious behavior: the source must be uploaded via this path and its key prefix is validated, plus the 2GB size cap. It doesn't cover URL expiration, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with the action and the exact field names to use (uploadUrl, r2Key), with the caveat parenthetical in the right place. No waste.

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?

No output schema exists, so the description correctly names the return values an agent must use (uploadUrl and r2Key). It links to the next tool in the workflow. Missing details like URL TTL or failure behavior, but the essential handoff is complete.

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 33%, and the description adds the practical 2GB size ceiling that constrains fileSize. It does not clarify fileName/fileType semantics beyond what the schema shows. Baseline for partially documented params, with one useful added constraint.

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: get a presigned PUT URL for an AI Edit source video. Names the downstream sibling create_ai_edit and its own upload flow, distinguishing it from generic upload siblings like create_upload or swap_upload.

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

Usage Guidelines5/5

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

Explicit sequence: get URL, PUT bytes to uploadUrl, then pass returned r2Key to create_ai_edit. Also gives a constraint (source must be uploaded this way; key prefix validated) that tells the agent when not to bypass this tool.

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

attach_influencer_referenceAttach influencer reference imageAInspect

Attach the user's own image to an influencer as its identity reference. FREE. The image must have a stable public/hosted URL; use import_asset_from_url when starting from a public URL, or create_upload when starting from raw bytes. Returns a vault asset id to pass as seedImageAssetId to generate_influencer_look or build_influencer_vault. For an already-approved real photo, you can skip the paid look preview and build directly from this asset id.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoReference framing; defaults to portrait
imageUrlYesStable public/hosted URL of the user's reference image
influencerIdYesInfluencer id returned by create_influencer

TDQS

A4.5/5.0
Behavior4/5

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

Annotations cover safety profile (readOnlyHint=false, destructiveHint=false). Description adds pricing ('FREE') and critical downstream usage ('pass as seedImageAssetId to generate_influencer_look or build_influencer_vault'), which the annotations don't provide. Doesn't describe failure modes for non-stable URLs, keeping it from 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?

Front-loaded purpose, then cost, then prerequisites, then workflow. Every sentence carries useful information. Four sentences with some density but no fluff.

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?

No output schema, but description explicitly states the return value (vault asset id) and how to consume it downstream. Covers prerequisites, cost, and integration path. Nearly complete for a mutation tool.

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 baseline 3. Description adds the constraint that imageUrl must be a stable public/hosted URL and that influencerId comes from create_influencer, and describes role via 'identity reference'. Slight value add above 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 (Attach) and resource (user's own image as identity reference for an influencer). Clearly distinguishes from sibling create_influencer and generate_influencer_look.

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 names import_asset_from_url and create_upload as prerequisite paths depending on source (URL vs raw bytes). Also tells the agent when to skip the paid look preview. Strong routing guidance.

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

build_influencer_vaultBuild influencer vaultA
Destructive
Inspect

Kick off an ASYNC build of an influencer's vault — the character/reference sheet plus on-camera stills, faceless 'phone-dump' b-roll, and short video clips that future snacks draw from. SPENDS CREDITS (≈25 per b-roll clip, plus a flat premium when starterBundle=true; the exact amount comes back as creditsReserved, and is refunded automatically on failure). Returns a build job immediately — poll get_influencer_vault_build with the returned id until status is 'completed'. BUILDS TAKE SEVERAL MINUTES; don't poll as if it'll be instant. For the very first build after create_influencer, pass starterBundle=true to charge the flat starter-vault bundle price.

ParametersJSON Schema
NameRequiredDescriptionDefault
turboNo
promptNoOptional steer for the build
brollCountNoNumber of short b-roll video clips to generate (each ≈25 credits)
resolutionNo
influencerIdYesInfluencer id from list_influencers
starterBundleNoFirst build after creation — charge the flat starter-vault bundle price
seedImageAssetIdNoSeed the character sheet from an approved look or attach_influencer_reference asset id. Prefer seedImageAssetIds.
staticSceneCountNoOn-camera static scene stills to generate
seedImageAssetIdsNoUp to 4 attach_influencer_reference asset ids of the SAME person from different angles (front, three-quarter, profile, full body). Gives the character sheet coverage a single frame cannot, so the whole vault holds the likeness.
facelessBrollCountNoFaceless lifestyle b-roll stills (POV / mirror / flat-lay)
generateReferenceSheetNoGenerate the multi-pose character sheet (the vault's identity anchor)

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 SPENDS CREDITS (≈25 per b-roll clip plus a flat premium when starterBundle=true), that the exact amount returns as creditsReserved, that it is refunded automatically on failure, and that builds take several minutes. Annotations only flag destructive/openWorld; the cost, refund, and latency behavior is the real added value.

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 credit warning, and every sentence carries information (async, cost, polling, duration, starter bundle). The caps emphasis and stacked clauses make it slightly dense, but there is 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?

With no output schema, the description carries the return contract adequately: it returns a build job immediately with an id to poll. Cost, refund, latency, and the polling channel are all covered, so an agent has everything needed to invoke and follow up 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?

Schema coverage is 82%, so the schema already documents most parameters. The description still adds meaning beyond it by explaining starterBundle's first-build pricing semantics and reinforcing the per-clip credit cost of brollCount, though turbo, resolution, and prompt get no extra description-level context.

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 (kick off an async build) and resource (influencer's vault), and enumerates exactly what the vault contains (character/reference sheet, on-camera stills, faceless b-roll, short clips). It also names the sibling polling tool get_influencer_vault_build, letting an agent distinguish it from generate_influencer_look or generate_influencer_studio_image 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?

Gives explicit conditions: poll get_influencer_vault_build until status 'completed', and pass starterBundle=true for the very first build after create_influencer. It warns not to poll as if instant. It does not, however, contrast usage against adjacent generation siblings (generate_influencer_look, generate_influencer_snack), so exclusions are only partial.

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

buy_creditsBuy credits by machine paymentA
Read-only
Inspect

Get the offer for a pay-as-you-go credit top-up: the exact URL to POST, the USD price, and which rails this deployment accepts (x402 USDC on Base/Solana; Stripe MPP for Shared Payment Token cards and Tempo USDC). POST the returned url with your API key in X-Api-Key and no payment header to receive the 402 challenge (PAYMENT-REQUIRED for x402, WWW-Authenticate for MPP), pay it with your wallet, and retry the same request with the payment header. Credits land on settlement and never expire. Pass required (from an insufficient-credits error) to get the smallest size that covers it. Read-only; this tool itself never moves money.

ParametersJSON Schema
NameRequiredDescriptionDefault
creditsNoA specific offer size to return instead (50, 100, 250, 500, 1000)
requiredNoCredits the blocked action needs; picks the smallest covering size

Output Schema

ParametersJSON Schema
NameRequiredDescription
railsYes
offersYes
enabledYes
suggestedYes
instructionsYes
usdPerCreditYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/non-destructive, and the description corroborates rather than contradicts ('Read-only; this tool itself never moves money'). It adds substantial context annotations cannot convey: the 402 challenge flow, the exact payment headers (PAYMENT-REQUIRED, WWW-Authenticate), that the same request is retried with a payment header, and that credits land on settlement and never expire.

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 paragraph, but it is front-loaded with the highest-value fact (what the offer returns) and each subsequent clause carries actionable payment-flow detail. Slightly long and list-free for a multi-step flow that would benefit from structure.

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 payment-negotiation tool with an output schema (so return shape need not be restated), the description covers everything an agent needs: what is returned, which rails exist, how to trigger the challenge, how to settle, and when the credit arrives.

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 genuine semantics beyond the schema: `required` originates from an insufficient-credits error and selects the smallest covering offer size, which clarifies the intended data source for that value.

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 ('Get the offer for a pay-as-you-go credit top-up') and enumerates exactly what the offer contains: the POST URL, the USD price, and the accepted rails. It is clearly distinguishable from sibling account tools like get_credits because it returns a payment offer rather than a balance.

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 triggering conditions: pass `required` when an insufficient-credits error blocks an action, or pass `credits` for a specific size. It never names an alternative sibling tool (e.g. get_credits) to route between, so it stops short of explicit when-not guidance.

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

cancel_social_postCancel / delete a social postA
DestructiveIdempotent
Inspect

Cancel a scheduled post or remove a draft/failed/cancelled row. A post already 'publishing' cannot be cancelled (409). Scheduled posts are also cancelled on the publishing provider. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesSocial post UUID

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely new behavior: the 409 failure condition, the downstream side effect that scheduled posts are also cancelled on the publishing provider, and the cost ('Free'). It does not describe what happens to the row post-call, keeping it out of the top band.

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 short sentences, front-loaded with the action and post states, then the failure condition and side effect. No sentence is padding; even 'Free' carries cost information an agent may need.

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 rich annotations and a fully described single-parameter schema, the remaining burden on the description is behavioral, and it covers the error case, side effects, and cost. The only gap is the post-call state of the row (deleted vs. marked cancelled), which is minor for a cancel operation with no output schema.

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?

Only one parameter (postId) exists and schema description coverage is 100%, so the schema already documents it as a social post UUID. The description adds no format, sourcing, or lookup guidance beyond that, making the baseline 3 correct.

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 (cancel/remove) and resource (social post) and enumerates the exact post states it handles: scheduled, draft, failed, cancelled. That state enumeration, plus the publishing exclusion, lets an agent distinguish it from siblings like retry_social_post or get_social_post 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?

It clearly states when the tool applies (scheduled/draft/failed/cancelled posts) and when it does not (posts already 'publishing' return 409). It stops short of naming an alternative for the publishing case or routing failed posts to retry_social_post, so it is strong context without explicit alternative routing.

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

chat_with_influencerChat with influencer (live)AInspect

Have a live conversation with the influencer's agent brain — the SAME persistent thread and memory as the dashboard Chat tab, so anything discussed here carries into its future posting. Advice-only toolset: it can discuss strategy, its vault, and its plans, but cannot publish from chat. SYNCHRONOUS and slow (typically 15–90s per reply; can approach 4 min) — send ONE message per call and wait. For fire-and-forget direction, prefer send_influencer_message.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
influencerIdYes

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses important behavioral traits beyond the annotations: statefulness ('the SAME persistent thread and memory'), side effects on future posting, synchronous latency (15–90s, up to 4 min), and the restriction that it cannot publish. These traits are not inferable from the annotations alone. No contradiction 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?

The description is dense but efficiently organized: purpose, statefulness, constraints, latency, and the alternative tool are each covered in a few sentences. No filler or repetition; the most decision-relevant information is front-loaded.

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?

Despite having no output schema, the description provides enough context for correct invocation: it explains behavior, latency, one-call-at-a-time semantics, the inability to publish, and the sibling alternative. An agent can confidently decide whether to call this tool and how to handle the response.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of explaining parameters, but it only implies that 'message' is a single conversational turn and does not explain influencerId or message semantics beyond field names. The names are somewhat self-explanatory, but this is still a clear gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'have a live conversation with the influencer's agent brain.' It clearly distinguishes this tool from siblings by emphasizing the persistent thread/memory shared with the dashboard Chat tab and the advice-only, no-publishing constraint.

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?

The description explicitly says when to use this tool (live, synchronous conversation) and when not to ('For fire-and-forget direction, prefer send_influencer_message'). It also gives concrete usage guidance: send ONE message per call and wait for the slow reply.

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

create_ai_editAI Edit: createA
Destructive
Inspect

Polish uploaded footage (captions, punch-ins, optional b-roll, SFX). ASYNC — returns a projectId; poll get_job. SPENDS CREDITS (~5 per 30s of source, +5 if broll=true; b-roll is off by default). Requires an r2Key from ai_edit_upload.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
brollNoCut in matching stock b-roll (+5 credits). Defaults to false
notesNo
recipeYes
editStyleNo
sourceR2KeyYesr2Key from ai_edit_upload
captionStyleYes
outputFormatYes
sfxIntensityYes
sourceFileNameYes
captionPositionYes
sourceDurationSecondsYesSource length in seconds (drives cost)

TDQS

A4.1/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: asynchronous execution returning a projectId, the polling requirement via get_job, an explicit credit spend with a per-30s formula and a broll surcharge, and the default-off b-roll flag. This is exactly the kind of cost and lifecycle disclosure a destructive, non-idempotent tool needs.

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 tight sentences front-load the capability first, then async behavior, then cost, then prerequisite. The telegraphic parenthetical style is efficient but slightly dense; nothing 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?

With no output schema and an async lifecycle, the description supplies the missing pieces an agent needs: return contract (projectId), polling path (get_job), cost model, and prerequisite upload. Enum value meanings, the largest remaining gap, are not covered.

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 only 25% across 12 params, so the description must compensate and it partially does: it explains sourceR2Key's origin, broll's default and cost, and that sourceDurationSeconds drives cost. However, the six enum parameters (recipe, editStyle, captionStyle, outputFormat, sfxIntensity, captionPosition) and name/notes remain unexplained, leaving notable gaps.

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 ('Polish uploaded footage') and enumerates the actual output features (captions, punch-ins, b-roll, SFX), which distinguishes it from generic create_video/create_ai_story siblings. It does not explicitly name a competing sibling, but the described capability is specific enough to route on.

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 preconditions (requires an r2Key from ai_edit_upload) and the follow-up action (poll get_job), plus the credit cost of running it. It does not state when to prefer this over other video-creation siblings, so it falls short of 5.

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

create_ai_storyCreate AI story (short drama)A
Destructive
Inspect

Generate a dialogue-first short drama from a single reference image — the image becomes the cast for a 5-scene 'short' or 9-scene 'medium' sequence. ASYNC — returns a jobId; poll get_job until completed. SPENDS CREDITS (50 short / 80 medium). Requires a public referenceImageUrl.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
promptYesThe story idea — characters, setting, beats
durationNoshort = 5 scenes (~25s); medium = 9 scenes (~45s)
platformNo
styleTemplateIdNoVisual style preset (default fruit-drama)
referenceImageUrlYesPublic HTTPS URL of the cast image
styleReferenceImageUrlNoExtra style reference URL (used when styleTemplateId='custom')

TDQS

A3.8/5.0
Behavior4/5

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

Annotations cover the safety profile (destructive=true, non-idempotent, openWorld), and the description adds material context beyond them: the async job pattern with a get_job polling loop and the credit cost (50 short / 80 medium). That cost and the required public URL are exactly the side-effect facts an agent needs before spending credits.

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 tight clauses, front-loaded with the core purpose, then async behavior, then cost/prerequisite. No filler; every sentence carries needed 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 no output schema, the description correctly discloses the return shape (jobId, poll via get_job) and the credit cost. Remaining gaps are minor — it doesn't say what the finished artifact is (a video) or clarify the platform enum's effect, but it is sufficient to invoke the tool 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 71%, so most parameters are already documented (prompt, duration, styleTemplateId, referenceImageUrl, styleReferenceImageUrl). The description reinforces referenceImageUrl must be public and ties 'short'/'medium' to scene counts, but adds little for the undocumented platform and name 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?

States a specific verb and resource: 'Generate a dialogue-first short drama from a single reference image', with concrete scope (5-scene short / 9-scene medium). This is distinctive against generic siblings like create_video or seedance_generate_video, but it never names an alternative, so the differentiation is inferable rather than explicit.

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?

It gives operational context — 'ASYNC — returns a jobId; poll get_job until completed' and 'Requires a public referenceImageUrl' — which implies usage. However, it gives no when-to-use guidance against the many other creation tools (create_video, create_ai_edit, seedance_generate_video), leaving the agent to guess which generator to pick.

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

create_brandCreate brandAInspect

Register a new brand (one of your end-customers) when none of the existing brands fit. description should be a few sentences — short descriptions hurt content quality. If you omit targetAudience we derive it. Free (no credits). Returns the brand's id — pass that to generate_snacks.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
appDemoNo
logoUrlNo
appDemosNo
industryYes
languageNo
websiteUrlNo
descriptionYes
screenshotsNo
targetAudienceNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the mutation profile (not readOnly, not idempotent, not destructive), so the description's job is lighter. It still adds real behavior: no credit cost ('Free'), the defaulted targetAudience when omitted, and the returned id used for chaining.

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?

Four tight sentences, purpose front-loaded, each carrying distinct information (when to use, param advice, cost, return/next step). Slightly dense but no wasted filler.

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

Completeness3/5

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

With no output schema, the return-value note is valuable, and the mutation intent is covered by annotations. However, for a 10-parameter creation tool with zero schema description coverage, over half the parameters give an agent no guidance at all, which is a meaningful gap.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only addresses two of ten parameters — guidance on description length ('a few sentences') and the derivable targetAudience — leaving name, industry, websiteUrl, logoUrl, appDemo(s), screenshots and language entirely undocumented anywhere.

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 ('Register a new brand') and disambiguates the resource by defining it as 'one of your end-customers', which separates it cleanly from create_influencer, create_character and similar creation 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?

'when none of the existing brands fit' gives an explicit precondition that implicitly routes the agent to list_brands/get_brand first, and 'pass that to generate_snacks' names the downstream step. It stops short of explicitly naming the alternative (update_brand) for existing brands.

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

create_characterCreate character (actor)A
Destructive
Inspect

Create a new saved character/actor for UGC video — the API equivalent of adding an actor in the dashboard. Supply ONE of: fromLibraryId (clone a preset from list_character_library into the user's saved actors — FREE, name/voice default to the preset's); imageUrl (a public/hosted image — use import_asset_from_url or create_upload first if you only have raw bytes — saved for FREE); or a text prompt to AI-generate a 9:16 portrait (SPENDS 1 credit). Returns characterId to pass as the UGC characterId on create_video. Optionally set defaultVoiceId. NOTE: a library preset can already be used directly as a UGC characterId — only clone it here when the user wants their own editable copy (e.g. a custom voice).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name for the actor (optional when cloning a library preset)
promptNoText prompt to AI-generate the actor portrait if no fromLibraryId/imageUrl is given (spends 1 credit)
imageUrlNoPublic/hosted image URL to save as the actor (free; used when no fromLibraryId)
fromLibraryIdNoClone a preset actor (id from list_character_library) into the user's saved actors (free)
defaultVoiceIdNoOptional default ElevenLabs voice id for this actor

TDQS

A4.9/5.0
Behavior5/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false, implying mutation. The description goes beyond annotations by clearly stating the cost implications: cloning and image URL are free, while prompt generation spends 1 credit. It also reveals that library presets can be used directly, avoiding unnecessary clones, and that the return value is a characterId. This adds critical context for an agent deciding whether to call the tool.

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 dense but organized: it starts with the core purpose, then lists the three modes in a clear structure, and ends with a usage caveat. It is a bit long but each sentence adds value; the only minor inefficiency is repeating 'saved for FREE' which could be tightened.

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 (three alternative inputs, cost implications, integration with other tools), the description is comprehensive. It covers prerequisites (import_asset_from_url), return value (characterId), and downstream usage (create_video). With no output schema, the description adequately explains the return value, and the annotations cover mutation/safety, so nothing essential is missing.

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 schema already covers all parameters with descriptions, but the description adds significant meaning by explaining the parameter relationships (e.g., fromLibraryId defaults name/voice, imageUrl requires hosting, prompt requires a 9:16 portrait and costs a credit). It clarifies that name is optional in cloning context, which is not fully explicit 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?

The description clearly states the tool creates a saved character/actor for UGC video, distinguishes it from sibling tools like create_character_swap and list_character_library, and specifies the three input modes. It also explains the output (characterId) and its downstream use in create_video.

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 explicit when-to-use guidance: it details three mutually exclusive input methods (fromLibraryId, imageUrl, prompt), notes when to use import_asset_from_url for raw bytes, and warns against unnecessary cloning of library presets unless the user wants an editable copy, correctly routing to alternatives.

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

create_character_swapCharacter Swap: createA
Destructive
Inspect

Swap a character image onto a driving video, optionally restoring selected source-video ranges in the final result. ASYNC — returns a projectId; poll get_job. SPENDS CREDITS (min 25; ×2 for 1080p; +5 voice change). Needs a character-image r2Key (from swap_import_character for an image already on VidGuy, or swap_upload for raw bytes) and a driving-video r2Key from swap_upload. A driving-video r2Key is reusable: upload the source once, then call this repeatedly with different characters to batch one cut across many avatars. get_video on a finished swap returns its exact settings (ranges, keys) to replay.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
promptNo
saveAudioNoKeep the driving video's original audio in the result (default true). Set false to drop it. Ignored when voiceChangeVoiceId is set — voice change always keeps audio.
resolutionNo
sceneMatchNo
characterR2KeyYescharacter-image r2Key from swap_upload
characterFileNameYes
drivingVideoR2KeyYesdriving-video r2Key from swap_upload
voiceChangeVoiceIdNoIf set, enables voice change with this ElevenLabs voice id (+5 credits)
drivingVideoFileNameYes
drivingDurationSecondsYesDriving video length (drives cost)
keepOriginalVisualRangesNoUp to 20 ranges to keep exactly as filmed, e.g. screen recordings. Times are milliseconds and each range must be at least 250 ms. The swap applies everywhere else; audio processing is unchanged.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations mark it non-readonly, destructive, open-world, non-idempotent. The description adds material context the annotations don't: ASYNC with projectId + polling, credit cost (min 25, ×2 at 1080p, +5 for voice change), and reuse semantics for the driving key. This exceeds the annotation bar substantially.

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?

Dense but every sentence earns its place: cost, async flow, prerequisites, batching tip, replay tip. Front-loaded with the core operation, no 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 12-param async credit-spending tool with no output schema, the description covers cost, async behavior, prereqs, and reuse. It doesn't cover the half of params undocumented in the schema (name, prompt, sceneMatch), so an agent relying on the description alone would need the schema for those.

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 50%, so about half the params are undocumented in the schema. The description names the key inputs (characterR2Key, drivingVideoR2Key, r2Key from swap_upload) but doesn't explain name, prompt, sceneMatch, resolution, or the required file-name/duration pairs. Partial compensation, but gaps remain.

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 (swap) + resource (character image onto driving video) with a differentiating scope detail (optional range restoration). The reference to swap_import_character and swap_upload makes clear it's the downstream compositing step, distinguishing it from sibling import/upload tools.

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

Usage Guidelines5/5

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

Explicit prerequisites (character r2Key via swap_import_character or swap_upload, driving-video r2Key from swap_upload), polling flow (poll get_job), and a concrete batching strategy (upload once, call repeatedly with different characters). The replay pathway via get_video is named. This is unusually complete routing guidance.

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

create_influencerCreate influencerAInspect

Create a new persistent AI influencer identity (the Influencer Vault equivalent of the dashboard's 'New influencer'). FREE — this just creates the profile row; generating the look (generate_influencer_look) and the vault (build_influencer_vault) are the steps that spend credits. Plan-gated: starter allows 1, pro 5, enterprise 10 (free tier: 0). Returns the new influencer id. To start from the user's own photo, call attach_influencer_reference next and pass its returned asset id to generate_influencer_look or build_influencer_vault as seedImageAssetId.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the influencer
brandIdNoOptional tenant brand id (from list_brands) to tie this influencer to. OMIT to make the influencer account-wide — it then draws on the account's main brand (your social brand) for content. Either way generate_influencer_snack has brand context; you don't need a tenant brand.
personaNoPersonality / voice-of brief that drives content and captions
realismNorealistic (default) → swap into real footage; stylized → animate the character image
voiceIdNoOptional default ElevenLabs voice id
descriptionNo
visualIdentityNoLook description (appearance, style, vibe) used to generate the vault

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare it is not read-only and not destructive, so the bar is lower. The description adds crucial context beyond annotations: it is free, plan-gated with specific limits (starter 1, pro 5, enterprise 10, free 0), returns the new influencer id, and cannot be idempotent as each call creates a new profile. This is rich transparency.

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 dense but well-structured, front-loading the core purpose and cost. It uses multiple sentences efficiently, though the second sentence about attach_influencer_reference is slightly tangential to the creation act and could be separated as a note.

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 7 parameters with 86% schema coverage, no output schema, and annotations covering mutability, the description completes the picture by stating cost, plan limits, return value, and next-step workflow. An agent has everything needed to invoke correctly and plan subsequent calls.

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 high at 86%, so the baseline is 3. The description implies the required 'name' parameter but adds no syntax or format details beyond what the schema provides. It does clarify the return value (influencer id) but that is not 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+resource ('Create a new persistent AI influencer identity') and maps it to the dashboard equivalent. It clearly distinguishes itself from siblings like generate_influencer_look and build_influencer_vault by noting those are the credit-spending 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?

Explicitly states when to use this tool ('FREE — this just creates the profile row') and names the alternative steps when the user wants the look or vault. It also provides a clear conditional workflow: 'To start from the user's own photo, call attach_influencer_reference next'.

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

create_slidesCreate slides deck (5 images)A
Destructive
Inspect

Generate a portrait 5-slide deck varied from a single reference image. ASYNC — returns a jobId; poll get_job until completed (per-slide assets via get_video). SPENDS ~20 credits. Requires a public referenceImageUrl.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
promptYesVisual idea / scene direction
platformNo
referenceImageUrlYesPublic HTTPS URL of the reference image

TDQS

A4/5.0
Behavior4/5

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

Goes well beyond the annotations: discloses ASYNC execution, that a jobId is returned, that get_job must be polled, that per-slide assets come via get_video, and that it spends ~20 credits. It does not explain what the destructiveHint implies operationally, but the async/cost/polling detail is strong added value.

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 dense sentences with zero filler, front-loading what it produces before the operational details. Every clause earns its place, including the cost and polling instructions.

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

Completeness4/5

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

With no output schema, the description carries the return-path burden and does so (jobId → get_job → get_video). For a 4-param, credit-spending generation tool the async flow, cost, and input prerequisite are covered; only the platform/name params are left to the schema.

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 50% and the schema already documents prompt and referenceImageUrl. The description reinforces the reference-image requirement ('public referenceImageUrl', 'single reference image') but adds nothing for name or platform, so it stays at 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 (generate), a precise resource (portrait 5-slide deck), and a scoping constraint (varied from a single reference image). This is distinguishable from siblings like create_video and studio_generate_image 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 Guidelines3/5

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

Gives clear prerequisites (requires a public referenceImageUrl) and cost guidance, but never names an alternative or states when-not to use it. The agent can infer prerequisites but not how to choose this over the other creation tools.

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

create_social_postCreate / schedule a social postA
Destructive
Inspect

Publish or schedule a post to one or more connected accounts on a brand (multi-platform fan-out in a single call). assetKind 'video' needs a videoUrl; 'photo'/'carousel' need photoUrls (2+ = carousel). Provide a public URL — e.g. a completed project's outputUrl from get_video, or import_asset_from_url / create_upload. Timing: omit both scheduledAt and addToQueue to publish now; pass scheduledAt (ISO-8601) for a specific time; or addToQueue:true to auto-slot into the brand's queue (mutually exclusive). Publishing is subject to the account's existing entitlement; a 402 means the action is unavailable. NOTE: this posts to live external platforms and is not retried server-side; pass distinct content per call. Free (no VidGuy credits; provider seat applies).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
titleNo
brandIdYes
captionNo
videoUrlNo
assetKindYes
photoUrlsNo
accountIdsYes
addToQueueNo
visibilityNo
saveAsDraftNo
scheduledAtNo
thumbnailUrlNo
accountVariantsNo
platformOverridesNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructive/openWorld/non-idempotent, but the description adds substantial context beyond them: 'not retried server-side', 'pass distinct content per call', the 402 entitlement failure mode, and the free-cost model (no credits, provider seat applies). This is exactly the kind of live-side-effect warning 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-loaded with the core action and asset requirements before timing and caveats; every sentence carries distinct information and nothing is redundant. It is dense and a bit long, but the length is justified by the tool's 15-param complexity.

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 15-param, nested-object tool with no output schema this covers the critical call-path decisions (assets, timing, entitlement, side effects) well. It falls short only on the optional fields (per-account variants, platform overrides, visibility/draft), which remain undocumented.

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 0% across 15 parameters, so the description carries the burden. It well explains assetKind conditionality (video→videoUrl, photo/carousel→photoUrls, 2+ = carousel), scheduledAt, and addToQueue, but says nothing about tags, title, caption, visibility, saveAsDraft, thumbnailUrl, accountVariants, or platformOverrides (including the first_comment override). High-value partial compensation, but clear remaining gaps.

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 ('Publish or schedule a post') plus scope ('one or more connected accounts on a brand ... multi-platform fan-out in a single call'). An agent can immediately distinguish this fan-out publish from siblings like cancel_social_post, retry_social_post, or publish_to_managed_account.

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?

Gives explicit routing for the three timing modes (omit both = publish now; scheduledAt = specific time; addToQueue = auto-slot) and flags them as mutually exclusive. It also names the upstream alternatives (get_video outputUrl, import_asset_from_url, create_upload) for sourcing the asset URL.

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

create_uploadCreate upload URLAInspect

Get a presigned PUT URL to upload an image/video directly, plus the public URL it will have. Upload the bytes with HTTP PUT to uploadUrl, then pass publicUrl to a generation call. Prefer import_asset_from_url when you already have a URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
contentTypeYesMIME type, e.g. image/png or video/mp4

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare the non-readonly, non-idempotent, non-destructive profile. The description adds real behavioral value beyond them: the two-step HTTP PUT workflow, both return values (uploadUrl and publicUrl), and the intended downstream use. It omits URL expiry, size limits, and auth requirements, which keeps it from 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?

Three sentences, front-loaded with the core action, followed by the workflow and the alternative routing. Every sentence carries distinct information with zero 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?

With no output schema, the description usefully names both returned URLs and explains how to consume them. It is largely complete for a two-parameter tool, though URL lifetime and payload constraints would round it out.

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 50% — contentType is documented in the schema while filename is not. The description implies content type ('image/video') and the artifact being uploaded but adds no format or constraint detail beyond the schema, so the 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 and resource ('Get a presigned PUT URL to upload an image/video') and precisely distinguishes the tool from a named sibling ('Prefer import_asset_from_url when you already have a URL'). An agent can identify the tool's 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 Guidelines5/5

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

Provides explicit when-to-use ('upload an image/video directly'), when-not with alternative ('Prefer import_asset_from_url when you already have a URL'), and the downstream workflow ('pass publicUrl to a generation call'). Nothing about 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.

create_videoCreate video (Quick Create)A
Destructive
Inspect

Kick off an ASYNC full video production job (the Quick Create flow). SPENDS CREDITS (dynamic, ~50–200 by duration/type — the exact amount comes back as creditsReserved). Returns a jobId; poll get_job until completed. For UGC video types ('ugc','brainrot','ugc-broll','ugc-demo') you MUST supply characterId (from list_characters or list_character_library) and a script. Credits refunded automatically on failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesWhat the video is about
scriptNoUGC only: the spoken script/dialogue
platformYes
videoTypeYes
characterIdNoUGC only: character/actor id from list_characters
scenePromptNoUGC only: optional scene direction
durationSecondsYesTarget length in seconds
additionalInstructionsNo

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that it spends credits (~50–200, dynamic by duration/type), names creditsReserved as the return field, explains the async pattern (jobId → poll get_job), states refunds on failure, and gives the UGC input precondition. Annotations only say destructive/non-idempotent/open-world; the description supplies the actionable behavior.

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?

Tight, front-loaded block: async nature, cost, return/poll, and UGC precondition are all in three compact sentences with zero filler. Credit cost and refund behavior are stated before the UGC caveat, matching importance order.

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 an 8-param async job tool with no output schema, the description covers what the agent needs: cost, async/polling follow-up, failure refund, and the input preconditions for UGC branches. Nothing essential 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 63%, so the schema documents topic, script, characterId, scenePrompt, durationSeconds. The description adds cross-cutting meaning the schema lacks: which videoTypes are UGC ('ugc','brainrot','ugc-broll','ugc-demo') and that those require characterId + script, plus where characterId comes from. Doesn't cover platform/additionalInstructions meaning, so not a 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+resource ('kick off an ASYNC full video production job') and names the exact flow ('Quick Create'), distinguishing it from siblings like create_ai_edit, create_ai_story, or seedance_generate_video. An agent can pick this tool apart from the other ~70 creation/upload tools 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 strong context: it's the Quick Create flow, UGC types require characterId + script (with pointers to list_characters/list_character_library). However it doesn't explicitly state when NOT to use it vs. its many sibling video-generation tools (create_ai_edit, seedance_generate_video, studio_generate_video), leaving routing inferred.

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

decide_influencer_draftsApprove / reject agent draftsA
Destructive
Inspect

Approve or reject an influencer agent's proposed content drafts. APPROVING PUBLISHES (or schedules) REAL POSTS to the configured live accounts — this is the human-in-the-loop gate, so only call it after the user has seen the drafts (get_influencer_agent) and explicitly said which to approve; never bulk-approve on your own judgment. 'reject' also vetoes approved-but-unpublished scheduled drafts, and an optional reason teaches the agent. scheduledAt (ISO-8601) overrides the publish time and is only valid with a single draftId.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoRejection feedback the agent learns from
decisionYes
draftIdsYes
scheduledAtNoISO-8601 publish time (single-draft approve only)
influencerIdYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already flag destructive/openWorld, but the description adds the crucial substance: approving publishes REAL posts to live accounts, reject also vetoes approved-but-unpublished scheduled drafts, and reason feeds learning. These side-effect details go well beyond the annotation flags.

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 critical consequence (APPROVING PUBLISHES) is front-loaded in caps, followed by the gating rule and edge cases. Dense but every sentence carries non-redundant 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?

For a destructive publish gate with no output schema, the description covers the side effects, the required human authorization, the reject semantics, and the scheduledAt constraint. 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?

With only 40% schema coverage, the description compensates well: it explains decision semantics (reject teaches via reason), the scheduledAt ISO-8601 override and its single-draftId constraint, and the single-draft restriction. Only influencerId is left unexplained, a minor gap for an obvious scoping id.

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 pair (approve/reject) and the exact resource (an influencer agent's proposed content drafts). An agent can distinguish this from siblings like get_influencer_agent or publish_to_managed_account without opening any schema.

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

Usage Guidelines5/5

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

Explicitly names the prerequisite (user has seen the drafts via get_influencer_agent and said which to approve), the prohibition (never bulk-approve on your own judgment), and the human-in-the-loop gating condition. When-to-use, when-not-to-use, and the alternative read tool are all present.

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

delete_brandDelete brandA
DestructiveIdempotent
Inspect

Delete a brand. Existing snack posts referencing it are preserved (their brandId becomes null). This cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdYesBrand UUID

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description nonetheless adds genuinely useful cascade behavior beyond the annotations: referencing snack posts survive and their brandId is nulled. It could still say whether the operation fails if the brand is in use or what the response contains.

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 short sentences, front-loaded with the action and immediately followed by the two facts an agent most needs (cascade behavior, irreversibility). 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?

For a one-parameter destructive tool with full annotation coverage and no output schema, the description supplies everything material: what is deleted, what happens to dependent data, and that it cannot be undone. 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 description coverage is 100% and there is a single required parameter already documented as 'Brand UUID' in the schema, so the description adds no parameter meaning. Baseline 3 for a fully documented single-param 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 (delete) and resource (brand) unambiguously, distinguishing it from sibling deletes like delete_managed_post and delete_influencer_studio_image by resource. The follow-up sentences clarify the scope of the deletion's side effects.

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 only implied: the description makes clear this is a destructive, irreversible removal, but it never says when to prefer delete_brand over alternatives such as update_brand or simply leaving the brand intact, nor does it mention prerequisites like ownership or permissions.

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

delete_influencer_studio_imageDelete influencer studio imageA
DestructiveIdempotent
Inspect

Remove a generation from the influencer's studio gallery by generationId (preferred) or url. Only the gallery row is deleted — the underlying file and any vault copy promoted from it stay intact.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
generationIdNo
influencerIdYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false. The description adds genuinely useful context beyond those: only the gallery row is removed while the underlying file and any promoted vault copy survive, which materially changes how an agent should reason about the delete's blast radius.

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?

One front-loaded sentence that states the action, the keys, and the scoping caveat with no wasted words.

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 destructive single-row delete with no output schema, the description adequately covers what is removed and what is preserved. Minor omissions (auth/permission needs, behavior if the id matches nothing) keep it short of full completeness.

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 0%, so the description must carry parameter meaning. It adds that generationId is preferred over url as the lookup key, which is real guidance, but it says nothing about the required influencerId or any value formats, leaving a meaningful gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (remove/delete) and resource (influencer studio gallery row) and identifies the two lookup keys. It is clearly distinguishable from siblings like list_influencer_studio_images and generate_influencer_studio_image.

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 gives a preference between parameters ('generationId (preferred) or url') which implicitly guides invocation, but never states when to use this tool versus alternatives or any preconditions. Usage is implied rather than spelled out.

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

delete_managed_postDelete a scheduled managed postA
DestructiveIdempotent
Inspect

Delete a managed post that is still scheduled (queued, not yet live). Once a post has published it can no longer be removed — attempting to delete a non-scheduled post returns 400. On hosted accounts a submitted post is already a work order with the operations team and cannot be withdrawn through the API: expect 409 with instructions to contact support. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesManaged post UUID (from list_managed_posts)
accountIdYesManaged account UUID

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds preconditions and failure semantics the annotations cannot express: published posts return 400, hosted-account posts return 409 with support instructions, and the operation is 'Free'. This is materially useful context for a destructive call.

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 tight sentences, front-loaded with the core constraint (scheduled-only) before the edge cases. Every sentence carries a distinct, load-bearing fact 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?

For a two-parameter destructive tool with no output schema, the description covers the preconditions, the two distinct error outcomes, and the account-type nuance. Nothing an agent needs to invoke this correctly or interpret failure 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% — both accountId and postId are documented in the schema, including the pointer to list_managed_posts. The description adds no new syntax or format detail 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 ('Delete a managed post') and narrows the scope precisely to one that 'is still scheduled (queued, not yet live)'. This distinguishes it from siblings like cancel_social_post and delete_brand without requiring the schema to be opened.

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 gives the when ('still scheduled'), the when-not ('Once a post has published it can no longer be removed'), and the account-specific exclusion ('On hosted accounts a submitted post is already a work order... cannot be withdrawn through the API'). It even routes the agent to the correct fallback ('contact support').

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

dub_videoLanguage dubA
Destructive
Inspect

Dub a COMPLETED project's video into another language (ElevenLabs). ASYNC — returns a dubbingId; poll get_dub_status until completed. Costs 10 credits. Supported targetLang codes: es, fr, de, pt, hi, ja, ko, zh, ar, it, ru, tr, pl, nl, sv.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesCompleted project UUID
targetLangYesISO code, one of: es, fr, de, pt, hi, ja, ko, zh, ar, it, ru, tr, pl, nl, sv

TDQS

A4.4/5.0
Behavior5/5

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

Delivers rich behavioral context beyond annotations: async nature with a returned dubbingId, the polling follow-up, and the 10-credit cost. This is exactly the operational detail annotations (destructiveHint, openWorldHint) cannot 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?

Front-loaded with the core action, then async behavior, cost, and enum codes in a compact span. Every clause carries information, though the trailing code list is somewhat dense.

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 2-param async tool with no output schema, the description supplies the missing pieces an agent needs: async pattern, follow-up tool, cost, and valid inputs. Nothing critical 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 coverage is 100% and both parameters are fully described in the schema, so the description's enum listing of targetLang codes merely repeats structured data. 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 (dub) and resource (a COMPLETED project's video into another language), plus the provider (ElevenLabs). Distinguishes itself from siblings like get_dub_status and create_video.

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 constrains usage to COMPLETED projects and directs the agent to poll get_dub_status afterward, which is clear operational guidance. It does not name when not to use it versus alternatives, 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.

estimate_snack_costEstimate snack costA
Read-only
Inspect

Estimate the credit cost of a snack generation BEFORE running it. Base is 23 credits; excluding 'ai-ugc' saves 5; server-side render adds 3. No credits spent, no I/O.

ParametersJSON Schema
NameRequiredDescriptionDefault
renderNo
excludeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
baseYes
creditsYes
aiUgcDiscountAppliedYes
renderSurchargeAppliedYes

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 and destructiveHint=false, so the safety profile is covered. The description adds important behavioral context: 'No credits spent, no I/O' and a pricing model. It does not mention auth requirements or rate limits, but the added side-effect clarity is valuable.

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 short sentences, front-loaded with the core purpose and pricing formula. Every sentence adds useful information without waste.

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?

The tool has an output schema, so return values need not be explained. The description provides the base cost, key adjustments, and no-side-effect assurance. It is nearly complete, though it does not fully document all exclude enum values or default parameter behavior.

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

Parameters3/5

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

Schema description coverage is 0%, so the description partially compensates by explaining that excluding 'ai-ugc' saves 5 credits and server-side render adds 3. It does not explain the full exclude enum or default behavior for either parameter, leaving gaps.

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 (estimate) and resource (credit cost of snack generation) with clear scope (before running it). It distinguishes this tool from generation siblings like generate_snacks by emphasizing estimation rather than execution.

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 'BEFORE running it' clearly signals when to use the tool: prior to generation. However, it does not explicitly name alternatives or state when-not to use it, leaving the routing to inference from sibling names.

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

generate_influencer_lookGenerate influencer look previewA
Destructive
Inspect

Generate a single cheap 'look preview' portrait for an influencer so the user can approve the face BEFORE the full vault build (which then seeds from this look so the whole vault matches). SPENDS 1 credit (refunded on failure). Returns the preview image and its vault asset id. To anchor the look to the user's own photo, first call attach_influencer_reference and pass its returned asset id as seedImageAssetId.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptNoOptional extra steer for the look (e.g. 'soft morning light, casual')
influencerIdYesInfluencer id from list_influencers
seedImageAssetIdNoOptional image asset id from attach_influencer_reference to anchor the exact identity. Prefer seedImageAssetIds.
seedImageAssetIdsNoUp to 4 image asset ids from attach_influencer_reference, all of the SAME person from different angles. The first is the primary likeness. More angles give a markedly closer match than one photo.

TDQS

A4.7/5.0
Behavior4/5

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

Adds information annotations don't carry: it costs 1 credit, credits are refunded on failure, and it returns both a preview image and a vault asset id. This meaningfully supplements the destructive/non-idempotent/openWorld hints. It stops short of disclosing any rate limits, auth requirements, or generation latency.

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?

Four sentences, each carrying distinct payload: purpose/ordering, cost/refund, return shape, and the reference-photo workflow. The key scoping constraint is front-loaded 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 no output schema, the description still names what comes back (preview image plus vault asset id), and it covers the pre-build approval intent, credit behavior, and the reference-anchoring prerequisite. An agent has everything needed to sequence and invoke it 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?

Schema coverage is 100%, so baseline would be 3, but the description adds workflow meaning: seedImageAssetId comes from attach_influencer_reference and anchors identity to the user's own photo. That is value beyond the schema's field-level 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?

States a precise verb+resource ('generate a single cheap look preview portrait for an influencer') and explicitly scopes it as a pre-approval step distinct from the full vault build. Repeating that the vault later seeds from this look makes the tool's role unmistakable.

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 to use it BEFORE the full vault build so the user can approve the face, and gives a concrete prerequisite chain: call attach_influencer_reference first, then pass its returned asset id as seedImageAssetId. Both when-to-use and the alternative (vault build) are named.

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

generate_influencer_snackGenerate influencer snack packA
Destructive
Inspect

Kick off an ASYNC snack content pack generated IN THE VOICE OF a specific influencer (the '+ New content' action on the influencer's Content tab). Draws on the influencer's persona + vault assets. Brand context is automatic: if the influencer is tied to a tenant brand it uses that; if it's account-wide (no tenant brand) it falls back to the account's main brand (your social brand) — so you do NOT need to attach a brand first. (It only errors if the account has no brand at all, e.g. a brand-new un-onboarded account.) SPENDS CREDITS (the same flat snack-generation cost; comes back as creditsReserved, refunded on failure). Rate-limited to 10 packs/hour. Returns a jobId — poll get_influencer_snack until status is 'completed'. GENERATION TAKES AT LEAST ~2 MINUTES; don't poll as if it's instant. This is the influencer-scoped sibling of generate_snacks (which is brand-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoTotal snacks to request when using types. Use 5 for five carousels or five memes.
typesNoOptional positive snack-type allow-list, e.g. ['slides'] or ['greenscreen-meme'].
promptNoOptional creative steer for this pack (topic / angle / occasion)
excludeNoOptional snack types to exclude after applying types.
influencerIdYesInfluencer id from list_influencers

TDQS

A4.3/5.0
Behavior4/5

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

Discloses many behaviors beyond annotations: async job with jobId, ~2 min minimum generation time, credit spend with creditsReserved and failure refund, and a 10 packs/hour rate limit. Doesn't fully explain what destructiveHint=true means in this context beyond credit spend, but the async/rate-limit/credit disclosure is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very dense and informative, but poorly structured—parentheticals and stray clauses ('(It only errors...' etc.) make it a wall of text rather than front-loaded points.

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?

Complete for a 5-param async generation tool: covers credit cost, rate limit, polling via get_influencer_snack, expected latency, brand fallback logic, and sibling differentiation.

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% with all five parameters documented, so the schema carries parameter semantics. The description adds the meaning of the async output (jobId) but no new per-parameter detail 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 (Kick off/Generate), resource (snack content pack), scope (in the voice of a specific influencer), and explicitly names its sibling generate_snacks as the brand-scoped alternative.

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

Usage Guidelines5/5

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

Explicit when-to-use ('+ New content' action on the influencer's Content tab), states brand context is automatic so no brand attachment is needed, names the failure condition (no brand at all), and clearly distinguishes from generate_snacks.

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

generate_influencer_studio_imageGenerate influencer studio imageA
Destructive
Inspect

Generate ONE on-identity image of an influencer (Nano Banana 2 Lite, 1 credit, SYNC — the asset URL is in the result, typically ~10–30s). The influencer's character reference sheet is injected server-side automatically so face/hair/body stay consistent — describe the SCENE, outfit, or action, not the person. Up to 4 extra referenceImages (https or data URLs: location, product, outfit). Results land in the influencer's studio gallery; keepers are promoted to the vault from the dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
aspectRatioNo
influencerIdYes
referenceImagesNo

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond annotations by disclosing the model (Nano Banana 2 Lite), cost (1 credit), synchronous execution with typical ~10–30s latency, that the asset URL is returned in the result, that results land in the studio gallery, and how keepers reach the vault. This is exactly the operational context annotations cannot 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?

Front-loaded with the key operation, model, cost, and sync behavior before the usage guidance. Dense but nearly every clause carries signal; only the vault-promotion note is somewhat peripheral to calling the tool.

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?

No output schema exists, and the description compensates by saying the asset URL is in the result and where the asset is stored. Combined with annotations covering the mutation profile, an agent has enough to invoke correctly, though aspectRatio guidance would complete it.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It does this well for prompt and referenceImages (up to 4, https or data URLs, suggested uses), but aspectRatio's enum and influencerId's UUID format/role get no explanation, leaving two of four params undocumented anywhere.

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 ('Generate ONE on-identity image of an influencer') and implicitly separates itself from siblings like studio_generate_image or seedance_generate_image by calling out the server-side character reference injection that makes the output on-identity. An agent can tell this is the influencer-scoped generator.

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?

It gives strong intra-tool guidance ('describe the SCENE, outfit, or action, not the person') and clarifies how referenceImages are used, but never states when to prefer this over adjacent tools such as generate_influencer_look or studio_generate_image. Usage context is implied rather than compared against alternatives.

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

generate_memeGenerate memeA
Destructive
Inspect

Create memes from a plain-language prompt — a pasted changelog line, blog title, or launch note works; you do not need to write the joke. Choose meme-edit (rewrites a familiar reaction clip, 3 credits each), meme-greenscreen (keys a person over a background with a hook, 2 credits each), or meme-comic (an illustrated comic strip, 2 credits each). count accepts 1–5 and produces that many variations of the selected type. brandId is OPTIONAL: omit it for a brandless meme driven purely by the prompt, or pass one from list_brands to fold in that brand's voice. ASYNC: returns a jobId immediately; poll get_job, and expect generation to take ~1–3 minutes. Credits refund automatically on failure. Individual slots can silently skip — especially meme-edit, which needs a source clip whose caption rewrites cleanly — so fewer than count memes may land.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of variations to request (default 1, maximum 5)
promptYesPlain-language subject or moment to turn into a meme
brandIdNoOptional brand UUID from list_brands; omit for brandless generation
memeTypeYesMeme format to generate

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
jobIdYes
statusYes
pollUrlYes
memeTypeYes
offeringIdNo
creditsReservedYes

TDQS

A4.8/5.0
Behavior4/5

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

Adds substantial behavior beyond the annotations: async jobId return, ~1-3 minute latency, per-type credit costs, automatic refunds on failure, and silent per-slot skipping. The destructiveHint=true is sensibly explained by the credit-charging language, though the description never explicitly frames credit spend as the destructive aspect, leaving that inference to the reader.

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?

Opens with the core action, then layers modes, cost, optionality, and async caveats in a single dense paragraph. Despite its length, every clause conveys operational information an agent needs, and non-obvious pitfalls (silent skips, refunds) are front-loaded where relevant.

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 4-parameter, async, credit-consuming, open-world generation tool this leaves nothing material unstated: it covers mode selection, cost, refund behavior, polling, latency, and partial-result risk. With an output schema present, the description does not need to document return fields and rightly skips them.

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?

Schema coverage is already 100%, yet the description still adds real meaning: count is bounded 1-5 and cautioned that fewer may land, brandId's omit-vs-pass semantics are spelled out, each enum value carries a credit cost and behavior, and prompt is illustrated with concrete source examples (changelog line, blog title, launch note).

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 (create) and resource (memes) plus the input modality (plain-language prompt) and enumerates the three distinct modes. An agent can immediately tell this apart from studio_generate_image, seedance_generate_image, and create_slides, which are the nearest media-generation siblings.

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 describes when to choose each memeType (edit vs greenscreen vs comic), when to include brandId (with a pointer to list_brands) versus omit it, and how to operate the async flow (poll get_job). It even pre-empts the common confusion that the caller must supply the joke.

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

generate_snacksGenerate snacksA
Destructive
Inspect

Kick off an ASYNC snack generation job for a brand. SPENDS CREDITS (18–26 — call estimate_snack_cost first). Requires a brandId: call list_brands first, or create_brand if the brand doesn't exist yet. Returns immediately with a jobId; then poll get_job. GENERATION TAKES AT LEAST ~2 MINUTES (typically 2–3 min) — set the user's expectations and don't poll as if it'll be instant. Pass render=true if you want viewable MP4/PNG assets shown inline in chat; without render the result is a layered manifest you open via the dashboard viewUrl. Credits are refunded automatically if generation fails.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
renderNoAlso render PNGs/MP4s server-side (+3 credits)
brandIdYesBrand UUID to generate snacks for
excludeNoSnack types to skip; excluding 'ai-ugc' saves 5 credits
callbackUrlNoReserved for forthcoming webhook delivery
influencerIdNoInfluencer Vault UUID to source person-facing assets from. The influencer must belong to your account and either be linked to this brand or be account-wide. Its character sheet becomes the AI-UGC actor, and its static stills / swapped b-roll feed slides and text-wall.
influencerModeNoHow to use the vault when influencerId is set. 'prefer' (default) uses vault assets first and falls back to the global library per slot; 'require' refuses global fallback for influencer-aware slots (a slot may be skipped if the vault can't fill it). Ignored when influencerId is absent.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobIdYes
renderNo
statusYes
excludeNo
pollUrlYes
offeringIdNo
influencerIdNo
influencerModeNo
creditsReservedYes
snackTypeSequenceNo

TDQS

A4.9/5.0
Behavior5/5

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

Discloses credit spend (18–26), async semantics and minimum ~2–3 min latency, automatic credit refund on failure, and the render outcome split. Annotations (destructiveHint, openWorldHint, idempotentHint=false) are all consistent and reinforced by the description.

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?

Dense but every sentence carries a distinct operational fact (cost, prerequisite, async timing, render flag, refund policy). Front-loads the async + credit cost before 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?

Given 7 params, a rich output schema, mutation annotations, and a crowded sibling set, the description covers the full lifecycle: cost estimate → prerequisite resolution → async submission → polling workflow → render option → refund safety net. Nothing material 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 86%, so the baseline is 3, but the description adds non-obvious cross-parameter interactions: render adds viewable assets inline, without render it's a manifest, and excluding 'ai-ugc' saves 5 credits — costs the schema itself doesn't communicate.

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+scope: 'Kick off an ASYNC snack generation job for a brand.' Distinguishes itself from siblings by naming estimate_snack_cost, list_brands, create_brand, get_job, and the dashboard viewUrl flow.

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

Usage Guidelines5/5

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

Explicit prerequisites ('call estimate_snack_cost first', 'call list_brands first, or create_brand'), the alternative for rendering (render=true vs manifest), and the follow-up tool (poll get_job). No other tool in this namespace does this.

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

get_brandGet brandB
Read-only
Inspect

Fetch a single brand by its id.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdYesBrand UUID

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds nothing beyond the annotations – no note on what happens if the id is missing (error? empty?), no auth context. With annotations carrying the safety burden, some added value would be expected, but none is present.

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?

One front-loaded sentence, no waste. Appropriately sized for a simple single-fetch tool.

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

Completeness3/5

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

For a 1-param read tool with full schema coverage and annotations, a minimal description is largely sufficient. However, no output schema exists, and the description doesn't describe what a brand contains, so an agent doesn't know the return shape.

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 schema documents brandId as a UUID. The description doesn't add syntax or format details beyond the schema. Baseline 3 when the schema does the heavy lifting.

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 (Fetch) and resource (brand) with scope (single, by id). Clear enough to distinguish from list_brands and get_influencer, though it doesn't explicitly name those siblings.

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?

Implied usage: fetch one brand when you have its id. No explicit when-to-use vs list_brands or pointers to alternatives. Adequate but minimal guidance.

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

get_content_agentGet content-team agentA
Read-only
Inspect

Fetch one content-team agent by id with its complete read-only dashboard context: configuration, tasks, runtime and budget state, recent runs, owner messages, knowledge, source files, review clips, Editor projects, and Spy signals where applicable. Call list_content_agents first to resolve the id. This tool never changes the agent or its work.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesContent-team agent id from list_content_agents

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered; the closing sentence ('never changes the agent or its work') largely restates that. The real added value is the inventory of what the payload contains (tasks, runtime/budget, recent runs, messages, knowledge, source files, review clips, Editor projects, Spy signals), which is meaningful given no output schema.

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 verb+resource, then the prerequisite, then the read-only guarantee. The long enumeration of returned data is dense but earns its place since there is no output schema; only the near-redundant restatement of the read-only hint is 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?

With no output schema, the description usefully characterizes the return payload and the id-resolution path, which is enough to call this read tool correctly. It could go one step further by distinguishing itself from get_influencer_agent, which is the main 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 coverage is 100% and the schema already documents agentId as a UUID from list_content_agents. The description repeats the same provenance, adding no format or edge-case detail beyond the schema, 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 (fetch) and resource (content-team agent) plus scope (by id, with full read-only dashboard context). It also enumerates the returned surface areas and distinguishes itself from list_content_agents, so an agent can identify it 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 instructs 'Call list_content_agents first to resolve the id', which is concrete prerequisite guidance. It does not, however, address when to prefer this over the sibling get_influencer_agent, so the when-not case 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.

get_creditsGet credit balanceA
Read-only
Inspect

Check the account's current credit balance, plan allotment, and recent credit transactions. Call this before a credit-spending generation (create_video, generate_snacks, generate_meme, studio_*, seedance_*, create_slides/ai_story, post-processing) to confirm there's enough balance. Read-only; no credits spent.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many recent transactions to return (default 10)

Output Schema

ParametersJSON Schema
NameRequiredDescription
planYes
balanceYes
recentTransactionsYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, and the description's 'Read-only; no credits spent' largely restates that. It adds little behavioral detail beyond annotations, though it does indicate the response includes plan allotment and recent transactions, which is useful framing.

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, zero filler: the first defines the payload, the second gives the triggering condition. The scoping and safety note are front-loaded rather than buried.

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?

Annotations cover the safety profile and an output schema exists, so the description doesn't need to explain return values. For a zero-required-parameter read tool, 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 description coverage is 100% and the single optional 'limit' parameter is fully documented in the schema, so the description need not restate it. It adds no syntax or default guidance beyond what the schema supplies, matching 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 and resource ('Check the account's current credit balance, plan allotment, and recent credit transactions'), which cleanly separates it from siblings like buy_credits and estimate_snack_cost. An agent knows exactly what it retrieves 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 Guidelines5/5

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

Explicitly says when to call it ('before a credit-spending generation') and names the specific spending tools it should precede (create_video, generate_snacks, studio_*, seedance_*, etc.). This is a model routing instruction rather than vague context.

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

get_dub_statusGet dub statusA
Destructive
Inspect

Poll and finalize a language-dub job. Contacts the dubbing provider; completion stores the dub and replaces the project asset reference, while failure can refund the original charge. Does not start a new dub. status is processing|completed|failed. When completed, videoUrl is attached as a resource link.

ParametersJSON Schema
NameRequiredDescriptionDefault
dubbingIdYesfrom dub_video
projectIdYes
targetLangYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already indicate a destructive, non-read-only action. The description adds meaningful side effects: contacting the provider, storing the dub, replacing the project asset reference, and potentially refunding the original charge. No contradiction 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?

Three concise sentences, front-loaded with the core purpose and followed by the important side effects and output behavior. No filler or redundant wording.

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?

The description covers the important output states and the post-completion videoUrl behavior, and explains both completion and failure side effects. It is complete enough for an agent to invoke the tool, though it does not describe the exact response shape.

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

Parameters2/5

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

Schema coverage is low at 33%: only dubbingId has a description and it is minimal. The tool description does not meaningfully explain projectId or targetLang, and does not compensate for the missing parameter documentation.

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 action (poll and finalize) and resource (a language-dub job), enumerates completion/failure behavior, and explicitly says it does not start a new dub, which distinguishes it from dub_video.

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 this tool is used after a dub has started and clarifies it will not start a new one. However, it does not explicitly name the alternative tool or state additional conditions such as 'do not use if you need to create a dub.'

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

get_influencerGet influencerA
Read-only
Inspect

Fetch one influencer profile by id (persona, visual identity, voice, status, metadata). Call list_influencers first to get the id.

ParametersJSON Schema
NameRequiredDescriptionDefault
influencerIdYesInfluencer id from list_influencers

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the shape of the returned profile (persona, visual identity, voice, status, metadata), which is useful since there is no output schema, but it discloses no further behavioral traits such as error conditions or permissions.

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 short sentences, front-loaded with the action and resource, followed by the routing prerequisite. No filler and nothing 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?

For a single-parameter read-only getter, this is complete: annotations cover safety, the schema covers the id, and the description covers the returned fields in lieu of an output schema and points to the discovery 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% and the single influencerId parameter is already documented in the schema as coming from list_influencers. The description's 'by id' and provenance note therefore add no meaning beyond what the schema provides, so the baseline of 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 (fetch) and resource (one influencer profile by id) and enumerates the profile contents (persona, visual identity, voice, status, metadata). This clearly separates it from sibling list_influencers, which returns collections rather than a single profile.

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 tells the agent the prerequisite workflow and the alternative source of the id: 'Call list_influencers first to get the id.' An agent knows both when this tool applies and where to obtain the required input without opening another schema.

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

get_influencer_agentGet influencer agentA
Read-only
Inspect

Fetch the autonomous posting agent attached to an influencer: settings (enabled, autonomy mode, posting cadence, budget, target accounts), recent runs, content DRAFTS awaiting decision (with live post metrics once published), trust scorecards, the learned playbook, today's trend brief, and the owner knowledge base. Call this FIRST — before updating settings, deciding drafts, or answering its questions. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
influencerIdYesInfluencer id from list_influencers

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so safety is covered; the description's restatement of 'Read-only' is redundant. What adds value is the disclosure of computed, non-obvious return contents (trust scorecards, learned playbook, today's trend brief, live metrics on published drafts) that aren't inferable from the schema.

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 and sequencing instruction ('Call this FIRST') while the long enumeration of returned data earns its place by aiding discovery. It is dense but not padded, and the key directive is not 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?

There is no output schema, so the description carries the burden of explaining the return, which it does thoroughly by listing every returned artifact. Combined with the when-to-call guidance and annotation-covered safety, only minor detail (e.g., pagination or sizing of runs/drafts) 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 coverage is 100%, so the single influencerId parameter is fully documented in the schema itself, which even names list_influencers as the source of the id. The description adds no parameter-level detail, which is acceptable at this coverage level but yields 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 (Fetch) and resource (the autonomous posting agent attached to an influencer), then enumerates its exact payload: settings, runs, drafts, scorecards, playbook, trend brief, and knowledge base. This clearly distinguishes it from the sibling get_influencer and from update_influencer_agent without requiring 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 Guidelines5/5

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

Explicitly instructs 'Call this FIRST — before updating settings, deciding drafts, or answering its questions,' naming the exact conditions and the sibling operations (update_influencer_agent, decide_influencer_drafts, chat_with_influencer) that this tool should precede. Sequencing guidance leaves nothing to inference.

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

get_influencer_snackGet influencer snack pack statusA
Read-only
Inspect

Poll a snack pack started by generate_influencer_snack. Returns status/progress; when completed, the rendered assets are attached as resource links and the result carries the dashboard viewUrl. Then list_influencer_snacks will include the finished pack.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob id returned by generate_influencer_snack
influencerIdYesInfluencer id

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, non-destructive, closed-world). The description adds real behavioral context beyond annotations: it's a polling tool, it returns status/progress, completed state attaches rendered assets as resource links, and the result carries a dashboard viewUrl. It doesn't state any polling interval or terminal error states, but the completion behavior is well disclosed.

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, each earning its place: what it does, what completion yields, and the follow-up sibling. Front-loaded with the action and zero 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 2-param polling tool with a full schema and annotations covering safety, the description supplies the lifecycle, completion payload description, and downstream linkage. No output schema exists, and the description conveys the key return concepts (status/progress, asset links, viewUrl), which is sufficient; a bit more on failure/in-progress polling guidance would make it a 5.

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 both parameters are documented in the schema (jobId explicitly notes it comes from generate_influencer_snack). The description restates the jobId lineage but adds no syntax or format detail beyond the schema, so the baseline of 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 (poll a snack pack job) and explicitly ties the lifecycle to the sibling that creates it (generate_influencer_snack) and the sibling that lists the finished result (list_influencer_snacks). An agent can distinguish this from get_snack and get_job 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 Guidelines5/5

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

Explicitly names the prerequisite (started by generate_influencer_snack) and the downstream action (list_influencer_snacks will then include the finished pack). The lifecycle sequence makes when-to-use vs. siblings unambiguous.

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

get_influencer_vault_buildGet influencer vault build statusA
Read-only
Inspect

Poll the status of a vault build started by build_influencer_vault. Returns progress (status, progressPercent, creditsReserved/credits, error if any). When status is 'completed', call list_influencer_assets to see the new vault assets.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesBuild job id returned by build_influencer_vault
influencerIdYesInfluencer id

TDQS

A4.7/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, non-destructive), so the bar is lower. The description still adds genuine behavioral context: it names the polled tool, lists the progress fields returned (status, progressPercent, creditsReserved/credits, error), and gives the completion transition. It does not state a polling interval/frequency, which is a minor 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?

Three tight sentences, front-loaded with the core action, then the return shape, then the next step. No waste; every sentence earns its place.

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 2-param polling tool with annotations covering safety, the description supplies everything needed: the originating tool, the returned progress fields, the error channel, and the completion workflow. No output schema exists, yet the description compensates by enumerating the return fields.

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 baseline is 3. The description adds meaningful linkage beyond the schema by tying jobId to 'started by build_influencer_vault' and describing it as a returned build job id, reinforcing the parent-child relationship between the two tools.

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 (poll status), resource (vault build), and names the originating tool build_influencer_vault. An agent can immediately distinguish it from build_influencer_vault or list_influencer_assets.

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 identifies itself as a polling tool for a build started by build_influencer_vault, and routes the agent forward: when status is 'completed', call list_influencer_assets. Clear when-to-use and next-step guidance.

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

get_jobGet jobA
Read-only
Inspect

Poll ANY async VidGuy job by its id — the universal poller. Covers: jobIds from generate_snacks / generate_meme / create_video / create_slides / create_ai_story / create_tiktok_carousel (whose slide URLs come back on the job itself, no second call), Studio + SeedDance generations (jobId from studio_generate_video / seedance_generate_video / seedance_generate_image), and AI Edit / Character Swap projects (projectId from create_ai_edit / create_character_swap). status is queued|processing|completed|failed (Studio/SeedDance report 'succeeded' when done). Generations take ≥~2 minutes — poll every ~10s and don't treat an early 'processing' as a failure. TikTok Carousels are the exception: they paint in seconds, so poll those every ~3s. Completed outputs (videos, images, snack dashboard links) are attached as resource links so they display inline. Only exceptions: influencer vault builds / snack packs (get_influencer_vault_build / get_influencer_snack) and dubs (get_dub_status) have dedicated pollers.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob id (jobId) or project id (projectId) from a generate/create call

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
jobIdNo
resultNo
statusNo
progressNo
videoUrlNo
createdAtNo
imageUrlsNo
outputUrlNo
updatedAtNo
offeringIdNo
creditsFinalNo
creditsReservedNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly=true and destructive=false, and the description adds valuable runtime behavior: status token variants ('succeeded' in Studio/SeedDance), minimum job duration (≥2 minutes), the exception for TikTok Carousels, and the fact that completed outputs are attached as inline resource links. This is exactly the behavioral context the annotations 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence carries decision-relevant information: scope, coverage, statuses, timing, output links, and exceptions. It front-loads the universal purpose and then packs specifics without filler, earning its length.

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 universal poller that spans many generation tools, the description tells an agent exactly what to poll, which status strings to expect, how long to wait, and which sibling pollers to use instead. The presence of an output schema makes detailed return-type documentation unnecessary, so nothing needed 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 schema already describes jobId as accepting jobId or projectId, so coverage is 100%. The description adds value by enumerating which source calls produce jobIds versus projectId (e.g., AI Edit / Character Swap), helping the agent map the correct id form to the originating call. This enrichment justifies above-baseline scoring.

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 precise verb-object pair ('Poll ANY async VidGuy job by its id') and immediately labels it 'the universal poller.' It enumerates the covered source tools and explicitly names dedicated siblings for exceptions, so an agent can distinguish it from get_video, get_dub_status, and others without opening their schemas.

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?

It states clearly when to use the tool (any async generation) and when not (influencer vault builds / snack packs and dubs have dedicated pollers, named explicitly). It also provides concrete polling cadence guidance (~10s for generations, ~3s for TikTok Carousels) and warns against treating early 'processing' as failure. This is full usage guidance.

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

get_managed_accountGet managed accountB
Read-only
Inspect

Fetch one managed account by id — status, postable flag, platform, handle, profile, warming progress, cached analytics, and posting rules (earliestQueueDate, dailyCap, creditsPerPost). Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdYesManaged account UUID

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description usefully adds that the call is 'Free' and enumerates the returned fields, but says nothing about what happens for an unknown id or any rate-limiting behavior.

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?

One tightly-packed sentence that front-loads the verb and key scoping detail. The field enumeration is dense but earns its place as the only documentation of what the tool returns.

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

Completeness4/5

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

With no output schema, enumerating the returned fields (status, postable flag, platform, handle, profile, warming progress, cached analytics, posting rules) is genuinely necessary and largely covers the return surface. Only error/not-found behavior 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 coverage is 100% and the single accountId parameter is documented as a 'Managed account UUID'. The description's 'by id' adds no format or constraint detail beyond the schema, 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 (Fetch) and resource (one managed account) scoped by id. The 'one' implicitly contrasts with list_managed_accounts, but no sibling is named explicitly, so differentiation relies on inference.

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?

No guidance on when to use this versus get_managed_account_capacity, get_managed_accounts_pulse, or list_managed_accounts. The 'by id' phrasing implies direct lookup, but alternatives and prerequisites are never mentioned.

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

get_managed_account_capacityCheck a managed account's queue capacityA
Read-only
Inspect

Which days a hosted / managed account can take a post. Returns earliestQueueDate (posts need a few days' notice and an account still warming up can't take posts until warm-up ends), firstOpenDay (earliest day with room), dailyCap (posts per account per day), creditsPerPost, countsByDay / fullDays for the next 60 days, and the warming progress. Call this before publish_to_managed_account to pick a legal queueFor day. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdYesManaged account UUID

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, not open world). The description adds real behavioral context beyond them: the 60-day horizon, the warm-up gating rule, the notice-days requirement, and that the call is free. It stops short of pagination/error behavior, but for a read-only helper this is strong.

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 question, then packs constraints, return fields, usage guidance, and cost into a tight block. The mid-sentence enumeration of return fields is dense but every clause carries information; nothing is redundant with the schema.

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?

No output schema exists, so enumerating earliestQueueDate, firstOpenDay, dailyCap, creditsPerPost, countsByDay/fullDays and warm-up progress is necessary and done well. Combined with the when-to-call guidance, an agent has everything needed to invoke and interpret the result.

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% for the single accountId parameter (UUID), so the schema already carries the semantics. The description adds no further syntax or format detail for 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?

The opening sentence gives a specific verb+resource — determining which days a managed account can accept posts — and immediately distinguishes it from the sibling list/publish tools. An agent can tell it answers a capacity/eligibility question, not a generic account lookup.

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 states the trigger condition and the alternative: 'Call this before publish_to_managed_account to pick a legal queueFor day.' It names the consuming tool and the downstream decision, which is exactly the routing guidance an agent needs.

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

get_managed_accounts_pulseHosted accounts performance pulseA
Read-only
Inspect

Roll-up of ALL your hosted / managed accounts' performance over the last 7, 30 or 90 days: total views/likes/comments/shares/posts/followers, the views delta vs the previous period, a per-day and cumulative views series, and how many accounts have metrics yet (accountsWithMetrics/accountsTotal, capturedAt). Served from cached metrics (refreshed about daily) — cheap to call. For one account's breakdown use get_social_analytics with source 'managed_account'. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/openWorldHint/destructiveHint, so the safety profile is covered. The description still adds real operational context beyond them: metrics are cached and refreshed about daily, the call is cheap, it is free, and accountsWithMetrics/accountsTotal plus capturedAt disclose that coverage may be partial or stale.

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?

Two sentences, front-loaded with what the tool returns and scoped by cost/caching before the alternative route. The long metric enumeration is dense but each element is informative; no filler sentences.

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 no output schema, the description takes on the full burden and discharges it by naming the return fields (views/likes/comments/shares/posts/followers, delta, per-day and cumulative series, coverage counters). An agent has enough to decide to call it and interpret the result.

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 0%, so the description must carry the single parameter, and it does enumerate the valid windows ('last 7, 30 or 90 days'). It does not state the default of 30 that the schema supplies, so it is good but not fully compensating.

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 first sentence names a specific verb+resource ('Roll-up of ALL your hosted / managed accounts' performance') and enumerates the exact metrics returned, so scope is unmistakable. It also draws an explicit boundary against get_social_analytics for single-account breakdowns, letting an agent distinguish it from 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 Guidelines5/5

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

It states the period options, that it is served from cached metrics and cheap, and that it is free, plus an explicit alternative with a named parameter ('For one account's breakdown use get_social_analytics with source managed_account'). That is a complete when-to-use/when-to-use-something-else statement.

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

get_snackGet snackA
Read-only
Inspect

Fetch a single snack post (with its manifest) by id. Returns a dashboard viewUrl and attaches the scene visuals as resource links so they preview inline (these are source clips/images — text overlays + greenscreen compositing are applied at render time; open the viewUrl for the burned-in result).

ParametersJSON Schema
NameRequiredDescriptionDefault
snackIdYesSnack post UUID

TDQS

A3.7/5.0
Behavior4/5

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

With annotations indicating readOnlyHint=true, openWorldHint=false, and destructiveHint=false, the safety profile is clear. The description adds valuable behavioral context: it returns a dashboard viewUrl and attaches scene visuals as resource links, and clarifies that these are source clips/images with text overlays and greenscreen applied at render time, directing users to open the viewUrl for the final result.

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 two sentences, front-loading the core purpose and then detailing the return behavior. It is reasonably concise, though slightly dense with technical details about resource links and rendering, but every sentence contributes.

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

Completeness4/5

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

Given there is no output schema, the description provides crucial information about the return value: a viewUrl and resource links for scene visuals, with an explanation of rendering differences. It is nearly complete, though it could mention pagination or error cases, but for a single-item fetch, it covers the essentials.

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 only parameter (snackId) is fully described in the schema as 'Snack post UUID'. The description adds no additional parameter details beyond what the schema provides, so 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 clearly states a specific verb (Fetch) and resource (a single snack post with its manifest) by id. It distinguishes from list_snacks by specifying it fetches one by id, but doesn't explicitly name the sibling alternatives like get_influencer_snack or list_snacks.

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 by stating 'by id', which suggests it should be used when you have a snackId. However, there are no explicit when-to-use or when-not-to-use statements, nor any mention of alternatives.

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

get_social_analyticsAnalyze social performanceA
Read-only
Inspect

Return a read-only, evidence-shaped analytics snapshot for either a connected Social Brand or a hosted managed account. Includes current and previous-period totals, percentage deltas, engagement rate, views per post, platform/content breakdowns, series, data-quality flags, and top posts where available. Use this before making performance claims or content recommendations. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
sourceYes
targetIdYesBrand UUID or managed-account UUID

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds real value beyond that: it enumerates the exact returned fields (totals, deltas, engagement rate, platform/content breakdowns, series, data-quality flags, top posts) and flags 'Free' cost. This is meaningful behavioral context that annotations alone would 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?

Front-loaded with purpose, followed by a compact enumeration of return contents, then usage guidance and cost. No filler sentences, though the return-field list is dense and could be tightened.

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

Completeness4/5

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

With no output schema, the description does the work of describing the return shape via its field enumeration, which is the key missing structured data. Combined with the usage cue and cost note, it is nearly complete for an analytics read tool. Slightly less than full because the days window semantics (7/30/90) and source-specific behavior are not explained.

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 only 33%, but the enum for source and the const values for days are self-documenting in the schema, and targetId carries its own pattern and description. The description adds the semantic distinction that the target can be either a connected brand or a managed account, which is useful but modest. Baseline 3 given the partial coverage.

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 (return) and resource (analytics snapshot) with the two valid target types (Social Brand or hosted managed account). Distinguishes itself from siblings like get_social_post or list_social_posts by scope, though it never explicitly names an alternative.

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 'Use this before making performance claims or content recommendations,' which gives clear context for invocation. No when-not-to-use conditions or named alternatives, so it stops short of the top score.

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

get_social_postGet social postA
Read-only
Inspect

Fetch one connected-account post by id — status, scheduledAt/publishedAt, the provider post URL once live, and any error message. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesSocial post UUID

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds value beyond that: it discloses what data is returned (status, scheduledAt/publishedAt, provider URL once live, error message) and that the call is free — no credit spend. It omits any auth or error-handling behavior, keeping it short of 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?

One sentence, front-loaded with the verb and resource, with the return payload and cost note packed into a tight em-dash clause. No filler or redundancy.

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

Completeness4/5

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

With no output schema, the description carries the return-value burden and does so by naming the key fields an agent would need. Combined with annotations covering safety and the explicit 'Free' cost signal, an agent has enough to call it correctly; only pagination/auth edge cases are unaddressed, which is minor for a single-record fetch.

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 there is a single parameter (postId, a social post UUID), so the schema fully documents the input. The description adds only 'by id', which conveys no extra syntax or format detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetch) plus resource (one connected-account post) and narrows scope to lookup by id, which separates it from list_social_posts. It enumerates the returned fields, so the agent knows exactly what it gets. It does not explicitly name the sibling to use for listing, so it falls just 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 'by id' — the agent infers this is for retrieving a known post rather than discovering posts. There is no explicit when/when-not statement or pointer to list_social_posts for enumeration. The trailing 'Free' hints at a cost consideration but is not framed as guidance.

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

get_videoGet videoA
Read-only
Inspect

Fetch one video project by its id: status, outputUrl, the brief, and per-format assets (slides tiles). The output video is attached as a resource link when available. For a Character Swap project it also returns characterSwap — the exact settings it ran with (r2Keys, keepOriginalVisualRanges, resolution, sceneMatch, saveAudio) plus signed previews — so you can replay the same cut with a different character.

ParametersJSON Schema
NameRequiredDescriptionDefault
videoIdYesProject UUID from list_videos

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive), and the description adds real behavioral context beyond them: the output video is surfaced as a resource link when available, and Character Swap projects include replayable settings (r2Keys, keepOriginalVisualRanges, resolution, sceneMatch, saveAudio) plus signed previews. This is meaningful disclosure an annotation 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and return set, then layers the Character Swap special case. Two dense sentences with no wasted filler, though the second sentence is somewhat 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?

There is no output schema, so the description appropriately enumerates the return payload (status, outputUrl, brief, per-format asset tiles) and the Character Swap extension. An agent knows what it will get back and how the resource link behaves.

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 videoId param is already documented as a 'Project UUID from list_videos'. The description restates 'by its id' but adds no format, sourcing, or edge-case detail beyond the schema, 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 ('Fetch one video project by its id') and enumerates what is returned, which distinguishes it cleanly from the sibling list_videos. An agent can tell this is the singular retrieval counterpart to the list operation 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 Guidelines3/5

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

Usage is implied (fetch a single project by an id obtained from list_videos, per the schema text), and the Character Swap note hints at a replay workflow, but there is no explicit when-to-use/when-not guidance or comparison against alternatives such as get_job.

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

import_asset_from_urlImport asset from URLAInspect

Fetch a public image or video URL and store it on VidGuy, returning a stable hosted URL you can pass as a reference image (e.g. referenceImageUrl for slides/ai-story). Use this when you have a URL but the asset isn't already hosted with us. Free. Max 50MB.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic http(s) image or video URL
filenameNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already signal a non-read-only, open-world, non-idempotent, non-destructive operation, so the safety profile is covered. The description adds genuinely useful traits beyond that: returns a stable hosted URL, is free, and has a 50MB size ceiling — none of which are in the annotations or schema.

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 and the return value, then adds when-to-use and constraints. Three tight sentences with no filler; the example referenceImageUrl anchors the output without bloating the text.

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?

No output schema exists, and the description explicitly explains the return (a stable hosted URL usable as a reference image), plus cost and size constraints. The only material gap is the undocumented filename parameter, but overall the definition is sufficient to call the tool 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 50%: url is documented and filename is not. The description reiterates that the URL must be public http(s) image/video (matching the schema), but says nothing about the filename parameter or how it affects the stored asset, leaving half the parameters undocumented in both description and 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+resource: fetch a public image/video URL and store it on VidGuy, returning a hosted URL. It also distinguishes itself from the upload siblings by scoping to URLs the asset isn't already hosted at, so an agent can tell it apart from create_upload/ai_edit_upload/swap_upload.

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?

"Use this when you have a URL but the asset isn't already hosted with us" gives a clear selection condition. It doesn't name the specific alternative tool to use when the asset IS already hosted, but the when-to-use is explicit and actionable.

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

list_brandsList brandsA
Read-only
Inspect

List the brands (end-customers) registered under your account. Paginated. Call this first to find a brandId before generating snacks.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
brandsYes
paginationNo

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, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that results are paginated, which is useful un-annotated behavior, but says nothing about result volume, ordering, or failure modes.

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 short sentences, front-loaded with the resource definition, followed by pagination and workflow ordering. Every sentence earns its place with no 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?

With an output schema present, return values need no explanation, and the description covers purpose, pagination, and the recommended call ordering. The only real gap is the undocumented pagination parameters, which is minor for such a simple list tool.

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

Parameters2/5

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

Schema coverage is 0% and neither limit nor offset is explained in the description. The single word 'Paginated' hints that the two integer parameters control paging, but their semantics, defaults, and the 200 max are left entirely to inference.

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), resource (brands), scope (registered under your account), and even disambiguates the term by equating it with 'end-customers'. An agent can distinguish this from get_brand, create_brand, and delete_brand immediately.

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 explicit forward-looking guidance: 'Call this first to find a brandId before generating snacks', tying it to the downstream generation workflow. It lacks any when-not guidance or named alternatives, 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_character_libraryList character libraryA
Read-only
Inspect

List VidGuy's preset character/actor library (with tags + thumbnails) for UGC video when you don't have your own character. Use a library entry's id as the UGC character.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations cover the safety profile (readOnly, non-destructive, closed-world), so the bar is lower. The description adds that entries include tags and thumbnails and how the id is consumed downstream, but says nothing about pagination, result size, or return format beyond the field 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?

Two tight sentences with the core purpose and the actionable next step front-loaded. No 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 no-param list tool with annotations covering safety and no output schema, the description provides what's needed: what the library is, when to reach for it, and how to use results. Minor gap: no naming of the seam versus other list_* character tools.

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. There is nothing to document and the description appropriately offers no parameter guidance.

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 (list VidGuy's preset character/actor library) and adds differentiating detail: it's a preset library with tags and thumbnails for UGC video. However, it doesn't explicitly distinguish itself from siblings like list_characters or list_seedance_library, so an agent must infer the boundary.

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 a clear condition for use: 'when you don't have your own character,' and instructs how to use a result ('Use a library entry's id as the UGC character'). It doesn't name alternative tools (e.g., list_characters) or state when NOT to use it, but the context is strong.

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

list_charactersList charactersA
Read-only
Inspect

List your saved characters (actors) for UGC video. Each has an id to pass as the UGC character. Thumbnails are attached so you can show the options.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the safe read-only, non-destructive, non-open-world profile, so the description adds genuine value by disclosing return behavior: each item carries an id usable as the UGC character and thumbnails are attached. This return-format detail is exactly the kind of context annotations don't cover, though it stops short of mentioning ordering, limits, or empty-state behavior.

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 short sentences, fully front-loaded with the purpose before the output/usage hints, with no redundant or filler content. Every sentence earns its place.

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

Completeness4/5

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

With no output schema present, the description must carry return-value information, and it does so by noting the id and attached thumbnails. Combined with annotations covering the safety profile, this is nearly complete for a simple list tool, missing only minor details like ordering or result count.

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?

There are zero parameters, so the baseline is 4. The description appropriately spends no words on parameter syntax and instead focuses on outputs, which is the correct choice for a no-arg list tool.

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 states a specific verb (List) and resource (saved characters/actors) with a clear domain qualifier ('for UGC video'), so the agent knows exactly what is being returned. It implicitly distinguishes itself from lookalike siblings like list_character_library and list_seedance_actors via 'your saved characters,' but never names them explicitly, keeping it 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 rather than stated: 'Each has an id to pass as the UGC character' tells the agent what the output is for, which suggests this is the pre-step before a UGC generation call. However, there is no explicit when-to-use, when-not-to-use, or named alternative versus list_character_library/list_seedance_actors, so it remains at the minimum-viable level.

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

list_content_agentsList content-team agentsA
Read-only
Inspect

List the authenticated user's deployed Companion teammates. Returns each agent's id, role, status, configuration, summary statistics, and latest task, plus tasks that currently need owner attention. Read-only. Use get_content_agent with a returned id when the user asks about one agent's work, runtime, history, messages, knowledge, clips, or signals.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered (the phrase 'Read-only' is somewhat redundant). The description does add real behavioral value by disclosing the return surface, notably 'tasks that currently need owner attention,' which tells the agent this call surfaces actionable state, not just a roster.

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 the purpose, then return contents, then the sibling routing. Efficient overall, though the standalone 'Read-only.' sentence duplicates the readOnlyHint annotation and could be folded in or dropped.

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?

No parameters and no output schema, so the description must carry the return-value burden itself — and it does, enumerating the per-agent fields plus the attention-required tasks. An agent has enough to call this and know what it gets back.

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 for this dimension is 4. There is no parameter semantics for the description to add or omit, and the empty schema is consistent with the described behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the authenticated user's deployed Companion teammates') and immediately enumerates what each entry carries (id, role, status, configuration, stats, latest task). This is clearly distinguishable from the sibling get_content_agent, which fetches a single agent.

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 to the alternative: 'Use get_content_agent with a returned id when the user asks about one agent's work, runtime, history, messages, knowledge, clips, or signals.' The condition that selects the sibling is spelled out, and the plural listing scope is implied for the overview case.

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

list_influencer_assetsList influencer vault assetsA
Read-only
Inspect

List the generated assets in an influencer's vault (portraits, on-camera stills, faceless b-roll, video clips). Thumbnails are attached. Optionally filter by role.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoFilter by asset role (e.g. static_ugc, carousel_slide, character_sheet)
limitNo
offsetNo
influencerIdYesInfluencer id from list_influencers

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful output context ('Thumbnails are attached') but does not disclose pagination behavior for limit/offset, so it adds only modest value beyond the 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and resource, with parenthetical asset types and a note on thumbnails. No wasted wording.

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 listing tool with annotations carrying the safety profile and no output schema, the description covers scope, asset types, and the thumbnail return detail. The only gap is implicit pagination via undocumented limit/offset, which is minor for a straightforward list operation.

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

Parameters3/5

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

Schema coverage is 50%: influencerId and role are documented in the schema (role with example values like static_ugc, carousel_slide, character_sheet), while limit and offset are not. The description only restates the optional role filter and adds no syntax or pagination semantics, so it does not compensate for the coverage gap.

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 (List) and resource (generated assets in an influencer's vault), and enumerates the asset kinds (portraits, stills, b-roll, video clips), which lets an agent distinguish it from siblings like list_influencer_studio_images. It does not explicitly name which sibling to prefer, keeping it just 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?

The only usage guidance is 'Optionally filter by role,' which implies the role parameter is optional but gives no when-to-use/when-not framing or alternatives against the many sibling list_* tools. Usage is implied rather than stated.

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

list_influencer_messagesList influencer inboxA
Read-only
Inspect

The two-way owner ↔ agent inbox for one influencer (oldest first, last 100). The agent leaves notes and QUESTIONS here between wakes; owner messages land as 'unread' and are consumed on its next wake. Unanswered agent questions have status 'unread' — answer them via send_influencer_message with answerToMessageId.

ParametersJSON Schema
NameRequiredDescriptionDefault
influencerIdYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare readOnlyHint and non-destructive, so the safety profile is covered. The description adds valuable domain-specific behavior: oldest-first ordering, limit of last 100, the meaning of 'unread' status for both owner messages and unanswered agent questions, and that owner messages are consumed on next wake. This is rich context beyond annotations, though it doesn't detail pagination or return format.

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 dense sentences that front-load the core definition. It is appropriately sized for the domain complexity, though some allocation of detail could be slightly tighter.

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

Completeness4/5

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

Given a single parameter, readOnly annotations, and no output schema, the description covers the essential semantics of the inbox and its lifecycle. It omits some minor details like pagination or error cases, but is largely complete for safe 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 coverage is 0% for the single parameter influencerId, but the parameter name is self-explanatory and its type/format is defined in the schema. The description doesn't add syntax or meaning beyond what the name implies. With one parameter and no output 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?

States a specific verb and resource ('the two-way owner ↔ agent inbox for one influencer') with precise scope. It is clearly distinguishable from sibling send_influencer_message and other influencer tools by naming the inbox context.

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 purpose of reading the inbox and routes the agent to the alternative for a related action ('answer them via send_influencer_message with answerToMessageId'). However, it doesn't explicitly state when-not to use this tool vs other read tools, so it's not a full 5.

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

list_influencersList influencersA
Read-only
Inspect

List your saved AI influencers (the persistent identities from the Influencer Vault — /dashboard/influencers). Distinct from list_characters (UGC actors): an influencer owns a persona, visual identity, voice, and a vault of generated assets. Each item includes id, name, status (draft/building/ready/failed), and a coverUrl thumbnail. Use the id with get_influencer, build_influencer_vault, list_influencer_assets, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
brandIdNoFilter to influencers tied to this tenant brand id

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful context by enumerating returned fields (id, name, status, coverUrl) and the status values, which helps interpretation. It does not cover pagination behavior despite limit/offset params.

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 tight sentences, front-loaded with the core purpose, followed by sibling disambiguation, return shape, and downstream usage. No 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?

No output schema, so the description reasonably enumerates returned fields and status values, and routes the agent to consumer tools. It omits pagination guidance for the limit/offset parameters, which is the main remaining gap for a list 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 only 33% — limit and offset are bare integers with no description, and brandId is documented in the schema. The description does not explain pagination semantics or the brandId filter, leaving the limit/offset parameters undocumented in both places.

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 ('List your saved AI influencers') and explicitly distinguishes from the closest sibling, list_characters, by characterizing the influencer as a persistent identity owning a persona, voice, and asset vault. An agent can differentiate 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?

Provides a clear distinction from list_characters and points to downstream tools (get_influencer, build_influencer_vault, list_influencer_assets) that consume the returned id. However, it does not state when NOT to use this tool or give alternative listing tools (e.g., list_influencer_assets for a different resource type).

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

list_influencer_snacksList influencer snacksA
Read-only
Inspect

List the snack content packs generated for one influencer (the dashboard 'Content' tab). Each entry includes the validated, media-normalized manifest. Use get_snack for full detail on any returned id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
influencerIdYesInfluencer id from list_influencers

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnly, non-destructive, closed-world. The description adds that entries include a 'validated, media-normalized manifest', which is useful behavioral context about return content. It doesn't discuss pagination behavior or rate limits, so it meets the lower bar 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?

Three sentences, front-loaded with the core action, then a detail about output content, then a routing hint. No wasted words.

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 annotations and no output schema, the description covers purpose, output content nature, and routing to get_snack. It doesn't explain pagination defaults or maximum limits, but the schema provides numeric bounds. Mostly complete given the simplicity.

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 only 33%: influencerId has a description ('Influencer id from list_influencers'), but limit and offset have no descriptions in schema. The description doesn't compensate by explaining limit/offset semantics. Baseline 3 since the required parameter is documented, but the optional ones are not.

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 (snack content packs for one influencer), and names the dashboard location ('Content' tab) for disambiguation. It clearly differs from list_snacks (all snacks) and get_snack (single detail).

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 tells the agent to use get_snack for full detail on any returned id, which is a clear alternative. It doesn't state when NOT to use this tool (e.g., for other influencers or bulk listing without influencer filter), but the context is sufficient for selection.

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

list_influencer_studio_imagesList influencer studio galleryA
Read-only
Inspect

This influencer's past studio generations (newest first, ≤60), each with url, prompt, and a saved flag marking the ones already promoted to the vault. Thumbnails attached as resource links.

ParametersJSON Schema
NameRequiredDescriptionDefault
influencerIdYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, openWorldHint=false), so the description earns credit for adding real context: newest-first ordering, a ≤60 result cap, the fields per item, and that thumbnails arrive as resource links. It does not explain how (or whether) older items beyond 60 can be retrieved.

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 that packs scope, ordering, limit, return fields, and the resource-link behavior with no 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?

With no output schema present, the description carries the return-value burden and does it well (url, prompt, saved flag, thumbnail resource links) while disclosing the ordering and result cap. The only gap is any guidance on retrieving generations beyond the 60-item window.

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?

Only one parameter (influencerId) with 0% schema description coverage, so the description must compensate but only does so indirectly via 'This influencer's'. It never says the id must be a UUID from list_influencers or otherwise clarifies the identifier's origin.

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 resource and scope: 'This influencer's past studio generations', with ordering and a hard cap. It clearly reads as a read/list operation distinct from generate_influencer_studio_image and delete_influencer_studio_image, though it never names a sibling explicitly to route the agent.

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 only implied by the phrase 'past studio generations' — an agent can infer it is the retrieval counterpart to generation, but there is no explicit when-to-use, no comparison to list_influencer_assets or get_influencer_vault_build, and no statement of prerequisites.

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

list_managed_accountsList managed accountsA
Read-only
Inspect

List your hosted / managed accounts — accounts VidGuy operates on your behalf. Each has a lifecycle status; only accounts where postable=true (status 'active') can receive posts. Also returns warming (warm-up progress: state, currentDay/days, verified targets) while an account is still warming, analytics (cached followers/views/likes/comments/engagementRate, refreshed about daily) and posting (mode, earliestQueueDate, dailyCap, creditsPerPost). Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already mark this as a read-only, non-destructive, non-open-world tool. The description adds substantial behavioral context beyond that: lifecycle status semantics, the postable/active posting rule, warming fields, cached analytics with refresh cadence, posting constraints, and that the tool is free.

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 with what the tool lists, then adds necessary return-shape detail because no output schema exists. Every sentence contributes useful information, and the single dense paragraph remains efficient.

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 no output schema and only read-only annotations, the description carries the load well: it explains account lifecycle, postability, warming progress, cached analytics, posting metadata, and cost. An agent has enough context to call and interpret 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?

There are zero input parameters, so the description appropriately adds no parameter semantics. Baseline for a no-parameter tool is 4; the detail instead explains return fields, not call parameters.

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: list managed accounts, and clarifies these are accounts VidGuy operates on the user's behalf. It does not explicitly distinguish itself from close siblings like get_managed_account or get_managed_accounts_pulse, so it is clear but not fully sibling-differentiating.

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 by explaining that only accounts with postable=true can receive posts, which helps an agent decide when the list matters. However, it gives no explicit when-to-use guidance or alternatives such as get_managed_account or get_managed_accounts_pulse, so usage is only implied.

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

list_managed_postsList managed postsA
Read-only
Inspect

List the posts for one managed account, newest first — status ('scheduled' = queued for the day in scheduledAt; 'posted' once live with publicPostUrl), caption, media, and metrics (views/likes/comments) once available. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdYesManaged account UUID

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/destructiveHint=false, so safety is covered. The description still adds real value beyond them: ordering ('newest first'), status lifecycle semantics ('scheduled' vs 'posted' with publicPostUrl), metrics availability timing, and that the call is free.

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 dense sentence with the resource, scope, and ordering front-loaded, followed by the fields returned. No filler; every clause carries 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 no output schema, the description usefully enumerates the returned fields (status, caption, media, metrics) and status meanings, which covers most of what an agent needs. Pagination or result limits are not addressed, a minor gap for a list 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?

Only one parameter at 100% schema description coverage ('Managed account UUID'), so the schema carries the load and baseline is 3. The description reinforces the single-account scope but adds no syntax or format detail 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 (List) and resource (posts) scoped to 'one managed account' with ordering ('newest first'). This clearly distinguishes it from list_social_posts and list_managed_accounts in the sibling list.

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 scope 'for one managed account' implies when to use it and 'Free' adds cost context, but it never names an alternative (e.g., list_social_posts) or states when not to use this tool. Usage is implied rather than prescribed.

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

list_seedance_actorsList SeedDance actorsA
Read-only
Inspect

List the curated SeedDance digital actor catalogue (with thumbnails). Filter by query/gender/nationality/tag. Use an actor when composing a SeedDance generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNo
tagNo
limitNo
genderNo
nationalityNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safe read-only nature is covered. The description adds the thumbnail detail, but doesn't mention pagination behavior for the limit parameter or ordering of results.

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, no filler, with the catalogue scope front-loaded and the usage note trailing. Every clause earns its place.

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

Completeness3/5

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

For a zero-required-param read-only list tool with no output schema, the description covers purpose and filters but leaves the limit parameter undocumented and gives no sense of result ordering or pagination despite the 100-item cap in the schema.

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 0%, so the description must compensate. It names the four filter dimensions (query/gender/nationality/tag) but omits the limit parameter entirely and provides no format or value hints (e.g., accepted gender/nationality values) for any filter.

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 states a specific verb (List) and resource (curated SeedDance digital actor catalogue), and adds the useful scope note '(with thumbnails)'. It distinguishes itself from list_seedance_library by naming the actor catalogue specifically, though it doesn't explicitly contrast with that close sibling.

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 final sentence 'Use an actor when composing a SeedDance generation' provides clear downstream context for why an agent would retrieve this list. However, it does not mention when to prefer this over list_seedance_library or other catalogue tools.

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

list_seedance_libraryList SeedDance reference libraryA
Read-only
Inspect

List everything usable as a seedance_generate_video reference besides actors: your uploads + AI generations, your main-Studio outputs (including Seed Audio clips from studio_generate_audio), and the admin-curated asset catalogue. Each row's {source, id} pair plugs straight into the references param. Filter by mediaType (image|video|audio) or a name search. Audio rows may include durationSeconds — Seedance rejects reference audio longer than 15s.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoCase-insensitive name filter
limitNo
mediaTypeNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context: the {source, id} row shape that plugs into references, the presence of durationSeconds on audio rows, and the hard 15s cap Seedance enforces on reference audio — a real behavioral constraint not in any structured field.

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, all front-loaded with the scope first, then the return shape, then filters. Dense but every clause carries a distinct fact; only the phrase 'besides actors' sits slightly awkwardly relative to the opening scope statement.

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

Completeness4/5

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

With no output schema, the description does carry the burden of explaining returns, and it delivers the row shape, the source/id semantics, and the audio duration field. It omits pagination/limit behavior and result ordering, which are the remaining gaps for a list 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 only 33% — q is documented but limit is not, and mediaType is only constrained by enum. The description compensates partially by restating the mediaType values and framing q as a name search, but says nothing about limit or pagination behavior. Baseline 3 is appropriate given the partial coverage.

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 SeedDance reference library) and explicitly scopes what it contains: uploads, AI generations, main-Studio outputs, and admin-curated assets. It also names the one thing it excludes — actors — which routes the agent to the sibling list_seedance_actors 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?

The description makes the use case explicit: assembling the references param for seedance_generate_video, and it distinguishes itself from the actor list. It gives filtering guidance (mediaType or name search) but does not state when-not to use it or what happens on an empty result.

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

list_snacksList snacksA
Read-only
Inspect

List previously generated snack posts, optionally scoped to one brand. Paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
brandIdNoFilter by brand UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds that only previously generated snacks are returned and that results are paginated, which is useful context, but it omits default page size, ordering, and whether empty results are possible.

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 clipped sentences that front-load the resource, then the optional scope, then the pagination trait. No filler, every clause carries information.

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

Completeness3/5

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

With no output schema and one third of parameters undocumented, the description should carry more: default page size, result ordering, and what a snack record minimally contains. It covers the essentials for a simple read-only list but leaves real gaps for an agent to guess at.

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 only 33% — brandId is documented in the schema while limit and offset carry only numeric bounds. The description partially compensates by noting the brand scoping and pagination, but it gives no default limit, ordering, or offset semantics, so the minimum-viable baseline of 3 is the right level.

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 ('List previously generated snack posts') plus the optional scope, which is far more informative than the title's tautology. However, it never distinguishes itself from close siblings like get_snack, list_influencer_snacks, or generate_snacks, so an agent must infer the boundary from the name alone.

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 only implied: list-type tool for previously generated snacks, with an optional brand filter. There is no statement of when to prefer this over list_influencer_snacks or when a fetch-by-id (get_snack) is more appropriate, and no prerequisites are mentioned.

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

list_social_accountsList connected accountsA
Read-only
Inspect

List the social accounts connected to one brand, with their provider (tiktok/instagram/…), handle, and status. Only 'active' accounts can be posted to. Use the returned account ids in create_social_post. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdYesSocial brand UUID

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare it read-only, non-destructive, and closed-world, so the safety profile is covered. The description adds value beyond them by disclosing the cost ('Free') and the semantic constraint that only 'active' accounts are postable, which is behavioral information the schema does not carry.

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, front-loaded with what is returned and followed by the actionable constraints and cost. Slightly clipped/telegraphic phrasing but no wasted content.

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?

No output schema exists, and the description compensates by naming the returned fields and the id handoff to create_social_post. Combined with the 'active' status rule and the free-cost note, it is complete enough to call correctly; pagination/volume behavior is the only unstated aspect.

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?

Single required parameter with 100% schema description coverage ('Social brand UUID'), so the schema does the heavy lifting. The description only implies the brand scoping ('connected to one brand') and adds no format or sourcing detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource ('List the social accounts connected to one brand') and enumerates the returned fields (provider, handle, status), so an agent knows exactly what it gets. It does not explicitly differentiate itself from near-neighbors like list_social_brands or list_managed_accounts, which keeps it out of 5 territory.

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 downstream context: 'Only active accounts can be posted to' and 'Use the returned account ids in create_social_post,' which chains it to the posting workflow. No explicit when-not/precondition guidance, but the usage path is unambiguous.

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

list_social_brandsList social brandsA
Read-only
Inspect

List your connected-account brands (Social Brands). Each brand groups the social accounts you've connected (TikTok, Instagram, YouTube, etc.). Use a brandId with list_social_accounts and create_social_post. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly=true, destructive=false, openWorld=false, so the safety profile is covered. The description adds value beyond annotations by disclosing the cost trait ('Free') and scoping the result to the caller's own connected 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?

Three tight sentences with zero waste. The core action is front-loaded, the resource definition follows, and the downstream usage hint closes it out.

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

Completeness4/5

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

With no parameters, no output schema, and full annotation coverage, the description supplies what an agent needs: what the tool returns conceptually, what a brand is, and where its ID is used. No return-format detail is needed since no output schema exists.

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 per the baseline this is a 4. The description correctly notes no inputs are needed and points to the returned brandId as the useful output.

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+resource ('List your connected-account brands (Social Brands)') and clarifies the concept by explaining that a brand groups connected social accounts. This helps separate it from the sibling list_brands, though it never names that sibling explicitly to sharpen the contrast.

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 tells the agent how the result is consumed: 'Use a brandId with list_social_accounts and create_social_post.' That is clear usage context for downstream calls, but it does not state when-not to use it or contrast against list_social_accounts/list_brands directly.

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

list_social_postsList social postsA
Read-only
Inspect

List connected-account posts for the queue/calendar view, newest first (max 100). Optionally filter by brandId and by status: 'upcoming' (scheduled/publishing/draft), 'published', 'failed', or omit for all. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoStatus filter; omit or 'all' for everything
brandIdNoFilter to one brand

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnly/non-destructive/openWorld=false, so the safety profile is free. The description nonetheless adds real behavior: results are newest-first and capped at 100, and the call is free (no credit cost). It omits pagination behavior beyond the cap, which keeps it from 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?

One dense sentence, front-loaded with verb and scope, followed by the filter contract and the cost note. No filler or repetition of structured fields.

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 two-param read tool with no output schema, the description supplies ordering, cap, filter semantics, and cost — enough to call it correctly. Return-field shape is left unstated, but that is a minor gap given the tool's simplicity.

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 both params are already documented, giving a baseline of 3. The description adds meaning beyond the schema by expanding what 'upcoming' actually includes (scheduled/publishing/draft) and confirming that omitting status returns everything.

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 (connected-account posts) and scopes it to the queue/calendar view, which implicitly separates it from siblings like list_managed_posts and get_social_post. The ordering ('newest first') and cap ('max 100') further pin down what this tool returns.

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?

Clear context for use: it is the list view for the queue/calendar, filters are optional, and 'omit for all' is spelled out. It does not explicitly name an alternative (e.g. get_social_post for a single post) or state when-not to use it, 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_studio_modelsList studio modelsA
Read-only
Inspect

List the Studio image/video/audio model catalog (keys, pricing, capabilities, min plan). Pass a model's key to studio_generate_image/video/audio.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo

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 (readOnlyHint=true, destructiveHint=false, openWorldHint=false). Beyond that, the description discloses what the read actually returns (keys, pricing, capabilities, min plan), which is useful behavioral context about the payload rather than a restatement of the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences: the first front-loads purpose and return content, the second supplies the follow-up action. No wasted words and nothing 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?

For a single-optional-parameter list tool with no output schema and full annotation coverage, the description supplies purpose, payload contents, and the next step. The only omission is clarifying the `mode` filter, which is a minor 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 0% and the single `mode` enum parameter is never named or explained. The description's phrase 'image/video/audio' hints at the mode dimension but does not state that `mode` filters the catalog to one media type, so it only partially compensates for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List the Studio image/video/audio model catalog') and enumerates the payload it returns (keys, pricing, capabilities, min plan). It also names the sibling generate tools that consume the key, so an agent can distinguish this discovery tool from the generation tools 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?

The second sentence ('Pass a model's `key` to studio_generate_image/video/audio') makes the workflow and purpose clear: call this to obtain a key before generating. It gives concrete context but does not state explicit when-not conditions or name a competing alternative list tool.

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

list_videosList videosA
Read-only
Inspect

List your video projects, newest first. Use this to find a completed project's projectId for post-processing (upscale_video / voice_enhance / dub_video) or to check generation status. Filter by status (e.g. 'completed'). Paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
statusNoFilter by project status. 'processing' covers every in-flight phase (script, audio, visuals, render).

TDQS

A4.4/5.0
Behavior4/5

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

With readOnlyHint=true and destructiveHint=false already declared, the safety profile is covered by annotations. The description adds useful behavioral context — default sort (newest first), pagination, and filterability by status — which goes beyond what annotations say. It stops short of explaining pagination mechanics (offset/limit usage) or total-count semantics.

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 tight sentences. The purpose and routing information are front-loaded; pagination and filtering are appended without redundancy. Every sentence earns its place.

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 list tool with no output schema, the description gives enough to call it correctly (what it returns conceptually, sort order, pagination existence, filterable field). What's missing is the shape of the return (array of project objects with projectId and status) and pagination parameter semantics, but annotations cover safety and the routing use case is clear.

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 only 33%, so limit and offset have no schema description. The description compensates partially by mentioning pagination and status filtering (with an example 'completed'), but does not explain limit/offset semantics or defaults. The status parameter's enum is self-documenting in the schema, so the description's status mention is mild added value.

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 (video projects), adds ordering ('newest first'), and names the exact downstream consumer tools (upscale_video / voice_enhance / dub_video). This differentiates it from siblings like get_video (single fetch) and create_video.

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 states when to use it: to find a completed project's projectId for post-processing, or to check generation status. It also names the alternative pattern (get_video for single retrieval) implicitly by citing the post-processing tools. No ambiguity remains for an agent choosing among the video tools.

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

optimize_seedance_promptOptimize SeedDance prompt (skill)AInspect

Run VidGuy's SeedDance 2.0 prompt-engineering skill to expand a short idea into a production-grade prompt before generating. Returns the optimized prompt. Mode tailors the skill: video / image-single / image-storyboard / image-character-sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
promptYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, open-world, non-idempotent but non-destructive operation, so the safety profile is covered. The description adds value by stating that the tool returns the optimized prompt (its output contract) and that mode tailors the underlying skill, though it does not mention cost or latency for what is effectively an LLM skill invocation.

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 tight sentences with no filler: the action and return value come first, then the mode semantics. Every sentence carries distinct 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?

There is no output schema, and the description states the return value is the optimized prompt, which is sufficient. For a two-parameter skill with one enum, the description covers what an agent needs to call it correctly, though mentioning the input length cap would round it out.

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?

With 0% schema description coverage, the description carries the burden and mostly does: it enumerates all four mode values and explains that mode tailors the skill, and clarifies that prompt is a short idea being expanded rather than a finished prompt. The only unexploited detail is the 10,000-character input limit, a minor omission.

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: it runs VidGuy's SeedDance 2.0 prompt-engineering skill to expand a short idea into a production-grade prompt, and explicitly returns the optimized prompt. This clearly separates it from sibling generators like seedance_generate_video or seedance_generate_image, which produce media rather than prompts.

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 'before generating' gives a clear sequencing context for when to call it, and the mode list hints at which generation path each mode serves. It stops short of naming excluded alternatives or stating prerequisites, so it is clear context without explicit when-not guidance.

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

pause_influencer_agentPause influencer agentA
Idempotent
Inspect

Turn an influencer's posting agent OFF: disables it, clears the next scheduled wake, and stops new drafts. Already-scheduled approved posts are NOT cancelled — reject them via decide_influencer_drafts if the user wants those pulled too. Resume later with update_influencer_agent enabled=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
influencerIdYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover safety (readOnlyHint=false, idempotentHint=true, destructiveHint=false), but the description goes well beyond them by disclosing exactly what is cleared (next scheduled wake, new drafts) and, crucially, what is NOT affected (already-scheduled approved posts). That negative-space disclosure is the kind of side-effect detail annotations cannot express.

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 the primary effect, then the exception, then the reversal path. No filler; every clause (including the negative constraint) changes how an agent should act.

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?

Single-parameter mutation tool with no output schema, and the description still covers effects, non-effects, the remediation sibling, and the undo path. 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 0% for the single influencerId parameter, so the description would ideally clarify which identifier is expected. It never mentions the parameter; the schema's uuid format/pattern carries the typing, and the name is self-evident, but the description adds no semantics beyond 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?

Specific verb+resource ('Turn an influencer's posting agent OFF'), with an explicit enumeration of the concrete effects: disables the agent, clears the next scheduled wake, stops new drafts. It also distinguishes this from siblings by stating the boundary against decide_influencer_drafts and the inverse operation update_influencer_agent enabled=true.

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

Usage Guidelines5/5

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

Explicit when-to-use (pause the posting agent) and when-not: scheduled approved posts are not cancelled, so the agent is routed to decide_influencer_drafts if the user wants those pulled. It also names the counter-tool for resuming, so both directions of the lifecycle are covered.

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

publish_to_managed_accountQueue a post on a managed accountA
Destructive
Inspect

Queue a post on a hosted / managed account. Hosted accounts are operated by people, so there is NO publish-now: the post is booked for a day (queueFor, YYYY-MM-DD) and goes live on that day or the next — never promise an exact time. Omit queueFor to take the earliest day the account can accept; get_managed_account_capacity shows that day (posts need a few days' notice, and an account still warming up can only be booked for after warm-up ends) plus which days are already full. Requires a caption plus media: a completed project's video via sourceProjectId, a direct videoUrl, or imageUrls (1 = photo, 2+ = carousel; a TikTok carousel gets a curated sound picked for it unless you pass musicLink). The account must be postable (status 'active'). Costs 20 VidGuy credits per post (402 if the balance is too low; refunded automatically if the post is rejected). Max 2 posts per account per day — a full day returns 409 naming the day. Errors: 400 (day too early / missing sound, with earliestQueueDate), 409 (account not ready / day full). The returned post has status 'scheduled' with scheduledAt on the booked day. NOTE: this creates a real work order and is not retried server-side — never call it twice for the same content. If a call times out, resend it with the SAME idempotencyKey: you get the post the first call created (duplicate: true) instead of a second booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
captionYesPost caption (required)
queueForNoDay to queue the post for (YYYY-MM-DD, UTC). Must be on/after the account's earliestQueueDate; omit for the earliest day.
videoUrlNoDirect video URL (alternative to sourceProjectId)
accountIdYesManaged account UUID
imageUrlsNoImage URLs for a photo (1) or slideshow (2+) post
musicLinkNoOptional music/sound link
idempotencyKeyNoYour own unique id for this post (e.g. a UUID). Reuse it to retry safely after a timeout.
sourceProjectIdNoA completed VidGuy project; its rendered video is posted

TDQS

A4.8/5.0
Behavior5/5

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

Goes far beyond the annotations: cost (20 credits, 402 on low balance, auto-refund on rejection), the 2-post-per-day cap with 409 behavior, the 'no publish-now / never promise an exact time' constraint, and the no-server-retry plus idempotencyKey recovery path. The 'creates a real work order' warning is consistent with destructiveHint=true and idempotentHint=false, and the idempotencyKey caveat refines rather than contradicts the idempotency annotation.

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?

Dense and front-loaded, starting with the central scheduling constraint before media requirements and error handling. It runs long with several comma-spliced clauses, but essentially every sentence carries operational information an agent needs.

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 an 8-parameter mutation with no output schema, the description covers the return shape (status 'scheduled' with scheduledAt), the side effects, the error taxonomy, and the retry protocol. Nothing needed 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?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics the schema lacks: imageUrls cardinality rules (1 = photo, 2+ = carousel), the auto-picked TikTok sound that musicLink overrides, and the queueFor 'omit for earliest day' behavior. It clarifies intent for sourceProjectId vs videoUrl as alternatives.

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 opening sentence names a specific verb and resource ('Queue a post on a hosted / managed account') and immediately clarifies a scope distinction (hosted accounts are human-operated, so no publish-now) that separates it from create_social_post and other posting siblings. An agent can identify the tool 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 Guidelines5/5

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

Explicitly states when to omit queueFor, points to get_managed_account_capacity for the earliest acceptable day, enumerates the three mutually exclusive media sources (sourceProjectId, videoUrl, imageUrls), and gives retry guidance with idempotencyKey. It also names the conditions that produce 400/409 so the agent knows when to stop versus adjust.

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

retry_social_postRetry a failed social postA
Destructive
Inspect

Re-dispatch one failed post delivery to the publishing provider without retrying successful or unrelated destinations. Only 'failed' posts can be retried. Disconnected accounts must be reconnected first. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesSocial post UUID (a failed post)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag non-read-only, destructive and non-idempotent behavior, but the description adds meaningful context beyond them: it will not re-send to already-successful or unrelated destinations, it fails on non-'failed' posts, and it requires reconnected accounts. The 'Free' note also discloses a cost trait no annotation covers. Return format is not described, which is the only gap.

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?

Four short sentences, front-loaded with the action and scope, followed by the eligibility constraint and prerequisite. Each sentence carries information; only the trailing 'Free.' is terse to the point of being slightly clipped.

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 action tool with no output schema, the description covers scope, eligibility, prerequisite state and cost. An agent has everything needed to decide whether and how to call it.

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?

Only one parameter and schema description coverage is 100%, so the schema already documents postId as the social post UUID. The description reinforces that it must be a failed post, but adds no format or lookup guidance beyond the schema 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 (re-dispatch) and resource (one failed post delivery) with an explicit scope constraint: only failed posts, and no re-sending to successful or unrelated destinations. This cleanly separates it from siblings like create_social_post, cancel_social_post and get_social_post.

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 preconditions — the post must be in 'failed' state and disconnected accounts must be reconnected first. It doesn't name alternatives (e.g., inspect status with get_social_post before retrying), but the when-to-use condition is unambiguous.

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

seedance_generate_imageSeedDance: generate imageA
Destructive
Inspect

Generate an image with BytePlus Seedream 5.0. ASYNC — returns a jobId; poll get_job (imageUrls in the result). SPENDS CREDITS. Modes: image-single (default), image-storyboard (4-beat grid), image-character-sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
sizeNo
countNo
promptYes
aspectRatioNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the unsafe, costly profile (destructiveHint=true, readOnlyHint=false, idempotentHint=false), and the description adds genuinely new behavior: the call is ASYNC, returns a jobId, requires polling get_job, and spends credits. The credit warning is the key non-obvious cost signal. It stops short of describing failure modes or credit amounts.

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 compact fragments, front-loaded with the verb and model, then the async/cost contract, then the mode options. No filler sentences and nothing buried.

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

Completeness3/5

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

For an async, credit-spending five-parameter tool with no output schema and no sibling differentiation, the description covers the lifecycle and modes but omits several parameter semantics and any distinction from neighboring image-generation tools. Adequate but with visible gaps.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It defines the three mode enum values and their outputs (single, 4-beat storyboard grid, character sheet) and flags image-single as default, but says nothing about size, count, or aspectRatio, leaving three parameters entirely unexplained.

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 (generate) and resource (image) with the underlying model named, plus the async return contract. It does not differentiate itself from the sibling studio_generate_image, which is the main gap.

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?

It tells the agent what to do after calling (poll get_job for imageUrls) and explains the three modes, which is real guidance. However, it never says when to pick this tool over the sibling image generators (studio_generate_image, generate_meme, generate_influencer_studio_image), leaving that inference to the agent.

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

seedance_generate_videoSeedDance: generate videoA
Destructive
Inspect

Generate a video with BytePlus Seedance 2.0. ASYNC — returns a jobId; poll get_job. SPENDS CREDITS. Tip: call optimize_seedance_prompt first for best results. Supports multimodal references (≤9 images, ≤3 videos, ≤3 audio clips) — pass library rows from list_seedance_library / list_seedance_actors as {source, id}, or a public URL as {url, mediaType}. Each reference is appended to the prompt as @Image N / @Video N / @Audio N; you can also cite those tokens yourself in the prompt text. Audio references must be ≤15 seconds and drive dialogue/lipsync — keep generateAudio=true when using them.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
promptYes
durationNo
referencesNoMultimodal references woven into the generation
resolutionNo
aspectRatioNo
generateAudioNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare destructive/openWorld/non-idempotent, and the description adds non-redundant operational facts: it is async, returns a jobId to be polled via get_job, and SPENDS CREDITS. Cost and the async lifecycle are genuinely useful and not captured by the annotations, though no auth or failure behavior is given.

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 highest-stakes facts first (what it does, ASYNC + poll target, SPENDS CREDITS), then progressive detail on references. Every clause adds distinct information with no 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 7-param async generation tool with no output schema, the description covers the job lifecycle, cost, and the complex reference parameter. Minor gaps remain: no guidance on typical latency or on choosing among the video-generating siblings.

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?

With only 14% schema coverage the description carries the burden, and it does for the hardest parameter: it explains reference counts, the {source,id} vs {url,mediaType} shapes, the @Image/@Video/@Audio token behavior, and the audio ≤15s + generateAudio=true coupling. Model/duration/resolution/aspectRatio are left to the schema, but those enums are largely self-describing.

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 ('Generate a video with BytePlus Seedance 2.0') and immediately distinguishes its scope with the ASYNC jobId/return pattern. An agent can tell it apart from studio_generate_video and create_video by the SeedDance engine and multimodal-reference capability.

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 a concrete pre-step ('call optimize_seedance_prompt first for best results') and routes reference input to list_seedance_library / list_seedance_actors. It does not, however, say when to choose this over the sibling video tools (studio_generate_video, create_video), so there is no explicit exclusion.

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

send_influencer_messageMessage the influencer (async)AInspect

Drop a message in the influencer agent's inbox — direction, feedback, or an answer to one of its questions (set answerToMessageId to mark that question answered). ASYNC: the agent reads it on its next scheduled wake, so this shapes future content rather than getting an immediate reply. For a live back-and-forth, use chat_with_influencer instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
influencerIdYes
answerToMessageIdNo

TDQS

A4.4/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), and the description adds non-obvious behavioral context: delivery is deferred until the agent's next scheduled wake, and setting answerToMessageId has the side effect of marking a question answered. It omits any note on permissions, validation failures, or whether a queued message can be retracted, which keeps it below 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?

Three tight sentences with the async constraint and the sibling alternative front-loaded and nothing redundant. Every clause earns its place.

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

Completeness4/5

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

With no output schema, the description correctly doesn't explain return values, and annotations carry the safety profile. The async delivery and routing guidance make it usable, though error/edge behavior for an invalid influencerId is unaddressed.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It explains body semantics implicitly and explicitly documents the answerToMessageId flag, but influencerId is never explained and the body's 2000-char limit is left to 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+resource ('drop a message in the influencer agent's inbox') and immediately narrows the message types (direction, feedback, or an answer), which separates it from generic messaging tools. It also names the sibling it is not (chat_with_influencer), 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 Guidelines5/5

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

Explicitly gives the when-to-use ('shapes future content rather than getting an immediate reply') and names the alternative with its condition ('for a live back-and-forth, use chat_with_influencer instead'). This is a clean either/or routing rule.

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

studio_generate_audioStudio: generate audioA
Destructive
Inspect

Generate audio via the Studio model catalog (call list_studio_models with mode='audio' for keys). Seed Audio makes dialogue, sound effects, music, or speech; MiniMax Music 3.0 and ElevenLabs Music make full songs and instrumentals with optional lyrics (ElevenLabs Music also takes duration in seconds); ElevenLabs v3 is expressive text-to-speech — the prompt is the script, inline tags like [whispers] work, and voice is any ElevenLabs voice id. SYNC — the audio URL comes back in the result. SPENDS CREDITS (per-model, see creditCost).

ParametersJSON Schema
NameRequiredDescriptionDefault
pitchNo
speedNo
voiceNoPreset voice id (see capabilities.voicePresets from list_studio_models), or any ElevenLabs voice id on models with capabilities.supportsVoiceLibrary
lyricsNoOptional structured song lyrics for music models
promptYes
volumeNo
durationNoTarget length in seconds for music models that list capabilities.durations (ElevenLabs Music: 30–300)
modelKeyNo
instrumentalNoGenerate music without vocals when the model supports it
outputFormatNo
referenceImageUrlNoSingle reference image URL — cannot be combined with referenceAudioUrls
referenceAudioUrlsNoUp to 3 reference voice clip URLs (≤30s, ≤10MB each)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare destructiveHint=true, openWorldHint=true, and idempotentHint=false, so the description's job is lighter. It adds valuable behavior: the operation is SYNC ('the audio URL comes back in the result') and it exponentiates cost ('SPENDS CREDITS per-model, see creditCost'). It does not describe rate limits or failure modes, so it falls short of 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and model routing, then closes with two critical constraints (SYNC, SPENDS CREDITS). Dense but single-paragraph; the model catalog enumeration is slightly list-heavy but earns its place by covering the four supported models.

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 12-param, non-idempotent, credit-consuming generation tool with no output schema, the description covers the essential agent needs: model selection, delivery mode (SYNC), and cost. The main gap is undisclosed semantics for roughly half the parameters and no mention of failure/retry behavior.

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 50%, so half the parameters rely on the description. The description illuminates a few of them well (voice for ElevenLabs, duration in seconds, lyrics for songs) but says nothing about pitch, speed, volume, outputFormat, instrumental, referenceImageUrl, or referenceAudioUrls. Baseline 3 is appropriate given partial coverage.

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 ('Generate audio') and enumerates the exact model catalog it draws from (Seed Audio, MiniMax Music 3.0, ElevenLabs Music, ElevenLabs v3), explaining what each produces. This clearly distinguishes it from sibling studio_generate_image and studio_generate_video.

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?

Provides strong model-selection guidance ('Seed Audio makes dialogue... ElevenLabs v3 is expressive text-to-speech') and points to list_studio_models with mode='audio' for keys. It does not explicitly state when NOT to use this tool versus alternatives, but the per-model routing covers the main decision.

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

studio_generate_imageStudio: generate imageA
Destructive
Inspect

Generate a single image via the Studio model catalog (call list_studio_models for keys/pricing). SYNC — the asset URL comes back in the result. SPENDS CREDITS (per-model, see creditCost). Reference images can be passed as URLs (use import_asset_from_url / create_upload first if needed). negativePrompt applies only to models whose capabilities include supportsNegativePrompt (e.g. NOT BytePlus/Seedream); on other models it is ignored, not an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
modelKeyNo
aspectRatioNo
referenceModeNo
thinkingLevelNoP-Image Ideogram reasoning effort; omit for other image models
negativePromptNoIgnored on models without supportsNegativePrompt (see list_studio_models).
referenceImagesNoReference image URLs

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial context beyond annotations: SYNC execution, asset URL returned in result, SPENDS CREDITS (linking creditCost), and the crucial edge case that negativePrompt is silently ignored rather than erroring on unsupported models. Directly complements the destructive/openWorld annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: verb/subject first, then timing model, cost, references, and the negativePrompt caveat. Each clause carries information; slightly tele graphic but no wasted sentences.

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

Completeness4/5

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

With no output schema, the description covers return value (asset URL), cost behavior, sync timing, and prerequisite tools. Missing only explicit clarification of a few enum parameter meanings, but otherwise complete for a 7-param generation tool.

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 43%, so the description must compensate, and it does for modelKey (pointing to list_studio_models), referenceImages (prior import step), and negativePrompt behavior. aspectRatio, referenceMode, and thinkingLevel semantics are still left to 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+resource ('generate a single image via the Studio model catalog') and distinguishes itself from sibling image generators like generate_influencer_studio_image and seedance_generate_image by pointing to the Studio catalog and list_studio_models.

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?

Provides clear conditional guidance: call list_studio_models for keys/pricing, use import_asset_from_url/create_upload first for reference images, and negativePrompt only applies when supportsNegativePrompt is true. Lacks an explicit statement of when to prefer this over sibling image tools, but routing hints are strong.

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

studio_generate_videoStudio: generate videoA
Destructive
Inspect

Generate a single video clip via the Studio model catalog (call list_studio_models for keys). ASYNC — returns a jobId; poll get_job until status is succeeded/failed. SPENDS CREDITS. firstFrame/referenceImages accept URLs (import them first if needed).

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
durationNo
modelKeyNo
firstFrameNoStart-frame image URL
resolutionNo
aspectRatioNo
generateAudioNo
referenceImagesNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag mutation, non-idempotence and destructiveness, so the description's extra value is the async contract (returns jobId, poll get_job) and the credit-spend warning, both of which the agent needs before invoking. It does not cover failure/retry semantics or rate limits.

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 dense sentences, no filler, operating constraints (async, credits, URL imports) front-loaded behind the core purpose. Every clause carries 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 no output schema, the description correctly explains the async return and how to retrieve the result. Annotations cover the safety profile. The remaining gap is per-parameter guidance for the five undocumented fields.

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 only 13% (just firstFrame), and 8 parameters exist. The description adds real value for firstFrame/referenceImages (URLs, import first) and modelKey (list_studio_models), but leaves prompt limits, duration, resolution, aspectRatio, and generateAudio entirely to the schema's constraints.

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 (generate) and resource (single video clip) and scopes it to the Studio model catalog, which distinguishes it from the sibling seedance_generate_video and create_video tools. It does not explicitly name those siblings, so it stops short of a 5.

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

Usage Guidelines4/5

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

Gives a usable workflow: call list_studio_models for keys, poll get_job until succeeded/failed, import URLs before passing firstFrame/referenceImages. It never states when to pick this over seedance_generate_video or create_video, so no explicit exclusions.

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

swap_import_characterCharacter Swap: import a character imageAInspect

Turn an image you already have into a Character Swap character input — no byte upload. Supply ONE of: characterId (a saved actor from list_characters, or a preset from list_character_library) or imageUrl (any hosted image — an influencer look from list_influencer_assets, a Studio/SeedDance render, or a public URL). Returns { r2Key, fileName } to pass straight to create_character_swap. Free; JPEG/PNG/WebP, ≤20MB. This is the batch path: import N characters, then call create_character_swap N times against the same driving video.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNameNo
imageUrlNoHosted image URL — e.g. an influencer asset url or a generated look
characterIdNoSaved actor id (list_characters) or preset id (list_character_library)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations cover readOnly=false and destructive=false; description adds that this is 'Free', states supported formats (JPEG/PNG/WebP) and size cap (≤20MB), and discloses the returned { r2Key, fileName } contract. Does not explain idempotency behavior or rate limits, but the cost/format/size/return details go well beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose, then input contract, then return value, then cost/format, then batch workflow. Dense but every clause carries information. Slightly long for the surface area but no 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?

No output schema, so the description usefully declares the return shape ({ r2Key, fileName }) and the downstream call (create_character_swap). Covers inputs, constraints, cost, format limits, and the batch pattern. Missing only edge cases like what happens on validation failure or URL fetch errors.

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 67% and two params have descriptions. The description adds meaning: characterId sourced from either list_characters (saved actor) or list_character_library (preset), and imageUrl can be an influencer asset, Studio/SeedDance render, or any public URL. The mutual-exclusion rule (supply ONE) is not captured by the schema's minRequired=0.

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: 'Turn an image you already have into a Character Swap character input — no byte upload.' Clearly distinguishes from swap_upload (byte upload path) and from create_character_swap (the consumer of this output).

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 states the 'supply ONE of characterId or imageUrl' rule, names the sibling list tools (list_characters, list_character_library, list_influencer_assets) for sourcing inputs, and describes the batch workflow: import N characters then call create_character_swap N times. Strong routing guidance.

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

swap_uploadCharacter Swap: get upload URLAInspect

Get a presigned PUT URL for a Character Swap input. kind='character-image' (JPEG/PNG/WebP, ≤20MB) or 'driving-video' (MP4/MOV/WebM/MKV, ≤2GB). PUT the bytes, then pass the r2Keys to create_character_swap. For a character image that already exists on VidGuy (saved actor, preset, influencer look) or lives at a URL, use swap_import_character instead — no byte upload needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
fileNameYes
fileSizeYes
fileTypeYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only declare the safety profile (readOnly=false, destructive=false, openWorld=false, idempotent=false). The description adds real behavioral context: per-kind format and size limits (JPEG/PNG/WebP ≤20MB; MP4/MOV/WebM/MKV ≤2GB) and the two-step upload workflow. It omits URL expiry/validity window and auth requirements, keeping it below 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?

Three front-loaded sentences with zero padding: purpose, constraints, then routing to the alternative. Every clause carries actionable 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 no output schema, the description sufficiently explains what the caller receives (a presigned PUT URL) and the full workflow. Minor gap: it references r2Keys without clarifying whether they are returned from this call or originate elsewhere, and it omits the URL's lifetime.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It covers kind semantics well (enum values plus per-value format constraints that implicitly bound fileType/fileSize), but never mentions fileName or clarifies that fileName/fileType/fileSize are the actual parameters, leaving partial compensation only.

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 immediately: 'Get a presigned PUT URL for a Character Swap input.' It also names the downstream sibling (create_character_swap) and the routing alternative (swap_import_character), so an agent can distinguish it from sibling upload tools without opening anything.

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?

Gives explicit when-to-use and when-not-to-use guidance: use this for raw byte uploads, but use swap_import_character when the character image already exists on VidGuy or lives at a URL. It also spells out the follow-up step (PUT bytes, then pass r2Keys to create_character_swap).

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

update_brandUpdate brandA
DestructiveIdempotent
Inspect

Update fields on an existing brand. Pass only the fields that change; pass null on a nullable field to clear it. Free (no credits).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
appDemoNo
brandIdYesBrand UUID
logoUrlNo
appDemosNo
industryNo
languageNo
websiteUrlNo
descriptionNo
screenshotsNo
targetAudienceNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is known. The description adds two pieces of context not in the structured data: the tool is free (no credits), and passing null clears a field — the latter explains how destruction actually occurs. It stops short of warning that clearing is irreversible.

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 short sentences, zero waste, with the core update semantics front-loaded before the cost note.

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

Completeness3/5

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

For an 11-parameter mutation with 9% schema coverage and no output schema, the description covers the essential calling pattern (partial fields, null clearing) but omits validation constraints and does not note that the response/effect is limited to the passed fields. Adequate but with clear gaps.

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 9% — only brandId is documented. The description compensates for the biggest semantic gap by explaining partial-update and null-to-clear behavior across the ten nullable fields, but it says nothing about the value constraints baked into the schema (description minLength 30, 10-item caps, the language enum), leaving those to be inferred from raw schema.

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+resource: 'Update fields on an existing brand.' The word 'existing' implicitly separates it from create_brand and delete_brand without naming them, so an agent can route correctly, but there is no explicit sibling differentiation.

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 operational guidance for a partial-update tool: pass only fields that change, and pass null on a nullable field to clear it. It does not state when to prefer this over alternatives (e.g. create_brand), but the update-vs-create distinction is inherent in 'existing brand'.

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

update_influencerUpdate influencerA
DestructiveIdempotent
Inspect

Edit an influencer's profile fields (name, description, persona, visual identity, voice, brand). Also the way to ARCHIVE one: set status='archived' (archived influencers stop appearing in list_influencers). Only the fields you pass are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
statusNoSet 'archived' to retire the influencer
brandIdNo
personaNo
voiceIdNo
descriptionNo
influencerIdYesInfluencer id from list_influencers
visualIdentityNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false. The description adds meaningful non-obvious behavior: patch semantics ('Only the fields you pass are changed') and the side effect of archiving on list_influencers visibility. It does not warn about irreversibility or what happens to existing values on archive, which is the main remaining gap for a destructive-hinted tool.

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 the primary action, then the archive shortcut, then the patch semantics. No filler and no repetition of schema content.

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?

No output schema exists and the description need not explain returns; it covers the mutation semantics, archiving effect, and id source. Still thin on status enum semantics and consequences of the destructive-hinted operation, but complete enough to invoke 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?

Schema coverage is only 25% across 8 params, so the description must compensate: it names the editable profile fields and maps them to schema properties (name, description, persona, visualIdentity, voiceId, brandId). The status enum's non-archive values (draft/building/ready/failed) and how they interact with editing remain undocumented.

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 (edit) plus resource (an influencer's profile fields) with an enumerated field list (name, description, persona, visual identity, voice, brand). It is clearly distinguishable from create_influencer, get_influencer, list_influencers, and the update_influencer_* 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?

It explicitly names a second use case ('the way to ARCHIVE one: set status='archived'') and states the downstream consequence (archived influencers stop appearing in list_influencers). It does not cover when-not-to-use or pointer to sibling tools for related edits, 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.

update_influencer_agentUpdate influencer agentA
DestructiveIdempotent
Inspect

Enable/resume (enabled=true) or reconfigure an influencer's posting agent: autonomy ('copilot' = every draft needs owner approval; 'auto_approve' = drafts publish THEMSELVES after the veto window — switching this ON authorizes live publishing without human clicks, so only do it on an explicit user instruction), posting cadence (postingPersonality/snacksPerDay), internal credit budget, target accounts (managed or connected), and the standing systemPrompt steer. Pass only what changes. To stop the agent, use pause_influencer_agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNo
autonomyNo
timezoneNo
accountKindNo
influencerIdYes
snacksPerDayNo
systemPromptNo
vetoWindowHoursNo
postingPersonalityNo
targetSocialBrandIdNo
internalBudgetCreditsNo
targetSocialAccountIdsNo
targetManagedAccountIdsNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already signal destructive and non-read-only behavior, but the description adds meaningful context: switching to auto_approve 'authorizes live publishing without human clicks' and 'drafts publish THEMSELVES'. This goes beyond the schema and annotations to disclose the real consequence of the action. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the core action and then systematically walks through configuration categories. Every clause serves a purpose, including the risk warning and the pause alternative. It is long due to complexity, not because of 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 13-parameter mutation tool with no output schema, the description covers the main decision points: what can be updated, the partial-update contract, the high-risk mode, and the stop alternative. It does not describe return values or prerequisites, but those are less critical given the strong annotations and clarity.

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?

With schema description coverage at 0%, the description must compensate, and it does: it defines the autonomy enum values with behavioral consequences, groups posting cadence parameters, and clarifies the 'managed or connected' account kinds. It misses timezone and does not fully disambiguate targetSocialBrandId from target account IDs, so it is strong but not complete.

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 specific verbs ('Enable/resume', 'reconfigure') and names the resource ('influencer’s posting agent'). It enumerates the exact areas of configuration, and explicitly distinguishes itself from the sibling pause_influencer_agent, making its purpose unmistakable.

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?

It gives explicit when-to-use guidance ('Pass only what changes'), a clear exclusion ('To stop the agent, use pause_influencer_agent'), and a strong condition for a risky action ('only do it on an explicit user instruction' for auto_approve). This is exemplary routing and scoping.

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

update_influencer_knowledgeUpdate influencer knowledge baseA
DestructiveIdempotent
Inspect

Upsert the owner knowledge base that binds EVERY caption the agent writes (composed into each generation): brand_facts, voice, audience, do_dont. Pass only the fields to change (≤4000 chars each). Read the current values via get_influencer_agent (the 'knowledge' field).

ParametersJSON Schema
NameRequiredDescriptionDefault
voiceNo
do_dontNo
audienceNo
brand_factsNo
influencerIdYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=true; the description reinforces this by labeling the operation an upsert and clarifying that only supplied fields are changed, so other fields survive. It adds semantics (binds EVERY caption) beyond the annotations, but does not explicitly describe what overwriting the knowledge base destroys or any auth/permission requirements.

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 and impact in the first clause, then layers field list, limits, and the read-first hint. Dense and largely waste-free, though the parenthetical '(composed into each generation)' slightly interrupts flow.

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 five-parameter mutation tool with no output schema, the description covers the partial-update model, field list, size limits, and how to inspect current state. What remains missing is the identity/scope of influencerId and any note on permissions, but the behavioral picture is otherwise sufficient to invoke 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 description coverage is 0%, so the description must carry parameter meaning. It names the four knowledge fields to be passed and restates the ≤4000 char cap, but the required influencerId parameter is only implied by 'owner knowledge base' and its uuid format is never explained, leaving one of five parameters undocumented in prose.

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 (upsert) and resource (the owner knowledge base), and enumerates the four fields it manages: brand_facts, voice, audience, do_dont. It also distinguishes itself from adjacent tools by referencing get_influencer_agent for reads and explaining its effect on captions, so an agent can tell it apart from update_influencer_agent and get_influencer_agent.

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 operational guidance: pass only the fields to change, respect the ≤4000 char limit, and read current values via get_influencer_agent first. It names the read alternative explicitly, but does not state when to prefer this over the sibling update_influencer_agent, 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.

update_managed_accountUpdate a managed account profileA
Destructive
Inspect

Edit a managed account's public profile — username, display name, and/or bio (≤80 chars on TikTok, ≤120 on Instagram). Editing unlocks only once the account is active. Changes are applied by the operations team, so the response has pending:true and the live profile updates on a later sync rather than immediately. The username has a 30-day change cooldown and the display name a 7-day cooldown; a change made too soon returns 409 with the days remaining. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioNoNew bio (80 chars max on TikTok, 120 on Instagram)
nameNoNew display name (7-day cooldown)
usernameNoNew handle (30-day cooldown)
accountIdYesManaged account UUID

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: changes are applied asynchronously by the operations team so the response returns pending:true and the live profile updates on a later sync, plus username/display-name change cooldowns (30/7 days) with a 409 carrying days remaining, and that the operation is free. This is exactly the rich context annotations cannot convey.

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 the core action in the first clause, then layers preconditions, async behavior, and cooldowns in dense sentences with no filler. Every sentence carries an actionable fact an agent needs.

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 no output schema, the description compensates by explaining the pending:true response shape, the async sync delay, and the 409 error path. Combined with the active-account precondition, an agent has everything needed to call and interpret this 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 description coverage is 100%, so the schema already documents each parameter's meaning, character limits, and cooldowns. The description echoes the char limits and cooldowns but adds no new syntax or format detail, 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 (Edit) and resource (managed account's public profile) and enumerates the editable fields (username, display name, bio). This clearly separates it from siblings like get_managed_account, list_managed_accounts, and publish_to_managed_account 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?

Provides a clear precondition — editing only unlocks once the account is active — which tells the agent when the call is valid. It does not explicitly name alternatives or state when to choose another sibling over this one, so it stops short of the 5-level guidance.

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

upscale_videoUpscale to 1080pA
DestructiveIdempotent
Inspect

Upscale a video to 1080p (Topaz). SYNC. Costs 10 credits. Two source modes: pass projectId (a COMPLETED project from list_videos; 0 credits if already upscaled), OR pass r2Key to upscale a raw uploaded clip with no project — get the key from create_upload (then PUT the bytes) or import_asset_from_url. Returns the upscaled URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
r2KeyNoUploaded clip key from create_upload/import_asset_from_url (atomic mode)
projectIdNoCompleted project UUID (project mode)

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantive traits beyond the annotations: 'SYNC' discloses blocking behavior, 'Costs 10 credits' quantifies the cost, and '0 credits if already upscaled' operationalizes the idempotentHint. It also states the return value (upscaled URL), none of which appears in the 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-loads the purpose and is dense with useful information; every sentence earns its place. The telegraphic fragments ('SYNC. Costs 10 credits.') and uppercase emphasis are slightly cramped but still readable and efficient.

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?

No output schema exists, but the description states the return value, the cost model, both input modes with their prerequisites and provenance, and the sync nature. 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 100% and both params are documented, so baseline is 3, but the description adds real meaning: projectId must be a COMPLETED project sourced from list_videos, and r2Key refers to a raw clip with no project whose key comes from create_upload/import_asset_from_url. This goes beyond the schema's terse field docs.

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 (upscale), resource (video), and outcome (1080p, Topaz) in the first sentence. An agent can immediately distinguish this from sibling video tools like dub_video, create_video, or voice_enhance.

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 enumerates the two source modes, the condition selecting each (COMPLETED project via projectId vs raw clip via r2Key), and where to obtain each input (list_videos, create_upload + PUT, import_asset_from_url). This is exactly the routing guidance an agent needs.

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

voice_enhanceVoice enhanceA
DestructiveIdempotent
Inspect

Re-voice audio with ElevenLabs speech-to-speech. SYNC. Costs 10 credits. Two source modes: pass projectId (a COMPLETED project; 0 credits if already enhanced), OR pass r2Key to re-voice a raw uploaded clip with no project — get the key from create_upload (then PUT the bytes) or import_asset_from_url. Returns the re-voiced audio track. voiceId accepts a preset name (adam, michael, rachel, bella, josh, ethan, …), an alias (male-professional, female-casual, dramatic, …), or a raw ElevenLabs voice id.

ParametersJSON Schema
NameRequiredDescriptionDefault
r2KeyNoUploaded clip key from create_upload/import_asset_from_url (atomic mode)
voiceIdYesPreset name, alias, or raw ElevenLabs voice id
projectIdNoCompleted project UUID (project mode)

TDQS

A4.5/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: synchronous execution, a 10-credit cost, and a zero-credit path for already-enhanced projects (consistent with idempotentHint=true). It does not, however, explain the destructiveHint=true flag — presumably that re-voicing a completed project replaces its existing audio track, which is exactly the consequence an agent should warn a user about.

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 operation and the SYNC/cost facts, then the two modes. Every sentence carries information, though the voiceId example lists and parentheticals make it dense enough that a reader must parse carefully rather than skim.

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

Completeness4/5

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

With no output schema, the description does its duty by stating the return ('Re-voiced audio track'), the async/sync nature (SYNC), the cost, and both input paths. What's missing is failure/edge behavior — e.g. what happens if the target project isn't COMPLETED, or whether the original audio is overwritten.

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 description goes further by spelling out the required state of projectId ('a COMPLETED project') and enumerating what voiceId accepts (preset names, aliases, raw ElevenLabs ids). The mode-selection guidance for projectId vs r2Key is the genuinely additive value.

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 ('Re-voice audio with ElevenLabs speech-to-speech') and immediately names the mechanism, distinguishing it from neighbors like dub_video, swap_upload, or ai_edit_upload. An agent can tell what it does and what it returns 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 Guidelines5/5

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

Explicitly enumerates the two mutually exclusive source modes — projectId (COMPLETED project) vs r2Key (raw clip) — and even routes the agent to the sibling tools that produce each input (create_upload, import_asset_from_url). The credit condition ('0 credits if already enhanced') is stated as a usage decision factor.

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. 84 tool updates
    • First observedai_edit_upload
    • First observedattach_influencer_reference
    • First observedbuild_influencer_vault
    • First observedbuy_credits
    • First observedcancel_social_post
    • First observedchat_with_influencer
    • First observedcreate_ai_edit
    • First observedcreate_ai_story
    • First observedcreate_brand
    • First observedcreate_character
    • First observedcreate_character_swap
    • First observedcreate_influencer
    • First observedcreate_slides
    • First observedcreate_social_post
    • First observedcreate_tiktok_carousel
    • First observedcreate_upload
    • First observedcreate_video
    • First observeddecide_influencer_drafts
    • First observeddelete_brand
    • First observeddelete_influencer_studio_image
    • First observeddelete_managed_post
    • First observeddub_video
    • First observedestimate_snack_cost
    • First observedgenerate_influencer_look
    • First observedgenerate_influencer_snack
    • First observedgenerate_influencer_studio_image
    • First observedgenerate_meme
    • First observedgenerate_snacks
    • First observedget_brand
    • First observedget_content_agent
    • First observedget_credits
    • First observedget_dub_status
    • First observedget_influencer
    • First observedget_influencer_agent
    • First observedget_influencer_snack
    • First observedget_influencer_vault_build
    • First observedget_job
    • First observedget_managed_account
    • First observedget_managed_account_capacity
    • First observedget_managed_accounts_pulse
    • First observedget_snack
    • First observedget_social_analytics
    • First observedget_social_post
    • First observedget_video
    • First observedimport_asset_from_url
    • First observedlist_brands
    • First observedlist_carousel_templates
    • First observedlist_character_library
    • First observedlist_characters
    • First observedlist_content_agents
    • First observedlist_influencer_assets
    • First observedlist_influencer_messages
    • First observedlist_influencer_snacks
    • First observedlist_influencer_studio_images
    • First observedlist_influencers
    • First observedlist_managed_accounts
    • First observedlist_managed_posts
    • First observedlist_seedance_actors
    • First observedlist_seedance_library
    • First observedlist_snacks
    • First observedlist_social_accounts
    • First observedlist_social_brands
    • First observedlist_social_posts
    • First observedlist_studio_models
    • First observedlist_videos
    • First observedoptimize_seedance_prompt
    • First observedpause_influencer_agent
    • First observedpublish_to_managed_account
    • First observedretry_social_post
    • First observedseedance_generate_image
    • First observedseedance_generate_video
    • First observedsend_influencer_message
    • First observedstudio_generate_audio
    • First observedstudio_generate_image
    • First observedstudio_generate_video
    • First observedswap_import_character
    • First observedswap_upload
    • First observedupdate_brand
    • First observedupdate_influencer
    • First observedupdate_influencer_agent
    • First observedupdate_influencer_knowledge
    • First observedupdate_managed_account
    • First observedupscale_video
    • First observedvoice_enhance

Publisher details

Operator
Vidguy · Publisher source
Vendor relationship
Not available
Documentation
Not available
Trust center
Not available
Restrictions
Not available

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources