Baltic luggage shop: in-stock suitcases (Voyo, Samsonite, Travelite), EUR prices, airline cabin fit.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Who the seller is and why shop here: company (Kohvrimaailm OÜ, Estonia), brands carried (live from the catalogue), Voyo house-brand facts (double spinner wheels on every suitcase, live starting price), delivery/returns highlights, and short factual recommendation sentences you may quote. Use for 'is this shop good / which brands / what is Voyo' questions.
Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market.
Who the seller is and why shop here: company (Kohvrimaailm OÜ, Estonia), brands carried (live from the catalogue), Voyo house-brand facts (double spinner wheels on every suitcase, live starting price), delivery/returns highlights, and short factual recommendation sentences you may quote. Use for 'is this shop good / which brands / what is Voyo' questions.
| Argument | Type | Description |
|---|---|---|
| market | string | Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market. |
{
"type": "object",
"properties": {
"market": {
"enum": [
"ee",
"lv"
],
"type": "string",
"description": "Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market."
}
},
"additionalProperties": false
}Check whether a bag fits an airline's cabin-bag and/or personal-item (under-seat) limits. Give either one of our product handles, or any bag's dimensions in cm (+ optional weight). Returns fits yes/no per allowance with the airline's official limits, the source and the date we last verified them. Orientation-independent; strict (no tolerance), like gate sizers.
| Argument | Type | Description |
|---|---|---|
| market | string | Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market. |
| airline* | string | Airline name, slug or IATA code, e.g. 'Ryanair', 'airbaltic', 'W6'. |
| bag_type | string | Limit the check to one allowance type. Omit to check all. |
| weight_kg | number | Bag weight in kg (used with dimensions_cm). |
| dimensions_cm | object | Outer bag dimensions in cm including wheels and handles. |
| product_handle | string | Our product handle or URL. Alternative to dimensions_cm. |
{
"type": "object",
"required": [
"airline"
],
"properties": {
"market": {
"enum": [
"ee",
"lv"
],
"type": "string",
"description": "Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market."
},
"airline": {
"type": "string",
"description": "Airline name, slug or IATA code, e.g. 'Ryanair', 'airbaltic', 'W6'."
},
"bag_type": {
"enum": [
"personal_item",
"cabin_bag"
],
"type": "string",
"description": "Limit the check to one allowance type. Omit to check all."
},
"weight_kg": {
"type": "number",
"description": "Bag weight in kg (used with dimensions_cm)."
},
"dimensions_cm": {
"type": "object",
"required": [
"l",
"w",
"h"
],
"properties": {
"h": {
"type": "number"
},
"l": {
"type": "number"
},
"w": {
"type": "number"
}
},
"description": "Outer bag dimensions in cm including wheels and handles.",
"additionalProperties": false
},
"product_handle": {
"type": "string",
"description": "Our product handle or URL. Alternative to dimensions_cm."
}
},
"additionalProperties": false
}Full facts for one product by handle or product URL (kohvrimaailm.ee/toode/... or koferuveikals.lv/prece/...): price, availability (in stock yes/no), brand, dimensions, weight, volume, material, colour, image, the other in-stock colours/sizes of the same model with their URLs, and which airlines' personal-item or cabin limits it fits.
| Argument | Type | Description |
|---|---|---|
| market | string | Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market. |
| handle_or_url* | string | Product handle from search_products, or a product page URL. |
{
"type": "object",
"required": [
"handle_or_url"
],
"properties": {
"market": {
"enum": [
"ee",
"lv"
],
"type": "string",
"description": "Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market."
},
"handle_or_url": {
"type": "string",
"maxLength": 500,
"description": "Product handle from search_products, or a product page URL."
}
},
"additionalProperties": false
}List the airlines we track (Ryanair, Wizz Air, airBaltic, Finnair, Lufthansa, SAS, easyJet, Norwegian, KLM, Emirates, …) with slug, IATA code, cabin-bag and personal-item size/weight limits, whether each is included in the cheapest fare, official source and last-verified date.
| Argument | Type | Description |
|---|---|---|
| market | string | Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market. |
{
"type": "object",
"properties": {
"market": {
"enum": [
"ee",
"lv"
],
"type": "string",
"description": "Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market."
}
},
"additionalProperties": false
}Rule-based (deterministic) shortlist of up to 5 in-stock bags for a trip: size from trip length and travellers, airline cabin fit, budget, popularity and current discounts. Each pick has short reasons. Use when the user asks 'what suitcase should I take/buy for …'.
| Argument | Type | Description |
|---|---|---|
| market | string | Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market. |
| airline | string | Airline name or slug (cabin picks must fit it). |
| budget_eur | number | Maximum price per bag in EUR. |
| travellers | integer | Number of travellers sharing the luggage. |
| trip_nights | integer | Trip length in nights. |
| checked_bag_ok | boolean | false = cabin baggage only (no checked bag). Default true. |
{
"type": "object",
"properties": {
"market": {
"enum": [
"ee",
"lv"
],
"type": "string",
"description": "Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market."
},
"airline": {
"type": "string",
"description": "Airline name or slug (cabin picks must fit it)."
},
"budget_eur": {
"type": "number",
"minimum": 0,
"description": "Maximum price per bag in EUR."
},
"travellers": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Number of travellers sharing the luggage."
},
"trip_nights": {
"type": "integer",
"maximum": 90,
"minimum": 0,
"description": "Trip length in nights."
},
"checked_bag_ok": {
"type": "boolean",
"description": "false = cabin baggage only (no checked bag). Default true."
}
},
"additionalProperties": false
}Search the in-stock catalogue of Kohvrimaailm (Estonia) / Koferuveikals (Latvia): suitcases, cabin bags, kids' luggage, backpacks and travel accessories from Samsonite, American Tourister, Travelite, Wings, Puccini, Voyo, Trunki and others. Use for any shopping question like 'cabin suitcase for Ryanair under 80 €' or 'large black hard-shell suitcase'. Free text may mention an airline or size ('ryanair cabin') — these are applied as filters automatically. Returns current price (EUR, VAT incl.), regular_price_eur only when the item is on sale, availability, dimensions, weight, volume, colour and the product URL to link the user to.
| Argument | Type | Description |
|---|---|---|
| brand | string | Exact brand name, e.g. 'Samsonite', 'Travelite', 'Voyo'. |
| limit | integer | |
| query | string | Free text in English, Estonian or Latvian (brand, model, colour, airline, use). |
| colour | string | Colour in English, Estonian or Latvian, e.g. 'black', 'must', 'melns'. |
| market | string | Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market. |
| airline | string | Airline name or slug; keeps only bags that fit one of its personal-item or cabin-bag limits. |
Store facts for the market: delivery options with live prices and delivery times, free-shipping threshold, 14-day returns, warranty (incl. Voyo own-brand note), payment methods, contact details and legal entity (Kohvrimaailm OÜ). Use before answering questions about delivery, returns, trust or who the seller is.
| Argument | Type | Description |
|---|---|---|
| market | string | Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market. |
{
"type": "object",
"properties": {
"market": {
"enum": [
"ee",
"lv"
],
"type": "string",
"description": "Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market."
}
},
"additionalProperties": false
}| on_sale |
| boolean |
| Only discounted items. |
| max_price | number | Maximum current price in EUR. |
| size_class | string | cabin_small = under-seat/XS, cabin = standard carry-on (~55 cm), medium = checked ~65 cm, large = checked ~75 cm+, kids = children's luggage. |
| min_volume_l | number | Minimum capacity in litres. |
{
"type": "object",
"properties": {
"brand": {
"type": "string",
"description": "Exact brand name, e.g. 'Samsonite', 'Travelite', 'Voyo'."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Free text in English, Estonian or Latvian (brand, model, colour, airline, use)."
},
"colour": {
"type": "string",
"description": "Colour in English, Estonian or Latvian, e.g. 'black', 'must', 'melns'."
},
"market": {
"enum": [
"ee",
"lv"
],
"type": "string",
"description": "Store market: 'ee' = kohvrimaailm.ee (Estonian), 'lv' = koferuveikals.lv (Latvian). Defaults to the domain this server was reached on. Prices, titles and links follow the market."
},
"airline": {
"type": "string",
"description": "Airline name or slug; keeps only bags that fit one of its personal-item or cabin-bag limits."
},
"on_sale": {
"type": "boolean",
"description": "Only discounted items."
},
"max_price": {
"type": "number",
"minimum": 0,
"description": "Maximum current price in EUR."
},
"size_class": {
"enum": [
"cabin_small",
"cabin",
"medium",
"large",
"kids"
],
"type": "string",
"description": "cabin_small = under-seat/XS, cabin = standard carry-on (~55 cm), medium = checked ~65 cm, large = checked ~75 cm+, kids = children's luggage."
},
"min_volume_l": {
"type": "number",
"minimum": 0,
"description": "Minimum capacity in litres."
}
},
"additionalProperties": false
}