Skip to main content
Glama

Add Product

starshipit_add_product

Add a product to the StarShipIt catalogue so imported orders match by SKU and auto-populate line-item weight, dimensions, and customs details.

Instructions

Add a new product to the StarShipIt product catalogue.

Products in the catalogue are used to auto-populate line item details (weight, dimensions, customs info) when creating orders. Adding a product here means it can be matched by SKU when orders are imported.

Required fields (within the product object):

  • sku: Unique Stock Keeping Unit identifier. Must be unique across the catalogue.

  • title: Human-readable product name.

Optional fields (all within the product object):

  • customs_description: Description for customs declarations (for international shipments)

  • description: Internal product description

  • country: Country of origin (ISO code or name)

  • weight: Weight in kg

  • height, length, width: Dimensions in metres

  • hs_code: Harmonised System tariff code (e.g. "6109.10")

  • mid: Manufacturer ID code (used for US customs)

  • price: Declared value for customs

  • dangerous_goods: Boolean flag if the product contains DG

  • barcode, bin_location, brand, color, size, material, model, usage

Returns: The created product object including its new id.

Error cases:

  • 400: Missing required fields (sku or title) or invalid field values

  • 409: A product with this SKU already exists

Use this tool when:

  • Adding new SKUs to the catalogue before importing orders

  • Seeding product data for customs auto-fill on international shipments

Input Schema

NameRequiredDescriptionDefault
productYesProduct data to create
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

Output Schema

NameRequiredDescriptionDefault
errorsNoValidation or processing errors returned by StarShipIt
objectNoThe response payload when StarShipIt returns a non-object value
successNoStarShipIt success flag (a boolean on most endpoints)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (which only declare non-readonly, non-destructive, non-idempotent, open-world), the description discloses the SKU uniqueness constraint, the 400 and 409 error semantics for duplicate or invalid input, and the downstream consequence that the product becomes matchable by SKU on order import. The 409-on-duplicate behaviour is consistent with idempotentHint=false.

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

Conciseness3/5

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

Structure is good and front-loaded, with bolded sections for required fields, optional fields, returns, and errors. However, the long optional-field enumeration duplicates a fully documented nested schema and does not earn its length; trimming it to the non-obvious constraints (units, uniqueness, customs-relevant fields) would improve the signal-to-noise ratio.

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 nested-object mutation tool, the description covers required vs optional fields, units, uniqueness rules, error codes, and the downstream effect on order import, and an output schema exists so return values need not be detailed. Nothing an agent needs in order to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every field including units (kg, metres), ISO country codes, and the HS code example. The description's bulleted field list largely restates that, adding only the 'must be unique across the catalogue' constraint for sku, which the schema already implies.

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

Purpose5/5

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

States a specific verb and resource ('Add a new product to the StarShipIt product catalogue') and immediately explains the downstream role of catalogue products in order line-item auto-population. An agent can distinguish this from starshipit_update_product or starshipit_list_products without opening a schema.

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

Usage Guidelines4/5

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

The 'Use this tool when' section gives two concrete scenarios: adding SKUs before order import, and seeding customs data for international shipments. There is no explicit exclusion naming the alternative (e.g. use starshipit_update_product for existing SKUs), so it stops short of full when/when-not routing.

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