Skip to main content
Glama

Ręczniki Haftowane

Server Details

Publiczny, tylko do odczytu MCP z katalogiem produktów sklepu Ręczniki Haftowane.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation3/5

Most tools target clearly distinct resources (colors, designs, tags, categories, fonts/threads, creator link), but `search` and `search_products` both search products and their boundary (ChatGPT search/fetch format vs. structured catalog with price filters) is easy to miss. `get_ai_traffic_report` also sits outside the shopping domain and can look like an odd invocation target. Descriptions help but overlap remains.

Naming Consistency4/5

The set is largely consistent snake_case with predictable get_/list_/search_ prefixes (get_creator_link, list_colors, list_designs, etc.). Minor deviations are the bare verbs `fetch` and `search`, which break the verb_noun pattern used everywhere else.

Tool Count4/5

Eleven tools is well within a healthy range for a product-catalog-plus-personalization-designer server, and most tools earn their place in the design flow. The single off-domain analytics tool is the only element that feels unnecessary for the stated purpose.

Completeness3/5

Coverage of browsing, options, colors, designs, fonts and creator-link generation is solid, but there are notable gaps: get_product_options explicitly tells the agent to use `get_shop_policies` for delivery/material/pricing, yet no such tool exists — a dead end. There is also no cart, order, or availability/checkout operation, so the purchase lifecycle is incomplete.

Available Tools

11 tools
fetchA
Read-onlyIdempotent
Inspect

Pobiera pełną treść publicznego produktu po id zwróconym przez search, wraz z tytułem i URL-em do cytowania.

NameRequiredDescriptionDefault
idYes

Output Schema

NameRequiredDescription
idNo
urlNo
textNo
errorNoTylko przy isError: { code, message, ... }
titleNo
metadataNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint false and a closed-world scope, so the safety profile is covered. The description adds a real constraint that only public products are retrievable and hints at return content (title and citation URL), but says nothing about permissions or failure behavior for missing/private ids.

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 single, front-loaded sentence with no filler. It is appropriately sized for a one-parameter fetch tool and puts the retrieval purpose first.

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, return structure need not be explained, and annotations cover the safety profile. Given the tool's simplicity, the description plus structured data is nearly complete; only the missing id format is a small gap.

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 0% for the single `id` parameter, so the description must carry the burden. It does explain the id's origin (returned by `search`), which is useful, but it omits format and the maxLength of 100 that the schema imposes.

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 specific verb and resource: it fetches the full content of a public product by id, together with its title and citation URL. It also names the sibling `search` as the source of the id, which helps distinguish it from the search/list tools, though it doesn't differentiate itself explicitly from `search_products`.

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 tells the agent the precondition clearly: use the id returned by `search`. The usage context (fetch details after searching) is therefore clear, but there are no explicit when-not-use cases or comparisons with the other sibling tools such as `get_product_options`.

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

get_ai_traffic_reportA
Read-onlyIdempotent
Inspect

Analityka ruchu sklepu z Matomo (tylko agregaty). Wizyty, akcje, unikalni AI, platformy i zamówienia. Bez argumentów raportuje wczoraj w Europe/Warsaw. period last_1/last_7/last_30 zamiast dat; compare=previous_period porównuje z poprzednim oknem. data_status rozróżnia zero od braku danych; unikalnych z wielu dni nie sumuj. Nazwę platformy podawaj tylko z by_provider; unknown = nieznana. Podaj źródło i niepewności z metadata.attribution_caveats. AI referrals to natywny kanał Matomo; kampanie AI są osobno, boty i cytowania nie są mierzone.

NameRequiredDescriptionDefault
periodNoOstatnie 1/7/30 dni do wczoraj w Europe/Warsaw; wyklucza date_from/date_to
compareNoPorównanie z poprzednim oknem tej samej długości; domyślnie nonenone
date_toNoKoniec zakresu YYYY-MM-DD, domyślnie wczoraj; zakres do 31 dni
breakdownNosummary
date_fromNoPoczątek zakresu YYYY-MM-DD, domyślnie wczoraj w Europe/Warsaw

Output Schema

NameRequiredDescription
dailyNo
errorNoTylko przy isError: { code, message, ... }
totalsNo
metadataNo
comparisonNo
conversionsNo
data_statusNoRuch AI, potwierdzone zero AI lub brak danych (nieznane)
ai_referralsNo
landing_pagesNo
other_sourcesNo
schema_versionNo
not_counted_as_aiNo
ai_tagged_campaignsNo
ai_mentions_citationsNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: default time window and timezone, data_status distinguishing true zero from missing data, the non-additivity of unique counts across days, 'unknown' platform semantics, attribution caveats to surface, and explicit statement of what is NOT measured (bots, citations, AI campaigns). This is exactly the caveat-level context an agent needs to interpret output correctly.

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?

Front-loaded with purpose and scope, then moves through arguments, data interpretation, and measurement limits. Dense but nearly every clause carries operational information; a couple of caveat clauses could be consolidated, but there is no filler.

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?

An output schema exists so return structure needn't be described, and the description covers what remains: defaults, timezone, metric scope, comparison behavior, data-quality semantics, and explicit measurement gaps. An agent can call this tool and interpret its result without further context.

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 baseline is 3; the description earns above that by explaining the relationship between parameters — period supersedes date_from/date_to, and compare=previous_period compares equal-length windows. It adds decision guidance rather than repeating the schema, though it does not cover the breakdown parameter.

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 resource and scope: AI traffic analytics from Matomo, aggregates only, with named metrics (visits, actions, unique AI users, platforms, orders). The verb/resource pairing is unambiguous and no sibling tool covers anything similar, so no sibling differentiation is required.

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 invocation guidance: with no arguments it reports yesterday in Europe/Warsaw; use period last_1/last_7/last_30 instead of explicit dates; compare=previous_period to compare against the prior window. It also tells the agent which field to read platform names from (by_provider) and warns not to sum uniques across days, though it never explicitly contrasts usage against an alternative tool.

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

get_product_optionsA
Read-onlyIdempotent
Inspect

Skład produktu (contents): przedmioty, ilości, positions (1-based), customizable i liczba kolorów. Wzory dla pozycji z design_category_id wybieraj z list_designs, których categories zawiera tę kategorię. Kolory pobierz przez list_colors dopiero przy wyborze koloru, podając asset_type_id. Dostawa, terminy i materiał: get_shop_policies. Ceny: *_minor (grosze), formatted (PLN); regular_price tylko w promocji. Po link z wyborami użyj get_creator_link.

