Skip to main content
Glama

Ręczniki Haftowane

get_creator_link

Read-onlyIdempotent

Link do kreatora z wyborami klienta w slots[]. Pozycja n z contents get_product_options odpowiada slots[n-1]. option_id z list_colors (colors[].option_id) dla typu przedmiotu, walidowany przez sklep przy każdym wywołaniu (błąd invalid_input z details[]: reason, allowed_option_ids, message; wybierz jedno z allowed_option_ids); drawing_id z list_designs, thread_id i font_id z list_fonts_threads. Przekaż wszystkie wybory klienta: kolor, wzór, nić, czcionkę i texts (mapa kluczy pól tekstowych). Bez slots[], tab i slot link nie ma ustawień (configuration_notice). tab wybiera zakładkę, slot (1-based) aktywny slot.

Input Schema

NameRequiredDescriptionDefault
tabNo
slotNo
slotsNo
product_idYes

Output Schema

NameRequiredDescriptionDefault
nameNo
as_ofNoCzas walidacji kolorów w sklepie (UTC); obecne przy wywołaniu ze slots[]
errorNoTylko przy isError: { code, message, ... }
product_idNo
creator_urlNo
configuration_noticeNoInformacja, że link otworzy kreator bez ustawień personalizacji; obecna przy wywołaniu bez slots[], tab i slot

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / as_of
      Added value: +{
      +  "description": "Czas walidacji kolorów w sklepie (UTC); obecne przy wywołaniu ze slots[]",
      +  "type": "string"
      +}
    • addedOutput schema / properties / error / properties / details
      Added value: +{
      +  "description": "Powody odrzucenia kolorów (invalid_input z get_creator_link)",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "allowed_option_ids": {
      +        "description": "Aktywne option_id typu slotu; wybierz jedno z nich",
      +        "items": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "type": "array"
      +      },
      +      "asset_type_id": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "field": {
      +        "description": "Np. slots[0].option_id",
      +        "type": "string"
      +      },
      +      "given": {
      +        "description": "Podany option_id",
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "reason": {
      +        "enum": [
      +          "unknown_option",
      +          "inactive",
      +          "type_mismatch",
      +          "slot_out_of_range",
      +          "no_color_choice"
      +        ],
      +        "type": "string"
      +      },
      +      "slot_position": {
      +        "description": "Pozycja slotu 1-based",
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "field",
      +      "slot_position",
      +      "asset_type_id",
      +      "reason",
      +      "given",
      +      "allowed_option_ids",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / error / properties / hint
      Added value: +{
      +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
      +  "type": "string"
      +}
  3. Changed4 schema fields changed
    • addedOutput schema / properties / error / properties / cause
      Added value: +{
      +  "pattern": "^(timeout|http_\\d{3}|matomo_error|invalid_response|not_configured|matomo_method_unavailable)$",
      +  "type": "string"
      +}
    • changedOutput schema / properties / error / properties / code / enum
      Previous value: -[
      -  "invalid_input",
      -  "not_found",
      -  "shop_unavailable"
      -]New value: +[
      +  "invalid_input",
      +  "not_found",
      +  "shop_unavailable",
      +  "analytics_unavailable"
      +]
    • changedOutput schema / properties / error / properties / retry_after_seconds / description
      Previous value: -"Po ilu sekundach ponowić żądanie (shop_unavailable)"New value: +"Po ilu sekundach ponowić żądanie (niedostępność źródła)"
    • addedOutput schema / properties / error / properties / status
      Added value: +{
      +  "description": "Status błędu analityki; report_unavailable oznacza brak raportu/konfiguracji",
      +  "enum": [
      +    "report_unavailable",
      +    "error"
      +  ],
      +  "type": "string"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / slots / items / properties / option_id / description
      Previous value: -"ID opcji koloru z options[] dla slotu produktu"New value: +"ID koloru z list_colors dla typu przedmiotu slotu"
    • removedOutput schema / properties / tracked_creator_url
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "format": "uri",
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "URL z parametrami UTM do mierzenia ruchu z asystenta AI; null, gdy śledzone linki są wyłączone (MCP_TRACKED_URLS=0)"
      -}
  5. Changed1 schema field changed
    • addedOutput schema / properties / configuration_notice
      Added value: +{
      +  "description": "Informacja, że link otworzy kreator bez ustawień personalizacji; obecna przy wywołaniu bez slots[], tab i slot",
      +  "type": "string"
      +}
  6. Changed3 schema fields changed
    • addedInput schema / properties / slot
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / slots
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "drawing_id": {
      +        "description": "ID wzoru z list_designs",
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "font_id": {
      +        "description": "ID czcionki z list_fonts_threads",
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "option_id": {
      +        "description": "ID opcji koloru z options[] dla slotu produktu",
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "texts": {
      +        "additionalProperties": {
      +          "type": "string"
      +        },
      +        "description": "Teksty haftu jako mapa klucz-wartość, np. {\"names\":\"Zażółć\"}",
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "thread_id": {
      +        "description": "ID nici z list_fonts_threads",
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / tab
      Added value: +{
      +  "enum": [
      +    "produkt",
      +    "wzory",
      +    "nici",
      +    "czcionki",
      +    "tekst"
      +  ],
      +  "type": "string"
      +}
  7. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "creator_url": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "error": {
      +      "additionalProperties": false,
      +      "description": "Tylko przy isError: { code, message, ... }",
      +      "properties": {
      +        "code": {
      +          "enum": [
      +            "invalid_input",
      +            "not_found",
      +            "shop_unavailable"
      +          ],
      +          "type": "string"
      +        },
      +        "correlation_id": {
      +          "description": "Identyfikator do zgłoszenia problemu (shop_unavailable)",
      +          "type": "string"
      +        },
      +        "fields": {
      +          "description": "Nazwy błędnych parametrów (invalid_input)",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "retry_after_seconds": {
      +          "description": "Po ilu sekundach ponowić żądanie (shop_unavailable)",
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message"
      +      ],
      +      "type": "object"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "product_id": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "tracked_creator_url": {
      +      "anyOf": [
      +        {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "URL z parametrami UTM do mierzenia ruchu z asystenta AI; null, gdy śledzone linki są wyłączone (MCP_TRACKED_URLS=0)"
      +    }
      +  },
      +  "type": "object"
      +}
  8. Changed1 schema field changed
    • changedInput schema / properties / product_id / minimum
      Previous value: -1New value: +-9007199254740991
  9. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Well beyond the readOnly/idempotent annotations, it discloses that option_id is validated server-side on every call, gives the exact failure shape (invalid_input with details[]: reason, allowed_option_ids, message), and prescribes the recovery path (pick one of allowed_option_ids). It also warns that a link without slots[] carries no settings, which is the key behavioral trap for this tool.

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?

Every clause carries information – no filler – but it is delivered as one dense run-on paragraph in which error-handling details are tucked into a parenthetical mid-sentence. Front-loading the purpose works; the rest would be far more scannable as separated points (mapping rules / ID sources / errors).

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?

With an output schema present, the return value needn't be explained, and the description covers the remaining burden: parameter provenance, the index-to-slot mapping, the per-call validation contract, and the no-slots case. Only product_id's role and the shape of a successful link are left unaddressed.

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 description coverage is 0% at the top level, so the description has to carry the load, and it largely does: it names the source tool for option_id, drawing_id, thread_id and font_id, explains that texts is a map of text-field keys, and states that slot is 1-based and tab selects the active tab. product_id itself is never explained (presumably the product whose creator link is built), leaving one real gap.

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 opening phrase 'Link do kreatora z wyborami klienta w slots[]' identifies the resource (a storefront creator/configurator link) and what it encodes (the client's selections), and it is clearly distinct from the sibling list_* tools it names as ID sources. It stops short of an explicit verb ('returns/builds a URL'), so the operation is inferred rather than stated, which keeps it out 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?

It gives concrete routing guidance: option_id comes from list_colors, drawing_id from list_designs, thread_id/font_id from list_fonts_threads, and slot n maps to entry n of get_product_options contents. It also states the consequence of omitting slots[] (configuration_notice), which is effectively a when-not-to-use note. No explicit exclusion against any alternative tool, though none obviously exists for this job.

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