Compare duty-free prices across airport shops: search, live price checks, history and barcodes.
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.
Get the size and freshness of SkyBuyFly's price comparison catalogue: the number of products, the number of airports and when the figures were generated. Relevant when asked how much SkyBuyFly covers.
This tool takes no arguments.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http skybuyfly https://skybuyfly.pitchai.net/mcp
Get the size and freshness of SkyBuyFly's price comparison catalogue: the number of products, the number of airports and when the figures were generated. Relevant when asked how much SkyBuyFly covers.
No arguments.
{
"type": "object",
"title": "get_catalogue_statsArguments",
"properties": {}
}Get SkyBuyFly's featured airport duty-free products with their airport prices, and the most popular catalogue categories. Not personalised. Relevant when a traveller wants inspiration or asks what is popular at duty free.
| Argument | Type | Description |
|---|---|---|
| currency | string | A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one. |
{
"type": "object",
"title": "get_featured_productsArguments",
"properties": {
"currency": {
"type": "string",
"title": "Currency",
"default": "USD",
"pattern": "^[A-Za-z]{3}$",
"description": "A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one."
}
}
}Check a product's prices live at every airport shop that sells it: SkyBuyFly opens each shop's page now and confirms the current price. Every offer comes back marked live_confirmed (checked just now) or stored (the last observed price, with its date), cheapest first. Takes about 5-15 seconds. Relevant when a traveller wants current prices or is deciding where to buy. A check of the same product within a minute returns the same result; when SkyBuyFly's price service is busy the answer is rate_limited and lists no offers.
| Argument | Type | Description |
|---|---|---|
| currency | string | A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one. |
| product_id* | string | A SkyBuyFly product_id exactly as search_products, lookup_barcode or get_featured_products answered it: 32 lowercase hex characters or a dashed UUID. |
| wait_seconds | integer | Seconds to wait for the airports' shops to answer: a whole number from 5 to 20 (default 12); offers not confirmed by then are returned with their stored price. |
{
"type": "object",
"title": "get_live_pricesArguments",
"required": [
"product_id"
],
"properties": {
"currency": {
"type": "string",
"title": "Currency",
"default": "USD",
"pattern": "^[A-Za-z]{3}$",
"description": "A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one."
},
"product_id": {
"type": "string",
"title": "Product Id",
"pattern": "^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$",
"description": "A SkyBuyFly product_id exactly as search_products, lookup_barcode or get_featured_products answered it: 32 lowercase hex characters or a dashed UUID."
},
"wait_seconds": {
"type": "integer",
"title": "Wait Seconds",
"default": 12,
"maximum": 20,
"minimum": 5,
"description": "Seconds to wait for the airports' shops to answer: a whole number from 5 to 20 (default 12); offers not confirmed by then are returned with their stored price."
}
}
}Get a product's observed prices per airport over time: SkyBuyFly's 50 most recent observations (the answer says which dates they cover), as each airport's price changes, with the lowest and latest price. Relevant when a traveller asks whether a price is good, has changed or how it developed. It does not check current prices.
| Argument | Type | Description |
|---|---|---|
| currency | string | A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one. |
| product_id* | string | A SkyBuyFly product_id exactly as search_products, lookup_barcode or get_featured_products answered it: 32 lowercase hex characters or a dashed UUID. |
{
"type": "object",
"title": "get_price_historyArguments",
"required": [
"product_id"
],
"properties": {
"currency": {
"type": "string",
"title": "Currency",
"default": "USD",
"pattern": "^[A-Za-z]{3}$",
"description": "A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one."
},
"product_id": {
"type": "string",
"title": "Product Id",
"pattern": "^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$",
"description": "A SkyBuyFly product_id exactly as search_products, lookup_barcode or get_featured_products answered it: 32 lowercase hex characters or a dashed UUID."
}
}
}Get one SkyBuyFly product by its product_id: its description and size, every stored offer per airport shop (the shop's own price, the price in the requested currency, when it was observed, a link to the SkyBuyFly deal page) and similar products. Relevant when a traveller wants every airport and shop for one product. The prices are stored observations; this tool does not check them live.
| Argument | Type | Description |
|---|---|---|
| currency | string | A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one. |
| product_id* | string | A SkyBuyFly product_id exactly as search_products, lookup_barcode or get_featured_products answered it: 32 lowercase hex characters or a dashed UUID. |
{
"type": "object",
"title": "get_productArguments",
"required": [
"product_id"
],
"properties": {
"currency": {
"type": "string",
"title": "Currency",
"default": "USD",
"pattern": "^[A-Za-z]{3}$",
"description": "A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one."
},
"product_id": {
"type": "string",
"title": "Product Id",
"pattern": "^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$",
"description": "A SkyBuyFly product_id exactly as search_products, lookup_barcode or get_featured_products answered it: 32 lowercase hex characters or a dashed UUID."
}
}
}List the airports whose duty-free shops SkyBuyFly compares: IATA code, name, city and the shops' store domains, optionally only those matching a text (code, name or city). Relevant for finding an airport's IATA code or answering which airports are covered.
| Argument | Type | Description |
|---|---|---|
| query | any | Up to 100 characters: only airports whose IATA code, name or city contains this text, e.g. 'London'. |
{
"type": "object",
"title": "list_airportsArguments",
"properties": {
"query": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "Query",
"default": null,
"description": "Up to 100 characters: only airports whose IATA code, name or city contains this text, e.g. 'London'."
}
}
}List the currencies SkyBuyFly shows prices in (ISO 4217 code, name, symbol). Every price tool takes one of these codes as currency.
No arguments.
{
"type": "object",
"title": "list_currenciesArguments",
"properties": {}
}Find the SkyBuyFly product that carries a barcode (the digits of an EAN-8, UPC-A, EAN-13 or GTIN-14, e.g. read from a box or a photo) with its price at each airport shop that has an offer for that code, and when it was seen. An empty list means no airport shop SkyBuyFly compares sells it. It does not search by name.
| Argument | Type | Description |
|---|---|---|
| code* | string | The barcode's 8 to 14 digits (EAN-8, UPC-A, EAN-13 or GTIN-14), e.g. 3145891165203. |
| currency | string | A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one. |
{
"type": "object",
"title": "lookup_barcodeArguments",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"title": "Code",
"pattern": "^\\d{8,14}$",
"description": "The barcode's 8 to 14 digits (EAN-8, UPC-A, EAN-13 or GTIN-14), e.g. 3145891165203."
},
"currency": {
"type": "string",
"title": "Currency",
"default": "USD",
"pattern": "^[A-Za-z]{3}$",
"description": "A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one."
}
}
}Search SkyBuyFly's price comparison of airport duty-free shops by product name, brand or category. Returns one card per product with its price at every airport shop that sells it (cheapest first, in the requested currency), its lowest price (an airport's or an online shop's), its product_id and a link to its SkyBuyFly page. Relevant when a traveller asks what something costs at airports, where it is cheapest, or whether an airport sells it. With airports (IATA codes) it returns only the products listed at every one of them, each card showing those airports' prices. Prices are the latest stored observations, each with its date; this tool does not check them live.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many products to return: a whole number from 1 to 20. |
| query* | string | 1-200 characters: what the traveller is looking for, a product name, brand, category or a mix of them, e.g. 'Chanel Coco Mademoiselle 100 ml', 'Lagavulin 16', 'sunscreen'. |
| cursor | any | The next_cursor of the previous answer, unchanged, to get the next page of the same search. |
| airports | any | Up to 10 airport IATA codes, e.g. ['VIE', 'BER']: only products the catalogue lists at every one of these airports and with a current price at one of them at least; each card then shows the current prices at these airports only (an airport without a current price is left off the card). Leave it out, or pass [], to search every airport. list_airports has the airports SkyBuyFly compares. |
| currency |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 9, 2026.
| string |
| A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one. |
{
"type": "object",
"title": "searchArguments",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 8,
"maximum": 20,
"minimum": 1,
"description": "How many products to return: a whole number from 1 to 20."
},
"query": {
"type": "string",
"title": "Query",
"maxLength": 200,
"minLength": 1,
"description": "1-200 characters: what the traveller is looking for, a product name, brand, category or a mix of them, e.g. 'Chanel Coco Mademoiselle 100 ml', 'Lagavulin 16', 'sunscreen'."
},
"cursor": {
"anyOf": [
{
"type": "string",
"maxLength": 4096
},
{
"type": "null"
}
],
"title": "Cursor",
"default": null,
"description": "The next_cursor of the previous answer, unchanged, to get the next page of the same search."
},
"airports": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "An airport's 3-letter IATA code, e.g. VIE."
},
"maxItems": 10
},
{
"type": "null"
}
],
"title": "Airports",
"default": null,
"description": "Up to 10 airport IATA codes, e.g. ['VIE', 'BER']: only products the catalogue lists at every one of these airports and with a current price at one of them at least; each card then shows the current prices at these airports only (an airport without a current price is left off the card). Leave it out, or pass [], to search every airport. list_airports has the airports SkyBuyFly compares."
},
"currency": {
"type": "string",
"title": "Currency",
"default": "USD",
"pattern": "^[A-Za-z]{3}$",
"description": "A 3-letter ISO 4217 currency code, e.g. EUR (any case; default USD), that every price is shown in; list_currencies has every one."
}
}
}