NameRequiredDescriptionDefault
product_idYes

Output Schema

NameRequiredDescription
idNo
nameNo
errorNoTylko przy isError: { code, message, ... }
contentsNo
currencyNoKod waluty, zawsze PLN
creator_urlNo
price_minorNoAktualna cena w groszach (PLN), liczba całkowita; null gdy brak
price_formattedNoAktualna cena jako tekst w PLN, np. „339,00 zł”; null gdy brak
text_max_lengthNoMaksymalna długość tekstu haftu (znaki)
regular_price_minorNoCena regularna (tylko w promocji) w groszach (PLN), liczba całkowita; null gdy brak
regular_price_formattedNoCena regularna (tylko w promocji) jako tekst w PLN, np. „339,00 zł”; null gdy brak

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered; the description instead adds semantic behavior: positions are 1-based, prices appear as *_minor in grosze and *_formatted in PLN, and regular_price_* is present only during a promotion. These are non-obvious output traits an agent would otherwise misread, though error behavior (product without options) and pagination/size limits are not mentioned.

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?

Purpose is front-loaded in the first clause, but the rest is a semicolon-chain mixing return-value notes (positions, price units) with downstream-tool routing, in a Polish/English hybrid ('content', 'positions', 'customizable'). Every fragment is arguably useful, yet the grab-bag ordering and lack of separation make it harder to scan than a two-part 'what you get / what to use next' structure would.

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 1-parameter read tool, annotations cover safety, an output schema covers structure, and the description still supplies the unit conventions and sibling routing an agent needs to act on the result. What is missing is modest: how to obtain product_id and what happens when a product has no options or no designs match its category.

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?

There is exactly one parameter (product_id, required integer) and the schema has 0% description coverage, so the description carries the burden – yet it never explains what product_id refers to or where to obtain it (presumably search_products, unstated). With a self-evident single key this is a minor gap, but the description adds nothing beyond the schema here.

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 clause states the resource concretely – produkt 'skład' (contents) with items, quantities, 1-based positions, customizable flag and color count – so an agent knows what it gets back for a given product. It stops short of a clean verb+resource phrasing (the verb is only in the tool name) and never explicitly says 'returns the option/composition list for product_id', but the returned content is specific enough to distinguish it from siblings like list_designs or list_colors.

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?

Strong routing: designs for positions carrying design_category_id must come from list_designs filtered by category, colors from list_colors only at the moment a color is chosen with asset_type_id, delivery/deadlines/material from get_shop_policies, and the shareable link from get_creator_link. Conditions are explicit ('dopiero przy wyborze koloru'). The only gap is that it never states the precondition for calling this tool itself (e.g. after search_products, when you need options/customization).

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

list_colorsA
Read-onlyIdempotent
Inspect

Zamknięta lista kolorów typu przedmiotu: option_id (kreatora), color_name, color_family, color_hex, availability, as_of. Wywołaj dopiero, gdy klient wybiera kolor; asset_type_id weź z contents w get_product_options. Nazwę koloru klienta przekaż dosłownie w query: dopasowanie robi sklep i zwraca match (status, option_ids, message); nie dopasowuj nazw sam ani przybliżeniami i wybieraj tylko option_id z odpowiedzi. Dla status candidates lub needs_clarification dopytaj klienta; no_match oznacza brak takiego koloru. Brak pola stanu magazynowego: available znaczy tylko aktywna opcja. include_unavailable pokazuje też wyłączone opcje.

NameRequiredDescriptionDefault
queryNoNazwa koloru od klienta, przekazana dosłownie (maks. 50 znaków)
asset_type_idYes
include_unavailableNoDomyślnie false; true dodaje opcje unavailable

Output Schema

NameRequiredDescription
as_ofNoCzas odczytu z backendu (UTC)
errorNoTylko przy isError: { code, message, ... }
matchNoTylko gdy podano query; wynik dopasowania wykonuje sklep
colorsNo
asset_type_idNo
asset_type_nameNo
availability_definitionNo

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses that the shop performs matching and returns a match object with status, option_ids and message, defines each status's meaning, and clarifies that there is no stock field (available only means an active option). It even explains include_unavailable's effect on disabled options.

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?

It is a dense single paragraph that front-loads the return shape before usage rules, and nearly every clause carries actionable information. It is longer than typical but not padded; a minor cost is that the flow of instructions is dense to parse.

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 lookup tool with an output schema, the description is thorough: it explains the match response semantics, prerequisite sourcing of asset_type_id, and edge-case statuses. Nothing an agent needs to invoke 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 coverage is 67% and query/include_unavailable are already documented in the schema, so the description's restatement is partly redundant. However it does add real semantics for the undocumented asset_type_id (take it from get_product_options contents) and instructs passing the customer's name literally rather than approximating, which goes beyond the schema.

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 names a specific resource and enumerates the exact fields returned (option_id, color_name, color_family, color_hex, availability, as_of), framing it as a 'closed list' of item-type colors. It also distinguishes itself from the sibling get_product_options by specifying that asset_type_id comes from that tool's contents.

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?

