MCP-Server

Dinilu — custom promotional products

eu.dinilu/mcp
Commerce & Retail Marketing & Werbung Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Searches a catalog of custom promotional products and provides configurable product options, pricing, production times, and shipping quotes.

fetch
Fetch
Compatibility fetch for research clients that require a tool named "fetch". Returns one product as readable text. It carries NO price: prices depend on quantity and options and come from get_quote.
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The id returned by search (the product mpn, as a string).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['id', 'title', 'text', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}, 'content': {'type': 'string'}, 'metadata': {'type': 'object'}}}
get_product
Get product options
Get a product's configurable attributes and their options, plus its minimum order quantity and quantity step. Call this before get_quote: the attribute and option ids it returns are what get_quote expects.
Eingabeschema
{'type': 'object', 'required': ['mpn'], 'properties': {'mpn': {'type': 'integer', 'description': "Product MPN, from search_products or from the mpn field in a product page's JSON-LD."}}, 'additionalProperties': False}
get_quote
Get a price and delivery quote
Price a specific configuration and quantity, with production time and shipping options. Indicative, excludes VAT and shipping, never binding. Read the returned "warnings" before presenting the price.
Eingabeschema
{'type': 'object', 'required': ['mpn'], 'properties': {'mpn': {'type': 'integer', 'description': 'Product MPN.'}, 'qty': {'type': 'integer', 'description': 'Quantity in PIECES. Below the product minimum it is raised to the MOQ and a qty_below_minimum warning is returned. Omitting it quotes the product default and warns — always pass the real target quantity, because price per piece changes substantially with volume.'}, 'zone': {'type': 'integer', 'description': 'Optional zone/state id, where shipping rates depend on it.'}, 'country': {'type': 'string', 'description': 'Destination country for shipping rates. Accepts a name ("Germany"), ISO 3166-1 alpha-2 ("DE"), alpha-3 ("DEU") or numeric ("276"). Defaults to this domain\'s country.'}, 'attributes': {'type': 'object', 'description': 'Option selection as {"<attribute id>": <option id>}, e.g. {"19": 251, "58": 490}. Both ids come from get_product. Option NAMES are also accepted as values but must match exactly, including double spaces, and are translated per domain — prefer ids. Any attribute you omit is filled with the product default and reported in warnings.', 'additionalProperties': {'type': ['integer', 'string']}}}, 'additionalProperties': False}
search
Search
Compatibility search for research clients that require a tool named "search". Returns only id, title and URL. Prefer search_products, which also filters by category and returns the category of each hit.
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Free text matched against the product title.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['results'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}}}}}}
search_products
Search products
Find products in this catalogue by free text and/or category. Returns mpn, title, page URL and category for each match. The mpn is what get_product and get_quote take.
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'description': 'Maximum results to return. Default 50, maximum 200.'}, 'query': {'type': 'string', 'description': 'Free text matched against the product title, case-insensitive. Omit to list everything (optionally narrowed by category).'}, 'category': {'type': 'integer', 'description': 'Taxonomy term id to filter by. Read the category tree from the dinilu://categories resource.'}}, 'additionalProperties': False}
Hinzugefügt
fetch
24. September 2026 02:40
Hinzugefügt
search
24. September 2026 02:40
Hinzugefügt
get_quote
22. September 2026 02:40
Hinzugefügt
get_product
22. September 2026 02:40
Hinzugefügt
search_products
22. September 2026 02:40