Lustrix – mirrors made to measure
Server Details
Price and design made-to-measure mirrors (PL/DE/AT); order on lustrix.eu.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a distinct role: list_materials and list_options return reference data, quote_mirror computes pricing, and create_design_link persists a design and returns links. The only mild overlap is that both quote_mirror and create_design_link return a price block, but their primary purposes (quote vs. persist/order links) are clearly separated.
All four tools follow a clean verb_noun snake_case convention (create_design_link, list_materials, list_options, quote_mirror). The verbs are consistent and predictable.
Four tools is lean but well-scoped for a mirror quote/configure workflow, and each tool clearly earns its place. It is slightly thin, since reference data is split across two list tools with no finer-grained retrieval, but nothing feels redundant.
The surface covers the full quoting workflow: reference data (materials, options), pricing/delivery (quote_mirror), and persistence/checkout handoff (create_design_link). Minor gaps exist, such as retrieving or managing an already-saved design, but order/payment correctly happens off-platform.
Available Tools
4 toolscreate_design_linkSave the design and get the order linkAInspect
Saves the priced mirror as a design on lustrix.eu and returns two links: the configurator (to review or change it) and the checkout (to order it), plus the same price block as quote_mirror. The customer orders and pays on lustrix.eu; nothing is ordered by this tool. The design is deleted after 30 days if not ordered.
| Name | Required | Description | Default |
|---|---|---|---|
| edge | No | grind (polished, default) or bevel | grind |
| name | No | Design name shown in the shop (max 60 characters). No personal data. | |
| holes | No | Mounting holes, at most 4 | |
| notes | No | Notes for the workshop (max 500 characters). No personal data. | |
| shape | Yes | Shape id from list_options | |
| locale | No | Language of every text in the answer: pl (Polish shop, PLN) or de (German shop for DE/AT, EUR). Default pl. | pl |
| country | No | Delivery country. PL with locale pl; DE or AT with locale de. Default: the shop home country. | |
| widthCm | Yes | Width in cm; for a circle the diameter | |
| heightCm | No | Height in cm (not for a circle; a square may omit it) | |
| tempered | No | Tempered safety glass (paid; only when the customer asks) | |
| height2Cm | No | Height of the second vertical side in cm, trapezoid shapes only | |
| backlitLed | No | LED behind the mirror lighting the wall (paid; only when asked) | |
| heatingMat | No | Anti-fog heating mat (paid; only when asked) | |
| postalCode | No | Delivery postal code (PL 00-000, DE 12345, AT 1234). Only used to estimate delivery; never stored. | |
| switchType | No | Switch, only together with an LED (paid) | |
| frontlitLed | No | LED shining through a sanded stripe on the mirror face (paid; only when asked). Patterns per shape: list_options | |
| bevelWidthMm | No | Bevel width in mm (5-30); required with edge=bevel | |
| materialSlug | Yes | Material slug from list_materials |
Output Schema
| Name | Required | Description |
|---|---|---|
| lines | Yes | |
| notes | Yes | |
| shape | Yes | |
| locale | Yes | |
| country | Yes | |
| currency | Yes | |
| delivery | Yes | |
| designId | Yes | |
| estimate | Yes | |
| material | Yes | |
| nextStep | Yes | |
| weightKg | Yes | |
| orderable | Yes | |
| orderBlock | No | |
| checkoutUrl | Yes | |
| configureUrl | Yes | |
| dimensionsCm | Yes | |
| expiresInDays | Yes | |
| productBrutto | Yes | |
| shipmentClass | Yes | |
| deliveryWindow | Yes | |
| estimatedTotalBrutto | Yes | |
| finalPriceAtCheckout | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-readonly, non-destructive write, and the description adds context annotations cannot convey: the two returned links and their purpose, that no order or payment occurs here, and a 30-day retention/deletion policy. It stops short of explaining what happens on a repeated call (relevant given idempotentHint=false) and does not mention auth or rate considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the action and its returns, then the scope caveat, then retention. Dense and largely waste-free; the price-block sentence is slightly incidental but still informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter mutation tool with an output schema and full annotation coverage, the description supplies the non-obvious pieces an agent needs: it is a save operation, it produces links rather than an order, and the artifact expires. Return-value detail is rightly left to the output schema; auth/permission requirements are the only notable omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 18 parameters, including the enums and nested LED objects, is already documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (saves the priced mirror as a design) and its concrete output (configurator link + checkout link). It also explicitly anchors itself against a sibling by noting it returns "the same price block as quote_mirror," so an agent can separate it from the quote tool without reading either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the object being saved is "the priced mirror," which implies quote_mirror runs first, and "nothing is ordered by this tool" implies ordering happens elsewhere. There is no explicit when-to-use/when-not statement or named alternative for the pricing-versus-saving decision, so this stays at the implied-usage level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_materialsList mirror and glass materialsARead-onlyIdempotentInspect
Lists the active mirror and glass materials with thickness, size limits (cm) and a gross "price from" (50×70 cm rectangle, polished edge, no options) in the shop currency. Use the slug in quote_mirror.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Language of every text in the answer: pl (Polish shop, PLN) or de (German shop for DE/AT, EUR). Default pl. | pl |
Output Schema
| Name | Required | Description |
|---|---|---|
| currency | Yes | |
| materials | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, idempotent, closed-world profile, so the bar is lower. The description still adds real behavioral context the annotations cannot: only 'active' materials are returned, and the price is defined as a gross 'price from' for a 50×70 cm rectangle with polished edge and no options in the shop currency, which pre-empts misinterpretation of the quoted figure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with what is listed and what fields come back, then the follow-up action. No filler and no repeated schema/annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not be spelled out, and the description covers the non-obvious semantics of the returned price. What is listed and what to do with the slug are both stated; the only minor omission is noting that response language follows the locale parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single optional locale parameter whose enum values and shop/currency implications are fully documented in the schema. The description's mention of 'shop currency' loosely implies locale-dependence but adds no syntax or defaults beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists the active mirror and glass materials') and enumerates exactly what each entry carries: thickness, size limits in cm, and a gross 'price from'. It also routes the agent downstream by naming quote_mirror, so it is distinguishable from the sibling catalog tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'Use the slug in quote_mirror' gives explicit sequencing: call this to discover materials, then feed the slug into the quoting tool. There is no explicit when-not or exclusion, but the workflow context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_optionsList shapes and optionsARead-onlyIdempotentInspect
Lists the shapes (with the fields each needs and, for a material, its size limits), edges, tempering, LED lighting (colour temperatures, frontlit patterns per shape), heating mat, switches and holes, with the gross "+X" price of each paid option. Paid options are only added when the customer asks.
| Name | Required | Description | Default |
|---|---|---|---|
| shape | No | Filters the frontlit LED patterns to this shape | |
| locale | No | Language of every text in the answer: pl (Polish shop, PLN) or de (German shop for DE/AT, EUR). Default pl. | pl |
| materialSlug | No | Adds the size limits of this material per shape |
Output Schema
| Name | Required | Description |
|---|---|---|
| edges | Yes | |
| holes | Yes | |
| shapes | Yes | |
| currency | Yes | |
| switches | Yes | |
| tempering | Yes | |
| backlitLed | Yes | |
| heatingMat | Yes | |
| frontlitLed | Yes | |
| switchRequiresLed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuine content-level context: gross '+X' pricing is included per paid option, and paid options are only surfaced on customer request — a non-obvious response-shaping rule.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded in the first clause, and the pricing/paid-option rule is a compact second sentence. The main sentence is a dense run-on with heavy parenthetical enumeration, which costs a little readability but every clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return formatting need not be explained, and all three parameters are optional, lowering the burden. The description adequately conveys the catalogue scope and pricing behaviour; the only real gap is sibling selection guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already documented, including locale/currency behaviour. The description restates the key effects ('frontlit patterns per shape', 'for a material, its size limits') but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists the shapes... edges, tempering, LED lighting...') and enumerates exactly which option families are returned, which clearly separates it from list_materials and quote_mirror. An agent can route to it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing rule ('Paid options are only added when the customer asks') is a useful business constraint, but it governs the returned content rather than tool selection. There is no explicit statement of when to call this instead of list_materials or quote_mirror, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_mirrorPrice a mirror made to measureARead-onlyIdempotentInspect
Prices one mirror exactly as the shop does: product gross price with its option lines, weight, delivery methods with rate-table prices (add postalCode for a delivery estimate), the cheapest total, the delivery window and whether it can be ordered. An estimate: the binding price is shown at checkout on lustrix.eu. Only include paid options the customer asked for.
| Name | Required | Description | Default |
|---|---|---|---|
| edge | No | grind (polished, default) or bevel | grind |
| holes | No | Mounting holes, at most 4 | |
| shape | Yes | Shape id from list_options | |
| locale | No | Language of every text in the answer: pl (Polish shop, PLN) or de (German shop for DE/AT, EUR). Default pl. | pl |
| country | No | Delivery country. PL with locale pl; DE or AT with locale de. Default: the shop home country. | |
| widthCm | Yes | Width in cm; for a circle the diameter | |
| heightCm | No | Height in cm (not for a circle; a square may omit it) | |
| tempered | No | Tempered safety glass (paid; only when the customer asks) | |
| height2Cm | No | Height of the second vertical side in cm, trapezoid shapes only | |
| backlitLed | No | LED behind the mirror lighting the wall (paid; only when asked) | |
| heatingMat | No | Anti-fog heating mat (paid; only when asked) | |
| postalCode | No | Delivery postal code (PL 00-000, DE 12345, AT 1234). Only used to estimate delivery; never stored. | |
| switchType | No | Switch, only together with an LED (paid) | |
| frontlitLed | No | LED shining through a sanded stripe on the mirror face (paid; only when asked). Patterns per shape: list_options | |
| bevelWidthMm | No | Bevel width in mm (5-30); required with edge=bevel | |
| materialSlug | Yes | Material slug from list_materials |
Output Schema
| Name | Required | Description |
|---|---|---|
| lines | Yes | |
| notes | Yes | |
| shape | Yes | |
| locale | Yes | |
| country | Yes | |
| currency | Yes | |
| delivery | Yes | |
| estimate | Yes | |
| material | Yes | |
| weightKg | Yes | |
| orderable | Yes | |
| orderBlock | No | |
| dimensionsCm | Yes | |
| productBrutto | Yes | |
| shipmentClass | Yes | |
| deliveryWindow | Yes | |
| estimatedTotalBrutto | Yes | |
| finalPriceAtCheckout | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (read-only, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds meaningful context: the returned figures are an estimate, the binding price appears at checkout on lustrix.eu, delivery prices come from a rate table, and a delivery window/orderability flag is included. It does not discuss failure modes for invalid combinations (e.g. height2Cm only for trapezoids).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and its output, followed by the estimate caveat and the caller rule. No filler, though the enumeration of returned fields is somewhat list-like and could be trimmed against the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 parameters at full schema coverage and an output schema present, the description need not restate parameters or return shape; it correctly focuses on scope, the estimate caveat, and the paid-option rule. It is complete enough to invoke correctly, with only minor gaps around sequencing with the list_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already carries per-parameter meaning. The description adds only the paid-options inclusion rule (which the schema itself repeats with 'paid; only when asked') and the postalCode estimate note, so it adds little beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Prices one mirror exactly as the shop does') and enumerates what the quote contains, so an agent knows precisely what action is performed. It does not name or differentiate itself from the siblings create_design_link, list_materials or list_options, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is real guidance embedded: 'Only include paid options the customer asked for' and 'add postalCode for a delivery estimate'. However, there is no statement of when to use this tool versus the sibling lookup tools, nor any preconditions (e.g. that materialSlug and shape must first come from list_materials/list_options). Usage is implied rather than spelled out.
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.
4 tool updates
- First observed
create_design_link - First observed
list_materials - First observed
list_options - First observed
quote_mirror
Related MCP Connectors
Services, prices, inquiries and free analytics, AI and Google visibility scans by JustIdea, Poland.
Design & price modular raised garden beds and walls: exact bill of materials, EUR price + checkout.
Free renovation calculators, contract templates, room planners and contractor directories (EN/PL)
3110Polish energy performance certificates: pricing, requirements, order, documents, payment link
Related MCP Servers
AlicenseAqualityAmaintenance7M+ real estate transactions from Poland's RCN registry. Search, compare, and analyze prices2877 npm1MIT- AlicenseBqualityDmaintenanceCompare parcel and letter delivery prices across 60+ carriers in 27 European countries.1MIT
- FlicenseNot gradedqualityBmaintenanceCrane rental (Kranvermietung) data for Germany and Austria from KranVergleich.de: find rental companies by city, price ranges for 8 crane types, crane type recommendation and supplier availability per PLZ.-
- AlicenseAqualityAmaintenanceSearch 170 free home renovation tools in English and Polish (material and cost calculators, contract templates, room planners, contractor directories, DIY apps) with public user ratings. No API key needed.310MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.