Skip to main content
Glama

vivid-ads-commerce

Server Details

Live signage pricing, formal quotes and draft orders from Vivid Ads Australia. Open pre-sales MCP.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 25 of 25 tools scored. Lowest: 3.7/5.

Server CoherenceB
Disambiguation2/5

Several tools have overlapping purposes, particularly order status (vivid_order_status vs vivid_fulfilment_order_status vs vivid_fulfilment_production_stage) and artwork handling (vivid_artwork vs vivid_upload_artwork). An agent could easily select the wrong one without careful reading of the descriptions.

Naming Consistency4/5

All tools share the consistent 'vivid_' prefix and snake_case format. However, the second part mixes verb-noun patterns (place_order, check_artwork) with noun-based names (price, product, order_status), so the pattern isn't fully uniform but is still predictable and readable.

Tool Count3/5

At 25 tools, the server is at the heavy end of the borderline range. The broad scope (product discovery, pricing, ordering, artwork, fulfilment statuses, support) justifies most tools, but some overlapping status/artwork tools could be consolidated to reduce clutter.

Completeness4/5

The server covers the entire customer journey from product search, configuration, pricing, quoting, ordering, artwork upload/check, proof tracking, production/delivery status, to reordering. Minor gaps like explicit order update/cancel tools are missing, but support_answer covers those topics and the lifecycle is otherwise well-covered.

Available Tools

25 tools
vivid_accept_quoteA
Read-onlyIdempotent
Inspect

Return the secure payment link for a formal quote Vivid already emailed (e.g. #D786069) so the customer can complete the order without leaving the conversation. Requires the quote number AND the email it was sent to (identity). Read-only — nothing is charged; it returns the customer's existing Shopify checkout link. If the quote has already become an order, it says so instead of issuing another link.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesthe email the quote was sent to (required)
quote_numberYesquote/draft number, e.g. '#D786069'
Behavior5/5

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

Beyond annotations (readOnlyHint, idempotentHint), the description explicitly says 'nothing is charged' and that it returns an existing Shopify checkout link, plus behavior when quote already became an order. This adds valuable context consistent with annotations.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, then requirements, then behavior. No redundant text; each sentence adds essential 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?

For a simple 2-parameter read-only tool with no output schema, the description covers return value, side-effect-free nature, and an edge case. It could detail error responses (e.g., quote not found) but overall is sufficiently 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 schema already covers parameters 100%, but the description adds semantic meaning by explaining email is required for 'identity' and provides a format example for quote_number. This helps the agent understand why both are needed together.

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

Purpose5/5

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

The description clearly states the verb 'Return' and specific resource 'secure payment link for a formal quote Vivid already emailed', with an example quote number. It distinguishes from sibling tools like vivid_request_quote or vivid_place_order by focusing on payment link retrieval for an existing quote.

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 clear context: use when customer wants to complete an order without leaving the conversation, and states the prerequisite of quote number and email. It also notes the edge case of an already-converted order, but does not explicitly name alternative tools.

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

vivid_artworkAInspect

Attach a customer-provided artwork file or link to a signage order (a successful attach does NOT mean it is print-ready — the team still checks it). EASIEST: pass a shareable link to the file (sourceUrl) — Google Drive, Dropbox, WeTransfer, etc. — and use the returned fileUrl in vivid_place_order's artwork {mode:'upload_file', fileUrl}. For a large file with no link yet, set requestUpload:true to get a direct-upload URL (the file uploads straight to storage — handles 50–200MB+), then call again with the returned fileId to get the share link.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileIdNoafter a direct upload completes, pass the returned file id here to finalise and get the share link
filenameNofilename (required with requestUpload), e.g. 'flyer.pdf'
sourceUrlNoa shareable https link to the print-ready artwork (PDF/PNG/JPG/AI/EPS) — the easiest path
contentTypeNo
requestUploadNoset true to get a direct-upload URL for a large file (client uploads straight to storage)
Behavior5/5

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

Annotations only provide hints, but the description adds critical behavioral context: a successful attach does not mean print-ready, the tool handles 50-200MB+ files, and uploads go straight to storage. It also mentions the two-step process for large files, which is important side-effect information not visible in annotations.

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

Conciseness4/5

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

The description is a single dense paragraph, but it is well organized with 'EASIEST' and 'For a large file' guiding the reader. It front-loads the purpose and every sentence adds value. Slightly long, but appropriate for the two workflows described.

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 no output schema, the description does a good job explaining return values ('returned fileUrl', 'returned fileId') and how to chain calls. It covers both primary workflows and gives enough context for an agent to execute correctly. The mention of integration with vivid_place_order rounds out the context.

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 80% (4/5 params described). The description adds workflow meaning beyond the schema: it explains the relationship between sourceUrl, requestUpload, and fileId (e.g., requestUpload:true gets a URL, then call again with fileId). However, contentType remains undocumented in both schema and description, so it isn't fully compensated.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Attach a customer-provided artwork file or link to a signage order.' It clearly distinguishes from sibling tools like vivid_check_artwork (checking) and vivid_upload_artwork (raw upload) by focusing on attaching to an order and integrating with vivid_place_order.

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

Usage Guidelines5/5

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

The description explicitly provides two usage paths with conditions: the easiest path via sourceUrl, and an alternative for large files using requestUpload:true. It also tells the agent exactly what to do with the returned fileUrl in vivid_place_order, making the decision between this tool and others clear.

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

vivid_check_artworkA
Read-onlyIdempotent
Inspect

Check whether a customer's artwork PDF is print-ready BEFORE they order — powered by Vivid's own production preflight engine. Reports size vs the ordered size, bleed, RGB-vs-CMYK colour, font embedding and effective resolution, each with a plain-English fix. ADVISORY ONLY: it never blocks anything. If the customer is happy to proceed with the file as-is, that is always accepted — say so explicitly. Every order also gets a free digital proof before printing.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_urlYesdownloadable URL of the artwork PDF (e.g. the fileUrl from vivid_upload_artwork)
width_mmNoordered width in mm, if known — enables the size check
height_mmNoordered height in mm, if known
Behavior5/5

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

Annotations already mark the tool as read-only and idempotent, but the description adds critical behavior beyond that: it is advisory-only, never blocks anything, and the agent must explicitly allow the customer to proceed with the file as-is. It also discloses that a free digital proof is provided separately, which manages expectations about order flow.

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

Conciseness5/5

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

The description is compact and front-loaded with the primary purpose. Each sentence earns its place: it explains what the tool checks, what output to expect, the advisory nature, and how to handle the result. No filler or redundancy.

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

Completeness5/5

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

The tool has no output schema, but the description adequately covers what gets reported (size, bleed, colour, fonts, resolution) and that each issue includes a plain-English fix. The advisory-only behavior and the mention of the proof workflow complete the picture for an agent to use the tool correctly in the ordering flow.

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 input schema already provides 100% descriptive coverage of all three parameters, so the baseline is 3. The description adds no additional parameter-level details; it only reinforces that the file is a PDF and that ordered size is checked, which is already expressed in the schema. No extra semantic value beyond schema coverage.

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

Purpose5/5

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

The description states a specific action ('Check'), a specific resource ('customer's artwork PDF'), and a clear goal ('print-ready BEFORE they order'). It also distinguishes the tool from siblings by naming Vivid's production preflight engine and listing the exact checks (bleed, colour, fonts, resolution) that no other sibling tool mentions.

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

Usage Guidelines5/5

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

The description explicitly says to use the tool 'BEFORE they order', which is clear timing guidance. It also states what to do with the results — that it is 'ADVISORY ONLY', never blocks, and that if the customer is happy to proceed, the agent should 'say so explicitly'. This provides practical when-to, when-not-to, and how-to-respond guidance.

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

vivid_cross_sellA
Read-onlyIdempotent
Inspect

Suggest relevant, NON-pushy add-on products to round out a customer's order — 1–2 genuinely useful companions with a reason. PREFERS real frequently-bought-together data from Vivid Ads' order history (pass product = the product handle the customer chose); falls back to curated use-case bundles (pass use_case). Omit both to get guidance. Pass already_have to avoid re-suggesting what they've chosen. Never pressure — helpful suggestions only.

ParametersJSON Schema
NameRequiredDescriptionDefault
productNothe product handle the customer chose, e.g. 'pull-up-banners' — returns items frequently bought with it from real order history
use_caseNocurated fallback: 'trade-show', 'school-open-day', 'construction-fence', 'retail-promotion', 'real-estate', or 'corporate-conference'
already_haveNoproduct keys/handles the customer already chose (optional) — excluded from suggestions
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 known. The description adds valuable context: the tool prefers real order history, falls back to curated bundles, and enforces a non-pushy tone. It also explains the behavior when both optional params are omitted. No contradiction with annotations.

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

Conciseness5/5

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

The description is dense but every sentence contributes: purpose, data source preference, fallback, optional parameter guidance, and tone reminder. It's front-loaded with the main action and keeps the rest compact. No wasted words.

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

Completeness4/5

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

With 3 optional params and no output schema, the description covers the key behaviors: how to invoke with different inputs, what to expect in general (1–2 suggestions with reasons), and the appropriate use case. It could theoretically specify the return format, but the description sufficiently frames the tool's behavior for an agent.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds relational meaning: it explains how `product` and `use_case` interact as primary vs fallback data sources, and clarifies that `already_have` filters out chosen items. It also provides example handles for `use_case`. This goes beyond the schema's per-parameter descriptions.

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

Purpose5/5

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

The description clearly states the tool's specific verb+resource: 'Suggest relevant, NON-pushy add-on products to round out a customer's order'. It distinguishes itself from generic recommend tools by emphasizing cross-sell with 1–2 companions and a reason. This makes the purpose unambiguous and distinct from siblings like vivid_recommend.

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 provides explicit conditional usage: pass `product` for real frequently-bought-together data, pass `use_case` for curated bundles, omit both for guidance, and pass `already_have` to avoid re-suggesting. It also gives a behavioral guideline ('Never pressure'). It doesn't explicitly name alternative tools, but the conditions are clear enough for an agent to decide when to use this tool.

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

vivid_delivery_estimateA
Read-onlyIdempotent
Inspect

Estimate WHEN an order would arrive at an Australian postcode — the question behind 'can I get it by Friday?'. Works the timeline through honestly: production starts only after the customer approves their digital proof (3pm AEST cutoff), then production time for that product, then transit for their postcode (metro/regional/remote bands). Returns an arrival WINDOW plus the assumptions it made. This is an ESTIMATE, never a guarantee — always relay the caveat, and for a hard deadline tell them to call 1300 721 614. Free pickup from Derrimut VIC is usually the fastest option.

ParametersJSON Schema
NameRequiredDescriptionDefault
productNoproduct name — used to read its real production time
postcodeYes4-digit Australian delivery postcode
artwork_readyNotrue if artwork is print-ready and the proof will be approved immediately
Behavior5/5

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

The description discloses the underlying timeline logic (proof approval cutoff, production time, transit bands) and states that the tool returns an arrival window plus assumptions, adding substantial behavioral context beyond the annotations' readOnly/idempotent hints. No contradiction with annotations.

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

Conciseness5/5

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

The description is front-loaded with purpose and each of its five sentences earns its place: establishing the question, explaining the timeline, detailing the output, stating the caveat, and offering a fastest alternative. It is concise relative to the complexity it covers.

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

Completeness5/5

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

Given the tool's moderate complexity, no output schema, and rich sibling set, the description is complete: it explains inputs, methodology, output format, risk caveat, and an alternative action. It leaves no major ambiguity for an agent selecting or invoking it.

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

Parameters4/5

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

Schema coverage is 100% with descriptive parameter text, so baseline is 3. The description enriches this by explaining how each parameter factors into the estimate (e.g., artwork_ready affecting proof approval, postcode using transit bands, product production time), adding value beyond the schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: "Estimate WHEN an order would arrive at an Australian postcode" and frames it as answering 'can I get it by Friday?'. This clearly distinguishes it from siblings like vivid_delivery_quote (pricing) and vivid_fulfilment_order_status (tracking).

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

Usage Guidelines5/5

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

It explicitly states when to use the tool (for delivery timing estimates) and when not to rely on it: 'for a hard deadline tell them to call 1300 721 614.' It also mentions an alternative option ('Free pickup from Derrimut VIC is usually the fastest option') and stresses to always relay the caveat that it's an estimate.

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

vivid_delivery_quoteA
Read-onlyIdempotent
Inspect

EXACT delivery/freight cost to an Australian postcode for a product configuration — the SAME live rates the vividads.com.au checkout shows (carrier + shipping-rules apps; incl. GST). Use whenever the customer asks what shipping/delivery costs. Resolve the product + size/options + quantity first (vivid_product / vivid_price), then call with the postcode (suburb improves accuracy). Never estimate freight yourself. Always also mention free pickup from Derrimut VIC 3026.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo(simple products) size, e.g. '850x2050'
stateNoVIC/NSW/QLD/SA/WA/TAS/NT/ACT (derived from postcode if omitted)
suburbNo
optionsNoFULL selected options for option-rich/custom products (same shape as vivid_price.options)
productYesproduct name, e.g. 'pull up banner'
postcodeYes4-digit Australian postcode
quantityNo
Behavior5/5

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

The description adds significant behavioral context beyond the readOnly/idempotent/destructive annotations: it discloses that rates are live and identical to checkout, include GST, require prior resolution of product/options/quantity, and that suburb improves accuracy. There is no contradiction with annotations.

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

Conciseness5/5

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

The description is four sentences, all dense with purpose, usage, prerequisites, and a customer-facing instruction. It is front-loaded with the core function and each subsequent sentence earns its place without redundancy.

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

Completeness5/5

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

Despite having no output schema, the description covers the core return value (exact cost), prerequisites, parameter hints, and special behavioral notes. It integrates well with sibling tools (vivid_product / vivid_price) and covers edge cases like free pickup, making it complete for a 7-parameter 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 71%, and the description adds extra semantics by connecting parameters to workflows ('Resolve the product + size/options + quantity first'), noting suburb improves accuracy, and linking options to vivid_price.options shape. This goes beyond the schema's individual field descriptions.

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

Purpose5/5

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

The description clearly states the tool returns the exact delivery/freight cost for an Australian postcode, matching the live rates from the vividads.com.au checkout. It distinguishes from the sibling vivid_delivery_estimate by emphasizing 'EXACT' and 'live rates' and specifying the shipping-rules apps and GST inclusion.

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

Usage Guidelines5/5

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

Explicit when-to-use guidance is given: 'Use whenever the customer asks what shipping/delivery costs.' It also provides prerequisites and sequencing ('Resolve the product + size/options + quantity first'), clarifies accuracy improvement with suburb, and includes a clear exclusion ('Never estimate freight yourself') and a required note about free pickup.

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

vivid_fulfilment_order_statusA
Read-onlyIdempotent
Inspect

Authoritative order state with a per-line-item breakdown and an order-level rollup. States: received, in_production, partially_ready, ready_for_pickup, dispatched, in_transit, out_for_delivery, delivered, completed, on_hold, cancelled. Includes the StarShipit shipping summary where available.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idNoShopify order GID, e.g. gid://shopify/Order/123.
order_nameNoHuman order name, e.g. "#12345" (alias for order_id).
line_item_idNoOptional Shopify line item GID to scope to one item.
customer_emailYesThe email address on the order. REQUIRED for identity — order details are only returned when this email matches the order. The customer must give their email AND one of their order numbers.
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, so the description only needs to add extra context. It adds the 'authoritative' source-of-truth claim, the return structure (line-item breakdown and order rollup), and the conditional StarShipit summary ('where available'). It does not mention the customer_email identity requirement, but that is captured in the schema's parameter description.

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

Conciseness5/5

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

The description is three concise, purposeful sentences: the first defines the return structure, the second lists the state enum, and the third captures the shipping-summary caveat. Every sentence earns its place with no filler or repetition of schema 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?

With no output schema, the description sufficiently sketches the response: per-line-item breakdown, order-level rollup, a complete state list, and an optional shipping summary. It relies on the schema for the required email and identity-match rules, and it does not discuss pagination or error conditions, but the moderate complexity of the tool does not demand much more.

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 all four parameters—order_id, order_name, line_item_id, and customer_email—are clearly documented, including the required identity-match constraint. The tool description adds no parameter-specific detail beyond the per-line-item context, but the schema already carries the burden, so a baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly identifies an authoritative order-status resource with per-line-item and order-level rollup views, and enumerates the possible states. It distinguishes itself from general order-status and other fulfilment sub-tools by highlighting the line-item breakdown and StarShipit shipping summary, though it uses a noun phrase rather than a strong verb and offers no direct sibling comparison.

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 context is implied by the name and the per-line-item/order-level focus, but there is no explicit guidance on when to use this tool over alternatives like vivid_order_status, vivid_fulfilment_shipping, or vivid_fulfilment_production_stage. No exclusions or situational notes are provided.

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

vivid_fulfilment_pickup_statusA
Read-onlyIdempotent
Inspect

Whether an order (or specific line items) is ready for pickup at Derrimut VIC — ready once printed and cut, before dispatch.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idNoShopify order GID, e.g. gid://shopify/Order/123.
order_nameNoHuman order name, e.g. "#12345" (alias for order_id).
line_item_idNoOptional Shopify line item GID to scope to one item.
customer_emailYesThe email address on the order. REQUIRED for identity — order details are only returned when this email matches the order. The customer must give their email AND one of their order numbers.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering safety. The description adds meaningful behavioral context by explaining what 'ready' means (printed and cut) and the specific location (Derrimut VIC), which helps the agent understand the tool's semantics 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?

The description is a single, front-loaded sentence that conveys the tool's essence without any redundant content. It earns its place by defining the tool's scope and readiness condition efficiently.

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 status query with comprehensive annotations and full schema coverage, the description adequately covers the tool's purpose and readiness definition. It omits return format details, but the 'whether' phrasing implies a boolean/status response, which is sufficient given the tool's simplicity and the presence of sibling tools for more detailed tracking.

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 detailed explanations for each parameter (e.g., customer_email being required for identity matching). The tool description itself adds no parameter-specific details, so the baseline of 3 applies since the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool's purpose: checking whether an order or line items are ready for pickup at a specific location, with a precise readiness criterion ('printed and cut, before dispatch'). This distinguishes it from sibling tools like vivid_fulfilment_order_status, vivid_fulfilment_production_stage, and vivid_fulfilment_shipping, which cover different aspects of fulfilment.

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 provides clear context on when to use the tool (when checking pickup readiness at Derrimut VIC) and implicitly differentiates it from post-dispatch tools by noting 'before dispatch.' However, it does not explicitly name alternative tools or state when not to use it, so it falls slightly short of a perfect score.

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

vivid_fulfilment_production_stageA
Read-onlyIdempotent
Inspect

Where each line item is in production, per item plus a rollup. Stages (in order): received, in preflight, awaiting proof, proof approved, imposing, queued for print, sent to Caldera, printing, printed, at Zund cutter, cut, dispatched. Needs-action states: missing file, preflight failed, with design team, on hold (unpaid), proof rejected, duplicate. Each item also returns the press and the print timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idNoShopify order GID, e.g. gid://shopify/Order/123.
order_nameNoHuman order name, e.g. "#12345" (alias for order_id).
line_item_idNoOptional Shopify line item GID to scope to one item.
customer_emailYesThe email address on the order. REQUIRED for identity — order details are only returned when this email matches the order. The customer must give their email AND one of their order numbers.
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable context by enumerating the stage order and needs-action states, and mentions the return of press and print timestamp, going beyond the annotation's safety profile without contradiction.

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

Conciseness4/5

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

The description is a single paragraph but well-structured: it opens with the core purpose, then lists stages, needs-action states, and additional return fields. Every sentence contributes useful information without redundancy, though it is slightly dense due to the enumerations.

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 tool's complexity and lack of an output schema, the description covers the key aspects: per-item and rollup view, stage order, needs-action states, and additional return fields. It does not detail the exact structure of the rollup or how multiple items are aggregated, leaving a small gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning to parameters—it clarifies that line_item_id is optional for scoping to one item via the 'per item plus a rollup' phrase, but otherwise the schema already documents all parameter semantics.

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

Purpose4/5

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

The description clearly states the tool returns production stage per line item plus a rollup, listing the stages in order. It distinguishes itself from sibling tools like order status and shipping by focusing on production stages, though it lacks an explicit verb like 'get' or 'retrieve'.

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

Usage Guidelines3/5

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

The description implies usage for checking production stage but does not explicitly state when to use this tool over alternatives like vivid_fulfilment_order_status or vivid_proof_status. It lists needs-action states, giving context for when it's relevant, but lacks explicit exclusions or alternative recommendations.

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

vivid_fulfilment_shippingA
Read-onlyIdempotent
Inspect

StarShipit shipping: carrier, tracking number, tracking URL, ETA and delivered flag. shipping_state: not_dispatched, shipped, in_transit, out_for_delivery, delivered, exception.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idNoShopify order GID, e.g. gid://shopify/Order/123.
order_nameNoHuman order name, e.g. "#12345" (alias for order_id).
line_item_idNoOptional Shopify line item GID to scope to one item.
customer_emailYesThe email address on the order. REQUIRED for identity — order details are only returned when this email matches the order. The customer must give their email AND one of their order numbers.
Behavior4/5

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

With annotations already declaring the tool safe and read-only, the description adds value by enumerating exact output fields and the complete shipping_state enum. This goes beyond the generic title and gives the agent a clear picture of what data will be returned. No contradiction with annotations 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?

The description is extremely concise: two short sentences that front-load the core purpose and then enumerate the output fields and state values. Every word earns its place, and the structure is scannable.

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 tool with no output schema, the description compensates well by listing expected fields and the state enum. It does not explicitly state that some fields may be absent (e.g., tracking URL before dispatch), but the state enum implicitly covers this. Overall, the description is sufficient for an agent to understand what to expect.

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 input schema provides 100% coverage with detailed parameter descriptions, so the baseline is 3. The tool description does not add any information about parameter formats or relationships beyond what the schema already states. It neither improves nor detracts from the schema's clarity.

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

Purpose4/5

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

The description clearly indicates this tool returns shipping information including carrier, tracking number, URL, ETA, and delivery status. The shipping_state enum adds specificity that distinguishes it from sibling tools like production_stage or pickup_status. However, it lacks an explicit verb like 'get' or 'retrieve', so the action 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?

Usage is implied through the title and the data described (carrier, tracking, ETA), which clearly points to shipping-related queries. However, the description provides no explicit guidance on when to use this tool versus alternatives like vivid_fulfilment_order_status or vivid_delivery_estimate. No exclusions or alternative references are given.

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

vivid_identity_startAInspect

Start email verification before showing a customer's private data (past orders, reorder, saved address, email order-status). Sends a 6-digit code to the email. Returns a verificationId. Then ask the customer for the code and call vivid_identity_verify. Use this whenever a customer asks to see 'my orders', 'reorder', or 'status by email' and you don't already have a valid identity token.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesthe customer's email to verify
purposeNoreorder | order_status | saved_details (optional)
Behavior4/5

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

Annotations (readOnlyHint=false, openWorldHint=true) already indicate side effects, but the description adds specific behavior: 'Sends a 6-digit code to the email' and 'Returns a verificationId.' This goes beyond the structured metadata, though it omits potential failure modes or timing details.

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

Conciseness4/5

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

The description is four sentences long, covering purpose, behavior, response, and usage trigger. Each sentence contributes value, but the list of examples ('past orders, reorder, saved address, email order-status') could be trimmed without losing meaning, making it slightly less concise than ideal.

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

Completeness4/5

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

For a 2-parameter tool with no output schema, the description adequately covers the workflow: sends code, returns verificationId, instructs to call verify, and states when to use it. It does not mention token expiration, error handling, or rate limits, but these are not critical given the tool's simplicity.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions for email and purpose. The description adds context by clarifying that email belongs to the customer and that purpose specifies the verification use case, but it does not significantly augment the schema, so baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource: 'Start email verification before showing a customer's private data...' It also differentiates from sibling vivid_identity_verify by explicitly saying 'Then ask the customer for the code and call vivid_identity_verify,' making the tool's role in the verification flow unmistakable.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: 'Use this whenever a customer asks to see "my orders", "reorder", or "status by email" and you don't already have a valid identity token.' It also names the next step (vivid_identity_verify) and the condition for not using it, giving clear context versus alternatives.

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

vivid_identity_verifyAInspect

Complete email verification: pass the verificationId from vivid_identity_start and the 6-digit code the customer received. On success returns a short-lived identity token — pass that token to vivid_reorder / vivid_order_status to unlock the customer's private data. Codes expire in 10 minutes; attempts are limited.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesthe 6-digit code the customer received by email
verificationIdYesfrom vivid_identity_start
Behavior5/5

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

The description adds behavioral context beyond annotations: codes expire in 10 minutes, attempts are limited, and success returns a short-lived identity token. This meaningfully informs the agent about constraints and side effects without contradicting 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?

Three concise, front-loaded sentences with no filler. Each clause adds operational value: inputs, output, downstream usage, expiry, and attempt limits.

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

Completeness5/5

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

For a two-parameter tool with a full schema and no output schema, the description fully covers the lifecycle: where the inputs come from, what the success output is, how to use that output, and important constraints (expiry, attempt limits).

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 already covers 100% of parameter descriptions ('the 6-digit code the customer received by email' and 'from vivid_identity_start'). The description restates this functionally but does not add new parameter-specific meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Complete email verification'), specifies the required inputs (verificationId and 6-digit code), and distinguishes itself from the sibling vivid_identity_start by describing the handoff to vivid_reorder / vivid_order_status.

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

Usage Guidelines5/5

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

It explicitly says to pass the verificationId from vivid_identity_start, and explicitly names the downstream tools (vivid_reorder / vivid_order_status) that should receive the resulting token, providing clear when-to-use and alternative context.

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

vivid_order_artworkA
Read-onlyIdempotent
Inspect

Show a VERIFIED customer the PRINT-READY artwork files produced for one of their past orders (the actual files that went to print), so they can confirm them before reordering. Requires the order number and a valid identity token bound to the customer's email; only returns artwork for orders that belong to that customer. Returns view links to each print layout. Use when a customer asks 'what artwork did I print', 'show me my last print file', or before confirming a reorder.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesthe customer's email (must match the identity token)
orderYesthe order number to show artwork for, e.g. '117478'
tokenNothe identity token from vivid_identity_verify (required — proves the customer owns this email/order)
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds valuable behavioral context: the token must be bound to the customer's email, and artwork is only returned for orders belonging to that customer. It also discloses the return type ('view links to each print layout'), going beyond the safety annotations.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the primary purpose, followed by requirements and return information, then usage triggers. Every sentence contributes unique information without redundancy or filler.

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

Completeness5/5

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

Given the tool's moderate complexity (3 parameters, no output schema), the description covers all essential aspects: what it does, prerequisites, security constraint, output, and when to use. It is complete for an agent to correctly select and invoke the tool, especially with supporting annotations.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes all parameters. The description adds minimal extra semantic value, clarifying that the token proves ownership and the email must match the token, but this largely repeats or slightly reinforces existing schema descriptions. 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 clearly specifies the action ('Show'), the target resource ('PRINT-READY artwork files... for one of their past orders'), and the scope ('VERIFIED customer'). It differentiates from siblings like vivid_check_artwork and vivid_proof_status by emphasizing 'the actual files that went to print' and 'view links to each print layout'.

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 provides explicit usage triggers ('when a customer asks...') and a clear context ('before confirming a reorder'). It also states prerequisites (order number and identity token). However, it does not explicitly mention when not to use this tool or name alternative tools for related queries, so it falls slightly short of a full 5.

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

vivid_order_statusA
Read-onlyIdempotent
Inspect

Check the LIVE status of an order — real production stage (from the Enfocus Switch print workflow), ready-for-pickup, or shipped with carrier + tracking (from StarShipit, authoritative). Look up a real order by number (e.g. #119581) or a quote/draft by number (e.g. #D776755). Requires the customer's email, which must match the order. Use for 'where is my order', 'track order 12345', 'is my order ready'. Shipped/delivered from StarShipit is final; otherwise the live Switch stage is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoalternatively, the customer's email to list recent orders (requires verified identity)
referenceNoorder # or quote/draft # (e.g. '#119581' or '#D776755')
Behavior5/5

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

Annotations already declare readOnly, idempotent, and non-destructive. The description adds valuable behavior: requires customer's email matching the order, StarShipit is the authoritative/final source for shipped/delivered, and otherwise the live Switch stage is returned. This goes beyond annotations and sets correct expectations.

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 packed into five dense sentences, each providing unique value: purpose, data sources, input examples, usage cues, and return semantics. No filler or repetition.

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

Completeness5/5

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

Despite no output schema, the description explains what will be returned (StarShipit final vs. Switch stage), the input requirements (order/quote number, email match), and the authoritative hierarchy. This is sufficient for an agent to know what to expect and how to use the tool correctly.

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

Parameters4/5

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

Schema covers both parameters fully, so baseline is 3. The description adds examples for reference format (#119581 vs #D776755), distinguishes order vs quote/draft, and states the email matching requirement. However, there is slight ambiguity: description says 'requires email' while schema lists no required parameters.

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

Purpose5/5

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

The description clearly states the tool's function: 'Check the LIVE status of an order' with specific data sources (Enfocus Switch, StarShipit) and status categories (production stage, ready-for-pickup, shipped). It distinguishes itself from sibling tools by aggregating multiple status sources into one comprehensive status check.

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 explicit use cases: 'Use for "where is my order", "track order 12345", "is my order ready"'. This gives clear context for when to use the tool, though it does not explicitly mention alternatives or when not to use it (e.g., raw production stage vs. this aggregate).

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

vivid_place_orderAInspect

Create a Shopify DRAFT order for Vivid Ads team review — NOT a final/placed order, and NEVER charges a card. Before calling, summarise the exact product, quantity, configuration, verified price (if available), customer details, and delivery/pickup, then get the customer's explicit confirmation. Call WITHOUT confirm to get a Review summary; confirm:true only AFTER they confirm. Do NOT auto-retry after a timeout without first checking whether a draft was already created. Payment is a secure invoice/pay-link from the team; production waits on proof approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
sizeNo
emailYes
itemsNoFor a MULTI-LINE order (e.g. two banners with DIFFERENT designs): one entry per line, each { product, size?, options?, quantity?, artwork? }. Different designs must be SEPARATE entries (quantity 1 each) with their OWN artwork. If provided, this replaces the single top-level product; contact/delivery/PO stay at the top level.
phoneNo
artworkNo{ mode:'ai_design'|'upload_file'|'design_brief', designId?, imageUrl?, printPdfUrl?, fileUrl?, brief? }
companyNo
confirmNoset true ONLY after the customer reviews and confirms
optionsNoFULL selected options (same shape as vivid_price.options). Use vivid_product to see them. Prefer this over `size` for option-rich products.
productNo
deliveryNopickup or delivery details. PICKUP: { method:'pickup', name, email, phone, pickupLocation?, notes? }. DELIVERY: { method:'delivery', name, email, phone, company?, address1, address2?, suburb, state, postcode, country, notes? }. Contact (name/email/phone) can live here or at the top level. Omit entirely to keep the old behaviour.
poNumberNo
quantityNo
customerTypeNoretail|corporate|school|government|account — sets payment terms
Behavior5/5

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

The description discloses critical behavioral traits beyond the annotations: it is a draft order (not final), never charges a card, payment occurs via a secure invoice/pay-link, production waits on proof approval, and the operation is non-idempotent due to possible existing drafts. This adds substantial context.

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 single paragraph is dense and front-loaded, immediately stating 'DRAFT order' and 'NEVER charges a card', then covers the confirmation process, retry behavior, and payment expectations. Every sentence adds value with no redundancy.

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

Completeness5/5

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

For a complex 14-parameter tool with nested objects and no output schema, the description covers input expectations, confirmation protocol, timeout behavior, and post-order conditions. It even implies the return value (Review summary) for the unconfirmed path.

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 description adds meaningful semantics to the confirm parameter (two-phase confirmation flow) and emphasizes summarizing product/quantity/customer details. The schema already describes many nested fields well, and this description compensates for the 43% coverage by explaining workflow-level semantics.

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

Purpose5/5

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

The description clearly states the action (creating a Shopify DRAFT order for Vivid Ads team review), explicitly contrasts it with a final/placed order, and notes it never charges a card. This distinguishes it from sibling tools like vivid_order_status and vivid_request_quote.

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

Usage Guidelines5/5

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

It gives explicit workflow guidance: call without confirm to get a Review summary, set confirm:true only after customer confirmation, and do not auto-retry after a timeout without checking for an existing draft. This provides a clear decision flow and error-handling context.

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

vivid_priceA
Read-onlyIdempotent
Inspect

Calculate the current price for an EXACT product configuration. Pass options with the full selected configuration (use vivid_product first), or just size for simple products. Some products take several seconds or need manual confirmation. Before calling, briefly tell the customer you're checking the live price. Never estimate or reuse another configuration's price. When presenting, repeat the exact product title, quantity, dimensions, and price-affecting options.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo(simple products) size, e.g. '850x2000', or a named size like 'medium'
optionsNoFULL selected options keyed by the schema keys from vivid_product, e.g. { size:'Medium', sides:'Double-sided', base:'Heavy Duty Metal Plate (5kg)' } or { size:'Custom', widthMm:700, heightMm:1000, eyelets:'4 x eyelets (all corners)', cutting:'Square or Rectangle' }
productYesproduct name, e.g. 'pull up banner', 'corflute', 'a-frame', 'feather flag'
quantityNohow many
Behavior5/5

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

Goes beyond the annotations by disclosing that some products take several seconds or need manual confirmation, and that the agent must tell the customer before calling. These are behavioral traits not conveyed by the readOnly/openWorld/hints. No contradiction with annotations.

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

Conciseness4/5

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

The description is about 300 characters and contains five sentences, each carrying distinct information: purpose, usage modes, latency/manual steps, customer communication, and presentation rules. It is front-loaded with the purpose and remains focused, though it could be slightly more concise by merging the 'Never estimate' rule into the first sentence.

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

Completeness5/5

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

Given the tool's complexity (nested options, multiple product types, latency, and interactive requirements), the description addresses all key aspects: prerequisite (vivid_product), exact configuration requirement, simple vs complex products, latency/manual confirmation, customer-facing behavior, and what to include when presenting the result. Although no output schema exists, the presentation instruction implicitly describes the output fields, making it sufficiently 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?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by clarifying when to use `options` vs `size`, and the phrase 'FULL selected configuration' warns against partial input. It also links `options` to vivid_product's schema keys, adding beyond the schema's generic descriptions.

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

Purpose5/5

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

The description begins with a specific verb+resource: 'Calculate the current price for an EXACT product configuration.' This clearly states the tool's function and distinguishes it from siblings like vivid_price_breaks (price breaks) and vivid_request_quote (request a quote) by emphasizing exactness and live pricing.

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

Usage Guidelines5/5

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

Provides explicit usage instructions: pass `options` for configurable products after using vivid_product, or just `size` for simple products. It also gives a clear exclusion: 'Never estimate or reuse another configuration's price.' Additionally, it instructs when to inform the customer, which is valuable interaction guidance.

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

vivid_price_breaksA
Read-onlyIdempotent
Inspect

Vivid's REAL published volume price breaks for a product + size (e.g. 1 → $135 ea, 2 → $132.30, 5 → $128.25, 10 → $121.50 — save 10%). Use for bulk/trade pricing questions, or right after a price when a slightly larger quantity would save the customer money. Prices are AUD incl. GST and come from the same source as the live price, so they can never contradict a quote. If the product has no breaks it says so — never invent a discount.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNosize — breaks are per size/variant
productYesproduct name, e.g. 'premium pull up banner'
quantityNothe customer's current quantity, to highlight the next worthwhile break
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), it discloses that prices are 'AUD incl. GST', sourced identically to live prices to guarantee consistency, and that it 'never invent[s] a discount' when no breaks exist. These are valuable behavioral guarantees not captured 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.

Conciseness5/5

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

The description is appropriately sized, with every sentence serving a purpose: definition, usage example, use case, currency/source caveat, and a no-invention guarantee. It is front-loaded with the core purpose and conveys all necessary information without redundancy.

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

Completeness5/5

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

Given the tool's simplicity (3 parameters, no output schema), the description covers all necessary aspects: what it does, when to use it, behavioral safeguards (currency, GST, source consistency, no fabricated discounts), and the input parameters. It is self-sufficient for an AI agent to correctly invoke the 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?

The schema already provides 100% coverage for all three parameters, so the baseline is 3. The description adds practical meaning by illustrating how the quantity parameter works ('1 → $135 ea, 2 → $132.30, 5 → $128.25') and explaining that the current quantity is used to 'highlight the next worthwhile break', enriching the plain schema definitions.

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

Purpose5/5

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

The description clearly states the tool retrieves 'Vivid's REAL published volume price breaks for a product + size', with a concrete example of price tiers. It distinguishes itself from sibling tools like vivid_price by focusing on volume breaks and bulk/trade pricing, making its purpose unambiguous.

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

Usage Guidelines4/5

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

Explicitly states when to use: 'Use for bulk/trade pricing questions, or right after a price when a slightly larger quantity would save the customer money.' This provides clear context, though it does not explicitly name alternative tools or when-not-to-use scenarios, which would elevate it to a 5.

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

vivid_productA
Read-onlyIdempotent
Inspect

Get a product's FULL real option schema (all dimensions, not just size) so you can configure it correctly before pricing/ordering. Returns each option's key, label, allowed values, default, whether it's required, whether it affects price, and display order — plus turnaround (the live production/lead time from the product page, e.g. 24 hours if artwork is approved by 3 pm AEST on a business day). Flags have Size/Printed Sides/Flag Base; corflute has Size (or custom W×H)/Eyelets/Cutting; table throws have Style/Size/Backside.

ParametersJSON Schema
NameRequiredDescriptionDefault
productYesproduct name, e.g. 'feather flag', 'corflute', 'table throw'
Behavior5/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false. The description adds substantial behavioral detail: it lists the exact fields returned (key, label, allowed values, default, required, affects price, display order) and explains turnaround as live production/lead time with a concrete example (24 hours if artwork approved by 3 pm AEST). It also notes product-specific variations, which is valuable beyond the structured annotations.

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

Conciseness5/5

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

The description is 3 sentences, each with a distinct role: main purpose, return field details, product examples. It is dense but not wasteful; every sentence adds 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?

No output schema is provided, but the description compensates by enumerating the return structure and turnaround semantics. It also gives per-product option lists, making the tool predictable for the agent. Remaining gaps (e.g., error handling) are minor given the read-only, idempotent nature.

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 covers 100% of the single parameter with a description and examples. The description reuses the same examples (feather flag, corflute, table throw) but adds product-specific option breakdowns, which adds context to what values the parameter accepts without changing the parameter semantics. Baseline 3 applies; no additional syntax or constraints are added.

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 'Get a product's FULL real option schema' – a specific verb and resource. It clarifies the purpose ('configure it correctly before pricing/ordering') and distinguishes it from pricing/ordering siblings by focusing on option configuration.

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

Usage Guidelines4/5

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

It explicitly states the tool should be used 'before pricing/ordering', giving clear context. It also notes the difference from partial schemas with 'not just size', implying when full configuration is needed, but does not name alternative tools or exclusions.

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

vivid_proof_statusA
Read-onlyIdempotent
Inspect

Check a customer's DIGITAL PROOF status: has the proof been emailed, is it awaiting their approval, being revised after rejection, or already approved (production underway). Use for 'where's my proof', 'did you send my proof', 'when do I approve'. Requires the order number AND the email on the order (identity — details only return when they match). Relay the returned agent_hint concisely; production starts only after the customer approves the emailed proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesthe email address the order was placed under (required)
order_numberYesorder number, e.g. '#121978'
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: the identity constraint ("details only return when they match") and the instruction to relay the returned agent_hint, plus a caveat that production starts only after customer approval. No contradiction with annotations.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the core purpose, then usage examples, then essential constraints and a follow-up instruction. Every sentence adds distinct value with no filler or repetition of annotations. It is appropriately sized for the tool's moderate complexity.

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

Completeness4/5

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

The description covers what the tool checks, when to use it, prerequisites, identity behavior, and what to do with the result (relay agent_hint). Given there is no output schema, it somewhat hints at the return value by referencing agent_hint. It is complete for a simple status check, though it could explicitly state the return format or an example response.

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% for both parameters, so the schema already documents email and order_number. The description enriches that baseline by explaining why both are required and what happens if they don't match (identity verification, details withheld). This goes beyond the schema's simple field descriptions and clarifies the matching requirement.

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: "Check a customer's DIGITAL PROOF status" and enumerates the exact statuses it covers (emailed, awaiting approval, being revised, approved). This clearly distinguishes it from sibling status tools like vivid_order_status or vivid_fulfilment_production_stage, which focus on different aspects of the order lifecycle.

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

Usage Guidelines4/5

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

The description explicitly states when to use it with concrete user queries: "Use for 'where's my proof', 'did you send my proof', 'when do I approve'." It also notes the prerequisite identity check (order number + email). It does not explicitly name alternative tools or state when not to use it, but the context is clear enough for an agent to make a reasonable choice.

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

vivid_recommendA
Read-onlyIdempotent
Inspect

Recommend Vivid Ads signage for a goal + business type (real Australian signage: pull-up banners, A-frames, corflute, fabric banners, flags, media walls). Call with goal and business; omit either to get the next question to ask the customer.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoe.g. foot-traffic, promote-sale, stand-out-expo, advertise-outside, opening-store, brand-presence
businessNoe.g. cafe-hospitality, retail, real-estate, events-expo, corporate, school, gym-fitness
Behavior5/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 clear. The description adds valuable behavioral context: the tool is interactive and will ask for more information if a parameter is omitted. It also scopes the domain to 'real Australian signage' with a specific list, setting expectations beyond what annotations provide.

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

Conciseness5/5

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

The description is two sentences with no fluff. The first sentence front-loads the primary purpose and domain. The second sentence provides actionable usage instructions. Every word earns its place.

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

Completeness4/5

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

The description is sufficiently complete for a 2-parameter tool with no output schema. It explains what the tool does, the domain, and the interactive behavior. It does not explicitly describe the return format, but the mention of 'next question' implies the response type, and with no output schema, this level of detail is acceptable.

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

Parameters4/5

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

Schema description coverage is 100% with examples for each parameter. The description adds meaning by explaining that the parameters are optional and defines the fallback behavior ('omit either to get the next question'). This goes beyond the schema alone by clarifying the conversational flow.

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

Purpose5/5

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

The description clearly states the tool's function: 'Recommend Vivid Ads signage for a goal + business type'. It uses a specific verb ('Recommend') and a resource ('signage'), and provides concrete examples of signage types. This distinguishes it from sibling tools like vivid_price or vivid_product.

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: 'Call with goal and business; omit either to get the next question to ask the customer.' This tells the agent exactly how to invoke it. It does not explicitly name alternative tools, but the purpose is distinct enough that a sibling comparison is not strictly necessary.

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

vivid_reorderAInspect

Reorder a customer's previous signage job — fast. Requires identity verification (emailed one-time code), not just an order number. action:'list' shows their past orders; action:'reorder' repeats one. ARTWORK: it reuses only the customer's previously APPROVED artwork (the print file), never a pre-approval upload; if it can't be confirmed automatically the team confirms it. A fresh proof is ALWAYS re-issued to confirm the artwork before printing. The customer may also supply new artwork or change the quantity. Re-prices with CURRENT pricing (never the old price). Creates a proof-gated draft order; never charges a card.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
emailYesthe email the customer ordered under (required to find past orders)
orderNoorder name to reorder from, e.g. '#D12345' (optional)
tokenNothe identity token from vivid_identity_verify (required — proves the customer owns this email)
actionNo'list' (show past orders) or 'reorder' (repeat one)
artworkNonew print-ready artwork file URL (optional; default = reuse previous)
confirmNoset true to place the reorder (draft, proof-gated, never charges)
productNowhich product to reorder, e.g. 'corflute' (optional; default = most recent eligible)
quantityNooverride quantity (optional; default = same as last time)
Behavior5/5

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

The description goes far beyond the annotations by disclosing key behavioral details: it reuses only previously approved artwork, always re-issues a fresh proof, reprices with current pricing, creates a proof-gated draft, and never charges a card. This adds significant contextual information beyond the structured fields.

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

Conciseness4/5

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

The description is a single dense paragraph, but it remains readable and front-loads the main purpose. Each sentence contributes unique information (artwork policy, proof, pricing, draft, no charge). It could be slightly more structured with bullets, but the information-to-word ratio is strong.

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

Completeness5/5

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

For a tool with 9 parameters and no output schema, the description covers all critical aspects: prerequisites, sub-actions, artwork handling, proof workflow, pricing, confirmation behavior, and charging semantics. An agent can correctly select and drive this tool end-to-end based solely on the description.

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?

Although schema description coverage is high (89%), the description adds essential meaning to parameters like action ('list' shows past orders, 'reorder' repeats one), confirm (draft, proof-gated, never charges), and artwork (default reuse previous). This contextual enrichment goes beyond the schema's basic property descriptions.

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

Purpose5/5

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

The description opens with a specific verb + resource: 'Reorder a customer's previous signage job' — this clearly distinguishes it from new-order tools like vivid_place_order. It also clarifies the two sub-actions (list vs reorder), leaving no doubt about the tool's scope.

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

Usage Guidelines4/5

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

The description explicitly states the prerequisite of identity verification and contrasts with using just an order number. It implies the need to call vivid_identity_verify first (referenced by the token), and clearly differentiates the list and reorder modes. However, it does not explicitly name sibling tools to prefer over alternatives, which would earn a 5.

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

vivid_request_quoteAInspect

Email the customer a formal QUOTATION. If the exact configuration can be priced and an email is given, this INSTANTLY emails a branded PDF-style quotation (line items, GST, total, quote number, 14-day validity, accept-online link) — status 'quoted'. For custom/unpriceable products it logs the request for the team to prepare and send (status 'received'). Never takes payment. Confirm product, quantity, size/options, name, and email before submitting.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
sizeNo
emailYes
phoneNocustomer phone (optional)
designNodesign preference: 'ai_design' | 'upload_own' | 'design_later'
companyNo
messageNothe customer's full request in their own words (multi-item OK)
optionsNoFULL selected options (same shape as vivid_price.options) so the quotation is priced exactly — include size + any dropdowns/add-ons.
productNo
quantityNo
artworkUrlNolink to the customer's uploaded artwork (e.g. the fileUrl returned by vivid_upload_artwork), if any
discountCodeNoany reseller/trade or discount code the customer mentioned (recorded, NOT applied here)
Behavior5/5

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

Discloses significant behavioral context beyond annotations: instantly emails a branded PDF, sets status to 'quoted' or 'received', never takes payment, and includes 14-day validity and accept-online link. No contradiction with the annotations (mutating, non-idempotent, open-world).

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

Conciseness5/5

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

Four sentences, front-loaded with the core purpose, followed by conditional behavior and a final confirmation checklist. No filler or repetition of schema details.

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

Completeness3/5

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

Given the tool's complexity and no output schema, the description covers inputs, conditional behavior, side effects, and exclusions well, but does not describe the return value/response (e.g., quote ID or confirmation). It also does not explicitly handle the missing-email case beyond the stated condition, leaving a notable gap.

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?

Description names the key parameters to confirm (product, quantity, size/options, name, email), clarifies discountCode is recorded but not applied, and references artworkUrl as the upload link. This adds meaning beyond the schema, especially with only 50% schema coverage, though design, phone, company, and message are left to schema.

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

Purpose5/5

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

Clearly states the tool emails a formal quotation, distinguishing it from pricing/order/accept tools by specifying the branded PDF, statuses, and 'Never takes payment.' The conditional quoted/received behavior further clarifies scope.

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

Usage Guidelines4/5

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

Provides clear context: use when a customer requests a formal quotation and details are confirmed, with an explicit fallback for custom/unpriceable items and an explicit exclusion that payment is not taken. However, it does not name sibling alternatives like vivid_price or vivid_accept_quote, so it stops short of full when-not guidance.

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

vivid_support_answerA
Read-onlyIdempotent
Inspect

Answer a customer's support / FAQ question in Vivid Ads' voice, grounded in the team's real support history + verified policy. Covers turnaround & production time, digital proofs & approval, artwork specs & file setup, products & options, quotes & pricing, delivery & pickup, changing/cancelling orders, reorders, and the print guarantee. Returns the best-matching answer(s) and topic; if nothing matches it returns escalate:true so you can hand off to the team. Use for questions like 'how long does it take?', 'what file format do you need?', 'can I change my order?', 'where do I pick up?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesthe customer's support question, in their own words
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 valuable context: it returns best-matching answers plus a topic, escalates when nothing matches, and is grounded in real support history plus verified policy. This goes beyond the annotations.

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

Conciseness4/5

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

The description is moderately long but each sentence earns its place: the action/voice, the scope list, the output/fallback behavior, and usage examples. It is front-loaded with the core purpose, and while the topic list is dense, it is necessary for clarifying coverage.

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 a simple one-parameter schema and no output schema, the description fully covers what the tool does, what it returns (answer(s) + topic), the escalate behavior, and the supported question types. It is complete for an agent to select and invoke this 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?

The schema already fully describes the 'question' parameter with 100% coverage. The description reinforces it with concrete example questions, illustrating what the input should look like in practice. This adds useful guidance beyond the schema's generic 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?

The description clearly states the tool answers customer support/FAQ questions in Vivid Ads' voice and lists a comprehensive set of covered topics. It uses a specific verb ('Answer') and resource, but it does not explicitly differentiate from sibling tools like vivid_order_status or vivid_delivery_estimate, which could overlap with some topics.

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 explicit examples ('how long does it take?', 'what file format do you need?') and explains the escalate:true fallback when no match is found. However, it does not name alternative tools or state when not to use it, so it stops short of full when/when-not guidance.

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

vivid_upload_artworkAInspect

Upload a customer's artwork FILE through the agent (no website file picker needed). Accepts the file as base64, stores it in Vivid's Google Drive, and returns a stable shareable link plus metadata. Accepts PDF / AI / EPS / JPG / PNG. Does NOT verify print-readiness — the team checks that. Uploading needs no verification, but ATTACHING the file to an existing order does: pass the identity token from vivid_identity_verify, otherwise the file is held unattached and the reply says so. Use when a customer wants to send their print file via chat.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNocustomer email (optional). Only recorded once verified — see token.
tokenNoidentity token from vivid_identity_verify. Required to attach this upload to an order or to record the email; without it the file is still stored, just not claimed by anyone.
orderIdNoattach to an existing order (optional). Ignored unless a valid token is supplied — an unverified caller must not be able to put a file on somebody else's order.
quoteIdNoassociate with a quote request (optional)
filenameYesoriginal filename incl. extension, e.g. 'banner-artwork.pdf'
mimeTypeNoMIME type, e.g. 'application/pdf'
sessionIdNoassociate with a design session (optional)
contentBase64Yesthe file contents, base64-encoded (data URI prefix OK). Small files only; for very large files share a download link instead.
Behavior5/5

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

The description goes well beyond annotations by disclosing that the file is stored in Google Drive, that print-readiness is not verified, and that without an identity token the file is held unattached with the reply 'says so'. This provides crucial behavioral context that annotations (readOnlyHint, destructiveHint, etc.) do not cover.

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

Conciseness5/5

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

The description is a compact four-sentence paragraph that front-loads the main purpose and includes only essential details. Every sentence contributes meaning: the action, the input/storage/return, the format and print-readiness caveat, the verification flow, and a clear usage trigger. No unnecessary wording.

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

Completeness4/5

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

For a tool with no output schema, the description adequately explains the return value (shareable link plus metadata) and covers the critical token-attachment flow and file format constraints. It does not detail specific failure modes beyond unattached files, but the schema covers most parameter-level edge cases, making the description sufficiently complete for an 8-parameter tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by explicitly listing accepted file formats (PDF/AI/EPS/JPG/PNG) and reinforcing the token's role in attachment, which complements the detailed schema descriptions. This provides some extra semantic meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the primary action: 'Upload a customer's artwork FILE through the agent', specifies the input mechanism (base64), the storage location (Google Drive), and the return value (shareable link plus metadata). This distinguishes it from sibling tools like vivid_artwork or vivid_check_artwork, which focus on different aspects of artwork handling.

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 explicit usage context: 'Use when a customer wants to send their print file via chat.' It also explains the token requirement for attaching to an order, clarifying when verification is needed. However, it does not explicitly mention when not to use this tool or name alternative tools.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • F
    license
    -
    quality
    C
    maintenance
    Official MCP server for Sign Inspire's cloud digital signage platform, enabling AI agents to manage screens, deploy campaigns, and monitor real-time status via natural language.
  • A
    license
    -
    quality
    C
    maintenance
    MCP server for buying advertising outcomes such as Telegram subscribers and website traffic from a prepaid balance. Provides tools for campaign management, forecasting, and budget control, with guardrails so agents can spend but not fund or withdraw.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources