Skip to main content
Glama

Final POS – Custom POS Builder

Import product attributes

hub_import_options
Destructive

Load product attributes and their values in one call — "Size: S,M,L", "Colour: Red,Blue,Green" — the axes variants are built from. For one axis use create_option. Attribute names are unique per company: a creates row whose name already exists is REJECTED (that row only), so read get_options first and send existing ones through updates. On updates, values are APPEND-ONLY: the list you pass is merged into what is there and existing values are never renamed or removed, because variants reference them by name and would be orphaned. Renaming the attribute itself does cascade to its variants. To remove a value, use the cabinet. This creates no products and no variants — it only defines the axes. Rows are independent and per-row failures come back in the reply. Max 500 rows per call. BEFORE CALLING: show the merchant a preview of the first few rows, state the EXACT number of rows and which resource they hit, and get an explicit yes. There is NO undo and no dry-run — nothing here validates without writing. If you are unsure a row is right, ask; a wrong bulk import is far more expensive to repair than a question. Afterwards, tell the merchant what landed: an import done here does NOT appear in the cabinet's Recent Imports list, which only records uploads made through the wizard.

Input Schema

NameRequiredDescriptionDefault
createsNo
updatesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only carry the safety profile (destructiveHint=true, readOnlyHint=false), and the description adds substantial context beyond them: exists-named creates are rejected per-row, updates are append-only, attribute renaming cascades but value renaming does not, rows are independent, max 500 rows, no undo/dry-run, and results do not appear in the cabinet's Recent Imports list.

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?

Purpose and the create/update distinction are front-loaded, and nearly every sentence adds distinct actionable information. It is dense and long for a tool definition, but little of it is filler, with only mild redundancy in the repeated safety/undo emphasis.

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

Completeness5/5

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

For a destructive bulk import with no output schema, the description covers preconditions, per-row failure reporting, failure isolation, limits, irreversibility, and post-call expectations. An agent has everything needed to call this correctly and safely.

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

Parameters5/5

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

Schema description coverage is effectively 0% at the top level, so the description must carry the burden, and it does: it defines the difference between creates and updates, the unique-name rejection behavior, and the append-only merge semantics and cascade rules that no schema description conveys.

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 ('Load product attributes and their values') and clarifies scope ('the axes variants are built from'). It explicitly distinguishes itself from the sibling create_option ('For one axis use create_option') and states what it does NOT do ('This creates no products and no variants').

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 names the alternative (create_option for one axis), gives a prerequisite workflow (read get_options first, route existing names through updates), and prescribes a pre-call procedure (show a preview, state exact row count, get explicit yes). When-to-use and when-not-to-use are both explicit.

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.