'Wywołaj dopiero, gdy klient wybiera kolor' gives an explicit trigger condition, and it directs the agent to obtain asset_type_id from get_product_options. It also states the exclusion (don't attempt your own name matching) and how to react to each match status (candidates/needs_clarification -> ask; no_match -> no such color).

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

list_design_categoriesA
Read-onlyIdempotent
Inspect

Listuje kategorie wzorów haftu, w których są aktywne wzory: id, nazwa, slug i liczba wzorów. Nazwę lub slug przekaż jako category do list_designs, aby zobaczyć wzory z danej kategorii. Narzędzie nie przyjmuje parametrów.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
errorNoTylko przy isError: { code, message, ... }
itemsNo
totalNoLiczba kategorii wzorów

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world and non-destructive behavior, so the safety profile is covered. The description adds genuine behavior not in the annotations: only categories with active designs are returned, and the tool accepts no parameters. It does not discuss pagination or ordering, which would be the remaining gap.

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?

Three short sentences, front-loaded with what the tool returns, followed by the follow-up call and the no-parameter note. Every sentence adds information; there is no filler.

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?

A zero-parameter, read-only tool with a full output schema and rich annotations needs little more than purpose, scope and follow-up guidance, and all three are present. An agent can call it correctly and knows what to do with the result.

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?

The schema has zero parameters, so the baseline is 4, and the description confirms this explicitly ('Narzędzie nie przyjmuje parametrów'), which is consistent with the empty properties object. Nothing further is needed for a parameterless tool.

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 ('Listuje kategorie wzorów haftu') and narrows the scope to categories that actually contain active designs. The returned fields (id, nazwa, slug, liczba wzorów) are named explicitly, so an agent knows exactly what it gets without opening the output 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?

Gives concrete downstream guidance: pass the name or slug as `category` to `list_designs` to see designs in that category, which is the natural next step and a named sibling. It does not explicitly rule out cases or distinguish itself from other list_* siblings such as list_design_tags, so it stops short of full when/when-not coverage.

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

list_designsA
Read-onlyIdempotent
Inspect

Wyszukuje aktywne wzory haftu (filtr liczy sklep). Filtry opcjonalne: tags (identyfikatory wyłącznie z list_design_tags, do 10; w grupie OR, między grupami AND), motif_match any|all (all = wszystkie motywy na jednym wzorze), persons 1|2|initials (liczba imion/inicjały), category (nazwa lub slug), query (nazwa wzoru, do 100 znaków), ids (do 20), sort default|popular, limit (domyślnie 10, maks. 20) i offset. Wynik: total, has_more, applied_filters, empty_reason i relaxations (przy total=0 tylko propozycje poluzowania: powiedz klientowi, który warunek poluzowano; nie przedstawiaj ich jako spełnienia konkretnego motywu). Każdy wzór ma tags, personalization, texts (slot_key, label, max_chars) i match. Pole id to drawing_id używane przez kreator. WAŻNE: pokaż klientowi podgląd wzoru jako obraz - wstaw preview_markdown (nazwa) do odpowiedzi, nie podawaj samego linku; gdy preview_markdown jest null, wzór nie ma podglądu.

NameRequiredDescriptionDefault
idsNo
sortNo
tagsNoIdentyfikatory tagów z list_design_tags
limitNo
queryNo
offsetNo
personsNo
categoryNo
motif_matchNo

Output Schema

NameRequiredDescription
errorNoTylko przy isError: { code, message, ... }
itemsNo
limitNo
totalNoLiczba wszystkich pasujących wzorów (przed limitem i offsetem)
offsetNo
has_moreNoCzy są kolejne wzory po tej stronie (zwiększ offset)
relaxationsNoPropozycje poluzowania filtra przy total=0 (action, relaxes, total, label); tylko propozycje, powiedz klientowi co poluzowano
empty_reasonNono_match | no_match_query przy total=0
sort_appliedNoZastosowane sortowanie (popular może działać jak default)
applied_filtersNoFiltry zastosowane przez sklep: tags, absorbed_tags, motif_match, persons, category, query
dictionary_versionNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover the safety profile, and the description adds substantial behavior beyond them: the result envelope (total, has_more, applied_filters, empty_reason, relaxations), the zero-result relaxation protocol, and the mandatory preview-rendering rule plus the null-preview fallback. This is exactly the extra context annotations cannot express.

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?

Purpose is front-loaded, but the rest is one dense, unstructured run-on mixing filter semantics, result shape, and response-formatting instructions. Every element is relevant, yet a short bullet split or paragraph break would make it far more scannable without losing content.

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 9-parameter search tool with an output schema, the description covers filtering, empty-result handling, field meanings (id = drawing_id for the creator) and presentation. It re-states some output-schema fields (total, has_more, applied_filters), which is minor redundancy rather than a gap.

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 only 11%, so the description must compensate and largely does: tags OR-within/AND-across, motif_match any vs all, persons 1|2|initials, category as name or slug, query/ids caps, limit default and max. Offset and sort get no semantics beyond the enum/default already in the schema.

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?

Opens with a specific verb+resource: 'Wyszukuje aktywne wzory haftu', and immediately narrows scope ('filtr liczy sklep'). An agent knows this is the design-search entry point, distinct from list_design_tags / list_design_categories which only supply filter vocabulary.

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 explicit routing for tag IDs ('wyłącznie z list_design_tags'), explains AND/OR group interplay, and prescribes behavior at total=0 (offer relaxations, don't claim motif match). Missing only explicit when-not-to-use guidance versus siblings like search_products.

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

list_design_tagsA
Read-onlyIdempotent
Inspect

Słownik tagów wzorów haftu (grupy motyw, okazja, odbiorca; definicje, liczby wzorów, wartości persons) oraz instrukcja doboru. Wywołaj raz na rozmowę przed pierwszym filtrem tagów w list_designs; nie twórz własnych tagów. Narzędzie nie przyjmuje parametrów.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
tagsNoTagi: id, name, group, parent, definition, not_for, designs_count
errorNoTylko przy isError: { code, message, ... }
groupsNoGrupy tagów (key, name, match_rule)
personsNoDozwolone wartości persons
instructionsNo
dictionary_versionNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: the once-per-conversation caching expectation and the prohibition on fabricating tag values, which is the key failure mode for a dictionary lookup. It stops short of describing the response shape, but an output schema exists.

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?

Three compact sentences: what it is and contains, when to call it and the constraint, then the no-parameter note. The most actionable information (call once, before list_designs, don't invent tags) is placed where it will be seen. No padding.

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 zero-parameter reference lookup with an output schema and full annotation coverage, the description covers what the tool is, when to invoke it, and the main misuse risk. 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.

Parameters4/5

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

Zero parameters, so the baseline is 4. The description explicitly states the tool takes no parameters, which is consistent with the empty input schema and removes any doubt about needing to supply filters.

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 names a specific resource (a tag dictionary for embroidery designs), enumerates its contents (motif, occasion, recipient groups; definitions, design counts, persons values), and thereby distinguishes it from siblings like list_design_categories and list_designs. An agent knows exactly what this returns before opening it.

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 gives an explicit rule: call once per conversation, before the first tag filter in list_designs, and explicitly forbids inventing your own tags. That is a when-to-use, a call-frequency constraint, and a when-not-to-do-something, all in one sentence.

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

list_fonts_threadsA
Read-onlyIdempotent
Inspect

Listuje publiczne czcionki i nici dostępne w kreatorze. Zwraca id jako odpowiednio font_id i thread_id, nazwę, podgląd jako pełny URL oraz gotowy markdown obrazu; nici zawierają także color_hex w formacie #RRGGBB. Narzędzie nie przyjmuje parametrów.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
errorNoTylko przy isError: { code, message, ... }
fontsNo
threadsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly=true, idempotent=true, non-destructive and closed-world, so the safety burden is carried. The description adds real behavioral context beyond them: the returned keys (font_id vs thread_id), preview URLs, ready-to-use image markdown, and the #RRGGBB format of color_hex, plus the fact that no input is required.

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?

Three compact sentences, front-loaded with the action and resource, then the return shape, then the no-parameters note. Slightly redundant to enumerate return fields when an output schema exists, but nothing is wasted.

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 annotations, an output schema, and no inputs, this description is close to self-sufficient: it names the data source scope, the identifier keys and the value formats. Only ordering/volume of the returned list is unstated, which is minor for a fixed catalog call.

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?

The tool has zero parameters, which sets the baseline at 4. The description explicitly confirms 'the tool takes no parameters', removing any doubt, and adds nothing misleading.

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 (list) and precise resource (public fonts and threads available in the creator), so the agent knows exactly what comes back. It does not differentiate from the closest sibling, list_colors, which also returns creator palette data, so an agent must infer the boundary.

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

Usage Guidelines3/5

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

Usage is only implied: the reader infers you call it to obtain font/thread identifiers before using them elsewhere. There is no explicit when-to-use, when-not-to-use, or pointer to the sibling list_colors for the color-only case.

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

search_productsA
Read-onlyIdempotent
Inspect

Produkty sklepu: id, name, cena, for (dla kogo), contains (skład), product_url, image_url. Pusty query listuje cały katalog (kilkanaście pozycji): nie zgaduj słów kluczowych, nie wpisuj zdania klienta. Kwoty: *_minor (grosze), formatted; regular_price tylko w promocji. Dobierz opcjonalne min_price_minor i max_price_minor do prośby klienta: liczby całkowite >= 0 w groszach, min_price_minor <= max_price_minor, granice włącznie, cena jednego produktu/zestawu. „od 100 do 200” lub „100-200” oznacza min_price_minor=10000 i max_price_minor=20000; „do 150” oznacza tylko max_price_minor=15000. Jeśli wynik jest pusty (total=0, truncated=false), a podano granice ceny, ponów search_products bez min_price_minor i max_price_minor, zachowując pozostałe argumenty. Wyjaśnij klientowi, że propozycje są spoza podanego budżetu.

NameRequiredDescriptionDefault
forNoDla kogo: jedna osoba (mama, tata, babcia, dziadek, przyjaciółka), para (rodzice, dziadkowie, narzeczeni, ślub, rocznica ślubu), rodzina (rodzina, nowy dom). Wynik zawiera też produkty bez for.
limitNo
queryNo
max_price_minorNoBudżet w groszach, np. 35000 = 350 zł
min_price_minorNoDolna granica ceny w groszach (włącznie), np. 20000 = 200 zł

Output Schema

NameRequiredDescription
errorNoTylko przy isError: { code, message, ... }
itemsNo
totalNoLiczba pasujących produktów (po filtrach for i budżetu, przed limitem)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the description adds real value beyond them: the catalog is small (~a dozen items) so an empty query is safe, results carry total/truncated signals, and regular_price_* appears only for promoted items. The empty-result fallback and the requirement to explain out-of-budget suggestions to the customer is behavior an agent could not infer from structured fields.

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?

Front-loaded with the resource and its fields, then budget semantics, then the fallback rule – a sensible order. It is dense and reads as one long block without visual separation, but nearly every sentence carries actionable content; only the field enumeration partially duplicates the output schema.

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?

An output schema exists, so return values need only be referenced, and the description goes further by explaining the total/truncated signals used in the fallback logic. Together with the read-only annotations and the price-conversion rules, an agent has enough to call this correctly; only the relationship to the sibling 'search' tool is left unexplained.

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?

With only 60% schema coverage, the description compensates strongly: it explains that *_minor values are in grosze, that min_price_minor <= max_price_minor, that bounds are inclusive and apply per product/set, and gives worked conversions ('od 100 do 200' → 10000/20000; 'do 150' → max only). It also constrains query usage (not a keyword guess, not a full sentence), which the schema documents only via maxLength.

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?

Names the resource (produkty sklepu) and enumerates the returned fields (id, name, cena, for, contains, product_url, image_url), so the agent knows exactly what kind of objects come back. It does not address how it differs from the sibling 'search' or 'get_product_options', so selection still requires inference.

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 when-to guidance: empty query lists the whole catalog and the agent must not invent keywords or paste the customer's sentence verbatim; price bounds should be derived from the customer's budget phrasing. It also prescribes a recovery path (retry without bounds when total=0 and truncated=false). No exclusion against sibling tools is stated.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updates
    • Changedfetch1 field changed
      • 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"
        +}
    • Changedget_ai_traffic_report1 field changed
      • 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"
        +}
    • Changedget_creator_link2 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"
        +}
    • Changedget_product_options1 field changed
      • 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"
        +}
    • Changedlist_colors15 fields changed
      • addedInput schema / properties / include_unavailable
        Added value: +{
        +  "description": "Domyślnie false; true dodaje opcje unavailable",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Nazwa koloru od klienta, przekazana dosłownie (maks. 50 znaków)",
        +  "maxLength": 50,
        +  "type": "string"
        +}
      • addedOutput schema / properties / as_of
        Added value: +{
        +  "description": "Czas odczytu z backendu (UTC)",
        +  "type": "string"
        +}
      • addedOutput schema / properties / asset_type_name
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / availability_definition
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / colors / items / properties / availability
        Added value: +{
        +  "description": "available = opcja aktywna w sklepie; nie oznacza stanu magazynowego",
        +  "enum": [
        +    "available",
        +    "unavailable"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / colors / items / properties / color_family
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / colors / items / properties / color_hex / description
        Added value: +"Tylko do wyświetlania; nie wybieraj koloru na jego podstawie"
      • addedOutput schema / properties / colors / items / properties / color_name
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Nazwa koloru do pokazania klientowi"
        +}
      • removedOutput schema / properties / colors / items / properties / id
        Removed value: -{
        -  "description": "To option_id dla get_creator_link",
        -  "maximum": 9007199254740991,
        -  "minimum": -9007199254740991,
        -  "type": "integer"
        -}
      • addedOutput schema / properties / colors / items / properties / name / description
        Added value: +"Nazwa magazynowa opcji (może zawierać prefiks przedmiotu); do pokazania klientowi użyj color_name, gdy jest"
      • addedOutput schema / properties / colors / items / properties / option_id
        Added value: +{
        +  "description": "Użyj w get_creator_link jako slots[].option_id",
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • changedOutput schema / properties / colors / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "color_hex"
        -]New value: +[
        +  "option_id",
        +  "name",
        +  "color_name",
        +  "color_family",
        +  "color_hex",
        +  "availability"
        +]
      • 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"
        +}
      • addedOutput schema / properties / match
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Tylko gdy podano query; wynik dopasowania wykonuje sklep",
        +  "properties": {
        +    "matched_by": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "color_name",
        +            "alias",
        +            "family"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "message": {
        +      "description": "Komunikat po polsku wygenerowany przez backend",
        +      "type": "string"
        +    },
        +    "option_ids": {
        +      "items": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "type": "array"
        +    },
        +    "query": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "enum": [
        +        "exact",
        +        "candidates",
        +        "no_match",
        +        "needs_clarification"
        +      ],
        +      "type": "string"
        +    },
        +    "unavailable_option_ids": {
        +      "items": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "query",
        +    "status",
        +    "matched_by",
        +    "option_ids",
        +    "unavailable_option_ids",
        +    "message"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_design_categories1 field changed
      • 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"
        +}
    • Changedlist_design_tags1 field changed
      • 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"
        +}
    • Changedlist_designs1 field changed
      • 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"
        +}
    • Changedlist_fonts_threads1 field changed
      • 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"
        +}
    • Changedsearch1 field changed
      • 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"
        +}
    • Changedsearch_products1 field changed
      • 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. 11 tool updates
    • Changedfetch1 field changed
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
    • Changedget_ai_traffic_report1 field changed
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
    • Changedget_creator_link1 field changed
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
    • Changedget_product_options1 field changed
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
    • Changedlist_colors1 field changed
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
    • Changedlist_design_categories2 fields changed
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
      • addedOutput schema / properties / items / items / properties / show_in_wizard
        Added value: +{
        +  "description": "Czy kategoria jest widoczna w kreatorze; brak, gdy API tego nie zwraca",
        +  "type": "boolean"
        +}
    • Addedlist_design_tags
    • Changedlist_designs22 fields changed
      • addedInput schema / properties / ids
        Added value: +{
        +  "items": {
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 10,
        +  "maximum": 20,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / motif_match
        Added value: +{
        +  "enum": [
        +    "any",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / persons
        Added value: +{
        +  "enum": [
        +    "1",
        +    "2",
        +    "initials"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / sort
        Added value: +{
        +  "enum": [
        +    "default",
        +    "popular"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / tags
        Added value: +{
        +  "description": "Identyfikatory tagów z list_design_tags",
        +  "items": {
        +    "maxLength": 100,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 10,
        +  "type": "array"
        +}
      • addedOutput schema / properties / applied_filters
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Filtry zastosowane przez sklep: tags, absorbed_tags, motif_match, persons, category, query",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / dictionary_version
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "number"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / empty_reason
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "no_match | no_match_query przy total=0"
        +}
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
      • addedOutput schema / properties / has_more
        Added value: +{
        +  "description": "Czy są kolejne wzory po tej stronie (zwiększ offset)",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / items / items / properties / match
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "propertyNames": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "type: id|name|filter oraz matched_tags"
        +}
      • addedOutput schema / properties / items / items / properties / personalization
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "propertyNames": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "persons (1|2|null), kind (single|couple|initials|unknown), text_fields"
        +}
      • addedOutput schema / properties / items / items / properties / tags
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / items / items / properties / texts / items / properties / slot_key / description
        Previous value: -"Klucz pola tekstowego (klucz texts w linku do kreatora); brak dla ogólnego pola tekstowego"New value: +"Klucz pola tekstowego (klucz texts w linku do kreatora)"
      • changedOutput schema / properties / items / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "type",
        -  "categories",
        -  "texts",
        -  "preview_image_url",
        -  "preview_markdown"
        -]New value: +[
        +  "id",
        +  "name",
        +  "type",
        +  "tags",
        +  "categories",
        +  "personalization",
        +  "texts",
        +  "match",
        +  "preview_image_url",
        +  "preview_markdown"
        +]
      • addedOutput schema / properties / limit
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / offset
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / relaxations
        Added value: +{
        +  "description": "Propozycje poluzowania filtra przy total=0 (action, relaxes, total, label); tylko propozycje, powiedz klientowi co poluzowano",
        +  "items": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / sort_applied
        Added value: +{
        +  "description": "Zastosowane sortowanie (popular może działać jak default)",
        +  "type": "string"
        +}
      • changedOutput schema / properties / total / description
        Previous value: -"Liczba pasujących wzorów"New value: +"Liczba wszystkich pasujących wzorów (przed limitem i offsetem)"
    • Changedlist_fonts_threads1 field changed
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
    • Changedsearch1 field changed
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
    • Changedsearch_products1 field changed
      • addedOutput schema / properties / error / properties / hint
        Added value: +{
        +  "description": "Wskazówka naprawy (invalid_input), np. lista nieznanych tagów",
        +  "type": "string"
        +}
  3. 1 tool update
    • Addedlist_design_categories
  4. 9 tool updates
    • Changedfetch4 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"
        +}
    • Addedget_ai_traffic_report
    • Changedget_creator_link4 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"
        +}
    • Changedget_product_options4 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"
        +}
    • Changedlist_colors4 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"
        +}
    • Changedlist_designs4 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"
        +}
    • Changedlist_fonts_threads4 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"
        +}
    • Changedsearch4 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"
        +}
    • Changedsearch_products4 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"
        +}
  5. 2 tool updates
    • Changedget_product_options1 field changed
      • addedOutput schema / properties / contents / items / properties / design_category_id
        Added value: +{
        +  "description": "Wzory dla tej pozycji wybieraj z list_designs, których categories zawiera tę kategorię",
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
    • Changedsearch_products1 field changed
      • addedInput schema / properties / min_price_minor
        Added value: +{
        +  "description": "Dolna granica ceny w groszach (włącznie), np. 20000 = 200 zł",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
  6. 4 tool updates
    • Changedget_creator_link2 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)"
        -}
    • Changedget_product_options10 fields changed
      • addedOutput schema / properties / contents
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asset_type_id": {
        +        "description": "Parametr list_colors, tylko gdy colors > 1",
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "colors": {
        +        "description": "Liczba kolorów, tylko dla customizable",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "customizable": {
        +        "type": "boolean"
        +      },
        +      "disabled": {
        +        "description": "Wyłączone elementy haftu; brak = wszystkie dostępne",
        +        "items": {
        +          "enum": [
        +            "drawing",
        +            "text",
        +            "thread",
        +            "font"
        +          ],
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "item": {
        +        "description": "Nazwa i rozmiar przedmiotu",
        +        "type": "string"
        +      },
        +      "positions": {
        +        "description": "Numery slotów 1..n; slots[n-1] w get_creator_link",
        +        "items": {
        +          "maximum": 9007199254740991,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "type": "array"
        +      },
        +      "quantity": {
        +        "maximum": 9007199254740991,
        +        "minimum": 1,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "item",
        +      "quantity",
        +      "positions",
        +      "customizable"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / dimensions
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • removedOutput schema / properties / is_on_sale
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / lead_time
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "additionalProperties": {},
        -          "propertyNames": {
        -            "type": "string"
        -          },
        -          "type": "object"
        -        }
        -      ]
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "description": "Czas realizacji (tekst lub obiekt z etykietami z API sklepu)"
        -}
      • removedOutput schema / properties / material
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • changedOutput schema / properties / regular_price_formatted / description
        Previous value: -"Cena regularna jako tekst w PLN, np. „339,00 zł”; null gdy brak"New value: +"Cena regularna (tylko w promocji) jako tekst w PLN, np. „339,00 zł”; null gdy brak"
      • changedOutput schema / properties / regular_price_minor / description
        Previous value: -"Cena regularna w groszach (PLN), liczba całkowita; null gdy brak"New value: +"Cena regularna (tylko w promocji) w groszach (PLN), liczba całkowita; null gdy brak"
      • removedOutput schema / properties / shipping
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": false,
        -      "properties": {
        -        "cheapest_price_formatted": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "description": "Najtańsza wysyłka jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        -        },
        -        "cheapest_price_minor": {
        -          "anyOf": [
        -            {
        -              "maximum": 9007199254740991,
        -              "minimum": -9007199254740991,
        -              "type": "integer"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "description": "Najtańsza wysyłka w groszach (PLN), liczba całkowita; null gdy brak"
        -        },
        -        "currency": {
        -          "type": "string"
        -        },
        -        "free_shipping_threshold_formatted": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "description": "Próg darmowej wysyłki jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        -        },
        -        "free_shipping_threshold_minor": {
        -          "anyOf": [
        -            {
        -              "maximum": 9007199254740991,
        -              "minimum": -9007199254740991,
        -              "type": "integer"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ],
        -          "description": "Próg darmowej wysyłki w groszach (PLN), liczba całkowita; null gdy brak"
        -        },
        -        "methods": {
        -          "items": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "description": {
        -                "anyOf": [
        -                  {
        -                    "type": "string"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ]
        -              },
        -              "name": {
        -                "anyOf": [
        -                  {
        -                    "type": "string"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ]
        -              },
        -              "price_formatted": {
        -                "anyOf": [
        -                  {
        -                    "type": "string"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ],
        -                "description": "Koszt metody wysyłki jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        -              },
        -              "price_minor": {
        -                "anyOf": [
        -                  {
        -                    "maximum": 9007199254740991,
        -                    "minimum": -9007199254740991,
        -                    "type": "integer"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ],
        -                "description": "Koszt metody wysyłki w groszach (PLN), liczba całkowita; null gdy brak"
        -              },
        -              "type": {
        -                "anyOf": [
        -                  {
        -                    "type": "string"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ]
        -              }
        -            },
        -            "required": [
        -              "name",
        -              "type",
        -              "description",
        -              "price_minor",
        -              "price_formatted"
        -            ],
        -            "type": "object"
        -          },
        -          "type": "array"
        -        }
        -      },
        -      "required": [
        -        "currency",
        -        "cheapest_price_minor",
        -        "cheapest_price_formatted",
        -        "free_shipping_threshold_minor",
        -        "free_shipping_threshold_formatted",
        -        "methods"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • removedOutput schema / properties / slots
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "allows": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "color": {
        -            "type": "boolean"
        -          },
        -          "drawing": {
        -            "type": "boolean"
        -          },
        -          "font": {
        -            "type": "boolean"
        -          },
        -          "text": {
        -            "type": "boolean"
        -          },
        -          "thread": {
        -            "type": "boolean"
        -          }
        -        },
        -        "required": [
        -          "color",
        -          "drawing",
        -          "text",
        -          "thread",
        -          "font"
        -        ],
        -        "type": "object"
        -      },
        -      "customizable": {
        -        "type": "boolean"
        -      },
        -      "name": {
        -        "type": "string"
        -      },
        -      "options": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "color_hex": {
        -              "anyOf": [
        -                {
        -                  "pattern": "^#[0-9A-Fa-f]{6}$",
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ],
        -              "description": "Kolor w formacie #RRGGBB lub null"
        -            },
        -            "id": {
        -              "maximum": 9007199254740991,
        -              "minimum": -9007199254740991,
        -              "type": "integer"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "price_premium_formatted": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ],
        -              "description": "Dopłata za opcję jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        -            },
        -            "price_premium_minor": {
        -              "anyOf": [
        -                {
        -                  "maximum": 9007199254740991,
        -                  "minimum": -9007199254740991,
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ],
        -              "description": "Dopłata za opcję w groszach (PLN), liczba całkowita; null gdy brak"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name",
        -            "color_hex",
        -            "price_premium_minor",
        -            "price_premium_formatted"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "position": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "position",
        -      "customizable",
        -      "allows",
        -      "options"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • 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)"
        -}
    • Addedlist_colors
    • Changedsearch_products9 fields changed
      • addedInput schema / properties / for
        Added value: +{
        +  "description": "Dla kogo: jedna osoba (mama, tata, babcia, dziadek, przyjaciółka), para (rodzice, dziadkowie, narzeczeni, ślub, rocznica ślubu), rodzina (rodzina, nowy dom). Wynik zawiera też produkty bez for.",
        +  "enum": [
        +    "jedna osoba",
        +    "para",
        +    "rodzina"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / max_price_minor / description
        Previous value: -"Maksymalna cena produktu w groszach (PLN), np. 35000 = 350 zł; bez parametru brak filtra budżetu"New value: +"Budżet w groszach, np. 35000 = 350 zł"
      • addedOutput schema / properties / items / items / properties / contains
        Added value: +{
        +  "description": "Skład, np. \"2× ręcznik kąpielowy 70×140 cm, 500 g/m²; kosz\"; brak, gdy szczegóły produktu są niedostępne",
        +  "type": "string"
        +}
      • addedOutput schema / properties / items / items / properties / for
        Added value: +{
        +  "description": "Dla kogo; brak, gdy produkt nie ma danych odbiorcy",
        +  "enum": [
        +    "jedna osoba",
        +    "para",
        +    "rodzina"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / items / items / properties / product_url / description
        Added value: +"Link do produktu; z UTM dla klientów spoza zaufanych adresów"
      • removedOutput schema / properties / items / items / properties / short_description
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • removedOutput schema / properties / items / items / properties / tracked_product_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)"
        -}
      • changedOutput schema / properties / items / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "short_description",
        -  "price_minor",
        -  "price_formatted",
        -  "currency",
        -  "product_url",
        -  "tracked_product_url",
        -  "image_url"
        -]New value: +[
        +  "id",
        +  "name",
        +  "price_minor",
        +  "price_formatted",
        +  "currency",
        +  "product_url",
        +  "image_url"
        +]
      • changedOutput schema / properties / total / description
        Previous value: -"Liczba pasujących produktów (po filtrze budżetu, przed limitem)"New value: +"Liczba pasujących produktów (po filtrach for i budżetu, przed limitem)"
  7. 2 tool updates
    • Changedlist_fonts_threads6 fields changed
      • removedOutput schema / properties / fonts / items / properties / preview_image_url
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "format": "uri",
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • addedOutput schema / properties / fonts / items / properties / preview_markdown / description
        Added value: +"Gotowy markdown obrazu podglądu ![nazwa](url); null gdy brak podglądu"
      • changedOutput schema / properties / fonts / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "preview_image_url",
        -  "preview_markdown"
        -]New value: +[
        +  "id",
        +  "name",
        +  "preview_markdown"
        +]
      • removedOutput schema / properties / threads / items / properties / preview_image_url
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "format": "uri",
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • addedOutput schema / properties / threads / items / properties / preview_markdown / description
        Added value: +"Gotowy markdown obrazu podglądu ![nazwa](url); null gdy brak podglądu"
      • changedOutput schema / properties / threads / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "color_hex",
        -  "preview_image_url",
        -  "preview_markdown"
        -]New value: +[
        +  "id",
        +  "name",
        +  "color_hex",
        +  "preview_markdown"
        +]
    • Changedsearch_products8 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -10New value: +20
      • removedOutput schema / properties / items / items / properties / creator_url
        Removed value: -{
        -  "format": "uri",
        -  "type": "string"
        -}
      • removedOutput schema / properties / items / items / properties / is_on_sale
        Removed value: -{
        -  "type": "boolean"
        -}
      • changedOutput schema / properties / items / items / properties / regular_price_formatted / description
        Previous value: -"Cena regularna jako tekst w PLN, np. „339,00 zł”; null gdy brak"New value: +"Cena regularna (tylko w promocji) jako tekst w PLN, np. „339,00 zł”; null gdy brak"
      • changedOutput schema / properties / items / items / properties / regular_price_minor / description
        Previous value: -"Cena regularna w groszach (PLN), liczba całkowita; null gdy brak"New value: +"Cena regularna (tylko w promocji) w groszach (PLN), liczba całkowita; null gdy brak"
      • removedOutput schema / properties / items / items / properties / secondary_name
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • removedOutput schema / properties / items / items / 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)"
        -}
      • changedOutput schema / properties / items / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "secondary_name",
        -  "short_description",
        -  "price_minor",
        -  "price_formatted",
        -  "regular_price_minor",
        -  "regular_price_formatted",
        -  "is_on_sale",
        -  "currency",
        -  "product_url",
        -  "tracked_product_url",
        -  "creator_url",
        -  "tracked_creator_url",
        -  "image_url"
        -]New value: +[
        +  "id",
        +  "name",
        +  "short_description",
        +  "price_minor",
        +  "price_formatted",
        +  "currency",
        +  "product_url",
        +  "tracked_product_url",
        +  "image_url"
        +]
  8. 1 tool update
    • Changedget_creator_link1 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"
        +}
  9. 1 tool update
    • Changedlist_designs2 fields changed
      • changedOutput schema / properties / items / items / properties / texts / items / properties / slot_key / description
        Previous value: -"Klucz pola tekstowego (klucz texts w linku do kreatora)"New value: +"Klucz pola tekstowego (klucz texts w linku do kreatora); brak dla ogólnego pola tekstowego"
      • changedOutput schema / properties / items / items / properties / texts / items / required
        Previous value: -[
        -  "slot_key",
        -  "label",
        -  "max_chars"
        -]New value: +[
        +  "label",
        +  "max_chars"
        +]
  10. 1 tool update
    • Changedget_creator_link3 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"
        +}
  11. 1 tool update
    • Addedlist_fonts_threads
  12. 1 tool update
    • Addedlist_designs
  13. 5 tool updates
    • Changedfetch2 fields changed
      • addedOutput schema / properties / error
        Added value: +{
        +  "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"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "id",
        -  "title",
        -  "text",
        -  "url"
        -]
    • Changedget_creator_link1 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"
        +}
    • Changedget_product_options1 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"
        +    },
        +    "currency": {
        +      "description": "Kod waluty, zawsze PLN",
        +      "type": "string"
        +    },
        +    "dimensions": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "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"
        +    },
        +    "id": {
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "is_on_sale": {
        +      "type": "boolean"
        +    },
        +    "lead_time": {
        +      "anyOf": [
        +        {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "additionalProperties": {},
        +              "propertyNames": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "Czas realizacji (tekst lub obiekt z etykietami z API sklepu)"
        +    },
        +    "material": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "price_formatted": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "Aktualna cena jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        +    },
        +    "price_minor": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": -9007199254740991,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "Aktualna cena w groszach (PLN), liczba całkowita; null gdy brak"
        +    },
        +    "regular_price_formatted": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "Cena regularna jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        +    },
        +    "regular_price_minor": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": -9007199254740991,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "Cena regularna w groszach (PLN), liczba całkowita; null gdy brak"
        +    },
        +    "shipping": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "cheapest_price_formatted": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ],
        +              "description": "Najtańsza wysyłka jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        +            },
        +            "cheapest_price_minor": {
        +              "anyOf": [
        +                {
        +                  "maximum": 9007199254740991,
        +                  "minimum": -9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ],
        +              "description": "Najtańsza wysyłka w groszach (PLN), liczba całkowita; null gdy brak"
        +            },
        +            "currency": {
        +              "type": "string"
        +            },
        +            "free_shipping_threshold_formatted": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ],
        +              "description": "Próg darmowej wysyłki jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        +            },
        +            "free_shipping_threshold_minor": {
        +              "anyOf": [
        +                {
        +                  "maximum": 9007199254740991,
        +                  "minimum": -9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ],
        +              "description": "Próg darmowej wysyłki w groszach (PLN), liczba całkowita; null gdy brak"
        +            },
        +            "methods": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "description": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "name": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "price_formatted": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ],
        +                    "description": "Koszt metody wysyłki jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        +                  },
        +                  "price_minor": {
        +                    "anyOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": -9007199254740991,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ],
        +                    "description": "Koszt metody wysyłki w groszach (PLN), liczba całkowita; null gdy brak"
        +                  },
        +                  "type": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "name",
        +                  "type",
        +                  "description",
        +                  "price_minor",
        +                  "price_formatted"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            }
        +          },
        +          "required": [
        +            "currency",
        +            "cheapest_price_minor",
        +            "cheapest_price_formatted",
        +            "free_shipping_threshold_minor",
        +            "free_shipping_threshold_formatted",
        +            "methods"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "slots": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "allows": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "color": {
        +                "type": "boolean"
        +              },
        +              "drawing": {
        +                "type": "boolean"
        +              },
        +              "font": {
        +                "type": "boolean"
        +              },
        +              "text": {
        +                "type": "boolean"
        +              },
        +              "thread": {
        +                "type": "boolean"
        +              }
        +            },
        +            "required": [
        +              "color",
        +              "drawing",
        +              "text",
        +              "thread",
        +              "font"
        +            ],
        +            "type": "object"
        +          },
        +          "customizable": {
        +            "type": "boolean"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "options": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "color_hex": {
        +                  "anyOf": [
        +                    {
        +                      "pattern": "^#[0-9A-Fa-f]{6}$",
        +                      "type": "string"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ],
        +                  "description": "Kolor w formacie #RRGGBB lub null"
        +                },
        +                "id": {
        +                  "maximum": 9007199254740991,
        +                  "minimum": -9007199254740991,
        +                  "type": "integer"
        +                },
        +                "name": {
        +                  "type": "string"
        +                },
        +                "price_premium_formatted": {
        +                  "anyOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ],
        +                  "description": "Dopłata za opcję jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        +                },
        +                "price_premium_minor": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 9007199254740991,
        +                      "minimum": -9007199254740991,
        +                      "type": "integer"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ],
        +                  "description": "Dopłata za opcję w groszach (PLN), liczba całkowita; null gdy brak"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "color_hex",
        +                "price_premium_minor",
        +                "price_premium_formatted"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "position": {
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "position",
        +          "customizable",
        +          "allows",
        +          "options"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "text_max_length": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": -9007199254740991,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "Maksymalna długość tekstu haftu (znaki)"
        +    },
        +    "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"
        +}
    • Changedsearch2 fields changed
      • addedOutput schema / properties / error
        Added value: +{
        +  "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"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "results"
        -]
    • Changedsearch_products2 fields changed
      • addedInput schema / properties / max_price_minor
        Added value: +{
        +  "description": "Maksymalna cena produktu w groszach (PLN), np. 35000 = 350 zł; bez parametru brak filtra budżetu",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "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"
        +    },
        +    "items": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "creator_url": {
        +            "format": "uri",
        +            "type": "string"
        +          },
        +          "currency": {
        +            "description": "Kod waluty, zawsze PLN",
        +            "type": "string"
        +          },
        +          "id": {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          "image_url": {
        +            "anyOf": [
        +              {
        +                "format": "uri",
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "is_on_sale": {
        +            "type": "boolean"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "price_formatted": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "description": "Aktualna cena jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        +          },
        +          "price_minor": {
        +            "anyOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": -9007199254740991,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "description": "Aktualna cena w groszach (PLN), liczba całkowita; null gdy brak"
        +          },
        +          "product_url": {
        +            "format": "uri",
        +            "type": "string"
        +          },
        +          "regular_price_formatted": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "description": "Cena regularna jako tekst w PLN, np. „339,00 zł”; null gdy brak"
        +          },
        +          "regular_price_minor": {
        +            "anyOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": -9007199254740991,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "description": "Cena regularna w groszach (PLN), liczba całkowita; null gdy brak"
        +          },
        +          "secondary_name": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "short_description": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "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)"
        +          },
        +          "tracked_product_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)"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "secondary_name",
        +          "short_description",
        +          "price_minor",
        +          "price_formatted",
        +          "regular_price_minor",
        +          "regular_price_formatted",
        +          "is_on_sale",
        +          "currency",
        +          "product_url",
        +          "tracked_product_url",
        +          "creator_url",
        +          "tracked_creator_url",
        +          "image_url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total": {
        +      "description": "Liczba pasujących produktów (po filtrze budżetu, przed limitem)",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
  14. 4 tool updates
    • Changedfetch1 field changed
      • removedInput schema / properties / id / minLength
        Removed value: -1
    • Changedget_creator_link1 field changed
      • changedInput schema / properties / product_id / minimum
        Previous value: -1New value: +-9007199254740991
    • Changedget_product_options1 field changed
      • changedInput schema / properties / product_id / minimum
        Previous value: -1New value: +-9007199254740991
    • Changedsearch1 field changed
      • removedInput schema / properties / query / minLength
        Removed value: -1
  15. 5 tool updates
    • First observedfetch
    • First observedget_creator_link
    • First observedget_product_options
    • First observedsearch
    • First observedsearch_products

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for verifying Polish business entities from the National Court Register (KRS) and VAT White List. Allows querying by KRS, NIP, or REGON to retrieve official company data including name, address, board, and capital.
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server for querying product inventory, providing tools to retrieve product details and stock quantities.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Public, read-only MCP server that lets an AI assistant search Seoul's Dongdaemun wholesale fashion market — finding items by keyword in eight languages, listing the newest arrivals, and locating stalls by name, stall number, building or floor, with links back to each item or store page. It returns no prices, stock or merchant contact details and cannot place orders.
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Public Telegram catalog MCP server: search 1.4M+ channels, groups, bots, and posts, and browse marketplace listings, with no auth or API key.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources