MCP-Server

Jetopolis

app.jetopolis/game
Gaming Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Provides data and guidance for the Jetopolis airline strategy game, including worlds, standings, aircraft, historical airlines and aircraft prices.

aircraft_catalog
Aircraft catalog
Aircraft types of the game catalog: seats in two classes, range, cruise speed, required runway, entry into service and end of production, and the list price in millions of US dollars of the entry-into-service year. With year, only types already flying that year are returned and availabilityInYear says whether they are sold new or only on the used market.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'lang': {'type': 'string', 'maxLength': 10, 'description': 'Language for the human-readable labels next to keys, one of the 25 game locales (en, ru, de, fr, es, ja, zh-CN and others); unknown values fall back to English'}, 'year': {'type': 'integer', 'maximum': 2030, 'minimum': 1950, 'description': 'Only aircraft already in service in this year; also fills availabilityInYear'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 150, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'Substring of the model name or id, case-insensitive (A320, 747, dc-3)'}, 'category': {'enum': ['PISTON', 'TURBOPROP', 'NARROWBODY', 'WIDEBODY', 'JUMBO', 'SST', 'REGIONAL_JET'], 'type': 'string'}, 'manufacturer': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'Substring, case-insensitive'}}}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['total', 'aircraft'], 'properties': {'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'aircraft': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'manufacturer', 'model', 'category', 'categoryName', 'family', 'eisYear', 'eisPlanned', 'eopYear', 'seats', 'rangeKm', 'cruiseKmh', 'runwayRequiredM', 'listPriceUsdMlnAtEis', 'priceEstimated', 'availabilityInYear'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'model': {'type': 'string'}, 'seats': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'family': {'type': 'string'}, 'eisYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'eopYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'rangeKm': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'category': {'enum': ['PISTON', 'TURBOPROP', 'NARROWBODY', 'WIDEBODY', 'JUMBO', 'SST', 'REGIONAL_JET'], 'type': 'string'}, 'cruiseKmh': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'eisPlanned': {'type': 'boolean'}, 'categoryName': {'type': 'string'}, 'manufacturer': {'type': 'string'}, 'priceEstimated': {'type': 'boolean'}, 'runwayRequiredM': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'availabilityInYear': {'anyOf': [{'enum': ['new', 'used-only'], 'type': 'string'}, {'type': 'null'}]}, 'listPriceUsdMlnAtEis': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
aircraft_price
Aircraft price in a game year
In-game catalogue price of a new aircraft in a given year: the entry-into-service price inflated by US CPI to nominal dollars of that year, and the same price in 2024 dollars. Accepts an id from aircraft_catalog or part of the name; when several types match and the year does not settle it, returns candidates to choose from.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['model', 'year'], 'properties': {'year': {'type': 'integer', 'maximum': 2030, 'minimum': 1950, 'description': 'Game year to price the aircraft in'}, 'model': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'Aircraft id from aircraft_catalog (a320-200) or part of its name (A320, 747-400)'}}}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['year', 'match', 'candidates', 'note'], 'properties': {'note': {'type': 'string'}, 'year': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'match': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'eisYear', 'eopYear', 'eisPlanned', 'listPriceUsdMlnAtEis', 'priceUsdMlnNominal', 'priceUsdMln2024', 'priceEstimated', 'availability'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'eisYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'eopYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'eisPlanned': {'type': 'boolean'}, 'availability': {'enum': ['not-yet', 'new', 'used-only'], 'type': 'string'}, 'priceEstimated': {'type': 'boolean'}, 'priceUsdMln2024': {'type': 'number'}, 'priceUsdMlnNominal': {'type': ['number', 'null']}, 'listPriceUsdMlnAtEis': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'eisYear', 'eopYear'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'eisYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'eopYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_world
One world
One Jetopolis world by id: the same card as in list_worlds plus finishedAt for a world that has ended.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['worldId'], 'properties': {'lang': {'type': 'string', 'maxLength': 10, 'description': 'Language for the human-readable labels next to keys, one of the 25 game locales (en, ru, de, fr, es, ja, zh-CN and others); unknown values fall back to English'}, 'worldId': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'World id from list_worlds'}}}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'name', 'type', 'typeName', 'region', 'startYear', 'endYear', 'tickMinutes', 'gameDate', 'year', 'era', 'eraName', 'status', 'players', 'maxPlayers', 'active24h', 'url', 'finishedAt'], 'properties': {'id': {'type': 'string'}, 'era': {'type': 'string'}, 'url': {'type': 'string'}, 'name': {'type': 'string'}, 'type': {'enum': ['BLITZ', 'STANDARD', 'ENDLESS', 'PRIVATE'], 'type': 'string'}, 'year': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'region': {'enum': ['wnam', 'enam', 'weur', 'eeur', 'apac-ne', 'apac-se', 'oc'], 'type': 'string'}, 'status': {'type': 'string'}, 'endYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'eraName': {'type': 'string'}, 'players': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'gameDate': {'type': 'string'}, 'typeName': {'type': 'string'}, 'active24h': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'startYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'finishedAt': {'type': ['string', 'null']}, 'maxPlayers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'tickMinutes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}
historical_airlines
Historical airlines of a year
Real airlines that operated in a given year (1950-2030) as the game knows them: name, IATA code when reliably known, home country and region, type, years of operation, and the countries each one served that year. Network data has decade precision: a country listed for the 1960s may have been added mid-decade. servedCountries lists destinations from home; when networkKnown is false only the home country is known. Sorted by the airline size in the dataset.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['year'], 'properties': {'kind': {'enum': ['flag', 'major', 'regional', 'lowcost', 'charter'], 'type': 'string', 'description': 'flag carrier, major, regional, low-cost or charter'}, 'year': {'type': 'integer', 'maximum': 2030, 'minimum': 1950, 'description': 'Calendar year, 1950-2030'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'At most this many airlines'}, 'region': {'enum': ['wnam', 'enam', 'weur', 'eeur', 'apac-ne', 'apac-se', 'oc'], 'type': 'string', 'description': 'Game region of the airline base'}, 'country': {'type': 'string', 'pattern': '^[A-Za-z]{2}$', 'description': 'Home country of the airline, ISO 3166-1 alpha-2 (GB, US, FR)'}}}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['year', 'total', 'airlines'], 'properties': {'year': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'airlines': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'code', 'country', 'region', 'kind', 'since', 'until', 'servedCountries', 'confidence', 'networkKnown'], 'properties': {'id': {'type': 'string'}, 'code': {'type': ['string', 'null']}, 'kind': {'enum': ['flag', 'major', 'regional', 'lowcost', 'charter'], 'type': 'string'}, 'name': {'type': 'string'}, 'since': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'until': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'region': {'enum': ['wnam', 'enam', 'weur', 'eeur', 'apac-ne', 'apac-se', 'oc'], 'type': 'string'}, 'country': {'type': 'string'}, 'confidence': {'anyOf': [{'enum': ['high', 'medium', 'low'], 'type': 'string'}, {'type': 'null'}]}, 'networkKnown': {'type': 'boolean'}, 'servedCountries': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}}, 'additionalProperties': False}
how_to_start
How to start playing
How to start playing Jetopolis: the steps from the first click to the first route, the world pace and links to the game and its guides. English or Russian.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'lang': {'enum': ['en', 'ru'], 'type': 'string', 'default': 'en'}}}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lang', 'title', 'pitch', 'steps', 'links', 'facts'], 'properties': {'lang': {'enum': ['en', 'ru'], 'type': 'string'}, 'facts': {'type': 'object', 'required': ['worldPace', 'guest'], 'properties': {'guest': {'type': 'string'}, 'worldPace': {'type': 'string'}}, 'additionalProperties': False}, 'links': {'type': 'object', 'required': ['play', 'lobby', 'guides'], 'properties': {'play': {'type': 'string'}, 'lobby': {'type': 'string'}, 'guides': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url'], 'properties': {'url': {'type': 'string'}, 'title': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'pitch': {'type': 'string'}, 'steps': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}}, 'additionalProperties': False}
list_worlds
Live worlds
Public Jetopolis worlds open right now: name, server region, pace (Standard: 1 game day = 20 real minutes, Blitz: 5), start and end year, current game date and era, players and seats, players active in the last 24 hours, and a link to open the world. Worlds never pause.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'lang': {'type': 'string', 'maxLength': 10, 'description': 'Language for the human-readable labels next to keys, one of the 25 game locales (en, ru, de, fr, es, ja, zh-CN and others); unknown values fall back to English'}, 'type': {'enum': ['BLITZ', 'STANDARD', 'ENDLESS', 'PRIVATE'], 'type': 'string', 'description': 'STANDARD: 1 game day = 20 min, BLITZ: 5 min'}, 'region': {'enum': ['wnam', 'enam', 'weur', 'eeur', 'apac-ne', 'apac-se', 'oc'], 'type': 'string', 'description': 'Server region of the world'}, 'status': {'enum': ['RUNNING', 'FINALE', 'FINISHED'], 'type': 'string'}}}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['asOf', 'worlds'], 'properties': {'asOf': {'type': 'string'}, 'worlds': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'type', 'typeName', 'region', 'startYear', 'endYear', 'tickMinutes', 'gameDate', 'year', 'era', 'eraName', 'status', 'players', 'maxPlayers', 'active24h', 'url'], 'properties': {'id': {'type': 'string'}, 'era': {'type': 'string'}, 'url': {'type': 'string'}, 'name': {'type': 'string'}, 'type': {'enum': ['BLITZ', 'STANDARD', 'ENDLESS', 'PRIVATE'], 'type': 'string'}, 'year': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'region': {'enum': ['wnam', 'enam', 'weur', 'eeur', 'apac-ne', 'apac-se', 'oc'], 'type': 'string'}, 'status': {'type': 'string'}, 'endYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'eraName': {'type': 'string'}, 'players': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'gameDate': {'type': 'string'}, 'typeName': {'type': 'string'}, 'active24h': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'startYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'maxPlayers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'tickMinutes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}}}, 'additionalProperties': False}
world_standings
World leaders
Player airlines of a world ranked by rating: airline name and two-letter code, home base, rating, aircraft in service, open routes, founding date, status and a link to the public airline card. Updated once per game day of that world. Cash, fares and profit are private to each player and are never returned.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['worldId'], 'properties': {'lang': {'type': 'string', 'maxLength': 10, 'description': 'Language for the human-readable labels next to keys, one of the 25 game locales (en, ru, de, fr, es, ja, zh-CN and others); unknown values fall back to English'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'worldId': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'World id from list_worlds'}}}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['world', 'gameDate', 'asOf', 'standings'], 'properties': {'asOf': {'type': 'string'}, 'world': {'type': 'object', 'required': ['id', 'name', 'type', 'typeName', 'region', 'startYear', 'endYear', 'tickMinutes', 'gameDate', 'year', 'era', 'eraName', 'status', 'players', 'maxPlayers', 'active24h', 'url', 'finishedAt'], 'properties': {'id': {'type': 'string'}, 'era': {'type': 'string'}, 'url': {'type': 'string'}, 'name': {'type': 'string'}, 'type': {'enum': ['BLITZ', 'STANDARD', 'ENDLESS', 'PRIVATE'], 'type': 'string'}, 'year': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'region': {'enum': ['wnam', 'enam', 'weur', 'eeur', 'apac-ne', 'apac-se', 'oc'], 'type': 'string'}, 'status': {'type': 'string'}, 'endYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'eraName': {'type': 'string'}, 'players': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'gameDate': {'type': 'string'}, 'typeName': {'type': 'string'}, 'active24h': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'startYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'finishedAt': {'type': ['string', 'null']}, 'maxPlayers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'tickMinutes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}, 'gameDate': {'type': 'string'}, 'standings': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'name', 'code', 'hqIata', 'hqName', 'rating', 'fleet', 'routes', 'foundedOn', 'status', 'cardUrl'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}, 'rank': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'fleet': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'hqIata': {'type': 'string'}, 'hqName': {'type': 'string'}, 'rating': {'type': 'number'}, 'routes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'status': {'type': 'string'}, 'cardUrl': {'type': 'string'}, 'foundedOn': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Hinzugefügt
how_to_start
30. September 2026 02:40
Hinzugefügt
aircraft_price
30. September 2026 02:40
Hinzugefügt
aircraft_catalog
30. September 2026 02:40
Hinzugefügt
historical_airlines
30. September 2026 02:40
Hinzugefügt
world_standings
30. September 2026 02:40
Hinzugefügt
get_world
30. September 2026 02:40
Hinzugefügt
list_worlds
30. September 2026 02:40