MCP Server

catalog

net.fsaircraft/catalog
Commerce & Retail Gaming Public & reachable MCP 2025-11-25

What this MCP does

Searches and compares prices, deals, availability, and historical pricing for Microsoft Flight Simulator add-ons.

compare_prices
Compare prices across stores
Every store offer for one add-on, in-stock offers with known net prices first, ordered by net EUR price. Includes the listed price, tax status, known net price, EUR conversion, stock, sale expiry and an outbound link.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'slug', 'title', 'url', 'count', 'offers'], 'properties': {'url': {'type': ['string', 'null']}, 'slug': {'type': 'string'}, 'as_of': {'type': ['string', 'null']}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'title': {'type': ['string', 'null']}, 'offers': {'type': 'array', 'items': {'type': 'object', 'required': ['store', 'store_slug', 'price_cents', 'currency', 'price_eur_cents', 'net_price_cents', 'net_price_eur_cents', 'vat_percent', 'tax_status', 'in_stock', 'discount_pct', 'was_price_cents', 'sale_ends_at', 'price_low_30d_cents', 'last_seen_at', 'store_url', 'deep_link'], 'properties': {'store': {'type': 'string'}, 'currency': {'type': 'string'}, 'in_stock': {'type': 'boolean'}, 'deep_link': {'type': 'string'}, 'store_url': {'type': 'string'}, 'store_slug': {'type': 'string'}, 'tax_status': {'enum': ['included', 'excluded', 'unknown'], 'type': 'string'}, 'price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'vat_percent': {'type': ['number', 'null']}, 'discount_pct': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'last_seen_at': {'type': 'string'}, 'sale_ends_at': {'type': ['string', 'null']}, 'net_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'was_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'net_price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'VAT-excluded and EUR-converted: the only figure that compares across stores'}, 'price_low_30d_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
fetch
Fetch (OpenAI connector alias)
Retrieve one add-on as a document, by the `id` returned from `search` (the add-on slug). Returns the full description plus every current store price.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'text', 'url', 'metadata'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
find_aircraft_type
Find an aircraft type
Resolve a plain-language aircraft name ("737 MAX", "Cessna 172", "A320neo") to its ICAO Doc 8643 designator, with how many add-ons we carry for it. Feed the designator to list_addons_for_aircraft.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'maxLength': 60, 'minLength': 2, 'description': 'Designator, model, family or manufacturer'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'count', 'types'], 'properties': {'as_of': {'type': ['string', 'null']}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'types': {'type': 'array', 'items': {'type': 'object', 'required': ['icao_designator', 'manufacturer', 'model', 'family', 'category', 'addon_count', 'url'], 'properties': {'url': {'type': 'string'}, 'model': {'type': 'string'}, 'family': {'type': ['string', 'null']}, 'category': {'type': 'string'}, 'addon_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'manufacturer': {'type': 'string'}, 'icao_designator': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_addon
Get one add-on
Everything the catalog holds on a single add-on: description, developer, declared simulator compatibility, rating, every store offer with its VAT split and sale expiry, the lowest price ever recorded, and the real-world aircraft types and airports it implements.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Add-on slug, as it appears in https://fsaircraft.net/addons/{slug}'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'found', 'addon'], 'properties': {'addon': {'anyOf': [{'type': 'object', 'required': ['slug', 'title', 'developer', 'category', 'sims', 'price_cents', 'currency', 'price_eur_cents', 'net_price_cents', 'net_price_eur_cents', 'tax_status', 'store', 'discount_pct', 'was_price_cents', 'sale_ends_at', 'offer_count', 'rating', 'url', 'description', 'summary', 'version', 'released_at', 'rating_count', 'first_seen_at', 'image_url', 'aircraft_types', 'airports', 'offers', 'price_low_all_time_cents', 'is_lowest_ever', 'also_listed_as'], 'properties': {'url': {'type': 'string'}, 'sims': {'type': 'array', 'items': {'type': 'string'}}, 'slug': {'type': 'string'}, 'store': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'offers': {'type': 'array', 'items': {'type': 'object', 'required': ['store', 'store_slug', 'price_cents', 'currency', 'price_eur_cents', 'net_price_cents', 'net_price_eur_cents', 'vat_percent', 'tax_status', 'in_stock', 'discount_pct', 'was_price_cents', 'sale_ends_at', 'price_low_30d_cents', 'last_seen_at', 'store_url', 'deep_link'], 'properties': {'store': {'type': 'string'}, 'currency': {'type': 'string'}, 'in_stock': {'type': 'boolean'}, 'deep_link': {'type': 'string'}, 'store_url': {'type': 'string'}, 'store_slug': {'type': 'string'}, 'tax_status': {'enum': ['included', 'excluded', 'unknown'], 'type': 'string'}, 'price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'vat_percent': {'type': ['number', 'null']}, 'discount_pct': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'last_seen_at': {'type': 'string'}, 'sale_ends_at': {'type': ['string', 'null']}, 'net_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'was_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'net_price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'VAT-excluded and EUR-converted: the only figure that compares across stores'}, 'price_low_30d_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'rating': {'type': ['number', 'null']}, 'summary': {'type': ['string', 'null']}, 'version': {'type': ['string', 'null']}, 'airports': {'type': 'array', 'items': {'type': 'object', 'required': ['icao', 'name', 'country'], 'properties': {'icao': {'type': 'string'}, 'name': {'type': 'string'}, 'country': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'currency': {'type': ['string', 'null']}, 'developer': {'type': ['string', 'null']}, 'image_url': {'type': ['string', 'null']}, 'tax_status': {'enum': ['included', 'excluded', 'unknown'], 'type': 'string'}, 'description': {'type': ['string', 'null']}, 'offer_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Cheapest live offer, minor units of `currency`'}, 'released_at': {'type': ['string', 'null']}, 'discount_pct': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'rating_count': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'sale_ends_at': {'type': ['string', 'null']}, 'first_seen_at': {'type': 'string'}, 'aircraft_types': {'type': 'array', 'items': {'type': 'object', 'required': ['icao_designator', 'manufacturer', 'model'], 'properties': {'model': {'type': 'string'}, 'manufacturer': {'type': 'string'}, 'icao_designator': {'type': 'string'}}, 'additionalProperties': False}}, 'also_listed_as': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Other slugs merged into this add-on by cross-store dedupe'}, 'is_lowest_ever': {'type': 'boolean'}, 'net_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'VAT-excluded, where the store VAT rate is known'}, 'price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Same price converted to EUR at ECB rates'}, 'was_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'net_price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'price_low_all_time_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'as_of': {'type': ['string', 'null']}, 'found': {'type': 'boolean'}}, 'additionalProperties': False}
list_addons_for_aircraft
Add-ons for an aircraft type
Every add-on implementing one real-world aircraft type, across all studios, cheapest first. The type link is our own classification (from the title and the store metadata), not the store's.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['icao_designator'], 'properties': {'sim': {'enum': ['msfs2020', 'msfs2024'], 'type': 'string'}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 50, 'minimum': 1}, 'icao_designator': {'type': 'string', 'maxLength': 4, 'minLength': 2, 'description': "ICAO Doc 8643 designator, e.g. 'B738', 'A20N', 'C172'"}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'icao_designator', 'type', 'count', 'results'], 'properties': {'type': {'anyOf': [{'type': 'object', 'required': ['icao_designator', 'manufacturer', 'model', 'family', 'category', 'addon_count', 'url'], 'properties': {'url': {'type': 'string'}, 'model': {'type': 'string'}, 'family': {'type': ['string', 'null']}, 'category': {'type': 'string'}, 'addon_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'manufacturer': {'type': 'string'}, 'icao_designator': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'as_of': {'type': ['string', 'null']}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'title', 'developer', 'category', 'sims', 'price_cents', 'currency', 'price_eur_cents', 'net_price_cents', 'net_price_eur_cents', 'tax_status', 'store', 'discount_pct', 'was_price_cents', 'sale_ends_at', 'offer_count', 'rating', 'url'], 'properties': {'url': {'type': 'string'}, 'sims': {'type': 'array', 'items': {'type': 'string'}}, 'slug': {'type': 'string'}, 'store': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': ['string', 'null']}, 'currency': {'type': ['string', 'null']}, 'developer': {'type': ['string', 'null']}, 'tax_status': {'enum': ['included', 'excluded', 'unknown'], 'type': 'string'}, 'offer_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Cheapest live offer, minor units of `currency`'}, 'discount_pct': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'sale_ends_at': {'type': ['string', 'null']}, 'net_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'VAT-excluded, where the store VAT rate is known'}, 'price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Same price converted to EUR at ECB rates'}, 'was_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'net_price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'icao_designator': {'type': 'string'}}, 'additionalProperties': False}
list_deals
Current deals
Add-ons discounted right now, deepest discount first. A discount here means the current price is below the highest price we have ever recorded for that same offer at that same store — never a store-printed list price, so permanent markdowns do not appear.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sim': {'enum': ['msfs2020', 'msfs2024'], 'type': 'string'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'category': {'type': 'string'}, 'ending_within_days': {'type': 'integer', 'maximum': 60, 'minimum': 1, 'description': 'Only sales with a published end date inside N days'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'count', 'results'], 'properties': {'as_of': {'type': ['string', 'null']}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'title', 'developer', 'category', 'sims', 'price_cents', 'currency', 'price_eur_cents', 'net_price_cents', 'net_price_eur_cents', 'tax_status', 'store', 'discount_pct', 'was_price_cents', 'sale_ends_at', 'offer_count', 'rating', 'url'], 'properties': {'url': {'type': 'string'}, 'sims': {'type': 'array', 'items': {'type': 'string'}}, 'slug': {'type': 'string'}, 'store': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': ['string', 'null']}, 'currency': {'type': ['string', 'null']}, 'developer': {'type': ['string', 'null']}, 'tax_status': {'enum': ['included', 'excluded', 'unknown'], 'type': 'string'}, 'offer_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Cheapest live offer, minor units of `currency`'}, 'discount_pct': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'sale_ends_at': {'type': ['string', 'null']}, 'net_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'VAT-excluded, where the store VAT rate is known'}, 'price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Same price converted to EUR at ECB rates'}, 'was_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'net_price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_developers
List developers
Add-on studios in the catalog, busiest first, optionally filtered by name.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'maxLength': 80, 'description': 'Substring of the developer name'}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 50, 'minimum': 1}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'count', 'developers'], 'properties': {'as_of': {'type': ['string', 'null']}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'developers': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'website', 'product_count', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'website': {'type': ['string', 'null']}, 'product_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_sceneries_for_airport
Scenery for an airport
Every add-on scenery we carry for one airport, by ICAO (or IATA) code, cheapest first.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['icao'], 'properties': {'sim': {'enum': ['msfs2020', 'msfs2024'], 'type': 'string'}, 'icao': {'type': 'string', 'maxLength': 4, 'minLength': 3, 'description': "ICAO code, e.g. 'EGLL', 'KJFK'. IATA also accepted."}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 50, 'minimum': 1}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'icao', 'airport', 'count', 'results'], 'properties': {'icao': {'type': 'string'}, 'as_of': {'type': ['string', 'null']}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'airport': {'anyOf': [{'type': 'object', 'required': ['icao', 'iata', 'name', 'city', 'country', 'url'], 'properties': {'url': {'type': 'string'}, 'city': {'type': ['string', 'null']}, 'iata': {'type': ['string', 'null']}, 'icao': {'type': 'string'}, 'name': {'type': 'string'}, 'country': {'type': ['string', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'title', 'developer', 'category', 'sims', 'price_cents', 'currency', 'price_eur_cents', 'net_price_cents', 'net_price_eur_cents', 'tax_status', 'store', 'discount_pct', 'was_price_cents', 'sale_ends_at', 'offer_count', 'rating', 'url'], 'properties': {'url': {'type': 'string'}, 'sims': {'type': 'array', 'items': {'type': 'string'}}, 'slug': {'type': 'string'}, 'store': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': ['string', 'null']}, 'currency': {'type': ['string', 'null']}, 'developer': {'type': ['string', 'null']}, 'tax_status': {'enum': ['included', 'excluded', 'unknown'], 'type': 'string'}, 'offer_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Cheapest live offer, minor units of `currency`'}, 'discount_pct': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'sale_ends_at': {'type': ['string', 'null']}, 'net_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'VAT-excluded, where the store VAT rate is known'}, 'price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Same price converted to EUR at ECB rates'}, 'was_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'net_price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_stores
List tracked stores
Every storefront in the catalog, with how many add-ons we track there, how many are discounted right now, and whether its prices include VAT. Use it to answer "which stores do you actually cover" and to get the `store` slug vocabulary for search_addons.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'count', 'stores'], 'properties': {'as_of': {'type': ['string', 'null']}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'stores': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'base_url', 'product_count', 'offer_count', 'on_sale_count', 'prices_include_vat'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'base_url': {'type': 'string'}, 'offer_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'on_sale_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'product_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'prices_include_vat': {'type': ['boolean', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
price_history
Price history
Daily lowest known VAT-excluded price in EUR, using current exchange rates, plus min/max/current and whether it is at its lowest ever. Answers "has this ever been cheaper than X?".
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'days': {'type': 'integer', 'default': 180, 'maximum': 365, 'minimum': 1}, 'slug': {'type': 'string'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'slug', 'days', 'price_basis', 'points', 'min_eur_cents', 'max_eur_cents', 'current_eur_cents', 'is_lowest_ever', 'url'], 'properties': {'url': {'type': ['string', 'null']}, 'days': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'slug': {'type': 'string'}, 'as_of': {'type': ['string', 'null']}, 'points': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'price_cents', 'currency', 'price_eur_cents'], 'properties': {'date': {'type': 'string'}, 'currency': {'type': 'string'}, 'price_cents': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'price_basis': {'type': 'string', 'const': 'net'}, 'max_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'min_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'is_lowest_ever': {'type': 'boolean'}, 'current_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': False}
search
Search (OpenAI connector alias)
Search the fsaircraft.net MSFS add-on catalog and return documents in the shape ChatGPT deep-research and company-knowledge connectors expect. `id` is the add-on slug; pass it to `fetch`. Prefer search_addons when filters or prices matter.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 200}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'text', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
search_addons
Search MSFS add-ons
Search the fsaircraft.net catalog of payware Microsoft Flight Simulator add-ons (aircraft, scenery, liveries, utilities) across every tracked store. Returns the cheapest live offer for each add-on with its discount and MSFS 2020/2024 compatibility as declared by the selling store.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'maxLength': 120, 'description': 'Free text: title, developer, ICAO code or aircraft type'}, 'sim': {'enum': ['msfs2020', 'msfs2024'], 'type': 'string', 'description': 'Only add-ons declared compatible with this simulator'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'store': {'type': 'string', 'description': "Store slug, e.g. 'simmarket' — see list_stores"}, 'on_sale': {'type': 'boolean', 'description': 'Only add-ons currently below their recorded high'}, 'category': {'type': 'string', 'description': "Category slug, e.g. 'aircraft', 'scenery', 'livery', 'utility'"}, 'max_price_eur': {'type': 'number', 'maximum': 10000, 'description': 'Inclusive ceiling on the known VAT-excluded price, in euros', 'exclusiveMinimum': 0}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['as_of', 'count', 'results'], 'properties': {'as_of': {'type': ['string', 'null']}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'title', 'developer', 'category', 'sims', 'price_cents', 'currency', 'price_eur_cents', 'net_price_cents', 'net_price_eur_cents', 'tax_status', 'store', 'discount_pct', 'was_price_cents', 'sale_ends_at', 'offer_count', 'rating', 'url'], 'properties': {'url': {'type': 'string'}, 'sims': {'type': 'array', 'items': {'type': 'string'}}, 'slug': {'type': 'string'}, 'store': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': ['string', 'null']}, 'currency': {'type': ['string', 'null']}, 'developer': {'type': ['string', 'null']}, 'tax_status': {'enum': ['included', 'excluded', 'unknown'], 'type': 'string'}, 'offer_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Cheapest live offer, minor units of `currency`'}, 'discount_pct': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'sale_ends_at': {'type': ['string', 'null']}, 'net_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'VAT-excluded, where the store VAT rate is known'}, 'price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Same price converted to EUR at ECB rates'}, 'was_price_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'net_price_eur_cents': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Changed
list_sceneries_for_airport
Sept. 25, 2026, 2:49 a.m.
Changed
list_addons_for_aircraft
Sept. 25, 2026, 2:49 a.m.
Changed
price_history
Sept. 25, 2026, 2:49 a.m.
Changed
compare_prices
Sept. 25, 2026, 2:49 a.m.
Changed
list_deals
Sept. 25, 2026, 2:49 a.m.
Changed
get_addon
Sept. 25, 2026, 2:49 a.m.
Changed
search_addons
Sept. 25, 2026, 2:49 a.m.
Added
fetch
Sept. 23, 2026, 2:40 a.m.
Added
search
Sept. 23, 2026, 2:40 a.m.
Added
list_sceneries_for_airport
Sept. 23, 2026, 2:40 a.m.
Added
list_addons_for_aircraft
Sept. 23, 2026, 2:40 a.m.
Added
find_aircraft_type
Sept. 23, 2026, 2:40 a.m.
Added
list_developers
Sept. 23, 2026, 2:40 a.m.
Added
list_stores
Sept. 23, 2026, 2:40 a.m.
Added
price_history
Sept. 23, 2026, 2:40 a.m.
Added
compare_prices
Sept. 23, 2026, 2:40 a.m.
Added
list_deals
Sept. 23, 2026, 2:40 a.m.
Added
get_addon
Sept. 23, 2026, 2:40 a.m.
Added
search_addons
Sept. 23, 2026, 2:40 a.m.