Jetopolis

Airline strategy game 1950-2030: live worlds, leaders, historical airlines, aircraft prices

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
90%
Naming quality
86%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,399Tokens (tool definitions)
~5.6 KBTypical response size
Significant attention impact (3.44% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "game": {
      "url": "https://jetopolis.app/mcp"
    }
  }
}

Remote endpoints

https://jetopolis.app/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_worlds(status, type, region, lang)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "RUNNING",
        "FINALE",
        "FINISHED"
      ]
    },
    "type": {
      "description": "STANDARD: 1 game day = 20 min, BLITZ: 5 min",
      "type": "string",
      "enum": [
        "BLITZ",
        "STANDARD",
        "ENDLESS",
        "PRIVATE"
      ]
    },
    "region": {
      "description": "Server region of the world",
      "type": "string",
      "enum": [
        "wnam",
        "enam",
        "weur",
        "eeur",
        "apac-ne",
        "apac-se",
        "oc"
      ]
    },
    "lang": {
      "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": "string",
      "maxLength": 10
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "asOf": {
      "type": "string"
    },
    "worlds": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "BLITZ",
              "STANDARD",
              "ENDLESS",
              "PRIVATE"
            ]
          },
          "typeName": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "enum": [
              "wnam",
              "enam",
              "weur",
              "eeur",
              "apac-ne",
              "apac-se",
              "oc"
            ]
          },
          "startYear": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "endYear": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "tickMinutes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "gameDate": {
            "type": "string"
          },
          "year": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "era": {
            "type": "string"
          },
          "eraName": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "players": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "maxPlayers": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "active24h": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "typeName",
          "region",
          "startYear",
          "endYear",
          "tickMinutes",
          "gameDate",
          "year",
          "era",
          "eraName",
          "status",
          "players",
          "maxPlayers",
          "active24h",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "asOf",
    "worlds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_world(worldId, lang)

One Jetopolis world by id: the same card as in list_worlds plus finishedAt for a world that has ended.

Input Schema

{
  "type": "object",
  "properties": {
    "worldId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "World id from list_worlds"
    },
    "lang": {
      "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": "string",
      "maxLength": 10
    }
  },
  "required": [
    "worldId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "type": {
      "type": "string",
      "enum": [
        "BLITZ",
        "STANDARD",
        "ENDLESS",
        "PRIVATE"
      ]
    },
    "typeName": {
      "type": "string"
    },
    "region": {
      "type": "string",
      "enum": [
        "wnam",
        "enam",
        "weur",
        "eeur",
        "apac-ne",
        "apac-se",
        "oc"
      ]
    },
    "startYear": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "endYear": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "tickMinutes": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "gameDate": {
      "type": "string"
    },
    "year": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "era": {
      "type": "string"
    },
    "eraName": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "players": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "maxPlayers": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "active24h": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "url": {
      "type": "string"
    },
    "finishedAt": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id",
    "name",
    "type",
    "typeName",
    "region",
    "startYear",
    "endYear",
    "tickMinutes",
    "gameDate",
    "year",
    "era",
    "eraName",
    "status",
    "players",
    "maxPlayers",
    "active24h",
    "url",
    "finishedAt"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢world_standings(worldId, limit, lang)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "worldId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "World id from list_worlds"
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "lang": {
      "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": "string",
      "maxLength": 10
    }
  },
  "required": [
    "worldId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "world": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "BLITZ",
            "STANDARD",
            "ENDLESS",
            "PRIVATE"
          ]
        },
        "typeName": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "enum": [
            "wnam",
            "enam",
            "weur",
            "eeur",
            "apac-ne",
            "apac-se",
            "oc"
          ]
        },
        "startYear": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "endYear": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "tickMinutes": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "gameDate": {
          "type": "string"
        },
        "year": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "era": {
          "type": "string"
        },
        "eraName": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "players": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "maxPlayers": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "active24h": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "url": {
          "type": "string"
        },
        "finishedAt": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "id",
        "name",
        "type",
        "typeName",
        "region",
        "startYear",
        "endYear",
        "tickMinutes",
        "gameDate",
        "year",
        "era",
        "eraName",
        "status",
        "players",
        "maxPlayers",
        "active24h",
        "url",
        "finishedAt"
      ],
      "additionalProperties": false
    },
    "gameDate": {
      "type": "string"
    },
    "asOf": {
      "type": "string"
    },
    "standings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "rank": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "hqIata": {
            "type": "string"
          },
          "hqName": {
            "type": "string"
          },
          "rating": {
            "type": "number"
          },
          "fleet": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "routes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "foundedOn": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "cardUrl": {
            "type": "string"
          }
        },
        "required": [
          "rank",
          "name",
          "code",
          "hqIata",
          "hqName",
          "rating",
          "fleet",
          "routes",
          "foundedOn",
          "status",
          "cardUrl"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "world",
    "gameDate",
    "asOf",
    "standings"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢historical_airlines(year, country, region, kind, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2030,
      "description": "Calendar year, 1950-2030"
    },
    "country": {
      "description": "Home country of the airline, ISO 3166-1 alpha-2 (GB, US, FR)",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    },
    "region": {
      "description": "Game region of the airline base",
      "type": "string",
      "enum": [
        "wnam",
        "enam",
        "weur",
        "eeur",
        "apac-ne",
        "apac-se",
        "oc"
      ]
    },
    "kind": {
      "description": "flag carrier, major, regional, low-cost or charter",
      "type": "string",
      "enum": [
        "flag",
        "major",
        "regional",
        "lowcost",
        "charter"
      ]
    },
    "limit": {
      "default": 50,
      "description": "At most this many airlines",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "year"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "airlines": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "enum": [
              "wnam",
              "enam",
              "weur",
              "eeur",
              "apac-ne",
              "apac-se",
              "oc"
            ]
          },
          "kind": {
            "type": "string",
            "enum": [
              "flag",
              "major",
              "regional",
              "lowcost",
              "charter"
            ]
          },
          "since": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "until": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "servedCountries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "confidence": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "high",
                  "medium",
                  "low"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "networkKnown": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "code",
          "country",
          "region",
          "kind",
          "since",
          "until",
          "servedCountries",
          "confidence",
          "networkKnown"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "year",
    "total",
    "airlines"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢aircraft_catalog(year, category, manufacturer, query, limit, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "year": {
      "description": "Only aircraft already in service in this year; also fills availabilityInYear",
      "type": "integer",
      "minimum": 1950,
      "maximum": 2030
    },
    "category": {
      "type": "string",
      "enum": [
        "PISTON",
        "TURBOPROP",
        "NARROWBODY",
        "WIDEBODY",
        "JUMBO",
        "SST",
        "REGIONAL_JET"
      ]
    },
    "manufacturer": {
      "description": "Substring, case-insensitive",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "query": {
      "description": "Substring of the model name or id, case-insensitive (A320, 747, dc-3)",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "limit": {
      "default": 50,
      "type": "integer",
      "minimum": 1,
      "maximum": 150
    },
    "lang": {
      "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": "string",
      "maxLength": 10
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "aircraft": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "enum": [
              "PISTON",
              "TURBOPROP",
              "NARROWBODY",
              "WIDEBODY",
              "JUMBO",
              "SST",
              "REGIONAL_JET"
            ]
          },
          "categoryName": {
            "type": "string"
          },
          "family": {
            "type": "string"
          },
          "eisYear": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "eisPlanned": {
            "type": "boolean"
          },
          "eopYear": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "seats": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "rangeKm": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "cruiseKmh": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "runwayRequiredM": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "listPriceUsdMlnAtEis": {
            "type": "number"
          },
          "priceEstimated": {
            "type": "boolean"
          },
          "availabilityInYear": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "new",
                  "used-only"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "manufacturer",
          "model",
          "category",
          "categoryName",
          "family",
          "eisYear",
          "eisPlanned",
          "eopYear",
          "seats",
          "rangeKm",
          "cruiseKmh",
          "runwayRequiredM",
          "listPriceUsdMlnAtEis",
          "priceEstimated",
          "availabilityInYear"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "total",
    "aircraft"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢aircraft_price(model, 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.

Input Schema

{
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40,
      "description": "Aircraft id from aircraft_catalog (a320-200) or part of its name (A320, 747-400)"
    },
    "year": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2030,
      "description": "Game year to price the aircraft in"
    }
  },
  "required": [
    "model",
    "year"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "match": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "eisYear": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "eopYear": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "eisPlanned": {
              "type": "boolean"
            },
            "listPriceUsdMlnAtEis": {
              "type": "number"
            },
            "priceUsdMlnNominal": {
              "type": [
                "number",
                "null"
              ]
            },
            "priceUsdMln2024": {
              "type": "number"
            },
            "priceEstimated": {
              "type": "boolean"
            },
            "availability": {
              "type": "string",
              "enum": [
                "not-yet",
                "new",
                "used-only"
              ]
            }
          },
          "required": [
            "id",
            "name",
            "eisYear",
            "eopYear",
            "eisPlanned",
            "listPriceUsdMlnAtEis",
            "priceUsdMlnNominal",
            "priceUsdMln2024",
            "priceEstimated",
            "availability"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "candidates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "eisYear": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "eopYear": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "id",
          "name",
          "eisYear",
          "eopYear"
        ],
        "additionalProperties": false
      }
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "year",
    "match",
    "candidates",
    "note"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢how_to_start(lang)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "ru"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ru"
      ]
    },
    "title": {
      "type": "string"
    },
    "pitch": {
      "type": "string"
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "links": {
      "type": "object",
      "properties": {
        "play": {
          "type": "string"
        },
        "lobby": {
          "type": "string"
        },
        "guides": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "url": {
                "type": "string"
              }
            },
            "required": [
              "title",
              "url"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "play",
        "lobby",
        "guides"
      ],
      "additionalProperties": false
    },
    "facts": {
      "type": "object",
      "properties": {
        "worldPace": {
          "type": "string"
        },
        "guest": {
          "type": "string"
        }
      },
      "required": [
        "worldPace",
        "guest"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "lang",
    "title",
    "pitch",
    "steps",
    "links",
    "facts"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools