Skip to main content
Glama

Final POS – Custom POS Builder

Create product

hub_create_product

Create a product in the merchant's catalogue. Call get_products first to make sure it does not already exist. Prices are HUMAN strings like "19.99" — this tool converts them into the company's currency itself, so never send cents. Tax: the company's standard tax table is applied by default; pass taxable:false for an untaxed product. Ask the merchant for anything you do not know instead of inventing it.

Input Schema

NameRequiredDescriptionDefault
skuNo
nameYesProduct name as the merchant said it
priceYesSelling price as a human string, e.g. "19.99"
barcodeNoEAN/UPC if the merchant gave one
optionsNoVariation axes and the values to build variants from, e.g. {"Size":["Small","Large"]}. Every combination becomes a variant. Call get_product_options FIRST and reuse existing axes. Every variant gets `price` unless variantPrices says otherwise.
taxableNoDefault true: applies the standard tax table
costPriceNoWhat the merchant pays for it, human string
outletIdsNoOutlet ids. Omit for everywhere
taxTableIdNoA specific tax table, for non-standard tax
categoryIdsNoCategory ids — names are rejected
descriptionNo
productTypeNoOnly pass this for "booking" — a service sold as TIME (a haircut, a room for the night, an hour on a scooter). simple/variable are derived from `options`, so leave it out for goods. A booking product is not bookable until set_product_booking_setup gives it a rule set and resources.
variantPricesNoPer-variant prices at creation, one entry per combination that differs from `price`, e.g. {"options":{"Size":"Large"},"price":"21.99"}. `options` must name one value for EVERY axis in `options`.
trackInventoryNoDefault false. True manages stock
shortDescriptionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly=false, destructive=false, openWorld=false, so the safety profile is covered. The description adds real behavioral context beyond that: prices are human strings auto-converted to company currency, and the standard tax table is applied unless taxable:false is passed.

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

Conciseness4/5

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

A short paragraph front-loaded with the core purpose, followed by targeted notes on dedup, price format, and tax. Each sentence earns its place with no filler, though the tax and price rules could be slightly tighter.

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

Completeness4/5

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

For a 15-parameter tool with no output schema, the description covers the highest-risk semantics (price format, tax default, dedup, no fabrication). The complex variant and booking paths are left to the schema, which documents them well, so completeness is adequate.

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%, so the schema largely documents the 15 parameters. The description still adds value by spelling out the price-string convention ("never send cents") and the taxable:false override, reinforcing key semantics the agent must get right.

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

Purpose4/5

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

States a specific verb and resource ("Create a product in the merchant's catalogue"), so the agent knows exactly what it does. However, it does not differentiate itself from close siblings like hub_import_products (bulk) or hub_update_product, so it stops short of the top band.

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

Usage Guidelines4/5

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

Gives concrete workflow guidance — call get_products first to dedupe, and ask the merchant rather than inventing values. It does not, though, explicitly frame when to use this versus hub_import_products, which is the closest alternative for creating products.

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.