Skip to main content
Glama

Product Viability Score

run_product_viability
Read-onlyIdempotent

Run a product viability simulation: given a proposed selling price, COGS, and expected ad spend, compute break-even ROAS, contribution margin, and sensitivity analysis against store averages.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cogsYesProposed cost of goods sold per unit, in the tenant's currency.
priceYesProposed selling price per unit, in the tenant's currency; must be greater than 0.
shipping_costNoShipping cost per unit not already covered by COGS, in the tenant's currency (default 0).
expected_volume_per_monthNoExpected units sold per month; when provided, the response includes a monthly_projection of contribution and ad spend (omitted otherwise).
expected_ad_spend_per_unitYesExpected ad spend required to sell one unit, in the tenant's currency (this is what break_even_roas is measured against).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
_metaNo
inputsNo
verdictNored when contribution is not positive, amber below 30% margin, green at or above it.
_messageNo
_truncatedNo
verdict_reasonNo
_tenant_contextNo
break_even_roasNoNull when the margin leaves no room to break even at any ROAS.
store_benchmarkNoStore averages to compare against, or null when the benchmark service was unavailable. The simulation itself is still valid without it.
monthly_projectionNoNull unless expected_volume_per_month was supplied.
contribution_marginNoPer unit: price minus COGS, ad spend per unit and shipping.
contribution_margin_pctNo
sensitivity_contributionNoPer-unit contribution margin under each single-variable shock.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat safety. It adds useful context about the simulation nature and that it benchmarks against store averages, which is beyond what annotations state. 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?

One dense sentence that front-loads the core action and then lists inputs and outputs efficiently. It could be split into two sentences for readability, but it's concise and free of filler. Every clause adds value.

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

Completeness4/5

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

Given the output schema exists, the description doesn't need to detail return formats. It covers the essential purpose, key inputs, and primary outputs, including the sensitivity analysis against store averages. It doesn't mention the optional monthly_projection, but that's documented in the schema. Sufficient for an agent to decide whether to call it.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are already documented with types, defaults, and meaning. The description only mentions three of them (price, COGS, ad spend) but adds no extra semantics beyond what the schema provides. Baseline 3 is appropriate when schema carries the documentation load.

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

Purpose5/5

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

The description clearly states the action ('Run a product viability simulation'), the resource (product viability), and the specific outputs (break-even ROAS, contribution margin, sensitivity analysis). It distinguishes this tool from siblings like get_bottom_products or get_cogs_gaps by focusing on forward-looking simulation rather than analysis of existing data.

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

Usage Guidelines4/5

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

The description implies the tool is for evaluating a proposed product's viability given price, COGS, and ad spend, which is distinct from sibling tools that analyze existing products or financials. However, it doesn't explicitly name alternatives or state when not to use it, leaving some inference to the agent. Clear context but no exclusions.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources