Skip to main content
Glama

Server Details

Create app-store screenshots, social graphics, promo videos, and animated device mockups.

Ownership verified
Status
Healthy
Uptime
1.1% over 65 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
ynnickw/applaunchflow-mcp
GitHub Stars
0
Server Listing
AppLaunchFlow MCP
ChatGPT
AppLaunchFlow
Claude
–

TDQS

B3.4/5.0

Scored across 93 tools

Disambiguation3/5

The descriptions carefully distinguish read, prepare, apply, preview, save, transform, and export stages, which helps. However, with 93 tools there are many near-neighbors an agent can confuse, such as browse_templates vs. prepare_screenshot_styles vs. apply_screenshot_style, and save_layout vs. transform_layout vs. sync_layout vs. translate_layouts. The boundaries are documented but still fragile at this scale.

Naming Consistency5/5

Tool names follow a very consistent snake_case verb_noun pattern across the server, with predictable verbs like list_, get_, create_, save_, update_, render_, preview_, export_, and translate_. Minor exceptions like store_review_snapshot still fit the verb_noun convention.

Tool Count1/5

93 tools is far beyond a well-scoped surface, even for a broad app-launch platform. The set includes highly granular operations for screenshots, graphics, mockups, promo videos, assets, keywords, translations, and exports, creating a severe selection and maintenance burden.

Completeness5/5

The surface covers the domain comprehensively: project lifecycle, assets, screenshots, layouts, translations, graphics, promo videos, mockups, store listings, keywords, websites, exports, previews, and plan/capability reads. Publishing is explicitly delegated to the dashboard, so the missing store-publish operations appear intentional rather than gaps.

Available Tools

93 tools
add_keyword_competitorsAdd Keyword CompetitorsB
Idempotent
Inspect

Adds the specified competitor apps to a project's keyword tracking for one store, subject to plan limits. Repeated additions of the same app are idempotent.

NameRequiredDescriptionDefault
appIdsYes
projectIdYes
storeProviderNoWhich store. Defaults to the project's primary store (its linked app; get_project shows primaryStoreProvider), else the App Store.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the description's idempotency sentence largely restates structured data. It does add one piece of beyond-schema context — that additions are 'subject to plan limits' — but leaves unexplained what happens when the limit is hit (error vs. silent skip).

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 efficient sentences with the core action front-loaded and the idempotency note secondary. No 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?

Given an output schema exists, return values needn't be explained, and annotations cover the safety profile. The remaining gap is behavioral nuance around plan-limit failures and store selection, which the description gestures at but does not resolve.

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 the description should compensate more than it does. It maps loosely onto all three parameters ('specified competitor apps' → appIds, 'project's keyword tracking' → projectId, 'one store' → storeProvider), but adds no array-size, format, or defaulting detail beyond what the schema and storeProvider's own description already provide.

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 and resource — adding competitor apps to a project's keyword tracking — which clearly separates it from add_keywords (keywords) and suggest_keyword_competitors (suggestions). It could go further by naming those siblings explicitly, but the resource distinction is strong enough for correct selection.

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

Usage Guidelines3/5

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

The phrase 'for one store' and 'subject to plan limits' hints at the operating context, but the description never says when to prefer this over suggest_keyword_competitors or how it relates to add_keywords. Usage is implied rather than directed.

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

add_keywordsAdd Tracked KeywordsAInspect

Adds keyword tracking for the requested stores/countries. Store and app identity resolve from project metadata unless overridden. Each keyword-country pair counts against the keyword limit; an oversized batch is rejected in full. Projects without a linked app can track terms but have no own-app rank. Rankings arrive asynchronously.

NameRequiredDescriptionDefault
langNoLanguage for the single country. Defaults to "en-US".
appIdNoRarely needed: the linked store app id. Must match the project's linked app; omit to use it.
countryNoSingle storefront country. Defaults to "us". Ignored when countries is given.
keywordsYesKeyword strings to track. Normalized server-side.
countriesNoTrack every keyword in each of these storefronts (keywords × countries ≤ 250).
projectIdYes
storeProviderNoWhich store. Defaults to the project's primary store (its linked app; get_project shows primaryStoreProvider), else the App Store.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare the mutation/safety profile; the description adds substantial context beyond them — keyword-country pairs count against a quota, oversized batches are rejected atomically in full ('rejected in full'), and rankings arrive asynchronously. These are exactly the operational traits 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?

Five sentences, action verb front-loaded, and every sentence carries a distinct fact (identity resolution, quota, atomicity, no-app behavior, async rankings). Dense but not padded.

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

Completeness5/5

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

With an output schema present, the description needn't explain return values, and it covers the remaining gaps an agent needs: quota limits, all-or-nothing batch rejection, defaults for store/country, and the async ranking caveat.

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

Parameters4/5

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

Schema coverage is already 86%, so the schema carries most parameter meaning. The description still adds value by explaining the appId/storeProvider defaulting logic ('resolve from project metadata unless overridden') and the keywords × countries quota interaction, which the schema alone doesn't state.

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?

Opens with a specific verb+resource: 'Adds keyword tracking for the requested stores/countries.' This clearly distinguishes it from suggest_keywords, list_keywords, and remove_keywords by scope of operation, though it never names a sibling explicitly.

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 usable context for calling it: identity resolves from project metadata unless overridden, and projects without a linked app can still track terms. It stops short of stating when to prefer this over suggest_keywords or add_keyword_competitors, so no explicit alternative routing.

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

apply_locale_screenshotsApply Per-Language ScreenshotsA
Destructive
Inspect

Assigns language-specific screenshot assets to existing translated device frames. Sources are locale folders, per-language paths or a shared path list. Assignment follows document order; unfilled frames retain their images and excess sources are reported. Preview mode returns assignments without saving. Apply mode replaces only the targeted translation images.

NameRequiredDescriptionDefault
previewNoReturn the frame assignments without saving.
platformNoboth
languagesNoTranslations to update; defaults to every language the source covers.
projectIdYes
variantIdYesScreenshot variant to update.
deviceTypeNomobile
localeFoldersNo
screenshotPathsNo
screenshotPathsByLanguageNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

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 and idempotentHint=false, so the bar is lower, yet the description still adds real value: it scopes the destruction ('replaces only the targeted translation images'), states that unfilled frames retain their images, that excess sources are reported, and that assignment follows document order. Only auth/permission or failure-mode behavior is left unstated.

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 dense sentences, front-loaded with the core action, then sources, then ordering/retention semantics, then preview vs apply. No filler and no restatement of the title.

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?

Output schema exists, so return values need not be explained, and the preview mode's return behavior is noted anyway. For a 9-parameter nested-object tool the only real gap is how the three source parameters interact when more than one is provided, plus what platform/deviceType change.

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 33%, so the description carries weight here, and it does explain the three source-input parameters (localeFolders, screenshotPathsByLanguage, screenshotPaths) by describing them as alternative source modes. It does not state precedence or mutual exclusivity when several are supplied, and platform/deviceType go unmentioned.

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 and resource: assigning language-specific screenshot assets to existing translated device frames. The three source modes (locale folders, per-language paths, shared path list) further pin down what the tool consumes, which distinguishes it from siblings like upload_screenshots, apply_screenshot_style, or preview_screenshots.

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?

Clearly splits the two operating modes — preview returns assignments without saving, apply replaces only targeted translation images — which tells the agent when to use each. It stops short of routing to sibling tools (e.g., when to use preview_screenshots or upload_screenshots instead) or naming prerequisites such as frames already being translated.

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

apply_promo_video_candidateApply Promo Video CandidateA
Destructive
Inspect

Saves the specified prepared promo-video candidate as a variant and returns its editor link. When replaceVariantId is supplied, the prior variant is retired only after the new variant saves successfully.

NameRequiredDescriptionDefault
projectIdYes
candidateIdYes
candidateKeyYes
replaceVariantIdNoExisting promo-video variant to delete after saving the selected candidate. Only pass when the user explicitly approved replacing that variant.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare this as destructive, non-readonly, and non-idempotent, so the baseline burden is lower. The description adds valuable behavior beyond annotations: the prior variant is retired only after the new variant saves successfully, and the result includes an editor link. It could say more about failure behavior or irreversibility, but the core transactional behavior is disclosed.

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

Conciseness5/5

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

The description is two front-loaded sentences with no wasted text. It states the main action first and then adds the important replacement condition.

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?

The output schema exists, so the description need not document return values in depth, and annotations cover the destructive nature of the operation. Still, for a destructive mutation with three required but poorly documented parameters, the description leaves important parameter semantics and prerequisites unclear.

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

Parameters2/5

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

Schema description coverage is only 25%, so the description must compensate for undocumented required parameters. It adds meaning for replaceVariantId, explaining that the prior variant is retired only after a successful save, but it does not clarify projectId, candidateId, or candidateKey, including the distinction between the candidate identifier and its hash-like key.

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 and resource: it saves a prepared promo-video candidate as a variant and returns an editor link. It is clear what the tool does, though it does not explicitly distinguish itself from siblings such as create_variant or preview_promo_video.

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 word 'prepared' implies a candidate must first exist, and the replaceVariantId sentence gives a conditional usage rule. However, the description does not say when to choose this tool over related tools like create_variant, preview_promo_video, or clear_promo_video, leaving alternatives implicit.

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

apply_screenshot_styleApply Personalized Screenshot StyleAInspect

Creates a new screenshot variant from a prepared personalized catalog and the specified template/palette selection. Reuses cached candidate layouts without another generation and returns the editor link. Existing variants are preserved.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
catalogKeyYes
deviceTypeNoDevice to show first in the editor. Defaults to phone.
templateIdYes
paletteModeNoColor palette variant. v1 is the original palette; v2 uses stronger color separation. Defaults to v1.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare non-destructive, non-idempotent, closed-world behavior, so the bar is lower and the description does add real context: cached layout reuse (no regeneration cost) and 'Existing variants are preserved'. However, it does not say what happens on an invalid/expired catalogKey, whether repeated calls with the same inputs produce duplicates (relevant given idempotentHint=false), or what the editor link points to.

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 short sentences, front-loaded with the action, then the caching/no-regeneration trait, then the safety reassurance. Little waste; the only minor redundancy is restating the return of an editor link that the output schema likely covers.

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 annotations covering safety profile and an output schema covering return values, the description only needs to convey the composition semantics and it does. The remaining gap is the two required parameters' semantics and the precondition on prepare_screenshot_styles.

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 67%, with descriptions for projectId/generationId aliasing, deviceType and paletteMode; the two required params, catalogKey and templateId, are undocumented in the schema. The description only gestures at them ('prepared personalized catalog', 'specified template'), adding no format, provenance, or lookup guidance for the mandatory inputs.

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?

Specific verb and resource: 'Creates a new screenshot variant' from 'a prepared personalized catalog and the specified template/palette selection'. The phrase 'Reuses cached candidate layouts without another generation' implicitly separates it from the prepare/generate step, but no sibling is named outright, so an agent must infer the pairing from 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 mention of a 'prepared' catalog hints that prepare_screenshot_styles must run first, and 'specified template/palette selection' implies the selection step, but neither is stated as a precondition. There is no explicit when-to-use/when-not or named alternative (create_variant, apply_locale_screenshots).

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

apply_social_graphics_styleApply Personalized Social Graphics StyleAInspect

Creates a new social-graphics variant from a prepared catalog and selected style. Includes all supported formats, reuses cached layouts without another generation and returns the graphics editor link.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
catalogKeyYes
templateIdYes
paletteModeNoColor palette variant. v1 is the original palette; v2 uses stronger color separation. Defaults to v1.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.
primaryFormatNoFormat to show first in the editor. Defaults to og.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.6/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint=false, idempotentHint=false and destructiveHint=false, the description adds real value: it discloses that all supported formats are produced, that cached layouts are reused without a new generation, and that an editor link is returned. It omits whether repeated calls create duplicate variants or what caching invalidation looks like, which matters for a non-idempotent mutation.

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 the action and the source of inputs, then the side effects. Tight overall, though 'includes all supported formats' is slightly vague and could be more precise about what set of outputs that means.

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?

An output schema exists, so return values need little explanation, and the caching behavior is disclosed. However, for a non-idempotent creation tool with six parameters, the description leaves open whether it overwrites an existing variant, what happens on repeat calls, and how catalogKey/templateId are obtained.

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 67% and the schema already documents projectId/generationId alias, paletteMode and primaryFormat. The description adds nothing about catalogKey or templateId, the two undocumented required parameters, so an agent gets no help on where those values come from beyond 'prepared catalog and selected style'.

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: creates a new social-graphics variant from a catalog key and selected style, which clearly separates it from siblings like render_graphics or prepare_social_graphics_styles. It doesn't name the sibling it depends on explicitly, so the differentiation is implied rather than stated.

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?

'from a prepared catalog and selected style' hints that prepare_social_graphics_styles must run first, but the prerequisite is never named and there is no when-not guidance (e.g. vs render_graphics or save_graphics). The usage context is inferable but not explicit.

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

browse_social_templatesBrowse & Select Social TemplateA
Read-onlyIdempotent
Inspect

Displays the cached social-style picker and returns its gallery URL and format specifications. A project plus prepared catalogKey enables personalized V1/V2 previews; without a catalog it provides static discovery. This read never generates options, applies a style or creates a variant.

NameRequiredDescriptionDefault
titleNoOptional gallery heading, for example the project name.
formatNoWhich social format the gallery should preview first. Defaults to 'og'.
projectIdNoAlias of generationId (the project id).
catalogKeyNoCatalog key from prepare_social_graphics_styles. Pass together with generationId.
templateIdsNoOptional subset of social template ids to show.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead. Project UUID from prepare_social_graphics_styles. Pass together with catalogKey to show the real personalized previews.
selectedTemplateIdNoOptional template id to highlight in the gallery.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds real context beyond that: the picker is 'cached', results are a URL plus format specs, and the never-generate/apply/create clause reinforces the boundary for an agent tempted to treat this as a generator. No permission or pagination notes, but the read-only surface is well clarified.

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

Conciseness4/5

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

Three sentences, front-loaded with what it returns, then the mode split, then the negative boundary. No filler. 'V1/V2 previews' is mildly opaque jargon, a small deduction but the structure is efficient.

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

Completeness4/5

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

An output schema exists so return values need no explanation, annotations cover safety, and the schema fully documents parameters. The description's job reduces to explaining the two invocation modes, which it does. Slight gap in not stating what happens with a stale or expired catalogKey, but otherwise complete for a read-only browser.

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

Parameters3/5

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

Schema description coverage is 100%, so all seven parameters including the projectId/generationId aliasing and the catalogKey pairing are already documented. The description adds only the semantic outcome of combining project + catalogKey (personalized vs. static), which the schema itself largely states. Baseline 3 is appropriate when the schema carries the parameter burden.

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 (displays the cached social-style picker) and what it returns (gallery URL and format specifications). It distinguishes its two modes (personalized preview with project+catalogKey vs. static discovery) but never names the sibling browse_templates or apply_social_graphics_style it should be contrasted with, leaving sibling differentiation to inference.

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

Usage Guidelines4/5

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

Gives an explicit condition for each mode: 'A project plus prepared catalogKey enables personalized V1/V2 previews; without a catalog it provides static discovery.' It also states what it never does (generates options, applies a style, creates a variant), which usefully excludes downstream actions. It stops short of naming which tool to use instead for those excluded actions, so no full alternatives map.

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

browse_templatesBrowse & Select TemplateA
Read-onlyIdempotent
Inspect

Displays the cached screenshot-style picker and returns its gallery URL for a device and optional template subset. A project plus prepared catalogKey enables personalized V1/V2 previews; without a catalog it provides static discovery. This read never generates options, applies a style or creates a variant.

NameRequiredDescriptionDefault
titleNoOptional gallery heading, for example the project name.
projectIdNoAlias of generationId (the project id).
catalogKeyNoCatalog key from prepare_screenshot_styles. Pass together with generationId.
deviceTypeNoWhich preview device the gallery should show first.
templateIdsNoOptional subset of template ids to show in the gallery.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead. Project UUID from prepare_screenshot_styles. Pass together with catalogKey to show the real personalized previews.
selectedTemplateIdNoOptional template id to highlight in the gallery.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds real context beyond them: it discloses that it returns a cached gallery URL rather than rendering anything, and that personalization requires a prepared catalogKey. Useful behavioral detail, though it doesn't cover failure modes or rate/caching 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 sentences, front-loaded with the core action and return, then the mode distinction, then the negative scope. No wasted prose; each sentence carries distinct 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?

Output schema exists so return values needn't be explained, annotations cover safety, and the schema fully documents params. The description supplies the one thing structured fields can't: the decision logic between static discovery and personalized previews. 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 100%, so baseline is 3. The description goes beyond individual param docs by explaining the combined effect of projectId+catalogKey (personalized vs static) and referencing device and template subset selection, adding semantic meaning the schema fields document only in isolation.

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: it 'displays the cached screenshot-style picker and returns its gallery URL.' The 'screenshot-style' qualifier implicitly distinguishes it from browse_social_templates, but the sibling is never named, so an agent must infer the split rather than read it.

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 two modes: 'project plus prepared catalogKey enables personalized V1/V2 previews; without a catalog it provides static discovery,' and the closing sentence rules out generating options, applying a style, or creating a variant (routing away from apply_screenshot_style/create_variant). Clear usage context, though it never names the sibling alternatives explicitly.

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

clear_promo_videoClear Promo VideoB
Destructive
Inspect

Clears the specified promo-video variant's saved configuration. This removes its current video content rather than creating a new variant.

NameRequiredDescriptionDefault
projectIdYes
variantIdNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds real value by specifying what is destroyed ('removes its current video content') and that the variant itself is not replaced, though it does not state whether cleared content is recoverable or what state the variant is left in.

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 with the resource scope front-loaded and the disambiguation second. Every clause carries information; nothing is redundant or padded.

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?

An output schema exists and annotations cover the destructive/idempotency profile, so return values and safety need not be restated. However, for an irreversible mutation with an optional targeting parameter, the missing guidance on the optional variantId and reversibility leaves 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 carries the full burden for two parameters, and it says almost nothing about them. It implies variantId targets a specific variant but never explains the effect of omitting the optional variantId (e.g., whether it defaults to the active variant) or what projectId must reference.

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 (clears) and resource (the specified promo-video variant's saved configuration), which is more precise than the title alone. The clause 'rather than creating a new variant' rules out the most plausible misinterpretation, though it contrasts with a behavior rather than naming sibling tools like delete_variant or generate_promo_video.

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 explicit when-to-use or when-not guidance and no named alternatives, even though siblings such as delete_variant, update_promo_video, and apply_promo_video_candidate clearly compete for similar intents. The only guidance is the implicit clarification that this is not a variant-creation operation.

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

create_asset_foldercreate asset folderAInspect

Creates a screenshot folder for an explicit device and platform, optionally bound to a locale. A caller-supplied UUID folderId makes retries reuse the same folder. Storage paths and saved designs are unchanged.

NameRequiredDescriptionDefault
nameYes
localeNo
folderIdYes
platformYes
projectIdYes
deviceTypeYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Goes beyond the annotations in two useful ways: it explains that a caller-supplied folderId makes retries reuse the same folder (a concrete idempotency mitigation not conveyed by idempotentHint=false), and it states the blast radius — storage paths and saved designs are unchanged. What's missing is failure behavior (what happens on a second call with the same folderId, or a duplicate name), which matters for a mutation 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 short sentences, front-loaded with the action and scope, followed by the retry contract and the non-effect statement. Every sentence carries distinct information and nothing is repeated from the schema or annotations.

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

Completeness4/5

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

For a non-destructive create with an output schema (so no return-value explanation needed) and annotations covering the safety profile, this is nearly complete. The remaining gap is the failure/duplicate path for folderId and name, which an agent calling a create tool would want before retrying.

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 folderId's purpose as a caller-supplied retry key and clarifies locale is optional, which the schema does not. However projectId, name (1–60 chars), and deviceType are never explained, and the interaction between deviceType and platform is left to the enums.

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 (creates), a specific resource (screenshot folder), and its scoping dimensions (device, platform, optional locale). No sibling competes for the same resource — the other folder tools are list/rename/delete/set_locale — so the resource name alone differentiates it. It stops short of explicitly naming an alternative, hence 4 not 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: the agent can infer this is the setup step before uploading or listing screenshots in a folder, but no sentence says when to use this versus prepare_asset_upload/upload_screenshots or list_asset_folders. No prerequisites (does projectId need to exist first? must name be unique within the project?) and no when-not guidance are given.

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

create_mockup_animationCreate Mockup AnimationAInspect

Creates a new mockup-animation variant from a scene preset and a project screenshot or recording. A dedicated mockup upload is not required. Supports phone, dual-screen phone, tablet and laptop devices, with model-fitted motion and finishes. Existing variants are preserved. Returns the new variant and editor link.

NameRequiredDescriptionDefault
labelNoOptional variant label shown in the studio's variant dropdown.
deviceNoDevice kind: phone (iPhone 18 Pro / Pixel 10 Pro by platform), duo (iPhone Duo, unfolded), tablet (iPad Pro), laptop (MacBook Pro 14"). Match the screen content's aspect: iPad screenshots on tablet, Mac/desktop captures on laptop.phone
platformNoOnly for device phone: ios = iPhone, android = Pixel. Defaults to the project's platform.
presetIdYesScene preset id: 'hero-launch' (cinematic swing), 'pivot-showcase' (spin reveal), 'slow-rotate' (drop & zoom), or 'drifting-tilt' (punch zoom).
projectIdYesProject / generation UUID.
outputRatioNoOptional output aspect ratio. Defaults to 4:3 (classic).
screenshotPathYesProject-relative path for the device screen content, e.g. "mockups/1715191234567-clip.mp4" from list_mockup_media or "mobile/ios/1715191234567-home.png" from list_assets. Use an existing asset from the same project.
motionDurationSecondsNoOptional animation length in seconds. For a video screenshotPath it defaults to the recording's length (read on the server) so the loop plays the recording once; otherwise the preset's length.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing that existing variants are preserved (reinforcing non-destructiveness), that the call returns the new variant plus an editor link, and that motion duration is read server-side from video length. This is meaningful behavioral context, though permission requirements are unstated.

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 front-loaded sentences that each carry information: creation semantics, no-upload-needed, supported devices, preservation guarantee, and return value. 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 a rich schema and an output schema, the description only needs to orient the agent, which it does by naming inputs, device scope, and return value. Minor gap: no explicit guidance on prerequisites or relationship to preview/update tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter thoroughly (device choices, preset meanings, outputRatio default, screenshotPath examples). The description largely restates device support and adds little syntax or semantics beyond what the schema provides, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: creates a new mockup-animation variant from a scene preset plus screenshot/recording. The required-input framing implicitly distinguishes it from siblings like create_variant and update_mockup_animation, though no sibling is named explicitly.

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?

Adds a helpful note that 'a dedicated mockup upload is not required' and that existing variants are preserved, which clarifies safe usage. But there is no explicit when-to-use guidance, no mention of preview_mockup_animation as a precursor, and no routing versus create_variant or generate_mockup_motion.

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

create_projectCreate ProjectAInspect

Creates a project from an app name or imports metadata and the icon from a published Apple App Store listing. Platform defaults to iOS. Returns the project ID and hub URL. Does not generate a design or publish to a store.

NameRequiredDescriptionDefault
appNameNoThe app name. Required unless appStore is given (then it overrides the store name).
countryNoStorefront for the App Store import (ISO country, default us).
appStoreNoImport from the App Store: numeric Apple app id (e.g. 284882215) or an apps.apple.com URL.
categoryNoApp category. Infer from the app name/context when possible (e.g. 'Travel' for a flight app).
logoPathNoOptional stored logo path from upload_screenshots when fileType=logo.
metadataNoAdvanced escape hatch for extra metadata fields.
platformNoTarget platform. Defaults to iOS.
appDescriptionNoBrief app description. Infer from context when possible.
defaultDeviceTypeNoDefaults to phone. Only set if the user explicitly asks.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark this as a non-read-only, non-idempotent, non-destructive open-world operation, and the description adds useful behavioral context about App Store import, platform defaults, and returned project ID and hub URL. It does not disclose auth requirements, rate limits, or side effects beyond creation, but the annotation coverage lowers the burden.

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 four sentences, front-loaded with the core action and followed by source modes, defaults, return values, and exclusions. Every sentence adds distinct information, and there is no boilerplate or repetition.

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 nine parameters, nested metadata, enums, full schema descriptions, annotations, and an output schema, the description covers the essential scope, defaults, and return values. It does not need to re-explain parameter details, though it could more explicitly mention creation prerequisites or when a project should already exist.

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 fully documents all nine parameters, including the appName/appStore relationship and platform defaults. The description reinforces the main source options and platform default but adds no syntax or conditional details beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: it 'Creates a project' and explains the two supported creation modes (app name or Apple App Store import). It also distinguishes the operation from adjacent actions by noting that it does not generate a design or publish to a store, so an agent can identify it without inspecting sibling schemas.

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

Usage Guidelines4/5

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

The description gives clear usage context: create a project from an app name, or import metadata/icon from an App Store listing, with iOS as the default platform. It also provides a partial when-not boundary by saying it does not generate a design or publish. It stops short of naming sibling alternatives such as duplicate_variant or create_variant.

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

create_variantCreate Empty VariantAInspect

Creates an empty, named, inactive content-type variant. Does not generate or copy a design and counts against the plan's variant limit.

NameRequiredDescriptionDefault
labelNo
projectIdNoAlias of generationId (the project id).
setActiveNoNot supported: an empty active variant would replace what the hub shows and what render_screenshots exports. Fill the variant, then call set_active_variant.
contentTypeYes
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only declare the generic safety profile (readOnly=false, destructive=false, idempotent=false); the description adds genuinely new behavior: the variant is created empty and inactive, no design is generated or copied, and the call consumes the plan's variant limit. That quota side-effect is exactly the kind of context an agent cannot get from structured fields. It stops short of stating permissions or whether creation is reversible.

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, zero filler, with the most decision-relevant facts (empty, inactive, no design copy) front-loaded before the quota caveat.

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

Completeness4/5

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

An output schema exists and annotations cover safety, so the description only needs to convey creation semantics — which it does, including the empty/inactive nature and the plan-limit cost. It omits any pointer to the correct sibling for design-populated variants, a small remaining gap for a create tool with four siblings in the variant family.

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

Parameters3/5

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

Schema coverage is 60% and the two documented properties (projectId/generationId alias, setActive) carry rich, well-explained constraints. The description's 'named, inactive' wording loosely maps to label and setActive but adds no syntax, defaults, or requiredness information 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 and resource with meaningful qualifiers: 'Creates an empty, named, inactive content-type variant.' The clause 'Does not generate or copy a design' implicitly separates it from duplicate_variant, but no sibling is named explicitly, so an agent must infer the routing.

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?

The description never says when to choose this over duplicate_variant or how it relates to list_variants/set_active_variant. The only routing advice ('fill the variant, then call set_active_variant') lives in the setActive schema property, not in the description, leaving the prose with no usage guidance at all.

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

delete_asset_folderdelete asset folderA
Destructive
Inspect

Deletes a screenshot folder and ungroups its files. Does not delete asset files, storage objects or saved-design references.

NameRequiredDescriptionDefault
folderIdYes
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, and the description adds the crucial extra context annotations cannot express: only the grouping is destroyed, not the underlying files, storage objects, or saved-design references. It omits reversibility and permission/auth requirements, keeping it below 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 tight sentences with the primary effect first and the scope caveat second; every clause carries information an agent needs.

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?

Output schema exists so return values need no explanation, and annotations cover the safety profile; the description's main job is clarifying blast radius, which it does well. The remaining gap is the complete absence of parameter meaning for a destructive, non-idempotent operation.

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% — folderId and projectId have type/format constraints but no semantic documentation — and the description says nothing about either parameter. It neither explains what folderId identifies nor how projectId scopes the operation, so it fails to 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?

Specific verb (deletes) plus specific resource (screenshot folder) and an explicit statement of the effect on contained files (ungroups them). The 'does not delete asset files' clause separates it from delete_assets, though no sibling is named explicitly.

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 — you call this to remove a folder while keeping the assets — and the negative clause implicitly routes file deletion to delete_assets. But there is no explicit when-to-use statement, no prerequisite (e.g. folder must be empty or exist), and no named alternative.

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

delete_assetsdelete assetsA
Destructive
Inspect

Permanently removes the specified asset records and storage objects. Saved-design references block deletion. This action cannot be undone.

NameRequiredDescriptionDefault
pathsYes
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds real value beyond that: permanence, irreversibility, and the blocking precondition from saved-design references. It omits batch semantics for the up-to-50 paths (partial failure vs all-or-nothing), which is the main remaining 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 short sentences, front-loaded with the destructive nature, and every sentence adds a distinct fact (what is removed, what blocks it, irreversibility). No 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?

An output schema exists, so return values need not be explained. However, for a destructive batch mutation over up to 50 paths, the description should address what happens when some paths are blocked by saved-design references and whether projectId scopes the operation.

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 full burden, and it says nothing about either parameter. 'Specified asset records' only loosely hints that paths are asset paths; projectId scoping and the 1-50 path batch limit are never mentioned.

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 ('Permanently removes') and resource ('asset records and storage objects'), which distinguishes it from folder/project/variant deletion siblings. It does not explicitly name those siblings, but the resource scope is unambiguous.

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 the destructive verb rather than stated. The one real routing signal is the precondition 'Saved-design references block deletion', which tells an agent when the call will fail, but no alternatives (e.g. replace_asset, move_assets, delete_asset_folder) are suggested for adjacent tasks.

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

delete_projectDelete ProjectC
Destructive
Inspect

Deletes the specified project. This is a destructive project operation.

NameRequiredDescriptionDefault
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so 'This is a destructive project operation' merely restates structured data. The description omits genuinely useful behavior: whether deletion is permanent/irreversible, whether it cascades to variants, assets, screenshots, or layouts, and whether confirmation or special permissions are required.

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 short and front-loaded, but the second sentence is pure redundancy against the annotations, so half the text earns no place. Efficient in size, weak in density of useful information.

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

Completeness2/5

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

An output schema exists so return values need not be explained, but for an irreversible destructive operation with cascading side effects and an undocumented id parameter, the description says nothing an agent needs before invoking it. It is under-specified for the risk level of the 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?

One required parameter with 0% schema description coverage; the schema gives only type/format/pattern, not what a project is or where to obtain the id. 'The specified project' adds nothing beyond the parameter name, and does not point the agent to list_projects or get_project.

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 ('Deletes the specified project'), which is unambiguous on its own. It does not distinguish itself from similar destructive siblings such as delete_assets, delete_variant, or delete_asset_folder, so an agent gets no help disambiguating scope.

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 the other delete tools, no prerequisites (where the projectId comes from, e.g. list_projects or get_project), and no warning about what must be done before deleting. Only implied usage from the name.

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

delete_variantDelete VariantA
Destructive
Inspect

Permanently deletes the specified variant and all of its content and translations. Cannot be undone. Deleting the active variant promotes the newest remaining variant, which is returned as promotedVariant.

NameRequiredDescriptionDefault
confirmYesMust be true: confirms the user explicitly asked to delete this variant.
projectIdYesProject id (list_projects/get_project); design tools call it generationId.
variantIdYes
contentTypeYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, but the description goes well beyond them: it discloses the cascade (all content and translations are removed), irreversibility, and the post-condition that deleting the active variant promotes the newest remaining one, surfaced as promotedVariant. That side effect is exactly the kind of behavior an agent cannot infer from 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?

Three short sentences, front-loaded with the destructive action and its irreversibility, then the side effect. No filler and no repetition of the title.

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 4-parameter tool with an output schema, the description covers the essential risk profile and the promotedVariant return value. The remaining gap is parameter-level: nothing explains how variantId and contentType relate or what happens if contentType mismatches, but with annotations carrying the safety profile this is a minor omission.

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 only 50%, and the description contributes nothing about the parameters — variantId has no description at all and contentType's enum has no explanation of whether it must match the variant's actual type. Only confirm and projectId are documented, and that documentation lives entirely in the schema, not the description.

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 ('Permanently deletes the specified variant') plus the cascade scope ('all of its content and translations'), which is far more precise than the title alone. It does not distinguish itself from nearby siblings like delete_project, delete_assets, or duplicate_variant, 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 Guidelines3/5

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

Usage is only implied: the tool is for removing a variant that is no longer needed, and 'Cannot be undone' serves as a caution. There is no explicit guidance on when to choose this over delete_project, delete_assets, or duplicate_variant, and no prerequisites (e.g., that confirm must be set) are stated in the description.

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

duplicate_variantDuplicate VariantAInspect

Copies a variant's saved content and translations into a new inactive variant with a copy label. Preserves the original and counts against the plan's variant limit. Returns the copy and editor link.

NameRequiredDescriptionDefault
variantIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations establish a non-read-only, non-destructive, non-idempotent mutation, and the description adds meaningful context beyond them: the copy is created inactive with a copy label, the original is preserved, and the operation consumes a plan variant slot. It stops short of saying whether repeated calls create additional copies (non-idempotent) or what error occurs at the plan limit.

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 result, then the side effects, then the return. No filler and nothing repeated from 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 one-parameter mutation this covers action, side effects, plan impact, and return shape (the copy and editor link). A pointer to set_active_variant for activating the resulting inactive copy would close the remaining gap.

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

Parameters3/5

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

Only one parameter (variantId) and the schema provides zero description coverage. The description implies the ID refers to the source variant being copied, but never states that explicitly or clarifies whether the ID must belong to the current project. Baseline 3 given the single obvious parameter.

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 (copies) and resource (a variant's saved content and translations) with the resulting artifact (a new inactive variant with a copy label). It is clearly distinguishable from create_variant in intent, though it never names the sibling to make the contrast 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?

The described behavior implies the use case (clone an existing variant rather than build one from scratch), but there is no explicit 'use this when…' guidance and no mention of alternatives such as create_variant for a from-scratch variant. The plan-limit warning hints at a pre-condition but does not frame it as guidance.

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

export_mockup_animationExport Mockup AnimationA
Idempotent
Inspect

Starts an MP4/WebM export of a saved mockup animation and returns exportJobId. Server exports require an opaque background, duration strictly under thirty seconds and available API export allowance. An accepted job uses one allowance. The same idempotencyKey identifies the same request across retries.

NameRequiredDescriptionDefault
fpsNo
formatNomp4
qualityNo1080p = the output ratio's full size (e.g. 1440×1080 for 4:3); 720p renders at two-thirds.1080p
projectIdYes
variantIdNoMockup variant; omitted = the project's active one.
idempotencyKeyNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, yet the description still adds meaningful context: an accepted job consumes one API export allowance (a cost), and idempotencyKey re-identifies the same request across retries rather than creating a new job. That explains *how* idempotency behaves, which the hint alone does not.

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, front-loaded with the action and return value, then preconditions, then cost, then idempotency. Every sentence adds something, though the second 'uses one allowance' sentence restates the allowance concept already introduced.

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 needn't be explained, and the description still names exportJobId. An agent has the action, constraints, cost, and retry semantics; only the follow-up polling path (get_mockup_animation_export) is left implicit for this async export tool.

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

Parameters3/5

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

Schema coverage is only 33%, so the description must carry weight. It does explain idempotencyKey semantics (same key = same request across retries), while quality and variantId are covered by the schema and fps/format are self-evident enums. The gaps (fps trade-off, format selection) are minor, but the compensation is partial.

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: 'Starts an MP4/WebM export of a saved mockup animation and returns exportJobId.' The word 'saved' and the returned job id distinguish it from preview_mockup_animation and point toward get_mockup_animation_export for polling, though no sibling is named explicitly.

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 states the preconditions for server exports (opaque background, duration under thirty seconds, available allowance), which is real gating guidance, but it never says when to pick this over preview_mockup_animation or export_promo_video, nor what to do after the job is accepted. Usage is implied rather than routed.

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

export_promo_videoExport Promo VideoA
Idempotent
Inspect

Starts an MP4/WebM export of a saved promo-video variant and language. Supports configured App Store, iPad, social and creative placements within renderer limits. Server duration must be under thirty seconds. An accepted job uses one API export allowance and returns exportId. The same idempotencyKey identifies the same request across retries.

NameRequiredDescriptionDefault
sizeNo
formatNo
qualityNo
categoryNo
languageNoLanguage code of the promo-video translation (e.g. 'de'). Omit for the source language. get_promo_video lists availableLanguages.
projectIdYes
variantIdNo
idempotencyKeyYesUnique per intended export; reuse on retries.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover idempotency, non-readOnly, non-destructive, and closed-world. The description adds real value beyond them: it discloses that a job consumes one API export allowance, enforces a 30-second duration limit, and returns an exportId — billing/limit context an agent needs before calling.

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?

Five short sentences, each carrying a distinct fact (format, placements, duration limit, allowance/return, idempotency). Front-loaded with the core action; no filler, though the placement sentence is slightly dense.

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

Completeness4/5

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

For an 8-param mutation tool with an output schema and full annotations, the description covers the essential behaviors (cost, duration precondition, exportId, idempotency retry semantics). The only material gap is the undocumented size/quality parameters.

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 25%, so the description must compensate more. It clarifies format (MP4/WebM), the four category placements, variant, and language, but leaves size, quality, projectId, and variantId meaning unexplained. Partial compensation for a low-coverage 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 and resource: 'Starts an MP4/WebM export of a saved promo-video variant and language.' It is distinguishable from generate_promo_video and preview_promo_video by the word 'export', though it never explicitly names those siblings or contrasts with them.

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 a hard precondition ('Server duration must be under thirty seconds') and notes the one-allowance cost, but never says when to prefer export over preview_promo_video or when to poll get_promo_video_export for the result. 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.

generate_mockup_motionGenerate Mockup MotionA
Read-only
Inspect

Drafts mockup keyframe data from a motion description. Returns configuration data without saving an animation or rendering video pixels.

NameRequiredDescriptionDefault
promptYes
projectIdYes
deviceKindNoKind of the device the motion is for (list_mockup_presets deviceModels[].presetDevice). Laptops get lidOpen per keyframe; tablets and laptops get smaller movements.phone

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.5/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 known; the description adds the key behavioral detail that nothing is persisted and no pixels are rendered. It does not mention non-determinism despite idempotentHint=false, which would be useful since drafting from a prompt likely varies across calls.

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 no filler; the generation action comes first and the non-persistence caveat follows. 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?

An output schema exists, so return values need not be explained, and the 'does not save or render' note covers the main ambiguity. However, for a drafting tool in a crowded animation toolset, the missing link to create_mockup_animation and any prompt-shaping guidance leaves the definition only minimally complete.

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

Parameters2/5

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

Schema description coverage is only 33% — only deviceKind is documented, and the description adds nothing about it. The two required parameters (prompt, projectId) are never discussed, so the description gives no guidance on what kind of motion prompt to write despite the 3–600 character constraint.

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

Purpose4/5

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

The description uses a specific verb and resource ('Drafts mockup keyframe data from a motion description') and clearly states what the output is and is not. It does not name or distinguish itself from close siblings such as create_mockup_animation, preview_mockup_animation, or update_mockup_animation, so an agent must still 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 Guidelines3/5

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

Saying it 'returns configuration data without saving an animation or rendering video pixels' implies a generate-then-create workflow, but the description never says when to pick this over create_mockup_animation or that its result feeds into it. Usage is only implied, not stated.

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

generate_promo_videoGenerate Promo VideoAInspect

Starts or reuses background preparation of three transient promo-video scene/config candidates and returns the embedded picker or its URL. The picker updates when preparation finishes. Only an explicitly selected candidate becomes a saved variant. Optional replaceVariantId enables replacement after the new selection saves; selectedScreenshotPaths restricts candidate inputs.

NameRequiredDescriptionDefault
messageNoOptional creative direction applied to all three candidates.
projectIdYesProject / generation UUID.
deviceTypeNoDevice the video shows: phone (default; iPhone or Pixel by platform), tablet (iPad Pro, iPad App Store formats) or desktop (MacBook, 16:9). Uses that device's uploaded screenshots.
replaceVariantIdNoExisting promo-video variant to replace after the user chooses a candidate. Only pass with explicit user approval.
selectedScreenshotPathsNoOptional project-relative screenshot paths (1–10) from list_source_screenshots, in story order. They must match deviceType (phone → mobile/…, tablet → tablet/…, desktop → desktop/…).
selectedScreenshotIndicesNoLegacy screenshot positions. Prefer selectedScreenshotPaths.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only cover the safety profile (non-read-only, non-idempotent, non-destructive, closed-world), while the description adds real behavioral context: background/asynchronous preparation, reuse of in-flight work, three transient candidates, a picker that updates on completion, and that nothing persists until an explicit selection. It stops short of describing lifecycle details such as picker expiry or re-invocation cost.

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 key behavior (three transient candidates, picker returned, selection required to persist) is front-loaded in the first two sentences, and the parameter notes are compressed into one closing sentence. It is dense but nearly every clause carries information; 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 six-parameter, asynchronous generation tool with an output schema and full annotation coverage, the description supplies the essentials: transience, async completion, and the save boundary. Missing only peripheral detail such as picker URL lifetime or what repeated invocation does to in-flight preparation.

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 every parameter is already documented, making 3 the baseline. The description adds a little meaning for replaceVariantId (it applies only after the new selection saves) and states that selectedScreenshotPaths restricts candidate inputs, but much of this restates the schema's own wording.

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 names a specific verb and resource: it starts or reuses preparation of three transient promo-video candidates and returns an embedded picker or its URL. That is far more specific than the title, though it never names the natural siblings (preview_promo_video, get_promo_video_generation, apply_promo_video_candidate) to draw the boundary explicitly.

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 workflow is implied ('Only an explicitly selected candidate becomes a saved variant', replaceVariantId only with explicit user approval), which tells the agent this is a non-committal preparation step. However, there is no explicit when-to-use-this-vs-that guidance against preview_promo_video or get_promo_video_generation, so the agent must infer the routing.

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

generate_store_listingGenerate Store Listing TextA
Destructive
Inspect

Generates store-listing text in a new ASO-copy variant using project context and requested options. Optional replaceVariantId retires a prior variant after successful replacement. Does not publish text to Apple or Google.

NameRequiredDescriptionDefault
projectIdYes
competitorAppIdsNoCompetitor store app ids to analyze (Apple numeric ids or Play package names).
replaceVariantIdNoRetire this existing listing variant after the new one saves. Only with explicit user approval.
competitorStoreProviderNoStore of competitorAppIds. Defaults to app_store.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations flag destructiveHint=true, and the description earns that flag: it explains that replaceVariantId retires a prior variant only after the new one successfully saves, which is exactly the destructive surface. It also discloses the non-publishing boundary. It does not state that each call produces a new variant (relevant given idempotentHint=false), which is the remaining 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 short sentences, front-loaded with the core action, followed by the destructive-parameter caveat and the scope boundary. Nothing is redundant and nothing needed is buried.

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

Completeness4/5

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

With an output schema present and rich annotations, the description covers purpose, destruction semantics, and the publish boundary. What's missing is small but real: whether the generated variant becomes active, and what project context is drawn from. Not disqualifying, but not fully 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 75% and three of four parameters carry descriptions, so the schema does the heavy lifting. The description adds one meaningful nuance — the replacement's ordering/success semantics — but says nothing about projectId (undocumented) or how competitorAppIds/provider shape the output. Baseline 3 is right.

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 names a specific verb and resource — generating store-listing (ASO) copy as a new variant — and clarifies it does not publish anywhere. That separates it from update_store_listing and translate_store_listing, though it never explicitly contrasts with create_variant, which also creates variants.

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 line 'Does not publish text to Apple or Google' is a useful negative boundary, and replaceVariantId is scoped to post-success replacement. But there is no explicit routing guidance (e.g., use update_store_listing to edit an existing variant, or create_variant for non-copy variants), so the agent must infer when this is the right call.

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

get_capabilitiesGet CapabilitiesA
Read-onlyIdempotent
Inspect

Returns supported MCP feature areas and tools, dashboard/editor links and features available only in the dashboard. An optional project ID supplies project-specific links. Read-only.

NameRequiredDescriptionDefault
projectIdNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond them: it reveals that some listed features exist only in the dashboard (i.e., not callable via MCP) and that links are project-scoped when a project ID is supplied.

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 what is returned, followed by the parameter behavior and the read-only note. Nothing redundant or padded.

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?

A simple, zero-required-parameter read tool with an output schema, so return values need no explanation. Scope, the single parameter's effect, and the read-only nature are all covered; only an explicit 'call this first to discover features' cue is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden for projectId — and it does, stating the parameter is optional and that it changes the returned links to be project-specific. The UUID format/pattern is left to the schema, which is fine.

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: returns supported MCP feature areas and tools, plus dashboard/editor links. This is clearly a discovery/introspection tool distinct from every sibling, though it does not explicitly contrast itself with them.

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 — an agent would infer this is the feature-discovery call — and the note that an optional project ID supplies project-specific links hints at a conditional call. But there is no explicit 'use this when / don't use this for' guidance or statement about when the project-scoped variant matters.

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

get_editing_referenceGet Editor Configuration ReferenceA
Read-onlyIdempotent
Inspect

Returns the built-in editing reference for screenshots, social graphics, promo videos or mockups. Includes a symbol index and complete field, enum, coordinate, validator and catalog definitions. Read-only and available without project access or external resource browsing.

NameRequiredDescriptionDefault
symbolNoExact type/schema/catalog name from the index, e.g. ScreenshotNode, Model3DConfig, SceneDeviceSchema, stateSchema or MockupDevice.
featureYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety bar is low. The description still adds real value by asserting the data is built-in and needs no project access, which explains why the call succeeds in an unauthenticated/empty context; it stops short of stating cost, latency, or response size.

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, zero preamble, with the core identity front-loaded and the content inventory second. The second sentence is a dense list rather than padding, though it could have carried the symbol-vs-feature behavior instead of only enumerating definition categories.

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

Completeness4/5

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

An output schema exists, so return-format explanation is rightly omitted, and access requirements are covered. What remains missing is the two-step workflow the tool implies — call once to read the index, then again with a 'symbol' — which matters for an agent planning a lookup sequence.

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?

With 50% schema coverage, the description partially compensates: it names the four feature values ('screenshots, social graphics, promo videos or mockups') matching the feature enum. However, it never explains the interplay between the two parameters — whether omitting 'symbol' returns the whole index, and whether 'symbol' narrows output to a single definition — leaving the primary caller decision 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?

States a specific verb and resource ('Returns the built-in editing reference') and enumerates exactly what the payload contains: symbol index plus field, enum, coordinate, validator and catalog definitions. No sibling tool serves this lookup role, so the definition is unambiguous on its own.

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 establishes prerequisites ('available without project access or external resource browsing') but never says when an agent should call this instead of proceeding directly, nor that it is the discovery step preceding schema-dependent calls like save_layout or update_graphics_settings. Usage is implied by the resource name rather than stated.

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

get_graphicsGet Social GraphicsA
Read-onlyIdempotent
Inspect

Returns saved social-graphics layouts and variant metadata for one language, including primary format and available languages. Unsaved derived formats are absent. Read-only.

NameRequiredDescriptionDefault
languageNoGraphics language (e.g. de, pt-BR). Omit for the source language. Use list_graphics_translations for the saved languages and translate_graphics to add one.
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so 'Read-only.' is pure repetition. The one genuine addition is 'Unsaved derived formats are absent,' which tells the agent results are filtered to persisted formats — useful, but no detail on pagination, ordering, or behavior when parameters are omitted.

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 short sentences, front-loaded with what is returned and what is excluded. The only wasted line is 'Read-only.', which restates an annotation verbatim.

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

Completeness4/5

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

An output schema exists so return structure needn't be explained, and the description still sketches the payload (layouts, variant metadata, primary format, available languages). Adequate for a zero-required-parameter read tool, with minor gaps around default behavior when language or variantId is omitted.

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 75% and the language, projectId and generationId descriptions are rich, so the schema does most of the work. The description reinforces that results are per-language and include variant metadata, but variantId remains undocumented in both places and no param syntax is added beyond the 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 and resource ('Returns saved social-graphics layouts and variant metadata'), and scopes it to one language while naming the included fields (primary format, available languages). An agent can distinguish it from mutating siblings like save_graphics or render_graphics, though it never explicitly names get_graphics_format or list_variants as the alternatives.

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: 'saved' and 'Unsaved derived formats are absent' signal this reads persisted state rather than rendering. There is no explicit when-to-use or when-not-to-use guidance, and the routing hints (list_graphics_translations, translate_graphics) live in the schema's language description, not in the tool description.

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

get_graphics_formatGet One Social Graphics FormatA
Read-onlyIdempotent
Inspect

Returns one social or store-creative format layout, canvas dimensions and a same-target editing read receipt. An unsaved format is derived from the primary format and marked derived:true without persisting it. Includes App Store headers/search creatives and other supported formats. Read-only.

NameRequiredDescriptionDefault
formatYes
languageNoGraphics language (e.g. de, pt-BR). Omit for the source language. Use list_graphics_translations for the saved languages and translate_graphics to add one.
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations confirm it is read-only and non-destructive. The description builds on this by detailing the specific operational logic of derived formats ('marked derived:true without persisting it'), adding behavior beyond the simple safety hints provided in 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 definition is concise and effectively front-loads the primary function into the first sentence. It is appropriately detailed without being verbose.

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 richness of the input schema and the existence of an output schema, the description fully answers the agent's need to know what data to expect and how the tool behaves with derived assets.

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?

With 60% schema coverage, the description provides necessary semantic context by detailing exactly what is returned (layout, dimensions, read receipt) and listing specialized formats like 'App Store headers/search creatives,' linking the purpose back to specific input types.

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 explicitly states its function: 'Returns one social or store-creative format layout, canvas dimensions and a same-target editing read receipt.' It clearly identifies the resources (layout, dimensions) and scope (social/store-creative formats).

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?

While it doesn't explicitly state 'when' to use it over siblings, it provides important functional guidance by explaining how it handles 'unsaved formats,' marking them as derived without persisting them, which is vital for agents distinguishing its behavior from saving/creation tools.

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

get_keyword_historyGet Keyword HistoryA
Read-onlyIdempotent
Inspect

Returns rank history for one tracked keyword, optionally for a specified competitor app. Available history is limited by plan: up to thirty days on Free and up to 365 days on Unlimited. Read-only.

NameRequiredDescriptionDefault
appIdNoOptional store app id to compute history for. Defaults to the tracked keyword's app.
trackedKeywordIdYesThe tracked-keyword row id (from list_keywords). Not the keyword string.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations by disclosing plan-based history limits: 30 days on Free and 365 days on Unlimited. It repeats 'Read-only' but does not contradict 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 return value and optional competitor scope. The plan-limit sentence earns its place by communicating a real constraint, and the final 'Read-only' note is short despite duplicating an annotation.

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

Completeness5/5

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

The tool has an output schema for return shape and rich annotations for safety behavior. The input schema fully documents both parameters, and the description adds the important plan-based history-window constraint. Nothing essential for correct invocation 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%, so both parameters are already well documented. The description adds limited semantic context by clarifying that appId is optionally for a competitor app, but it does not provide meaning beyond what the schema already supplies for trackedKeywordId.

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

Purpose5/5

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

The description states a specific verb and resource: returns rank history for one tracked keyword, optionally for a competitor app. This is clearly distinct from sibling list_keywords and list_keyword_competitors, which manage or list keywords rather than return historical rank data.

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

Usage Guidelines4/5

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

It gives clear context for when the tool applies: retrieving rank history for a single tracked keyword, with an optional competitor app. It does not explicitly name alternatives or when-not conditions, but the intended usage is unambiguous.

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

get_layoutGet LayoutA
Read-onlyIdempotent
Inspect

Returns saved screenshot layouts for one variant and language, including independent phone-format layouts, an editor link and a same-target editing read receipt. Main/mobile changes do not implicitly update independent phone formats. Read-only.

NameRequiredDescriptionDefault
signNo
languageNoRequired for editing: use the exact language from the project's translations. If omitted, this only lists translations; call get_layout again with a returned language before transform_layout.
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false), so the 'Read-only' sentence is largely redundant. However, the description adds genuine behavioral context beyond the annotations: main/mobile edits do not implicitly propagate to independent phone formats, and the response carries an editor link and an editing read receipt.

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, payload-first, with the propagation caveat placed where it matters. The trailing 'Read-only.' is redundant with annotations but costs only one clause.

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

Completeness4/5

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

An output schema exists, so the description needn't detail return values, and it still usefully names the notable ones. The remaining gap is that the editing workflow (omitting language lists translations only; re-call before transform_layout) is only discoverable in the schema, not the description.

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?

No parameter is named or explained in the description; only 'one variant and language' hints at variantId and language. With 60% schema description coverage the schema does most of the work (language and generationId are well documented), so this lands at the baseline rather than being penalized.

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 ('Returns saved screenshot layouts') and scopes it to one variant and language, enumerating the payload (phone-format layouts, editor link, editing read receipt). An agent can distinguish it from save_layout/sync_layout/transform_layout by the 'returns' framing, though no sibling is named explicitly.

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: 'Read-only' and the phone-format caveat suggest a retrieval step, but the description never says when to call it versus save_layout, sync_layout, or get_editing_reference, nor that language must be supplied before transform_layout. That key routing information lives only in the schema's language description.

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

get_mockup_animationGet Mockup AnimationA
Read-onlyIdempotent
Inspect

Returns a saved mockup animation state, its resolved variant ID and a same-target editing read receipt. Omitting variantId reads the active variant. Read-only.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
variantIdNoMockup variant; omitted = the project's active one.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so 'Read-only' in the description is pure repetition and earns no credit. The one genuinely new element, the 'same-target editing read receipt', is unexplained jargon — an agent cannot tell what it contains or why it matters — though the active-variant fallback behavior is useful context.

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 short sentences, front-loaded with the return content and ending with the safety flag; nothing is padded. The only blemish is the unexplained 'same-target editing read receipt' phrase, which spends words without transferring meaning.

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 the description needn't enumerate return fields, and annotations carry the safety profile, so what remains — which resource and which variant — is covered. The residual gap is routing between this tool and preview_mockup_animation / get_mockup_animation_export.

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 the variantId omission behavior, so the description's restatement of it is duplicative rather than additive. It says nothing about the projectId/generationId alias pair, which is the one parameter relationship that actually needs narrative help.

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 ('Returns') and a specific resource ('saved mockup animation state') plus the resolved variant ID, which clearly separates it from create/update/preview/export siblings by implying retrieval of persisted state. It never names a sibling explicitly, so differentiation is inferred rather than stated.

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?

'Omitting variantId reads the active variant' gives one concrete usage rule, but there is no guidance on when to choose this over preview_mockup_animation or get_mockup_animation_export, which are the obvious near-neighbors. Usage is implied by the read-only retrieval framing 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.

get_mockup_animation_exportGet Mockup Animation ExportA
Read-onlyIdempotent
Inspect

Returns mockup export progress and a short-lived download URL when complete. Supports a bounded waitSeconds. Failed exports are refunded. Read-only.

NameRequiredDescriptionDefault
exportJobIdYes
waitSecondsNoPoll for up to this many seconds before returning.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover readOnlyHint/idempotentHint, so the redundant 'Read-only' adds nothing, but the description contributes real behavioral context: the download URL is short-lived and failed exports are refunded. Those are consequences an agent cannot get from the schema. It omits whether progress is a percentage or stage label.

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 outcome and the wait behavior, and every clause carries information except the trailing 'Read-only' which duplicates the annotations.

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

Completeness5/5

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

An output schema exists, so return-value explanation is unnecessary, and the tool is a simple two-parameter read-only poll. The expiry-on-URL and refund-on-failure notes cover the non-obvious behaviors an agent needs before calling.

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%: waitSeconds is documented in the schema (including the maximum of 50) while exportJobId has no description anywhere. The description's 'bounded waitSeconds' is consistent but adds no detail beyond the schema, and it never explains that exportJobId comes from export_mockup_animation.

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 ('Returns mockup export progress and a short-lived download URL when complete'), which clearly distinguishes this status-polling tool from export_mockup_animation (starts the job) and get_mockup_animation (returns the artifact). It stops short of explicitly naming those siblings, so an agent must infer the boundary from the verbs.

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 polling intent is implied by 'progress ... when complete' and 'Supports a bounded waitSeconds', but the description never says when to call this versus get_mockup_animation or how often to retry. No exclusions or alternative-routing guidance are given.

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

get_plan_usageGet Plan UsageA
Read-onlyIdempotent
Inspect

Returns the account's API-export access, monthly export usage/limit/reset information and, with a project ID, its keyword and competitor limits. Includes a plan-management URL. Does not change the plan or purchase credits.

NameRequiredDescriptionDefault
projectIdNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the response contents (usage, limit, reset, a plan-management URL) and by explicitly ruling out mutations ('does not change the plan or purchase credits'), which prevents a plausible agent misread of a billing-adjacent 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?

A single dense sentence that front-loads the account-level data and then the project-scoped extension. Every clause earns its place, though the compound structure makes it slightly harder to parse than two shorter sentences would.

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

Completeness4/5

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

An output schema exists, so return values need detailed description only at a summary level, which the description provides. With one optional parameter and full annotation coverage, the agent has what it needs to call this correctly; only an explicit use-case cue is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the parameter's meaning, and it does: 'with a project ID, its keyword and competitor limits' explains both that projectId is optional and what it unlocks. It does not state the expected format (UUID) but the schema enforces that via pattern/format, so the gap is minor.

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 names a specific verb ('Returns') and enumerates the exact resources: API-export access, monthly export usage/limit/reset, and per-project keyword/competitor limits. An agent can tell precisely what comes back. It does not explicitly distinguish itself from get_capabilities, the only sibling with any conceptual overlap, 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 Guidelines3/5

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

Usage is implied (check export quota/reset timing or project limits) but never stated as 'use this when X'. The closing clause 'Does not change the plan or purchase credits' establishes a useful negative boundary so the agent won't expect an upgrade path, but no alternative tool or prerequisite is named.

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

get_projectGet ProjectB
Read-onlyIdempotent
Inspect

Returns a project's app metadata, linked store-app identifiers, source screenshot counts, content-type variants, active variants and dashboard/editor links. projectId and generationId identify the same project. Read-only.

NameRequiredDescriptionDefault
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the trailing 'Read-only.' merely restates structured data. The description does add useful behavioral context about the shape of the payload (variants, counts, links) and the projectId/generationId identity, but says nothing about failure modes or permissions, so it adds moderate value above 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?

Two compact sentences, front-loaded with the return contract, then the parameter alias note. The only wasted element is the trailing 'Read-only.' sentence, which duplicates the readOnlyHint annotation.

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, the description need not explain return values, yet it still summarizes them helpfully, and it resolves the only ambiguity in the single input parameter. It lacks any guidance on when this read is appropriate versus sibling lookups, which is the one remaining gap for an otherwise simple, well-covered 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 0% for the single required parameter, so the description carries the burden — and it delivers a genuinely non-obvious fact: 'projectId and generationId identify the same project', meaning a generation ID value is acceptable even though no such parameter exists in the schema. It does not restate the UUID format, but that is already machine-readable in the 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?

The description gives a specific verb ('returns') and resource ('a project's ...') and enumerates exactly what comes back: app metadata, store-app identifiers, screenshot counts, content-type and active variants, dashboard/editor links. It implicitly separates itself from list_projects by operating on a single project, but never names a sibling tool explicitly, 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 Guidelines2/5

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

There is no statement of when to call this rather than list_projects or get_store_listing/get_layout, and no preconditions or exclusions are given. The agent must infer usage purely from the returned-field list.

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

get_promo_videoGet Promo VideoB
Read-onlyIdempotent
Inspect

Returns a saved promo-video configuration, source/available languages and a same-target editing read receipt. Transition names are normalized to content-motion semantics. Reading a translation does not change it.

NameRequiredDescriptionDefault
languageNoLanguage code of the promo-video translation (e.g. 'de'). Omit for the source language. get_promo_video lists availableLanguages.
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead. Project / generation UUID.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely useful output-behavior detail ('Transition names are normalized to content-motion semantics') and describes the read receipt, though 'Reading a translation does not change it' largely restates the readOnly hint.

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-loaded with what is returned. Some phrasing is jargon-heavy ('same-target editing read receipt', 'content-motion semantics') but each sentence carries content.

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?

An output schema exists so return shape needn't be fully spelled out, and the safety profile is in annotations. However, for a 4-param tool with a rich set of promo-video siblings, the absence of any selection guidance leaves a real 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 75% and the schema itself documents language, projectId, and generationId with usage notes. The description adds no parameter-level meaning (e.g. nothing about variantId, the only undescribed param), 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 uses a specific verb (Returns) and resource (saved promo-video configuration) and enumerates the payload (configuration, source/available languages, editing read receipt). It is clear what the tool does, but it does not distinguish itself from close siblings like get_promo_video_generation or preview_promo_video.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not guidance, and no mention of the obvious alternatives (get_promo_video_generation, preview_promo_video, get_promo_video_export). 'Reading a translation does not change it' implies a read context but doesn't route the agent between tools.

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

get_promo_video_exportGet Promo Video ExportA
Read-onlyIdempotent
Inspect

Returns the status and progress of a promo-video export. Completed jobs include a short-lived download URL; another status read can refresh the URL. Failed exports are refunded. Read-only.

NameRequiredDescriptionDefault
exportIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the closing 'Read-only' is redundant. Beyond that, the description genuinely adds behavior an agent cannot get from structured fields: URLs are short-lived and refreshable via re-read, and failed exports are automatically refunded, which informs retry decisions.

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 action, then the two operational details that matter (URL expiry, refunds). No filler 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?

An output schema exists so return-field explanation is unnecessary, and the description covers the salient lifecycle states (completed/failed) plus refund behavior. The gap is the un-aided exportId parameter, which is the only thing an agent must supply.

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?

The single parameter exportId has 0% schema description coverage — no description, no stated format intent beyond a uuid pattern. The tool description never mentions the identifier at all, so the agent gets no help on where the exportId comes from (presumably the export_promo_video response) or what happens on an unknown/stale id.

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: returns status and progress of a promo-video export. This is clearly distinguishable from the mutation siblings export_promo_video and generate_promo_video, though it never names them or the related get_promo_video / get_promo_video_generation readers, leaving the agent to infer which 'get' to call.

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?

Implicit guidance is present — 'another status read can refresh the URL' tells the agent polling is the intended pattern. However there is no explicit statement of when to prefer this over get_promo_video or get_promo_video_generation, nor any note about how the exportId is obtained.

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

get_promo_video_generationGet Promo Video PreparationA
Read-onlyIdempotent
Inspect

Returns the status of an existing promo-video preparation job and the prepared picker when complete. Read-only; does not generate again, apply a candidate, replace a variant or export a video.

NameRequiredDescriptionDefault
projectIdYes
generationJobIdYes
replaceVariantIdNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false; the description's "Read-only; does not generate again..." largely restates that safety profile. It does add genuine value by naming the completed return payload (the prepared picker) and by ruling out apply/replace/export side effects, but says nothing about behavior for an unknown or failed job id, nor about polling cadence — the things an agent actually needs for a polling 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?

Two sentences, zero filler, with the positive statement of what is returned front-loaded ahead of the negative scope disambiguation. Every clause earns its place by either describing output or excluding a confusable sibling.

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?

The output schema exists, so the description doesn't owe the agent return-field documentation, and it correctly names the key payload (prepared picker). But with three undocumented parameters at 0% coverage and no guidance on polling vs. one-shot status checks, the definition is thin for a job-status tool with 3 required/optional params.

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% and the description names no parameters at all. projectId and generationJobId are inferable from their names, but replaceVariantId on a declared read-only status call is genuinely puzzling and completely unexplained — an agent has no way to know when to pass it or what it changes about the response.

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: returns status of an existing promo-video preparation job, plus the prepared picker on completion. The closing clause names the four sibling operations it is NOT (generate, apply candidate, replace variant, export), so an agent can separate it from generate_promo_video, apply_promo_video_candidate, clear_promo_video and export_promo_video 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?

"of an existing ... job" and "when complete" make clear this is a status/poll call on a job id you already hold, and the exclusion list implicitly routes the agent to the mutation siblings. What's missing is explicit sequencing advice — nothing says to call generate_promo_video first, or whether to poll repeatedly until the picker appears.

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

get_release_renderGet Release RenderA
Read-onlyIdempotent
Inspect

Returns the status, progress and available download artifacts of an existing screenshot render job. Read-only.

NameRequiredDescriptionDefault
renderIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

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, idempotentHint=true, and destructiveHint=false. The description repeats 'Read-only' but does add useful behavioral context by saying it returns status, progress, and available download artifacts; it does not discuss auth, rate limits, or polling 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?

The description is two short sentences with the core purpose front-loaded. 'Read-only' is redundant with annotations but does not create clutter significant enough to reduce conciseness.

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

Completeness4/5

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

For a simple single-parameter read-only getter with rich annotations and an output schema, the description is largely complete: it states the returned information and safety profile. The main remaining gap is that it does not explain how to obtain the renderId or whether callers should poll.

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%, and the sole required parameter renderId is never named or explained in the description. The phrase 'existing screenshot render job' gives a broad sense of what the ID refers to, but not enough to compensate for the missing schema 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 names a specific verb and resource: it returns status, progress, and download artifacts for an existing screenshot render job. The word 'existing' distinguishes it from sibling creation tools like render_screenshots, and 'download artifacts' distinguishes it from list/view screenshot tools.

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 'existing screenshot render job': the agent should use it when it already has a render job to inspect. However, the description does not explicitly mention when to use this versus render_screenshots, list_screenshots, or view_screenshot, nor does it explain where the renderId comes from.

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

get_store_listingGet Store Listing TextA
Read-onlyIdempotent
Inspect

Returns saved App Store/Google Play listing copy, insights and translations for the active or specified listing variant. Returns asoCopy:null if none exists. Does not publish or modify store listings.

NameRequiredDescriptionDefault
projectIdYes
variantIdNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavior beyond annotations by stating that it returns saved data and that asoCopy is null when none exists.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary return value and scope. The null-case detail is short and earns its place by setting expectations.

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

Completeness4/5

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

An output schema exists and annotations already cover safety, so the description does not need to explain return values or read-only behavior. It covers the core retrieval scope and null case, though parameter documentation remains thin.

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 compensate. It clarifies that variantId can specify a listing variant and that the active variant is used otherwise, but it does not explain projectId or the UUID expectations for either parameter.

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: it returns saved App Store/Google Play listing copy, insights, and translations for the active or specified variant. The phrase 'Does not publish or modify store listings' clearly distinguishes it from generate_store_listing and update_store_listing.

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 signals retrieval of saved listing data and explicitly excludes publishing or modifying, which helps route the agent away from mutation siblings. However, it does not name alternatives such as generate_store_listing or update_store_listing or state exactly when each should be used.

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

get_websiteGet WebsiteA
Read-onlyIdempotent
Inspect

Read the saved website for a variant, including its legal pages, links and SEO. Website design, domains and publishing stay in the dashboard.

NameRequiredDescriptionDefault
projectIdYes
variantIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description adds real value by scoping the returned content and warning that design/domain/publishing data is absent, but it says nothing about permissions, rate limits, or behavior when no website has been saved yet.

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 zero filler. The positive scope comes first and the negative scope second, which is the right order for an agent scanning for capability.

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

Completeness5/5

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

An output schema exists, so return values need no prose, and annotations cover safety and idempotency. For a two-parameter read tool the description supplies the content scope and the exclusion boundary — everything an agent needs to decide 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?

Schema description coverage is 0%, so the description carries the burden — and it only gestures at variantId via "for a variant", never mentioning projectId or that both are required UUIDs. The parameter names are largely self-explanatory and the UUID format is enforced in the schema, so the gap is modest rather than severe.

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

Purpose5/5

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

States a specific verb ("Read") and resource ("the saved website for a variant") and enumerates the payload scope: legal pages, links and SEO. The second sentence draws a boundary against dashboard-only concerns (design, domains, publishing), which lets an agent separate this from sibling tools like get_layout or save_website_pages 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 Guidelines3/5

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

Usage is implied by "saved website for a variant" and the note that design/domains/publishing live in the dashboard tells the agent what this tool will NOT return. However, no alternative tool is named for the excluded cases and no precondition (e.g., variant must already have a saved website) is stated.

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

import_stock_photoImport Stock PhotoAInspect

Imports a selected Pexels or Unsplash photo into project storage and returns its relative path and photographer attribution. Does not apply the image to a design. Attribution is part of the imported asset metadata.

NameRequiredDescriptionDefault
providerYes
projectIdYes
importInputYesThe importInput object of one search_stock_photos result.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds real value beyond that: it states the return payload (relative path and photographer attribution) and that attribution is persisted into asset metadata, which is not derivable from annotations. It stops short of saying what happens on repeated imports or whether storage quota applies.

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 its scope, followed by the exclusion and one non-obvious behavioral fact. No filler and nothing repeated from the schema or annotations.

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

Completeness4/5

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

An output schema exists, so return values need not be spelled out, and the annotations cover the mutation profile. The description adds the key side effect (asset written to project storage, not applied to a design) and attribution persistence. The only real gap is the origin/format of importInput, which is left entirely to the schema.

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

Parameters2/5

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

Schema description coverage is only 33%, so the description needs to carry parameter meaning and does not. It never explains projectId, and it does not clarify that importInput is an opaque passthrough object taken verbatim from a search_stock_photos result — that critical detail lives only in the nested schema description. The mention of "Pexels or Unsplash" merely restates the provider enum.

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 ("Imports a selected Pexels or Unsplash photo into project storage") and scopes it further by saying it "Does not apply the image to a design." It is clear what the tool does, though it never names the upstream sibling (search_stock_photos) that produces the importInput, so the differentiation is by scope rather than by sibling name.

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 exclusion "Does not apply the image to a design" gives one useful when-not signal, implying a separate apply/placement step. However, there is no positive routing guidance (e.g., "use after search_stock_photos" or "use upload_asset for local files"), so the agent must infer the workflow from the schema.

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

list_asset_foldersList Asset FoldersB
Read-onlyIdempotent
Inspect

Lists screenshot folders with explicit device, platform and optional locale bindings. Folder names do not imply language. Read-only.

NameRequiredDescriptionDefault
offsetNo
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so 'Read-only' largely restates structured data. The genuinely additive piece is the caveat that folder names do not imply language — useful behavioral context — but nothing is said about pagination/offset behavior or the shape 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.

Conciseness4/5

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

Three short sentences, front-loaded with the core action and ending on the constraint. 'Read-only' is the only sentence that does little work given the annotations.

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?

An output schema exists so return values need no explanation, and annotations cover the safety profile. However, with zero schema description coverage on projectId and offset, an agent gets no help on the pagination parameter from any source.

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% for 2 parameters, so the description needed to carry the burden and does not: projectId is never mentioned and the offset parameter's pagination role is unstated. Only the abstract notion of device/platform/locale bindings hints at what is being filtered.

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?

Specific verb (Lists) plus resource (screenshot folders) with a qualifier about bindings. It implicitly differentiates from the create/rename/delete asset folder siblings, though it never names them or contrasts scope.

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 verb; there is no statement of when to call this versus list_assets, list_screenshots or the other folder siblings, and no prerequisites (e.g. project membership) are mentioned.

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

list_assetsList AssetsA
Read-onlyIdempotent
Inspect

Returns an embedded library of a project's screenshots, illustrations, icons, backgrounds, panoramas, recordings, music, clips and fonts. Listing is read-only; Upload is an explicit widget action. Results contain relative storage paths; signed preview links remain private widget data. Each folder is limited to its newest 100 files and reports truncation.

NameRequiredDescriptionDefault
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false), but the description adds non-obvious behavior the annotations cannot: results contain relative storage paths, signed preview links stay private widget data, and each folder is capped at its newest 100 files with truncation reported. That truncation cap is exactly the kind of limit an agent needs before assuming completeness of results. It does not describe pagination or how to retrieve files beyond the 100 cap.

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 with the resource enumeration front-loaded, followed by the read/write distinction, then the return-shape and truncation caveats. No filler. The 'Upload is an explicit widget action' clause is slightly oblique but earns its place by preempting a read/write confusion.

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

Completeness4/5

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

An output schema exists, so return structure need not be explained, yet the description still adds useful return semantics (relative paths, private signed links) plus the 100-file-per-folder truncation rule. Combined with annotations covering safety and idempotency, an agent has enough to call this correctly. The only real gap is disambiguation from the many sibling list_* tools.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate and it largely does not — projectId is never mentioned, though 'a project's screenshots' implies project scoping. The schema itself supplies the uuid format and pattern, which limits the damage. With a single required parameter, an agent can still call this correctly, so 3 rather than lower.

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 (Returns/List) and enumerates the resource precisely: screenshots, illustrations, icons, backgrounds, panoramas, recordings, music, clips and fonts, scoped to a project. An agent can tell this is the broad project asset library rather than a single-type list. It stops short of naming the overlapping siblings (list_screenshots, list_illustrations, list_fonts, list_asset_folders), so the boundary is inferred rather than declared.

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?

'Listing is read-only; Upload is an explicit widget action' clarifies the read/write split versus upload_asset, but only obliquely. There is no explicit statement of when to call this versus list_screenshots, list_illustrations, list_fonts or list_asset_folders, which are the real ambiguity for an agent given the large sibling set. Usage is implied by the enumerated asset types rather than guided.

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

list_export_formatsList Export FormatsA
Read-onlyIdempotent
Inspect

Lists screenshot export formats, device families, platforms, authored dimensions and available resolution presets. Read-only.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the trailing 'Read-only.' restates structured data rather than adding to it. The only added value is disclosing what categories of data the response contains, which is partially redundant with the 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?

Single front-loaded sentence that leads with the verb and the resource, followed by a short qualifier. The 'Read-only.' fragment is the one sentence that does not earn its place, since annotations cover it.

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

Completeness5/5

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

Zero-parameter tool with an output schema and rich annotations; the description covers the domain of results well enough that an agent knows exactly what it is asking for. 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?

The tool takes zero parameters, so the baseline is 4; there is nothing parameter-wise the description could clarify that the empty schema does not. No incorrect or missing parameter discussion.

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 ('Lists') and resource ('screenshot export formats'), then enumerates the exact facets returned (device families, platforms, authored dimensions, resolution presets). This is far more concrete than a sibling like get_capabilities, though it never names which sibling it complements.

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?

No explicit when-to-use or when-not-to-use statement, and no prerequisite framing such as 'call before render_screenshots to discover valid dimensions'. Usage is only implied by the enumerable contents, so an agent must infer that this is a discovery/reference call.

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

list_fontsList FontsA
Read-onlyIdempotent
Inspect

Lists built-in, Google and project-uploaded font families with their available weights. Layout validation accepts these exact family names in rich-text font fields. Read-only.

NameRequiredDescriptionDefault
limitNo
queryNoCase-insensitive substring filter, e.g. 'serif' or 'grotesk'.
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint/idempotentHint/openWorldHint, so the trailing 'Read-only' earns no credit. The description does add genuinely useful context — that results include weights per family and that names are validated against layout rules — but says nothing about result volume, pagination, or how `limit` behaves.

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 sentences: what it returns, why the names matter, and safety. Front-loaded and free 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?

An output schema exists, so return shape needn't be described, and the description covers the important cross-tool relationship (family names consumed by layout rich-text fields). The only real gap is that two of the three parameters go unexplained in both schema and description.

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 only 33% (only `query` is documented). The description never mentions `projectId` or `limit`; the scoping of results to a project is only implied by the phrase 'project-uploaded'. With the schema under-documented here, the description should have compensated and does 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?

Specific verb + resource ('Lists ... font families') with explicit scope: built-in, Google, and project-uploaded families, plus their available weights. An agent can immediately tell this is the font-catalog tool and no other sibling covers font enumeration.

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 sentence 'Layout validation accepts these exact family names in rich-text font fields' tells the agent why and when to call it (to obtain valid family names before setting font fields). No explicit exclusions or alternative tools are named, 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_graphics_translationsList Social Graphics LanguagesC
Read-onlyIdempotent
Inspect

Lists source and available translation languages for a social-graphics variant. Read-only.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the closing 'Read-only.' adds nothing new. The description says nothing about behavior the annotations don't cover, such as what happens with zero or multiple IDs, or the fallback source language when no translation exists.

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 short sentences with the substantive scope front-loaded; appropriately sized for a simple list tool. The trailing 'Read-only.' is redundant with annotations and is the one line that fails to earn 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?

An output schema exists, so return values needn't be explained, and the read-only profile is covered by annotations. However, with zero required parameters and three UUID inputs, an agent is left unsure whether variantId is mandatory in practice and which of the alias IDs to supply — a real gap for correct invocation.

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?

Coverage is 67% and variantId has no schema description at all, yet the description never mentions parameters. It doesn't clarify that projectId and generationId are interchangeable aliases of the same UUID, nor that variantId selects the variant whose languages are listed — the single most important input decision here.

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 with scope: source plus available translation languages for a social-graphics variant. That distinguishes it from the broader list_translations sibling by narrowing to the graphics/variant domain, though it never names the sibling explicitly.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus list_translations, translate_graphics, or get_graphics. The phrase 'for a social-graphics variant' only implies context; no prerequisites, exclusions, or alternatives are given.

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

list_illustrationsList IllustrationsB
Read-onlyIdempotent
Inspect

Lists shared-library illustrations or illustrations uploaded to a specified project. Read-only.

NameRequiredDescriptionDefault
searchNoSearch term to filter by name.
sourceYes'shared' for the shared library, 'project' for project-uploaded illustrations.
categoryNoFilter shared library by category (e.g. 'Icons', 'Sticker', 'Illustrations').
projectIdNoRequired when source is 'project'.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so 'Read-only' merely restates structured data and earns no credit. The description adds nothing beyond that — no pagination, result caps, ordering, or authentication context — leaving the behavioral picture entirely to 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?

Two short sentences with the scoping information front-loaded and no filler. The trailing 'Read-only' sentence duplicates the annotations and does not earn its place, which keeps it from a 5.

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

Completeness4/5

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

An output schema exists and all four parameters are fully documented in the schema, so return values and argument semantics need no elaboration here. For a simple filtered-list tool the description covers what it must, though it omits any note on result size or ordering that an agent might reasonably want.

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%, with source enum values and the projectId conditional ('Required when source is project') documented inline, so the baseline of 3 applies. The description mentions the two illustration sources but adds no syntax, defaults, or interaction detail beyond what the schema already states.

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 names a specific verb ('Lists') and a clearly bounded resource ('illustrations'), and it distinguishes the two scopes (shared library vs. project-uploaded) that no other sibling covers. It does not explicitly contrast itself with adjacent tools like list_assets or get_graphics, so it falls short of a 5.

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

Usage Guidelines2/5

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

The only usage signal is 'Read-only,' which is a safety trait rather than guidance. There is no statement of when to reach for this over list_assets, list_screenshots, or get_graphics, and no prerequisites or exclusions are given; the source-selection logic lives entirely in the schema.

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

list_keyword_competitorsList Keyword CompetitorsA
Read-onlyIdempotent
Inspect

Lists the competitor apps currently tracked for a project and store, including available limit metadata. Read-only.

NameRequiredDescriptionDefault
projectIdYes
storeProviderNoWhich store. Defaults to the project's primary store (its linked app; get_project shows primaryStoreProvider), else the App Store.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

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, idempotentHint=true, and destructiveHint=false, so the trailing 'Read-only.' merely repeats structured data. The one genuine addition is 'including available limit metadata', which tells the agent the response carries quota/limit context. No mention of pagination, behavior when no competitors are tracked, or ordering.

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 sentence with the resource and scope front-loaded, followed by one short pointer about limit metadata. Nothing is redundant except the redundant 'Read-only.' tail, which is minor.

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

Completeness4/5

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

With an output schema present and annotations covering the safety profile, the description only needs to convey scope and selection intent, which it does for a simple two-parameter list tool. The gap is the undocumented projectId and the lack of guidance on default-store behavior at the description level.

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%: storeProvider is documented with its default fallback, while projectId has only a uuid pattern and no prose. The description's 'for a project and store' mirrors the two parameters but adds no format, requiredness, or fallback detail beyond the schema, so the baseline 3 holds.

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 ('Lists the competitor apps currently tracked') plus the scoping dimensions (project, store) and an extra output detail (limit metadata). This is unambiguous, though it doesn't explicitly name the sibling it differs from (e.g., suggest_keyword_competitors or add_keyword_competitors).

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?

'Currently tracked' implicitly signals this reads existing competitors rather than suggesting or adding them, which is enough to distinguish from suggest_keyword_competitors. However, there is no explicit when-to-use statement, no mention of prerequisites such as a project having competitors configured, and no alternative named.

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

list_keywordsList Tracked KeywordsC
Read-onlyIdempotent
Inspect

Returns tracked keywords, ranks, changes, difficulty/traffic estimates, sparkline data, competitor positions, summary metrics and plan limits. trackedKeywords includes row IDs across stores and countries. Read-only.

NameRequiredDescriptionDefault
projectIdYes
storeProviderNoWhich store. Defaults to the project's primary store (its linked app; get_project shows primaryStoreProvider), else the App Store.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so 'Read-only' is a restatement rather than added value. The one genuinely additive note is that trackedKeywords rows carry store and country IDs, implying cross-store aggregation — but there is no disclosure of result limits, paging, or what happens when no keywords are tracked.

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?

Two sentences and front-loaded, but the bulk of the first sentence is a nine-item inventory of return fields that the output schema already defines, which is low-value padding. The one non-redundant clause (row IDs across stores and countries) is buried mid-sentence.

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?

Because an output schema exists, the return-value enumeration is mostly wasted effort, while the information an agent actually needs — paging/limits, behavior for projects with zero keywords, and the relationship to sibling keyword tools — is absent. For a two-parameter read tool this is minimally adequate rather than complete.

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 50%: storeProvider is documented in the schema (defaults to the project's primary store), but projectId has none. The description never mentions either parameter, so it fails to compensate for the half-documented schema, and it says nothing about how store filtering shapes the returned rows despite alluding to cross-store data.

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 clear verb+resource ('Returns tracked keywords') and enumerates the payload, so the agent knows exactly what it gets. It does not differentiate itself from adjacent siblings like get_keyword_history or list_keyword_competitors, which is the only thing keeping it off a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of prerequisites (a project must have tracked keywords), and no pointer to the obvious alternatives (get_keyword_history for time series, list_keyword_competitors for competitor detail). The reader must infer the calling context entirely.

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

list_mockup_mediaList Mockup MediaA
Read-onlyIdempotent
Inspect

Lists image and video assets in the project's mockups storage folder, with available duration, dimensions, frame rate and export-safety metadata. General project screenshots outside that folder are not included. Read-only.

NameRequiredDescriptionDefault
projectIdYes
includeMetadataNoRead each video's length, size and cloud-render suitability (slower for many videos).

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered structurally. The description adds useful behavioral context about the mockups-folder scope, the excluded screenshot content, and the kinds of metadata returned, though it does not mention pagination or authorization requirements.

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 definition is two short sentences with the folder scope front-loaded and no wasted text. The exclusion and read-only note are concise and useful.

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

Completeness4/5

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

With an output schema present and rich read-only annotations, the description is largely complete for this simple listing tool. The main minor gap is that it does not clarify includeMetadata behavior, though the schema documents that parameter adequately.

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 50%: includeMetadata is documented in the schema, while projectId is only conveyed through its UUID format. The description adds no direct explanation of either parameter, so it does not compensate much beyond what the schema already provides.

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

Purpose5/5

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

The description gives a specific verb and resource: listing image and video assets in the mockups storage folder. It also scopes this precisely against a likely alternative by stating that general project screenshots outside that folder are not included.

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 implies when to use this tool by describing the exact folder scope and excluding general project screenshots. However, it does not explicitly name a sibling alternative such as list_screenshots or list_assets for the excluded content.

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

list_mockup_presetsList Mockup PresetsB
Read-onlyIdempotent
Inspect

Returns supported device models/finishes, fitted scene presets, motions, bundled music, output ratios, transitions, easing values, validation bounds, export limits and recording requirements. An optional project also supplies its screenshot theme colors. Read-only.

NameRequiredDescriptionDefault
projectIdNoOptional generation UUID to also fetch theme colors.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, so the trailing "Read-only." is pure repetition and earns nothing. The one behavioral detail added is that passing a projectId also pulls that project's screenshot theme colors, though the schema description says the same. No disclosure of response size, caching, or cost for a large bundled reference payload.

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

Conciseness3/5

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

The opening sentence is a ten-item comma-separated wall with no grouping or hierarchy, making it hard to scan. It is front-loaded and free of filler, but a bulleted or grouped structure would communicate the same content far more efficiently for a tool that is fundamentally a catalogue lookup.

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?

An output schema exists, so enumerating return contents at this length is partly redundant with structured data that already enumerates them. What is genuinely missing is the connective tissue: which sibling operations consume these presets and whether the values are stable across calls or vary per project.

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?

There is a single optional parameter with 100% schema coverage, and the description merely restates the schema's own note about fetching theme colors. Baseline 3 applies since the schema already does the full job; the description adds no format, constraint, or failure-mode nuance.

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 ("Returns") and enumerates the specific resource categories: device models/finishes, scene presets, motions, music, ratios, transitions, easing, validation bounds, export limits, recording requirements. An agent knows precisely what data comes back. It does not, however, distinguish itself from near-neighbours like list_export_formats or get_editing_reference that cover overlapping ground.

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?

There is no explicit when-to-use or when-not-to-use statement, nor any named alternative. Usage is only implied: the mention of "validation bounds" and "recording requirements" suggests this is the reference lookup before create_mockup_animation or export_mockup_animation, but the agent must infer that routing itself.

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

list_projectsList ProjectsA
Read-onlyIdempotent
Inspect

Lists the authenticated user's existing AppLaunchFlow projects and returns an embedded project list with icons. Choosing a project supplies its ID to the chat without creating or changing a design.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the bar is lower; the description reinforces this by stating the call neither creates nor changes a design, and notes the result is an embedded list with icons. It adds no auth or scale/limit details, but the key behavioral risk (accidental mutation) is explicitly cleared.

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

Conciseness5/5

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

Two sentences, front-loaded with what is listed, followed by the one behavioral fact an agent would otherwise guess at (no design side effects). No filler or restated title 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?

With an output schema present, return values need not be spelled out, and annotations cover the safety profile; the description supplies the remaining useful context (scoping to the authenticated user, downstream use of the ID). Only a brief pointer to sibling tools like get_project would make it fully complete.

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

Parameters4/5

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

The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. The schema also has 100% coverage, so no compensation is required.

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 with scope: 'Lists the authenticated user's existing AppLaunchFlow projects' and adds the return shape (embedded project list with icons). It does not explicitly differentiate from get_project (singular fetch) or create_project/delete_project, leaving that to the naming convention.

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?

'Choosing a project supplies its ID to the chat without creating or changing a design' gives clear context for why an agent would call this and what to do with the result. It stops short of naming alternatives (e.g., get_project for details on one project) or stating when not to use it.

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

list_screenshotsList ScreenshotsA
Read-onlyIdempotent
Inspect

Lists project-relative screenshot paths for one device type and platform. Empty projects can return sample screenshots explicitly marked isSample. Read-only.

NameRequiredDescriptionDefault
platformNo
projectIdYes
deviceTypeNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint false, no open world), so the description's real contribution is the empty-project fallback behavior: sample screenshots returned and explicitly flagged as isSample. That is genuine behavioral disclosure an agent could not get from annotations. It stops short of stating error cases (e.g., unknown projectId) or whether paths are absolute or relative to the project root beyond the 'project-relative' hint.

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 primary action and scope, then the edge-case behavior, then the safety note. Nothing is repeated and no sentence is wasted.

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?

An output schema exists, so return value shape need not be explained, and annotations cover safety. What remains missing for correct invocation is parameter optionality and filtering semantics, which the schema does not describe and the description does not clarify. Adequate but with a clear 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%, so the description must compensate, yet it only gestures at deviceType and platform without saying they are optional, whether results are intersected or unioned when both are supplied, or what happens when they are omitted. projectId, the only required parameter, is not mentioned at all. Enums in the schema do carry the allowed values, which keeps this from dropping lower.

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 ('Lists project-relative screenshot paths') plus a scope constraint ('for one device type and platform'). That scope helps separate it from the many sibling list/preview/view screenshot tools, but it never names the closest sibling (list_source_screenshots) that an agent would most likely confuse it with.

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

Usage Guidelines3/5

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

The 'one device type and platform' phrasing implies this is a filtered listing, but there is no explicit when-to-use or when-not-to-use guidance, and no mention of preview_screenshots, list_source_screenshots, or view_screenshot as alternatives. Usage is inferable 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_source_screenshotsList Template Source ScreenshotsA
Read-onlyIdempotent
Inspect

Lists real uploaded app screenshots across device types and platforms, with project-relative paths and preview metadata suitable as generation inputs. Does not add sample screenshots. Read-only.

NameRequiredDescriptionDefault
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

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, idempotentHint=true and destructiveHint=false, so the trailing 'Read-only' is largely redundant. The genuinely additive part is 'Does not add sample screenshots', which reassures the agent this call has no side effect on project content, plus a brief note on what comes back (paths, preview metadata). It does not cover ordering, empty-state behavior, or pagination.

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 short sentences, front-loaded with what is listed and followed by the exclusion and the safety note. No filler, though 'Read-only' duplicates the annotation and could have been spent on the projectId semantics instead.

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

Completeness4/5

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

An output schema exists, so return structure need not be described, and annotations carry the safety profile. The remaining gap is sibling disambiguation against list_screenshots and view_screenshot, which matters given the crowded list_* namespace.

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?

The single parameter projectId has zero schema description coverage and is not mentioned in the description at all. Its meaning is fairly self-evident from the name and the tool is scoped to one project, but the description does nothing to compensate for the missing schema documentation (e.g. that all returned paths are relative to that project).

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 ('Lists real uploaded app screenshots') and adds scope detail ('across device types and platforms', 'project-relative paths'). It hints at a distinction from other screenshot sources by emphasizing 'real uploaded' and 'Does not add sample screenshots', though it never names the sibling list_screenshots, so the boundary 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?

The phrase 'suitable as generation inputs' implies when this list is the right one to call, and 'Does not add sample screenshots' acts as a negative qualifier. But there is no explicit when-to-use statement or named alternative (list_screenshots, list_mockup_media), so an agent must infer the routing.

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

list_translationsList TranslationsB
Read-onlyIdempotent
Inspect

Lists available screenshot-layout translations and source-language metadata for a project or variant. Read-only.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the description's 'Read-only' line merely repeats structured data. It does add what category of data is returned (translations plus source-language metadata), but nothing about scope limits or behavior when no scope param is provided.

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 short sentences, front-loaded with the verb and resource, with no filler. The trailing 'Read-only' is redundant against annotations but does not bloat the text.

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?

An output schema exists, so return-shape explanation is not required, and the description covers the basics of what is listed. However, for a tool with three optional scope parameters, the omission of default/unscoped behavior leaves a real gap for correct invocation.

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

Parameters3/5

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

Schema coverage is 67% and the schema itself explains the projectId/generationId alias relationship, so the description's 'for a project or variant' adds little. The most important undocumented behavior—what happens when zero required params are supplied—is left entirely unstated.

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 ('Lists ... screenshot-layout translations and source-language metadata') and names the scoping entities (project or variant). This implicitly distinguishes it from the sibling list_graphics_translations, though that distinction is never made 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?

The phrase 'for a project or variant' gives minimal context about when the tool applies, but there is no guidance on when to prefer list_graphics_translations or translate_layouts, and no statement about whether a project/variant is required given that all three params are optional.

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

list_variantsList VariantsA
Read-onlyIdempotent
Inspect

Lists variants for one project content type, newest first, including active, ready and has_content status. Read-only.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
contentTypeYes
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the trailing "Read-only." adds nothing. The genuinely additive detail is the ordering (newest first) and the fact that active/ready/has_content status flags appear in results, but there is no mention of pagination, result caps, or what an empty list means.

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 with no waste: scope, ordering and returned state are packed in, and the read-only note is short. Nothing needs trimming or reordering.

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?

An output schema exists, so return values need not be explained, and read-only safety is covered by annotations. However, for a 3-parameter list tool with an alias pair (projectId/generationId) the description omits that the project selector is optional and how the two identifiers relate, which is the main thing an agent could get wrong.

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?

At 67% schema coverage the baseline is 3. The description only gestures at contentType ("one project content type") and never mentions projectId/generationId or their alias relationship, leaving the schema's own descriptions to do all the work on the two UUID 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?

The description names a specific verb and resource ("Lists variants") and adds scope ("for one project content type"), ordering ("newest first") and the status flags returned. It does not explicitly distinguish itself from siblings like get_project or list_screenshots, which keeps it from 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 only implied by the phrase "for one project content type" – there is no statement of when to call this versus get_project or list_screenshots, no prerequisites, and no note that projectId/generationId is optional while contentType is required. An agent can infer the intent but is given no routing guidance.

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

move_assetsmove assetsB
Destructive
Inspect

Groups screenshot assets in a folder with the same device and platform, or ungroups them when folderId is null. Storage paths and saved designs are unchanged.

NameRequiredDescriptionDefault
pathsYes
folderIdYes
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows it's a destructive mutation. The description adds valuable context by clarifying that storage paths and saved designs remain unchanged, which reassures about the scope of destruction. It also explains the grouping behavior by device and platform.

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 waste. The primary action and condition are front-loaded, and the side-effect clarification follows immediately. Every sentence 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?

Given a mutation tool with three required parameters and no schema descriptions, the description covers the core behavior and one key side effect. However, it omits what paths and projectId represent, and assumes the folder already exists without stating it. The output schema handles return values, so that's not a 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 explains the folderId parameter's nullable behavior (ungroups when null). The paths array (up to 50 asset paths) and projectId are not described at all, leaving significant 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?

The description states a specific verb (groups/ungroups) and resource (screenshot assets) with a clear condition (folderId null). It doesn't explicitly differentiate from sibling tools like create_asset_folder or delete_asset_folder, but the core action is clear.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no prerequisites mentioned, and no exclusions. The description only states what the tool does, not when an agent should choose it.

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

prepare_asset_uploadPrepare Asset UploadAInspect

App-only: authorizes one explicitly selected file upload to the project and returns its upload permission as private widget metadata. Does not transfer file bytes, replace files, apply a design or change the project icon.

NameRequiredDescriptionDefault
kindYes
filenameYes
platformNo
projectIdYes
sizeBytesYes
deviceTypeNo
contentTypeYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false; the description meaningfully extends this by clarifying that the call is non-destructive in practice (no bytes moved, no files replaced, no design applied, no icon changed) and that the result is a private widget-scoped permission. It does not, however, describe authorization scopes, expiry or reuse semantics of the returned permission, 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?

Two sentences, front-loaded with the authorizing behavior and followed by exclusions, with no filler. Every clause adds discriminating 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?

An output schema exists and the description explains the nature of the returned permission, so return values are adequately covered. For a 7-parameter tool with three enums and zero schema descriptions, though, a reader still lacks guidance on parameter intent and the follow-up call needed to actually upload the file, leaving the definition only minimally complete.

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% across 7 parameters (5 required, 3 with enums), so the description carries the full burden — but it mentions no parameters at all. It only hints that exactly one file is involved 'explicitly selected'; the meaning of kind, platform, deviceType, contentType, and the 25 MB sizeBytes ceiling is left entirely to bare schema constraints.

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: it authorizes one explicitly selected file upload to a project and returns the resulting upload permission. The closing negation ('does not transfer file bytes, replace files, apply a design or change the project icon') draws a sharp boundary between this tool and siblings like upload_asset, replace_asset, and apply_screenshot_style.

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 negative clauses imply when this tool is not the right choice, and 'authorizes one explicitly selected file upload' implies a pre-upload authorization step. However, the description never states the intended workflow, i.e. that it should be called before the actual byte transfer via upload_asset, nor any prerequisite or ordering constraint. Usage has to be inferred.

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

prepare_screenshot_stylesPrepare Personalized Screenshot StylesAInspect

Generates or reuses personalized screenshot-layout candidates for every phone, tablet and desktop template. Returns a catalogKey, templateIds and galleryUrl for cached V1/V2 picker display. Matching app context and source paths reuse cached candidates. Preparation does not create a variant or open a picker.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
deviceTypeNoInitial preview device. All three device layouts are prepared regardless. Defaults to phone.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead. Project/generation UUID.
selectedScreenshotPathsYes3-7 unique project-relative paths from list_source_screenshots, in the desired story order.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.2/5.0
Behavior4/5

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

With annotations present, the description still adds real value: it discloses the caching/reuse rule and that preparation produces no variant and opens no picker. There is mild tension with idempotentHint=false since cached candidates are reused, but that reflects reuse rather than true idempotency, so it reads as added nuance, not a contradiction. It does not mention auth or cost implications.

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 what the tool does, then the return payload, then the behavioral caveat. Nothing is wasted, though the catalogKey/templateIds/galleryUrl sentence partially duplicates the existing output schema.

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 full schema coverage, annotations, and an output schema, the remaining burden is small, and the description covers side effects and caching behavior. The one gap is that it never points to the sibling tool that consumes the prepared catalogKey/galleryUrl, leaving the next step implicit.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (including the 3-7 path ordering and deviceType's preview-only effect) are already documented in structured fields. The description only adds that source paths drive cache matching, which is marginal beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb+resource ("Generates or reuses personalized screenshot-layout candidates") scoped to all three device templates, which cleanly separates it from apply_screenshot_style, preview_screenshots and render_screenshots. The closing sentence explicitly states what it does NOT do ("does not create a variant or open a picker"), removing ambiguity about downstream effects.

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

Usage Guidelines4/5

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

It gives clear conditions for cache reuse ("matching app context and source paths") and clarifies the tool is preparatory, which implicitly routes the agent to a later apply step. However, it never names the actual follow-up sibling (e.g. apply_screenshot_style) and offers no explicit exclusion beyond the negative-side-effect note.

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

prepare_social_graphics_stylesPrepare Personalized Social Graphics StylesAInspect

Generates or reuses personalized layout candidates across supported social, store-creative and ad formats. Returns a catalogKey, templateIds and galleryUrl for cached picker display. Matching app context and screenshot paths reuse cached candidates. Preparation does not create a variant or open a picker.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.
primaryFormatNoFormat to preview first. Defaults to og.
selectedScreenshotPathsYes1-7 unique project-relative paths for app_store_header; 3-7 for other formats. Use paths from list_source_screenshots, in story order.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare a non-readonly, non-destructive, non-idempotent operation but say nothing about caching. The description adds real behavior: "Matching app context and screenshot paths reuse cached candidates," plus the explicit statement that no variant is created and no picker is opened. There is mild tension with idempotentHint=false (repeat calls sound cheap), but since the tool still writes cache state this is not a contradiction. Rate limits, permissions, and cache invalidation are unaddressed.

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 with the core action, the return payload, the caching rule, and the non-effects, front-loaded in that order. No filler. Minor cost: "app context" is an undefined concept that appears without explanation, and the returned fields are restated despite an output schema existing.

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

Completeness4/5

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

An output schema exists, so return values need not be explained here, and all four parameters are fully documented in the schema. The description covers the caching/reuse model and the explicit non-effects. What is missing is routing guidance to apply_social_graphics_style and its screenshot-style sibling, which matters for an agent choosing among the prepare/apply/browse triad.

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

Parameters3/5

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

Schema description coverage is 100% and each parameter carries its own description (including the 1-7 vs 3-7 path rules per format), so the baseline is 3. The description adds one genuinely extra data point — that matching screenshot paths drive cache reuse — but says nothing about how "app context" is derived or how projectId/generationId aliasing interacts with caching.

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?

Specific verb+resource: "Generates or reuses personalized layout candidates across supported social, store-creative and ad formats," which scopes it to the social-graphics family rather than screenshot styles. It also states the negative effect ("Preparation does not create a variant or open a picker"), which separates it from apply_social_graphics_style/create_variant. It never names the closest sibling, prepare_screenshot_styles, so the differentiation is inferred rather than spelled out.

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?

"Preparation does not create a variant or open a picker" is a useful when-not, implying this is a pre-step before apply_social_graphics_style or create_variant. However no alternative is named, and there is no statement of when to call this versus prepare_screenshot_styles or browse_social_templates. Usage is implied rather than guided.

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

preview_mockup_animationPreview Mockup AnimationA
Read-only
Inspect

Renders up to four frames of a saved mockup animation as PNG inspection images. times are timeline seconds within motionDuration, not normalized keyframe fractions. Does not modify the design.

NameRequiredDescriptionDefault
scaleNoSize relative to the export resolution (4:3 exports are 1440×1080; 0.5 → 720×540).
timesNoTimeline seconds to render, e.g. [0, 2.5, 5].
projectIdYes
variantIdNoMockup variant; omitted = the project's active one.

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 and destructiveHint=false, so 'Does not modify the design' largely restates structured data. The genuinely additive content is the clarification of the times unit, though the description does not explain how the PNGs are returned or why idempotentHint is false for a deterministic render.

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 output, then the one non-obvious parameter caveat, then the safety note. No 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 description should say more about the return value than 'PNG inspection images' — e.g. whether images come back inline, as URLs, or as asset references, and how the four-frame cap interacts with the times array. The unit clarification is good, but the return contract is thin.

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

Parameters4/5

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

Schema coverage is 75%, and the description adds real meaning the schema lacks: 'times are timeline seconds within motionDuration, not normalized keyframe fractions' resolves a genuine ambiguity in the times array. It does not touch scale or variantId, but those are already documented in the 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 and resource ('Renders ... frames of a saved mockup animation') plus the output form ('PNG inspection images'). It implicitly separates itself from export_mockup_animation via 'inspection images', but never names that sibling, so the differentiation is left to inference.

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 word 'inspection' hints at preview-before-export usage, but there is no explicit when-to-use, when-not-to-use, or named alternative such as export_mockup_animation or get_mockup_animation. The agent must infer the routing.

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

preview_promo_videoPreview Promo VideoA
Read-onlyIdempotent
Inspect

Renders one frame of a saved promo video as PNG for inspection. Selection supports a visible scene index plus relative position, or an absolute 30-fps frame. Defaults to the video's preview format. Unsaved changes are not included. Does not consume export allowance or modify the design.

NameRequiredDescriptionDefault
atNo
frameNo
scaleNoOutput size relative to the full format (default 0.5).
formatNocategory:size — appStore:{default,6.9,6.7,6.5,6.3}, ipad:{12.9,11}, social:{9:16,1:1,16:9}, creative:{header,search}.
languageNoLanguage code of the promo-video translation (e.g. 'de'). Omit for the source language. get_promo_video lists availableLanguages.
projectIdYes
variantIdNo
sceneIndexNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only and idempotent behavior, but the description adds genuinely new context: unsaved changes are not reflected, no export allowance is consumed, and the design is not modified. It does not describe the response payload (e.g. URL vs inline PNG), which is the remaining behavioral 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?

Four short sentences, front-loaded with what the tool does, followed by selection modes, defaults, and the safety/persistence caveat. No sentence 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, the description carries the return-value burden and says only 'as PNG' without indicating whether the result is a URL, binary, or reference. Everything else an agent needs to pick a frame is present.

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 38%, so the description needs to compensate; it does so for the two selection modes, explaining that a visible scene index plus relative position is one option while an absolute 30-fps frame is the other. It also notes the format defaults to the preview format. It says nothing about the interaction between 'at' and 'frame' when both are supplied, nor about scale or variantId.

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 ('Renders one frame of a saved promo video as PNG') plus the use case ('for inspection'). This clearly separates it from export_promo_video, generate_promo_video, and get_promo_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?

Says it is for inspection and that it 'does not consume export allowance or modify the design', which implicitly routes the agent here rather than to export_promo_video. It does not name the export sibling explicitly, so an agent must infer the exclusion.

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

preview_screenshotsPreview Rendered ScreenshotsA
Read-only
Inspect

Renders selected screens of a saved screenshot variant as inspection images using the export renderer. Supports one platform, device, size and language per request, including independent phone formats. At most ten screens. Images can be downscaled and are not store-delivery exports. Does not change saved designs.

NameRequiredDescriptionDefault
deviceNo
maxEdgeNoLongest edge of each returned image in pixels (default 1024).
screensNoScreen indexes (0-based). Defaults to every screen.
languageNoTranslation language; defaults to the project's source language.
platformNoStore look (device frame, Android size); defaults to the project platform.
projectIdYes
variantIdNoScreenshot variant; defaults to the active one.
displaySizeNo

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 (readOnly, non-destructive), and the description adds real value beyond them: 'Does not change saved designs' confirms no side effects despite using the export renderer, images may be downscaled, and output is inspection-only. Doesn't mention rate limits or return shape, but the key behavioral traits are disclosed.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the core action and scoping, then limits, then the no-mutation guarantee. Almost every clause earns its place; 'including independent phone formats' is slightly cryptic but not wasteful.

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

Completeness4/5

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

For a read-only render tool with no output schema, the description tells the agent what the output is (downscalable inspection images, not store exports), the per-request limits, and that designs are unchanged. Some param-level detail is missing but the calling agent has 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 moderate (63%) and the description adds the non-obvious cross-parameter constraint that only one platform/device/size/language may be used per request, which is not in the schema. The 'including independent phone formats' note adds meaning to device/displaySize. Undescribed params (device, displaySize, projectId) remain a minor 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?

Specific verb (renders) and resource (selected screens of a saved screenshot variant), plus a clear scoping note that output is inspection imagery rather than store-delivery exports. It distinguishes the output kind but does not explicitly contrast with the sibling render_screenshots, leaving that inference to 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?

The line 'not store-delivery exports' hints that render_screenshots is the delivery path, but it never names that sibling or states when to prefer each. Constraints like 'one platform, device, size and language per request' and 'at most ten screens' give usable context but are not framed as when-to-use guidance.

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

remove_keyword_competitorsRemove Keyword CompetitorsB
Destructive
Inspect

Removes specified competitor apps from a project's tracking in one store. Unknown app IDs are reported without changing tracking.

NameRequiredDescriptionDefault
appIdsYes
projectIdYes
storeProviderNoWhich store. Defaults to the project's primary store (its linked app; get_project shows primaryStoreProvider), else the App Store.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, non-idempotent, and non-read-only, so the safety profile is covered. The description adds a genuine behavioral detail beyond that: unknown app IDs are reported without altering tracking, hinting at partial-failure semantics. It remains slightly ambiguous whether the whole operation is skipped or just the unknown IDs.

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, action front-loaded, no redundant restatement of the title or name. 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?

An output schema and annotations cover return values and safety, and the unknown-ID note addresses one failure mode. But for a destructive, non-idempotent mutation with two undocumented parameters, the description is thin on which IDs apply and how to select the store.

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 only 33%, so the description should compensate but it adds no parameter meaning. It never mentions appIds (the things being removed, 1-50 items) or projectId, and does not mention storeProvider's default behavior, which only appears in the 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 and resource (removes competitor apps) plus a scope qualifier ('in one store') that implies storeProvider selection. It clearly implies the inverse of add_keyword_competitors, but never names that sibling to make the distinction explicit.

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 add_keyword_competitors, remove_keywords, or list_keyword_competitors, and no prerequisite context. The only usage-adjacent hint is the store-scoping phrase, which is incidental rather than instructional.

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

remove_keywordsRemove Tracked KeywordsA
Destructive
Inspect

Removes selected tracked keywords and permanently deletes their rank history. Selection supports row IDs or text with optional store/country scope. Unscoped text matches every store and country. Unknown IDs reject the batch without deleting anything.

NameRequiredDescriptionDefault
keywordsNo
countriesNoOnly remove keyword text in these countries.
projectIdYes
storeProviderNoOnly remove keyword text in this store.
trackedKeywordIdsNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4/5.0
Behavior4/5

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

Adds real value beyond the destructiveHint annotation: rank history is destroyed permanently, unscoped text fans out across all stores/countries, and unknown IDs cause an atomic batch rejection with no partial deletion. Does not mention any permission, rate-limit, or confirmation requirements for a destructive operation.

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, each carrying distinct information: what is deleted, how targets are selected, and the atomicity guarantee. The destructive consequence is front-loaded.

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

Completeness4/5

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

For a 5-parameter destructive mutation with an output schema available, the description covers the main behavioral risks an agent needs. The remaining hole is the interaction rule between the two selection arrays, which is the most likely source of a wrong call.

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?

With only 40% schema coverage the description must carry weight, and it does explain that selection comes from row IDs or text plus store/country scoping. However it never states whether keywords and trackedKeywordIds are mutually exclusive or what happens if both or neither are supplied, and projectId goes entirely unmentioned.

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 ('Removes selected tracked keywords') plus the irreversible side effect ('permanently deletes their rank history'). It does not explicitly differentiate from the sibling remove_keyword_competitors, so an agent must infer that this tool is the generic keyword remover while the sibling handles competitor lists.

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

Usage Guidelines4/5

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

Gives concrete selection semantics — ID-based vs text-based, optional store/country narrowing, and the important default that unscoped text matches every store and country. Missing an explicit statement about when to prefer trackedKeywordIds over keywords (mutual exclusivity) and no reference to alternative tools.

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

rename_asset_folderrename asset folderA
Destructive
Inspect

Renames a screenshot folder. Its ID, locale binding, asset storage paths and saved designs are unchanged.

NameRequiredDescriptionDefault
nameYes
folderIdYes
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false; the description adds genuine context by enumerating what is NOT affected, which is exactly the reassurance an agent needs before invoking a hint-flagged destructive mutation. It stops short of stating permission requirements or error behavior, but it materially supplements 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 short sentences, action front-loaded, followed by the scope disclaimer. No 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?

An output schema exists, so return values need not be explained, and the mutation's side-effect scope is covered. However, with three undocumented required parameters and no prerequisites or failure modes mentioned, the definition is incomplete for a destructive write 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 description coverage is 0% across three required parameters, so the description carries the burden of explaining them — yet it adds nothing about folderId, projectId, or the name constraints (1-60 chars). The phrase 'its ID' only loosely gestures at folderId.

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 ('renames') and resource ('screenshot folder'), and the second sentence delimits the exact scope of the change (ID, locale binding, storage paths, saved designs untouched). This clearly separates it from siblings like create_asset_folder, delete_asset_folder, and set_asset_folder_locale.

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 'unchanged' clause implies this is a pure metadata-label change, which helps an agent decide when it is appropriate, but there is no explicit when-to-use/when-not guidance and no named alternative for tasks like relabeling locale or moving contents.

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

render_graphicsRender Social GraphicsAInspect

Renders saved or derived social/store-creative layouts deterministically. Preview mode returns inspection images and does not consume export allowance. Export mode uses export allowance and returns native-size artifacts with required opacity, file type and file-size limits, plus ZIP output where applicable. Download links are short-lived. Does not modify saved layouts.

NameRequiredDescriptionDefault
modeNopreview
formatsYes
platformNo
languagesNoSaved graphics languages. Default: the source language.
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that preview is free of export allowance while export consumes it, that output is deterministic, that download links are short-lived, that exports are subject to opacity/file-type/file-size limits and may be ZIPped, and that saved layouts are not modified. Those quota, artifact-limit, link-lifetime and non-mutation facts are exactly what an agent needs before calling a non-readOnly, non-idempotent 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?

Four tight sentences, front-loaded with what it renders, then the mode trade-off, then output constraints and link lifetime. Every sentence carries distinct information; the closing 'Does not modify saved layouts' is a deliberate safety note, not 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, the description needn't explain return shapes, and it covers mode semantics, quota, limits and non-mutation well. The main remaining gap is how to identify the layout to render (variantId vs generationId/projectId), which the description never addresses despite being the highest-risk selection decision.

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 43%, but the description does add real semantic weight for the two enum parameters: it defines what 'preview' and 'export' actually mean in cost and output. It says nothing about variantId (undocumented in the schema too), projectId/generationId aliasing, platform, or languages, leaving several parameters to the schema alone.

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?

Specific verb+resource with scope: 'Renders saved or derived social/store-creative layouts deterministically', and it splits the tool into two named modes (preview/export). It does not name the neighbouring render/export siblings (render_screenshots, export_promo_video, export_mockup_animation), so an agent must infer the boundary from the 'social/store-creative' scope 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?

The description gives strong internal routing ('preview mode returns inspection images and does not consume export allowance' vs export consuming allowance), which effectively tells the agent when to pick each mode. However, it never says when to use this tool versus sibling render/export tools, and no prerequisites (variants must exist, project scope) are stated.

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

render_screenshotsRender ScreenshotsA
Idempotent
Inspect

Starts a render of saved screenshot translations for the active or specified variant. Supports preset or custom dimensions, independent phone-format layouts and at most ten screens per validated iOS package. Uses export allowance. Repeated requests with the same idempotencyKey reuse the original request.

NameRequiredDescriptionDefault
formatsYes
languagesYes
projectIdYes
variantIdNo
resolutionsNo
idempotencyKeyYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-read-only, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely new context: export-allowance consumption (a quota cost the annotations do not express), a hard limit of ten screens per validated iOS package, and which parameter enforces idempotency. It does not say what happens when the limit or allowance is exceeded.

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 sentences, front-loaded with the action and immediately followed by capabilities, limits, and cost. Dense but every clause carries information; the middle sentence packs three constraints together, which slightly hurts scannability.

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 six-parameter mutation with nested objects, the description covers the operational constraints an agent must know (quota, screen cap, idempotency) and an output schema exists to explain results. Missing only failure behavior and the preview-vs-render distinction.

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 whole burden and does well: it explains resolutions ('preset or custom dimensions'), variantId ('active or specified variant'), formats ('phone-format layouts'), languages ('screenshot translations'), and the idempotencyKey reuse rule. Only projectId is left unexplained, and 'independent phone-format layouts' is a slightly cryptic gloss for formats.

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: 'Starts a render of saved screenshot translations' for an active or specified variant. It is distinguishable from list/prepare tools, but it never names its closest sibling (preview_screenshots) or explains the relationship, which is the main ambiguity an agent faces here.

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 'Uses export allowance' and 'Starts a render', which hints this is the committing/consuming step rather than a preview, but no explicit when-to-use or when-not-to-use guidance is given. Nothing tells the agent when to pick this over preview_screenshots or render_graphics.

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

replace_assetreplace assetA
Destructive
Inspect

Globally replaces an asset, updates its saved-design references and permanently deletes the old storage object. The replacement affects every referenced design and cannot be undone.

NameRequiredDescriptionDefault
pathYes
projectIdYes
replacementPathYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, so the description earns credit for going further: it discloses that every referencing design is affected and that the old storage object is permanently removed. It stops short of noting preconditions (e.g., that replacementPath must already exist) or 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.

Conciseness5/5

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

Two tight sentences with the global scope and the irreversibility front-loaded. No filler and nothing redundant with the title.

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?

Safety profile and blast radius are well covered (annotations plus description), and an output schema exists so return values need no explanation. However, for a three-parameter destructive tool with zero schema documentation, the complete absence of parameter guidance leaves a real hole in whether the agent can call it correctly.

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 full burden for the three required parameters — and it explains none of them. An agent cannot tell from the text what distinguishes path (the target) from replacementPath (the source), nor why projectId is required.

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 ('Globally replaces an asset') and immediately scopes the operation as global rather than local, which separates it from siblings like move_assets, delete_assets, or upload_asset. The side effects named (reference updates, old object deletion) further pin down what 'replace' means here.

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 makes clear this is a sweeping, irreversible operation, which implicitly tells an agent to be cautious, but it never names an alternative or states the conditions under which one should be chosen (e.g., upload_asset for a new file, delete_assets for removal only). Usage is inferable rather than instructed.

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

save_graphicsSave Social GraphicsA
Destructive
Inspect

Replaces the supplied complete social-graphics layout data for one language. This is a whole-document save rather than a targeted field patch.

NameRequiredDescriptionDefault
graphicsYes
languageNoGraphics language (e.g. de, pt-BR). Omit for the source language. Use list_graphics_translations for the saved languages and translate_graphics to add one.
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.
socialTemplateIdYes
socialPrimaryFormatYesThe variant's default format (persisted).

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false; the description adds the crucial detail that existing layout data is replaced wholesale for that language, which tells the agent what gets overwritten. It stops short of saying whether formats or languages omitted from the payload are preserved or dropped, which matters for a destructive whole-document save.

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 with no filler, and the most consequential fact (whole-document replacement) is stated up front in sentence two of a very compact definition.

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?

An output schema exists so return values need not be described, and the core replace semantics are covered. However, for a destructive 7-parameter tool with partial schema coverage, the definition never clarifies partial-payload behavior, format coverage, or prerequisites, leaving real ambiguity.

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 57%, with language, projectId/generationId alias, and socialPrimaryFormat already explained in the schema. The description's phrase 'for one language' reinforces the language scoping but adds no format, bounds, or default semantics beyond what the schema states.

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: it replaces complete social-graphics layout data for one language. The second sentence correctly frames the operation as a whole-document save rather than a field patch. It does not, however, distinguish itself from close siblings like save_graphics_format, transform_graphics, or update_graphics_settings.

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 'whole-document save rather than a targeted field patch' line implies when this tool is appropriate, but there is no explicit routing to alternatives such as save_graphics_format for a single format or transform_graphics for derived versions. The agent must infer the choice from sibling names alone.

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

save_graphics_formatSave One Social Graphics FormatA
Destructive
Inspect

Saves one complete social or store-creative format layout for the specified variant and language. Hosted edits require a fresh same-format read receipt. The layout must contain exactly one screen at the format's authored canvas size. Other formats are preserved.

NameRequiredDescriptionDefault
formatYes
layoutYesComplete Layout object for this one format — the SAME shape screenshot layouts use, with exactly one entry in screens[] and canvasWidth/canvasHeight matching the format. Full field reference: read the resource applaunchflow://schema/layout.
languageNoGraphics language (e.g. de, pt-BR). Omit for the source language. Use list_graphics_translations for the saved languages and translate_graphics to add one.
projectIdNoAlias of generationId (the project id).
variantIdNo
readReceiptNoHosted connector only: pass the readReceipt returned by the immediately preceding get_graphics_format call.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

With annotations already declaring destructiveHint=true and readOnlyHint=false, the description adds meaningful behavior: it saves only one format, preserves other formats, and requires a fresh read receipt for hosted edits. It is clear about the single-screen constraint, though it does not spell out what happens to an existing layout for the target format.

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 three tight sentences with no filler. It front-loads the core action first, then gives the read-receipt prerequisite, then the layout constraint and preservation behavior.

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 complex 7-parameter save tool with nested layout objects and an output schema, this is largely complete: it covers scope, prerequisites, and key layout constraints. Minor omissions such as explicit alternative-tool routing and overwrite semantics for the target format keep it from 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 description coverage is 71%, so the schema already documents most parameters. The description adds value by clarifying that layout must contain exactly one screen at the format's canvas size and that readReceipt is for hosted use, but it leaves format enum details and the projectId/generationId alias relationship to the 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?

The description states a specific verb and resource: saves one complete social or store-creative format layout for a variant and language. It distinguishes this partial per-format save from a whole-graphics save by noting that other formats are preserved, though it does not name the sibling alternative explicitly.

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 important usage conditions—hosted edits need a fresh same-format read receipt and the layout must contain exactly one screen—but it does not explicitly say when to use this tool instead of save_graphics, save_layout, or the related apply/transform tools.

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

save_layoutSave LayoutA
Destructive
Inspect

Replaces complete saved screenshot layouts for the specified device sizes and language. Omitted formatLayouts preserves independent formats; an empty map resets them. Main layouts do not overwrite independent phone-format layouts.

NameRequiredDescriptionDefault
languageYes
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.
mobileLayoutYesComplete Layout object for the phone canvas. Shape documented in applaunchflow://schema/layout.
tabletLayoutYesComplete Layout object for the tablet canvas. Same shape as mobileLayout, different canvasWidth/canvasHeight.
desktopLayoutNoOptional complete Layout object for the desktop canvas. Same shape as mobileLayout.
formatLayoutsNoComplete phone-format override map. Keys include ios-duo-inner and ios-duo-outer. Omit to preserve; {} resets all formats to follow main.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds useful overwrite semantics: omitted formatLayouts preserves independent formats, an empty map resets them, and main layouts do not overwrite independent phone-format layouts.

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 three tight sentences with no waste. The primary replace behavior is front-loaded, followed by the key formatLayouts and layout interaction caveats.

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

Completeness4/5

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

Given the complex nested schema, destructive annotation, and presence of an output schema, the description covers the essential replace semantics and key edge cases. It could be more complete by naming sibling alternatives or permission requirements, but the core behavioral context is present.

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 75%, so the schema already documents most parameters and nested objects. The description adds some meaning around formatLayouts behavior and layout interaction, but most parameter details remain delegated to the 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?

The description states a specific verb and resource: it replaces complete saved screenshot layouts for specified device sizes and language. The scope is clear, but it does not explicitly distinguish this tool from related siblings such as sync_layout, transform_layout, or get_layout.

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 the replace/save semantics, and the description gives important edge-case behavior for formatLayouts. However, it does not explicitly say when to use this tool versus get_layout, sync_layout, transform_layout, or translate_layouts.

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

save_website_pagesSave Website PagesA
Destructive
Inspect

Save the Privacy Policy, Terms, Support page, links and SEO fields of a saved website. Reads the website first and merges only the supplied fields, so other sections stay unchanged. Empty strings clear a page or link. Does not publish. Tell the user to reload the website studio if it is open, because an open tab can overwrite this save.

NameRequiredDescriptionDefault
pagesYes
projectIdYes
variantIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.1/5.0
Behavior5/5

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

With destructiveHint=true and idempotentHint=false already declared, the description adds exactly the context an agent needs: this is a merge, not a wholesale replace, omitted sections are preserved, empty strings are the explicit delete mechanism, and it does not go live. The open-tab overwrite warning is a genuinely non-obvious hazard that no annotation conveys.

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 short sentences, each doing distinct work: scope, merge semantics, clear semantics, publication state, plus a user-facing caveat. Front-loaded with what is saved, with no filler or restatement of the title.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the description covers the mutation's risk profile and edit semantics well. The remaining gap is identification of the target record — nothing explains the projectId/variantId pairing an agent must supply to hit the right website.

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% and the schema is an undocumented nested object, so the description must carry the load — and it does map out the five updatable page sections including the fact that empty strings are valid values. However, projectId and variantId are never explained, and the read-merge-write behavior of the pages object is only implied.

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 verb+resource is specific: it saves five named page sections (Privacy Policy, Terms, Support, links, SEO) on a saved website. This implicitly separates it from siblings like save_layout or save_graphics, but the description never names an alternative, so sibling routing relies on the agent inferring from field names.

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 the usage model: read-then-merge, only supplied fields change, empty strings clear a field, and it does not publish. It also gives an operational instruction (tell the user to reload the studio). It stops short of naming when to prefer a different tool or what preconditions (project/variant must exist) are required.

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

search_stock_photosSearch Stock PhotosA
Read-onlyIdempotent
Inspect

Searches Pexels or Unsplash for existing photos and returns preview metadata and import inputs. Does not upload a photo or modify a design.

NameRequiredDescriptionDefault
pageNo
queryYes
perPageNo
providerNopexels
orientationNoportrait suits a single phone screen; landscape a panorama across screens.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive, idempotent and openWorld, so the safety profile is covered. The description still adds real context beyond that: results are preview metadata plus 'import inputs', i.e. a discovery step that hands off to an import, and no design state is mutated.

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, with the core action front-loaded before the negative scoping clause. Nothing is wasted.

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?

An output schema exists, so return values need no explanation, and annotations handle safety. However, with five parameters at 20% coverage, the agent is left guessing about provider differences and pagination semantics, which the description could have closed cheaply.

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

Parameters2/5

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

Schema description coverage is only 20% — only orientation is documented. The description says nothing about query syntax, what provider selection changes, or how page/perPage interact, so it fails to compensate for the four undocumented parameters.

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

Purpose5/5

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

States a specific verb (searches) plus resource (stock photos) and names the two external providers, Pexels and Unsplash. The second sentence explicitly excludes the adjacent operations (upload / design modification), which separates it cleanly from the sibling import_stock_photo.

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?

'Does not upload a photo or modify a design' functions as an explicit when-not, telling the agent this is discovery only. It stops short of naming import_stock_photo as the follow-up step, so the routing 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.

set_active_variantSet Active VariantA
Idempotent
Inspect

Sets the project's active variant for the specified content type. Does not delete or rewrite the other variants.

NameRequiredDescriptionDefault
projectIdYesProject id (list_projects/get_project); design tools call it generationId.
variantIdYes
contentTypeYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.2/5.0
Behavior4/5

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

While the annotations declare it as not destructive, the description provides specific behavioral context that is valuable—that the operation only affects the specified variant and guarantees the preservation of others. This goes beyond mere safety 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?

The definition is extremely concise and well-structured. It front-loads the primary function and immediately follows it with the most important constraint, delivering maximum information with minimum word count.

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 is highly complete for a state-setting tool, specifically addressing the crucial concern of asset preservation. Its only mild weakness is not specifying the expected return value, which is likely covered by the referenced 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?

The schema coverage is low (33%), and the description does not elaborate on the meaning or format of any specific parameter like 'projectId' or 'variantId'. Since the schema coverage is poor, the description does not provide the necessary compensation to raise the score.

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 provides a specific action ('Sets the project's active variant') tied to a resource ('the specified content type'). It is clearly defined and easily distinguishable from generic modification tools 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 Guidelines4/5

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

It provides crucial usage guidance by explicitly stating a behavioral constraint: 'Does not delete or rewrite the other variants.' This tells the agent exactly what it *should* expect regarding side effects.

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

set_asset_folder_localeset asset folder localeA
Destructive
Inspect

Sets a screenshot folder's explicit language code, or clears its locale binding with null. Does not infer language from the folder name or alter saved designs.

NameRequiredDescriptionDefault
localeYes
folderIdYes
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations, the description discloses the key behavior of passing null (clears the locale binding) and caps the blast radius ('does not alter saved designs'), which meaningfully contextualizes destructiveHint=true. It stops short of saying whether the prior locale is recoverable 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?

Two sentences with zero filler; the positive behavior ('sets... explicit language code') is front-loaded and the null/clear case plus exclusions follow immediately.

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

Completeness4/5

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

With an output schema present and annotations covering the safety profile, the description only needs the locale-null semantics and the scope limits, both of which it supplies. Minor gap: no note on required permissions or what happens to screenshots already localized under a previous locale.

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 the load; it explains the one non-obvious parameter's semantics — locale accepts null to clear the binding — which the schema's anyOf does not convey. folderId and projectId are left entirely to the schema's UUID formats, which is acceptable for identifiers.

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 (sets/clears) on a specific resource (a screenshot folder's locale binding) and explicitly bounds the effect ('does not infer language... or alter saved designs'). An agent can distinguish it from rename_asset_folder or apply_locale_screenshots by this scoping, though no sibling is named outright.

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: the agent can infer this is the tool for assigning or clearing a folder's explicit locale, and the 'does not infer from folder name' clause rules out one misreading. There is no explicit 'use when X, use Y instead' routing.

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

store_review_snapshotSend Rendered Preview for ReviewAInspect

App-only: temporarily stores a PNG rendered by the edit-result widget for visual review. Does not render on the server or modify a design or library asset.

NameRequiredDescriptionDefault
pngYes
projectIdYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.5/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint=false and destructiveHint=false, the description adds genuinely new traits: storage is temporary/ephemeral, no server-side rendering occurs, and no design or library asset is mutated. What it does not disclose is retention lifetime or whether a new snapshot supersedes a prior one (idempotentHint=false hints at accumulation but is left unexplained).

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 audience constraint ('App-only') leads, the core action follows, and the disclaimers close it out.

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?

An output schema exists, so return values need no explanation, and the annotations cover the safety profile. Gaps remain around retention ('temporarily' is unquantified) and the handoff to view_review_snapshot, which is the most likely next call an agent would need.

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 carry the parameter burden, and it largely doesn't. It characterizes the png argument only indirectly ('a PNG rendered by the edit-result widget') and says nothing about the 4,000,000-character size ceiling or the role of projectId in scoping the snapshot.

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 and resource: temporarily stores a PNG rendered by the edit-result widget for visual review. The negative clauses ('does not render on the server or modify a design or library asset') sharpen its scope versus render_screenshots and save_graphics, though it never names the directly paired sibling view_review_snapshot.

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 'App-only' qualifier is useful context on where this call is valid, and the explicit non-goals imply when not to reach for it. But it never states the triggering workflow (e.g. 'call after rendering an edit result, then call view_review_snapshot to retrieve it'), so an agent must infer the sequence.

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

suggest_keyword_competitorsSuggest Keyword CompetitorsA
Read-onlyIdempotent
Inspect

Returns candidate competitor apps for a project and selected store. Does not add competitors to tracking.

NameRequiredDescriptionDefault
projectIdYes
storeProviderNoWhich store. Defaults to the project's primary store (its linked app; get_project shows primaryStoreProvider), else the App Store.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description still contributes real value by explicitly stating that nothing is persisted to tracking, ruling out side effects an agent might otherwise assume from a 'suggest' verb.

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, zero filler, with the core behavior stated first and the side-effect caveat second. Nothing could be removed without losing 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?

An output schema exists, so return values need not be described, and the description covers the essential read-only, non-persisting nature of the call. It leaves a small gap around how results relate to tracked competitors, but the critical invocation facts are present.

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 50%: storeProvider is well documented with its default behavior, but projectId has no schema description. The description mentions 'for a project and selected store' but adds no format, constraints, or default-resolution detail beyond what the schema already states, so it doesn't compensate for the 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?

The description gives a specific verb ('Returns candidate competitor apps') and a scoped resource ('for a project and selected store'), which is clear enough to distinguish this from write-oriented siblings like add_keyword_competitors. It does not explicitly name the closest siblings (list_keyword_competitors, suggest_keywords), so it stops short of full differentiation.

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 clause 'Does not add competitors to tracking' implies that adding is a separate step and steers the agent toward a different tool for that, which is useful implicit guidance. However, it never states when to prefer this over list_keyword_competitors (existing tracked competitors) or suggest_keywords, nor does it name the tool to call next.

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

suggest_keywordsSuggest KeywordsA
Read-only
Inspect

Returns AI-assisted keyword ideas based on project metadata, excluding terms already tracked in the selected store. Does not start tracking suggestions.

NameRequiredDescriptionDefault
projectIdYes
storeProviderNoWhich store. Defaults to the project's primary store (its linked app; get_project shows primaryStoreProvider), else the App Store.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

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 real value by disclosing the exclusion behavior (already-tracked terms are filtered out) and that suggestions are not persisted. It does not mention that idempotentHint=false means repeated calls may yield different AI-generated results, which would have been a useful addition.

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 zero waste; the core behavior is front-loaded and the non-persistence caveat follows immediately.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the read-only nature is covered by annotations. The description is nearly complete, with only the non-determinism of AI suggestions left unstated.

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%: storeProvider is documented in the schema, but projectId is not. The description's references to 'project metadata' and 'the selected store' loosely map to both parameters, but it adds no format or defaulting detail beyond what the schema already provides.

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

Purpose5/5

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

States a specific verb and resource ('Returns AI-assisted keyword ideas') plus the scope ('based on project metadata, excluding terms already tracked'). This clearly distinguishes it from add_keywords and list_keywords, which track or enumerate rather than suggest.

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?

'Does not start tracking suggestions' implicitly routes the agent to add_keywords for persistence, giving clear usage context. However, it never names the alternative tool explicitly, so the agent must infer the pairing.

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

sync_layoutSync Layout to TranslationsA
Destructive
Inspect

Copies a screenshot variant's source-language design to its other languages while retaining translated text and language-specific screenshots. Existing language-specific design tweaks are replaced. Optional missing-image fill and changed-text translation are supported.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.
fillMissingImagesNo
translateChangedTextNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds concrete context: 'Existing language-specific design tweaks are replaced' and that translated text and language-specific screenshots are retained. It also notes optional missing-image fill and changed-text translation, going beyond the annotations. No contradiction.

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 behavior, followed by the destructive effect and optional features. No filler or redundancy; every sentence adds 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?

Given the output schema exists, return values needn't be explained. The description covers the key behavioral effects (replacement of tweaks, retention of translations) and optional flags, though it could elaborate more on required parameters to fully support a 5-param tool with 40% schema coverage.

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 40%. The description gives meaning to the two optional booleans (missing-image fill and changed-text translation), which is helpful, but says nothing about variantId or the projectId/generationId alias beyond what the schema already provides. It partially compensates but leaves 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 (copies) and resource (screenshot variant's source-language design) and scopes the operation to other languages while retaining translated text and language-specific screenshots. It clearly distinguishes the action from pure translation, though it doesn't explicitly name sibling alternatives.

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 the tool's context (propagating design to other languages) but gives no explicit when-to-use guidance or comparison to alternatives like translate_layouts or apply_locale_screenshots. An agent must infer suitability from the stated effect.

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

transform_graphicsTransform Social Graphics FormatsA
Destructive
Inspect

Applies layout operations across the selected social-graphics formats and languages. syncFrom recomposes target formats from the specified source and replaces their current layouts, including custom work. Changes are validated before saving.

NameRequiredDescriptionDefault
formatsNoWithout syncFrom: formats the operations edit (default: primary format). With syncFrom: formats rebuilt from it (default: all other formats).
languageNoGraphics language (e.g. de, pt-BR). Omit for the source language. Use list_graphics_translations for the saved languages and translate_graphics to add one.
syncFromNoSource format for 'Sync to all formats'.
projectIdNoAlias of generationId (the project id).
variantIdNo
operationsNoLayout operations; optional when syncFrom is set.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds valuable context beyond that: syncFrom 'replaces their current layouts, including custom work' and 'Changes are validated before saving,' which tells the agent exactly what is lost and that validation occurs before persistence.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, followed by the destructive syncFrom behavior. Every sentence carries information an agent needs, with no repetition of structured fields.

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

Completeness5/5

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

An output schema exists and annotations cover the destructive profile, so return values and safety need not be restated. The description supplies the key behavioral nuance (custom work is replaced, validation before save) that an agent needs to call this mutation safely; the remaining gap, sibling differentiation, is minor for a tool this specific.

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 86%, so the schema already documents formats, language, syncFrom, and the operations structure in detail. The description mentions syncFrom behavior but adds no parameter-level 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.

Purpose4/5

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

The description states a specific verb ('Applies layout operations') and resource scope ('selected social-graphics formats and languages'), and explains the syncFrom mode. However, it does not differentiate this tool from close siblings such as transform_layout, sync_layout, or save_graphics, leaving the agent to infer the distinction from the enum of social-graphics formats.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, nor any named alternative. The description explains what syncFrom does but not when an agent should choose this tool over transform_layout or sync_layout, and it does not state that operations is optional when syncFrom is set.

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

transform_layoutTransform LayoutA
Destructive
Inspect

Applies scoped operations to saved screenshot layouts. Hosted edits require a fresh same-target read receipt. Every target requires nodeType; missing nodeId matches all nodes of that type within the selected screens. Dot-notation preserves sibling fields; null removes a field. Defaults to mobile only. Independent formatId edits and resetFormat are supported. Layout, font, device and asset validation occurs before saving.

NameRequiredDescriptionDefault
atomicNo
layoutsNoWhich layout sizes to transform. Defaults to ['mobile']; include 'tablet' / 'desktop' only when the user asks for them.
formatIdNoEdit this phone format instead of mobile/tablet/desktop. Never combine with layouts. Existing independent formats do not follow later mobile edits.
languageYes
projectIdNoAlias of generationId (the project id).
variantIdNo
operationsNo
readReceiptNoHosted connector only: pass the readReceipt returned by the immediately preceding get_layout call.
resetFormatNoWith formatId and no operations, remove that format override so it follows the main layout again. Requires a fresh get_layout read receipt.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and non-idempotent, and the description adds real context beyond them: read-receipt requirements for hosted edits, validation ordering ('Layout, font, device and asset validation occurs before saving'), and the null-removal semantics. It stops short of describing rollback or partial-application behavior, but the supplemental detail is solid.

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 operation, then layers in behavioral rules in short declarative sentences. Dense but each sentence carries actionable information; no obvious padding.

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 an output schema exists and annotations cover the safety profile, the description supplies the remaining behavioral glue an agent needs: scope defaults, read-receipt gating, field-preservation semantics, and validation timing. Nothing critical to correct invocation 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 60% schema coverage and 10 params, the description compensates meaningfully: nodeType is required, omitted nodeId matches all nodes of that type, dot-notation preserves siblings, null removes fields, formatId edits are independent of layouts, and resetFormat behavior. The atomic flag and language param don't get description-level treatment, but the core semantics are covered.

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 ('Applies scoped operations to saved screenshot layouts'), which is clear enough for an agent to distinguish it from read-only siblings like get_layout. It doesn't explicitly name when to pick it over save_layout or sync_layout, but the mutation framing is evident.

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?

'Hosted edits require a fresh same-target read receipt' and 'Defaults to mobile only' give conditional guidance. However, the description never explicitly contrasts this tool with save_layout, sync_layout, or transform_graphics, leaving the agent to infer the routing.

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

translate_graphicsTranslate Social GraphicsA
Destructive
Inspect

Creates or refreshes translated social-graphics layouts in the requested languages using text translation. Existing target-language edits can be overwritten. Subject to the account's translation allowances.

NameRequiredDescriptionDefault
projectIdNoAlias of generationId (the project id).
variantIdNoVariant to translate. Defaults to the active graphics variant.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.
targetLanguagesYesLanguage codes, e.g. ['de','ja','pt-BR']. Unsupported codes are rejected with the list of issues.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, but the description adds the concrete consequence that existing target-language edits can be overwritten, plus the quota constraint ('translation allowances'). That is real behavioral context beyond the hints; it only stops short of describing partial-failure behavior 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, then the risk warning, then the constraint. Every sentence carries distinct information and none repeats the schema or annotations verbatim.

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 mutation with an output schema present, the description covers action, overwrite risk, and quota limits. The remaining gap is behavioral detail on partial success across multiple target languages, which is a minor omission given full schema coverage and an 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?

Schema description coverage is 100% and the schema already documents the projectId/generationId aliasing, variantId defaulting, and language-code format with the 'unsupported codes are rejected' note. The description's 'requested languages' restates targetLanguages without adding syntax or constraints, so 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?

Specific verb pair (creates/refreshes) plus a specific resource (translated social-graphics layouts) and the mechanism (text translation). That is enough to separate it from translate_layouts, translate_store_listing, and translate_promo_video by resource type, though it never names those siblings explicitly.

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: it's the tool to call when you want social graphics rendered in other languages. There is no explicit guidance on when to prefer it over translate_layouts or list_graphics_translations, and no stated prerequisites (e.g. needing an existing graphics variant).

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

translate_layoutsTranslate LayoutsA
Destructive
Inspect

Translates screenshot-layout text into requested languages while preserving composition and language-specific images. Requires an existing source layout. Re-running a target language re-syncs its design from the source and can replace manual target-language design tweaks. Subject to translation allowances.

NameRequiredDescriptionDefault
layoutsNoWhich layout sizes to translate. Defaults to ['mobile', 'tablet']. Include 'desktop' only if the project has a desktop layout.
projectIdNoAlias of generationId (the project id).
variantIdNoVariant to translate. If omitted, uses the active variant.
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead. The project/generation UUID.
targetLanguagesYesArray of target language codes (e.g. ['en', 'ja', 'de']). Use el for Greek (el-GR), he for Hebrew (iw-IL), fil for Filipino, or for Odia, pa for Punjabi. The source language is auto-detected and excluded.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare destructiveHint=true and idempotentHint=false, but the description adds important specifics: rerunning a target language re-syncs its design from the source and can replace manual target-language design tweaks. It also notes translation allowances, giving useful quota/constraint context beyond the annotations.

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

Conciseness5/5

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

Four short sentences, front-loaded with the core action and then the key prerequisite and destructive rerun caveat. Every sentence contributes useful information with no repetition.

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

Completeness4/5

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

Given the rich schema, existing output schema, and annotations, the description is largely complete: it covers the source-layout prerequisite, destructive re-sync behavior, and allowance constraints. It does not explain how the source layout is identified beyond the schema's project/variant parameters, but that is minor.

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 schema itself documents defaults, aliases, variant behavior, and language-code guidance. The description refers to 'requested languages' but adds no parameter-level detail beyond what the schema already 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.

Purpose4/5

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

The description names a specific action (translates), resource (screenshot-layout text), and scope (requested languages while preserving composition and language-specific images). It distinguishes itself from generic translation siblings by focusing on layouts, though it does not name a specific sibling alternative.

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 states the prerequisite of an existing source layout and describes rerun behavior, which gives useful usage context. However, it does not explicitly say when to choose this tool over translate_graphics, translate_store_listing, apply_locale_screenshots, or other translation siblings.

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

translate_promo_videoTranslate Promo VideoA
Destructive
Inspect

Translates saved promo-video scene text into requested languages. Re-translating an existing language replaces its edited translation. Returns per-language results and available languages; subject to translation allowances.

NameRequiredDescriptionDefault
projectIdYes
variantIdNoPromo-video variant; defaults to the active one.
targetLanguagesYesLanguage codes, e.g. ['de', 'ja']. Use el for Greek, he for Hebrew, fil for Filipino.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond annotations: it explains that re-translating an existing language replaces edited translations, that results are per-language and include available languages, and that the operation is subject to translation allowances. These details clarify destructive effects and constraints, consistent with destructiveHint=true.

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 compact and front-loaded: the purpose comes first, followed by replacement behavior and output/allowance notes. Every sentence adds useful information without repetition.

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 an output schema, rich annotations, and moderate parameter complexity, the description is largely complete for calling the tool correctly. It covers purpose, destructive replacement behavior, return shape, and allowance constraints, though it lacks explicit alternative-routing guidance.

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 67%, with variantId and targetLanguages already described in the schema. The description adds only general context such as "requested languages" and "saved promo-video scene text" but does not compensate for the undocumented projectId parameter.

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 and resource: "Translates saved promo-video scene text into requested languages." This clearly distinguishes the tool from sibling translation tools such as translate_graphics, translate_layouts, and translate_store_listing by naming promo-video scene text specifically. It is clear, though it does not explicitly route against 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?

The context implies usage for translating saved promo-video scene text, and it notes that re-translating an existing language replaces edited translations. However, it does not explicitly say when to use this versus sibling translation tools or describe exclusions and alternatives.

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

translate_store_listingTranslate Store Listing TextA
Destructive
Inspect

Translates saved listing text into requested languages and refreshes existing translations whose source changed. Does not publish to Apple or Google. Subject to translation allowances.

NameRequiredDescriptionDefault
projectIdYes
variantIdNo
targetLanguagesYes

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag destructive=true and non-idempotent, and the description corroborates this by saying existing translations are refreshed/overwritten when their source changed. It also adds external-scope context (no Apple/Google publishing) and a quota-like constraint ('subject to translation allowances') that annotations do not convey. What is missing is what happens when allowances are exceeded and whether unchanged strings are preserved.

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 action, then the scope exclusion, then the constraint. No filler and nothing redundant with the schema or annotations.

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?

An output schema exists and annotations cover the safety profile, so the description is not required to explain returns. However, for a destructive, non-idempotent mutation with fully undocumented parameters, the description leaves important gaps: the role of variantId, language-code format, and the behavior/error when translation allowances are exhausted.

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% for all three parameters, so the description carries the burden and largely fails: 'requested languages' loosely maps to targetLanguages but never states the expected language-code format or the 1–60 item bounds, and projectId/variantId are never explained (notably what omitting variantId means).

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 (translates/refreshes) on a specific resource (saved store listing text), including the two modes of operation: new translation and refreshing translations whose source changed. This clearly separates it from siblings like translate_graphics, translate_layouts, translate_promo_video, and update_store_listing.

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 usage boundary ('Does not publish to Apple or Google') and explains when a re-run is warranted (source changed). It does not explicitly name an alternative tool for publishing or for translating other artifact types, so the agent must infer those routes from sibling names.

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

update_graphics_settingsUpdate Social Graphics SettingsA
Destructive
Inspect

Changes variant-wide graphics settings. primaryFormat changes the default format across languages. Platform switching updates device frames/models and single-store badges across saved formats and languages; on a single-platform project it also changes the project platform shared by the screenshot editor.

NameRequiredDescriptionDefault
platformNo
projectIdNoAlias of generationId (the project id).
variantIdNo
generationIdNoProject id: the same UUID as projectId from list_projects/get_project (generationId is its legacy name). You may pass projectId instead.
primaryFormatNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.6/5.0
Behavior4/5

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

The annotations already flag destructiveHint=true, idempotentHint=false, and openWorldHint=false, but the description adds real causal detail beyond them: platform switching rewrites device frames/models and single-store badges across saved formats and languages, and on single-platform projects it also changes the project-level platform shared by the screenshot editor. That is exactly the kind of blast-radius disclosure needed for a destructive mutation. It stops short of stating whether changes persist immediately or require a subsequent save/render.

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 scope statement is front-loaded, and the second sentence packs two distinct behaviors into a single readable clause. Slightly dense but no filler or restated title.

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?

An output schema exists so return values need not be explained, and the destructive nature is covered. But for a mutation with zero required parameters and five optional ones, the description gives no guidance on defaults, minimum viable parameter sets, or what state the settings must be in before calling — gaps an agent would hit immediately.

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 40%: projectId and generationId are self-documented in the schema, and the description meaningfully explains primaryFormat (default format across languages) and platform (device frames/models, badges, project platform on single-platform projects). However, variantId — arguably the most central parameter for a "variant-wide" update — is undocumented in both schema and description, and no guidance is given on which optional parameter combinations are valid or required.

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 first sentence names a specific verb and resource with scope ("variant-wide graphics settings"), and the following sentences enumerate the two mutable axes: default format and platform. It is distinguishable from save_graphics / save_graphics_format, though the description never explicitly contrasts them.

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 the described effects (change default format across languages; change platform), but there is no explicit when-to-use or when-not-to-use statement and no routing to sibling tools such as apply_social_graphics_style or save_graphics_format. The agent must infer the trigger condition.

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

update_mockup_animationUpdate Mockup AnimationA
Destructive
Inspect

Replaces a complete saved mockup animation state. Hosted edits require a fresh same-target read receipt. The server sorts keyframes, derives legacy primary-device fields, validates model/finish and motion bounds, and reports ignored unknown fields. Whole-state replacement is the supported save contract.

NameRequiredDescriptionDefault
stateYesComplete MockupProjectState from get_mockup_animation. devices[] is canonical when present (1–6 independent devices); preserve all devices (the server mirrors devices[0] into the legacy fields). Read get_editing_reference(feature: mockups) for the full contract, including names, timing, transitions, keyframe lidOpen, audio and presenter overlay.
projectIdYes
variantIdYesThe variantId returned by get_mockup_animation.
readReceiptNoHosted connector only: pass the readReceipt returned by the immediately preceding get_mockup_animation call.
fitMotionToDeviceNoWhen a device's model changes kind (phone, duo, tablet, laptop) and its keyframes are still an unmodified scene preset, re-fit them to the new model like create_mockup_animation does (smaller travel/zoom on iPad/MacBook, laptop lid choreography). Authored keyframes are never changed; the result warns instead. false only reports.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, and the description adds real value on top: it discloses server-side normalization (keyframe sorting, legacy field derivation), validation of model/finish and motion bounds, and that unknown fields are reported as ignored rather than rejected. It does not state what happens on validation failure or whether a failed replace leaves prior state intact.

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 sentences, front-loaded with the destructive replace contract, then prerequisites, then server behavior. Dense but largely earning its place; 'derives legacy primary-device fields' is jargon the reader cannot act on and could be trimmed.

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?

Output schema exists so return values need not be described, and the description points to get_editing_reference(feature: mockups) for the full state contract rather than half-specifying it. For a destructive 5-param nested-state tool, the destructive scope, read-receipt requirement, and normalization behavior are all 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 80%, so the schema already carries most parameter meaning (including readReceipt and fitMotionToDevice). The description adds only the whole-state completeness requirement and the legacy-field mirroring behavior, which is genuinely useful but narrow given the high coverage baseline.

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 ('Replaces a complete saved mockup animation state') and makes the semantics clear via 'Whole-state replacement is the supported save contract,' which distinguishes it from create_mockup_animation. It never names the sibling explicitly, so differentiation still requires inference.

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?

'Hosted edits require a fresh same-target read receipt' gives one concrete precondition for use, implying get_mockup_animation must precede it. However, there is no explicit statement of when to use this versus create_mockup_animation or preview_mockup_animation, and no exclusion guidance for non-hosted contexts.

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

update_promo_videoUpdate Promo VideoA
Destructive
Inspect

Replaces a complete saved promo-video configuration for one variant/language. Hosted edits require a fresh same-target read receipt. Renderer-schema errors reject the entire update; missing editor defaults and derived values are reported. Device-model changes update the frame; music changes reset track start without re-cutting scenes. appName changes fallback copy; projectName renames the project.

NameRequiredDescriptionDefault
configYesFull Remotion VideoConfig: the `config` from get_promo_video, mutated. theme (colors + typography) and scenes (≥1 visible; discriminated on `type`: hook | feature | text-only | closeup | multi-phone | cta, each with its `content` shape). Any scene may set `hidden: true` (kept and editable, excluded from playback/export/duration). Coordinates are percentages of the frame (0-100), never pixels. Keep `transitionNaming: "content-motion"`.
appNameNoApp name shown by hook/CTA scenes that leave appName null.
languageNoLanguage code of the promo-video translation (e.g. 'de'). Omit for the source language. get_promo_video lists availableLanguages.
projectIdYes
variantIdNo
projectNameNoRenames the whole project (all content types). Omit unless asked.
readReceiptNoHosted connector only: pass the readReceipt returned by the immediately preceding get_promo_video call.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.2/5.0
Behavior5/5

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

The description adds substantial behavior beyond the destructive/non-idempotent annotations: hosted edits require a fresh same-target read receipt, renderer-schema errors reject the entire update, and it explains side effects such as frame updates, music reset behavior, appName fallback copy, and project renaming.

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 core replacement behavior is front-loaded in the first sentence, followed by prerequisite and field-effect details. The semicolon-separated clauses are dense but each carries actionable information.

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

Completeness5/5

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

For a destructive full-config replacement with nested objects, the description covers the replacement model, read-receipt requirement, error handling, and notable side effects. Return-value details are not needed because an 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?

Schema coverage is moderate at 71%, and the description adds meaningful effects for several parameters: readReceipt is tied to hosted edits, appName affects fallback copy, projectName renames the whole project, and config changes have described downstream effects.

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?

It gives a specific verb and resource: 'Replaces a complete saved promo-video configuration for one variant/language.' That clearly separates it from generation, preview, and export tools by scope, but it does not explicitly name a sibling alternative or exclusion.

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 'Replaces a complete saved ... configuration,' and the read-receipt prerequisite is stated. However, it does not explicitly say when to use this versus apply_promo_video_candidate, generate_promo_video, or translate_promo_video.

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

update_store_listingUpdate Store Listing TextA
Destructive
Inspect

Updates only supplied source-language fields and existing translations in a listing variant. Preserves other fields, insights and languages and enforces store character limits. Editing source text does not automatically translate it or publish it to a store.

NameRequiredDescriptionDefault
fieldsNo
projectIdYes
variantIdNo
translationsNo

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already disclose that this is destructive, non-read-only, non-idempotent, and closed-world. The description adds meaningful behavior beyond annotations: it preserves other fields, insights, and languages, enforces store character limits, and clarifies that source edits are neither automatically translated nor published.

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 definition is three tightly written sentences with no wasted text. The scope and preservation behavior are front-loaded, followed by important translation/publishing caveats.

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 nested-schema mutation tool with annotations and an output schema, the description covers the key behavioral context an agent needs: partial updates, preservation of unrelated data, character limits, and no automatic translation or publishing. Minor gaps remain around variantId defaulting and projectId semantics, but the essential invocation context is present.

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?

Top-level schema description coverage is reported as 0%, so the description should compensate. It usefully distinguishes source-language fields from existing translations and refers to a listing variant, but it does not explain projectId, variantId, or the optionality/default behavior of variantId beyond what the schema structure implies.

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 and resource: it updates supplied source-language fields and existing translations in a listing variant. It is clearly an update tool and distinguishes itself from translation/publishing operations, though it does not explicitly name sibling alternatives such as translate_store_listing or generate_store_listing.

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

Usage Guidelines3/5

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

The phrase 'only supplied source-language fields and existing translations' implies partial-update usage, and the note that editing source text does not translate or publish gives useful expectations. However, there is no explicit guidance on when to choose this tool over siblings like translate_store_listing, generate_store_listing, or get_store_listing.

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

upload_assetUpload AssetAInspect

Uploads one illustration, logo, background, panorama, font, recording, image, video or audio asset. Maximum 25 MB per file. HTTPS URLs and base64 data are supported; local paths are npm/stdio-only. Returns a project-relative storage path and available media metadata. Font registration is enabled by default. Upload alone does not apply an asset to a design or change the project icon.

NameRequiredDescriptionDefault
sourceYesThe file source — provide an HTTPS URL or base64 data, or a local file path for npm/stdio, with an appropriate filename.
fileTypeYesUse mockup-media for mockup screens/recordings and mockup soundtracks, promo-media for promo video/audio footage, font for TTF/OTF/WOFF/WOFF2, or an image category. Mockup recordings are checked on upload (H.264, ≤1080 px short side, keyframe every ≤2 s, ≤60 fps) and rejected with an ffmpeg command when unsuitable.
projectIdYes
fontFamilyNoFont uploads only: family name to register instead of the one derived from the filename. Upload each weight file with the same fontFamily.
registerFontNoFont uploads only (default true): add the file to the project's custom fonts (metadata.customFonts) like the editor's font upload. Family, weight and style come from the filename (e.g. Inter-BoldItalic.ttf).

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false) by disclosing the 25 MB limit, the transport-dependent source restrictions, the returned project-relative path and media metadata, the default-on font registration, and the fact that uploading has no side effects on designs or the project icon. Those are exactly the non-obvious traits an agent needs before calling a mutation.

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

Conciseness5/5

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

Front-loaded with the action and accepted asset types, then constraints, then the scope disclaimer. Five short sentences, each carrying distinct operational information 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 5-parameter mutation with a nested source object and an existing output schema, the description covers the size limit, source transports, font registration behavior and post-upload state. Nothing an agent needs to invoke it correctly appears to be 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 80%, so the schema already explains source, fileType, fontFamily and registerFont in detail. The description mostly restates that content (media types, HTTPS/base64/local path, font registration default) rather than adding new meaning, 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?

Specific verb plus resource ('Uploads one ... asset') with an explicit enumeration of the accepted asset kinds. The closing sentence carves out scope against siblings that apply assets to designs or set project icons, so an agent can separate this from apply_* and replace_asset 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?

States the operating context clearly: 25 MB cap, HTTPS/base64 supported, local paths only in npm/stdio, and 'Upload alone does not apply an asset to a design' which signals a follow-up step is needed. It does not name the sibling to use next (e.g. prepare_asset_upload or the apply_* tools), so routing is implied rather than explicit.

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

upload_screenshotsUpload ScreenshotsA
Destructive
Inspect

Uploads screenshot images to a project from HTTPS URLs or base64 data; local files are supported only by the npm/stdio transport. Results identify completed and failed files. Overwrite mode changes the bytes at existing paths and can affect saved designs that reference those paths.

NameRequiredDescriptionDefault
sourcesYes
folderIdNoExisting screenshot folder in this device/platform scope. Assign each uploaded file to it; never changes saved designs.
platformYes
overwriteNoExplicit opt-in: replace same-name screenshot bytes in place, updating ALL designs bound to that path. Previous bytes are backed up. Reload open editors afterwards.
projectIdYes
deviceTypeYes
targetPathNoExact existing relative path to overwrite when legacy filenames are ambiguous. Requires overwrite=true and exactly one source.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, yet the description still adds real value by explaining what overwrite actually does: it rewrites bytes at existing paths and can break saved designs referencing those paths. That is the specific consequence an agent needs. It stops short of describing per-file failure semantics beyond 'completed and failed files'.

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 clauses with no filler, and the primary capability is front-loaded ahead of the transport caveat and the overwrite warning. Slightly dense and semicolon-chained, but 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?

An output schema exists, so the description needn't detail return shape, and its note that results identify completed versus failed files is a helpful pointer. Combined with the destructive-warning coverage, what remains missing is only scoping semantics for the four undocumented required parameters.

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 43%, so the description must compensate, and it only partially does: it clarifies the sources array forms and the overwrite consequence. projectId, deviceType, platform, and the url/base64/filename subfields have no description in either place, and the targetPath constraint (overwrite=true, exactly one source) is covered only by the 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 and resource ('Uploads screenshot images to a project') and names the accepted input forms (HTTPS URLs, base64, local files on npm/stdio). It does not explicitly contrast with nearby siblings such as upload_asset, prepare_asset_upload, or replace_asset, so an agent must infer that this is the screenshot-specific path.

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 transport restriction ('local files are supported only by the npm/stdio transport') is genuinely useful conditional guidance, but the description never says when to pick this tool over upload_asset, replace_asset, or prepare_asset_upload. Overwrite behavior is explained, but the choice of folderId versus targetPath is left entirely to the schema.

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

view_review_snapshotView Rendered EditA
Read-onlyIdempotent
Inspect

Returns actual PNG pixels previously uploaded by the edit-result widget for the specified project and snapshot ID. Only the uploading user can access the snapshot, which expires after fifteen minutes. Does not modify a design.

NameRequiredDescriptionDefault
projectIdYes
snapshotIdYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds genuinely new behavior: the return is raw PNG pixels (not a URL or metadata), access is scoped to the uploading user, and the snapshot has a 15-minute TTL. The closing 'Does not modify a design' is redundant with the annotations but harmless.

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 short sentences, front-loaded with the return value and the two constraints. The final sentence restates the readOnlyHint annotation and could be dropped without loss.

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 describes what comes back (PNG pixels) and covers auth scoping and expiry. It leaves unspecified what an agent sees on an expired snapshot or an unauthorized user (error vs empty), a minor gap for a two-parameter read 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 0%, so the description must carry the load. It names both parameters ('project and snapshot ID') and usefully contextualizes snapshotId as an artifact of the edit-result widget, but adds nothing about format or provenance of projectId beyond what the UUID schema already implies.

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: 'Returns actual PNG pixels ... for the specified project and snapshot ID', which is far more precise than a generic 'get render'. The reference to 'previously uploaded by the edit-result widget' implicitly scopes it against siblings like store_review_snapshot, though no sibling is named explicitly.

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?

'Only the uploading user can access the snapshot, which expires after fifteen minutes' functions as a hard precondition that tells the agent when this call will and will not succeed. It stops short of explicitly naming store_review_snapshot as the tool that creates the snapshot, so the workflow pairing 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.

view_screenshotView ScreenshotA
Read-onlyIdempotent
Inspect

Returns the image pixels of a project screenshot identified by its project-relative path. Read-only.

NameRequiredDescriptionDefault
pathYesRelative screenshot path (e.g. 'mobile/ios/1234-IMG.PNG') from list_screenshots or the layout's screenshot.path field.
projectIdYesThe project UUID.

Output Schema

NameRequiredDescription
dataNo
errorNo
messageNo
successYes
widgetDataJsonNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, and the description's trailing 'Read-only' merely restates that. It adds some value by clarifying that raw image pixels are returned rather than metadata, but nothing about size, format constraints, or errors.

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 with the core behavior front-loaded and no filler; the read-only note is the only redundant element, and it costs almost nothing.

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?

This is a simple two-parameter read tool with full schema coverage and an output schema, so return-value explanation is unnecessary. The description covers what an agent needs to call it correctly; only the fetch-workflow context is thin.

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 path parameter already carries an example plus its source, so the schema does the heavy lifting. The description only confirms the path is project-relative, adding marginal meaning beyond the 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 and resource ('Returns the image pixels of a project screenshot') and scopes the input as a project-relative path, which clearly separates it from listing tools like list_screenshots. It stops short of naming a sibling explicitly, so it is clear but not maximally 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?

Usage is only implied: the schema's path description says the value comes from list_screenshots or a layout's screenshot.path field, which hints at the retrieval workflow. The description itself gives no when-to-use or when-not-to-use guidance relative to list_screenshots, preview_screenshots, or get_layout.

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. 93 tool updates
    • First observedadd_keyword_competitors
    • First observedadd_keywords
    • First observedapply_locale_screenshots
    • First observedapply_promo_video_candidate
    • First observedapply_screenshot_style
    • First observedapply_social_graphics_style
    • First observedbrowse_social_templates
    • First observedbrowse_templates
    • First observedclear_promo_video
    • First observedcreate_asset_folder
    • First observedcreate_mockup_animation
    • First observedcreate_project
    • First observedcreate_variant
    • First observeddelete_asset_folder
    • First observeddelete_assets
    • First observeddelete_project
    • First observeddelete_variant
    • First observedduplicate_variant
    • First observedexport_mockup_animation
    • First observedexport_promo_video
    • First observedgenerate_mockup_motion
    • First observedgenerate_promo_video
    • First observedgenerate_store_listing
    • First observedget_capabilities
    • First observedget_editing_reference
    • First observedget_graphics
    • First observedget_graphics_format
    • First observedget_keyword_history
    • First observedget_layout
    • First observedget_mockup_animation
    • First observedget_mockup_animation_export
    • First observedget_plan_usage
    • First observedget_project
    • First observedget_promo_video
    • First observedget_promo_video_export
    • First observedget_promo_video_generation
    • First observedget_release_render
    • First observedget_store_listing
    • First observedget_website
    • First observedimport_stock_photo
    • First observedlist_asset_folders
    • First observedlist_assets
    • First observedlist_export_formats
    • First observedlist_fonts
    • First observedlist_graphics_translations
    • First observedlist_illustrations
    • First observedlist_keyword_competitors
    • First observedlist_keywords
    • First observedlist_mockup_media
    • First observedlist_mockup_presets
    • First observedlist_projects
    • First observedlist_screenshots
    • First observedlist_source_screenshots
    • First observedlist_translations
    • First observedlist_variants
    • First observedmove_assets
    • First observedprepare_asset_upload
    • First observedprepare_screenshot_styles
    • First observedprepare_social_graphics_styles
    • First observedpreview_mockup_animation
    • First observedpreview_promo_video
    • First observedpreview_screenshots
    • First observedremove_keyword_competitors
    • First observedremove_keywords
    • First observedrename_asset_folder
    • First observedrender_graphics
    • First observedrender_screenshots
    • First observedreplace_asset
    • First observedsave_graphics
    • First observedsave_graphics_format
    • First observedsave_layout
    • First observedsave_website_pages
    • First observedsearch_stock_photos
    • First observedset_active_variant
    • First observedset_asset_folder_locale
    • First observedstore_review_snapshot
    • First observedsuggest_keyword_competitors
    • First observedsuggest_keywords
    • First observedsync_layout
    • First observedtransform_graphics
    • First observedtransform_layout
    • First observedtranslate_graphics
    • First observedtranslate_layouts
    • First observedtranslate_promo_video
    • First observedtranslate_store_listing
    • First observedupdate_graphics_settings
    • First observedupdate_mockup_animation
    • First observedupdate_promo_video
    • First observedupdate_store_listing
    • First observedupload_asset
    • First observedupload_screenshots
    • First observedview_review_snapshot
    • First observedview_screenshot

Publisher details

Operator
AppLaunchFlow · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Unknown
Restrictions
An AppLaunchFlow account and OAuth authorization are required. Generation, translation and exports are subject to the account plan, credits and usage limits. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to design App Store and Google Play screenshot sets from templates or simulator captures, translate captions into 41 languages with automatic text fitting, render the pixels, and publish straight to App Store Connect or Google Play.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables coding agents to discover templates and exact output sizes, render App Store, Google Play, iPhone Duo and Creative Assets from real app screenshots with multilingual captions, create editable project files, and inspect exported dimensions and PNG alpha against presets.
    33 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.