Skip to main content
Glama

QRFLOW.codes

Set a GS1 product link

set_product_link
Idempotent

Point one of a product's GS1 link types somewhere. A phone that scans the code goes to the default; an app asking for a specific type gets that one. Setting a batch scopes the link to codes carrying that batch only, which is how a recall is done without touching other stock. Re-running with the same type and batch replaces that link rather than adding a second.

Input Schema

NameRequiredDescriptionDefault
urlYes
gtinYes
batchNoScope this link to one batch or lot
titleYesShown in a scanner's menu. Required by the standard.
link_typeYesA GS1 link type such as gs1:pip for the product information page. Call get_account or read the docs for the full list.
is_defaultNoMake this where a phone lands

Output Schema

NameRequiredDescriptionDefault
idYes
gtinYesAlways 14 digits: a UPC-12 or EAN-13 is zero-padded
nameYes
brandNo
linksYes
page_urlNoThe hosted product page, when the brand has built one
created_atNo
digital_linkYesThe address printed inside the QR code on the pack

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare idempotentHint=true and destructiveHint=false; the description reinforces this by saying a re-run with the same type and batch replaces rather than duplicates. It also discloses a non-obvious side effect: a batch-scoped link only applies to codes carrying that batch. It does not cover failure modes or what happens to existing links of other types.

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 short sentences, each carrying distinct information: action, resolution behavior, batch scoping, and idempotent replace. Front-loaded with the core action and no filler.

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 mutation tool that already has annotations and an output schema, the description covers the key behaviors an agent must know before writing: idempotency, batch scoping, and default routing. Missing are error/permission expectations and any mention of validating link_type values beyond the pointer in the schema.

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?

At 67% schema coverage the schema already documents batch, title, link_type, and is_default. The description adds the interplay between them – which link a phone resolves versus which an app requests, and that batch narrows scope. It says nothing extra about gtin or the format of url.

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 states a concrete action on a concrete resource: pointing a product's GS1 link type at a URL. The default-vs-specific-type sentence makes the semantics clearer than the title alone. It stops short of naming a sibling (e.g. update_qr_code) to disambiguate, so a 4 rather than a 5.

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 gives a real usage scenario – batch scoping 'which is how a recall is done without touching other stock' – and explains the default vs type-specific routing decision. It offers no explicit exclusions or 'use X instead' routing to the many sibling tools, which keeps it at 4.

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