Cruisify

Search cruises sold to the UK market, with prices in pounds and links to every sailing.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
66%
命名质量
100%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~5,453token 数(工具定义)
~10.2 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 4.26%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "cruise-search": {
      "url": "https://www.cruisify.co.uk/mcp"
    }
  }
}

远程端点

https://www.cruisify.co.uk/mcpstreamable-http

它能做什么

工具清单

工具(5)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢search_cruises(destinations, departure_ports, cruise_lines, ships, months, ...)

Search cruises sold to the UK market by destination, departure port, cruise line, ship, months or dates, length, budget, no-fly (UK departures) and ocean or river. Names or slugs both work, and anything we can't match comes back in not_understood. query takes free text ("a week in the fjords from Southampton next June"); structured fields win where both are given. Returns up to 20 cruises a page, with prices in pounds (each with its basis and the date it was checked), month counts and Cruisify links. The cursor holds only the page number, so for the next page call again with the same fields (applied_filters, without query) and next_cursor as cursor, up to 10 pages.

输入模式

{
  "type": "object",
  "properties": {
    "destinations": {
      "description": "Destination names or slugs: \"Caribbean\", \"norwegian-fjords\" (list_destinations has them all)",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "departure_ports": {
      "description": "Departure port names or slugs: \"Southampton\" (list_departure_ports has them all)",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "cruise_lines": {
      "description": "Cruise line names, slugs or short names: \"P&O\", \"fred-olsen\"",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "ships": {
      "description": "Ship names or slugs",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "months": {
      "description": "Departure months, YYYY-MM",
      "maxItems": 24,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d{4}-(?:0[1-9]|1[0-2])$"
      }
    },
    "date_from": {
      "description": "Earliest departure date, YYYY-MM-DD",
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "date_to": {
      "description": "Latest departure date, YYYY-MM-DD",
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "nights_min": {
      "description": "Shortest length, in nights",
      "type": "integer",
      "minimum": 1,
      "maximum": 365
    },
    "nights_max": {
      "description": "Longest length, in nights",
      "type": "integer",
      "minimum": 1,
      "maximum": 365
    },
    "max_price_gbp": {
      "description": "Highest price per person, in pounds",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000000
    },
    "no_fly": {
      "description": "true: only cruises leaving from a UK port",
      "type": "boolean"
    },
    "round_trip": {
      "description": "true: round trips only; false: one-way only",
      "type": "boolean"
    },
    "kind": {
      "description": "ocean or river cruises only",
      "type": "string",
      "enum": [
        "ocean",
        "river"
      ]
    },
    "sort": {
      "description": "departure (default), price, price_per_night, nights (shortest first) or newest",
      "type": "string",
      "enum": [
        "departure",
        "price",
        "price_per_night",
        "nights",
        "newest"
      ]
    },
    "query": {
      "description": "Free text, read into the fields above: \"a week in the fjords from Southampton next June\". Structured fields win where both are given. Leave it out when paging.",
      "type": "string",
      "maxLength": 200
    },
    "cursor": {
      "description": "next_cursor from the previous page. It holds only the page number, so send it with that page's applied_filters",
      "type": "string",
      "maxLength": 64
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "How many cruises match"
    },
    "page": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "This page's number, 20 cruises to a page"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The cruise's title"
          },
          "cruise_line": {
            "type": "string",
            "description": "The cruise line's name"
          },
          "ship": {
            "type": "string",
            "description": "The ship's name"
          },
          "kind": {
            "type": "string",
            "enum": [
              "ocean",
              "river",
              "expedition"
            ],
            "description": "ocean, river or expedition"
          },
          "nights": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Length in nights"
          },
          "route": {
            "type": "string",
            "description": "Where it starts and ends: \"Round trip from Southampton\", \"Southampton to New York\""
          },
          "next_departure": {
            "type": "string",
            "format": "date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "description": "The first matching departure date"
          },
          "dates_available": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "How many matching departure dates it has"
          },
          "price": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "from_gbp": {
                    "type": "number",
                    "description": "The lowest price per person, in pounds"
                  },
                  "basis": {
                    "type": "string",
                    "description": "What the price covers, in the cruise line's own words"
                  },
                  "checked_at": {
                    "type": "string",
                    "format": "date",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
                    "description": "The UK date the price was checked, YYYY-MM-DD"
                  },
                  "converted_from": {
                    "description": "The currency we converted the price from, so it is our estimate; null for a price set in pounds",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "for_departure": {
                    "type": "string",
                    "format": "date",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
                    "description": "The departure date this price is for"
                  }
                },
                "required": [
                  "from_gbp",
                  "basis",
                  "checked_at",
                  "converted_from",
                  "for_departure"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "The lowest price we hold among the matching dates, or null (price_note says why)"
          },
          "price_note": {
            "description": "Why there is no price, or null when there is one",
            "type": [
              "string",
              "null"
            ]
          },
          "sold_out": {
            "type": "boolean",
            "description": "true when every matching date is sold out"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "The cruise's Cruisify page, which shows every date and the current price"
          },
          "book_url": {
            "type": "string",
            "format": "uri",
            "description": "Where to book: the priced sailing, or the cruise line when there is no price"
          }
        },
        "required": [
          "title",
          "cruise_line",
          "ship",
          "kind",
          "nights",
          "route",
          "next_departure",
          "dates_available",
          "price",
          "price_note",
          "sold_out",
          "url",
          "book_url"
        ],
        "additionalProperties": false
      },
      "description": "This page's cruises"
    },
    "next_cursor": {
      "description": "The cursor for the next page, with applied_filters; absent on the last page we give (page 10 at most)",
      "type": "string"
    },
    "by_month": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "description": "Matching cruises per departure month (YYYY-MM), counted without any months or dates asked for"
    },
    "applied_filters": {
      "type": "object",
      "properties": {
        "destinations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Destination slugs"
        },
        "departure_ports": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Departure port slugs"
        },
        "cruise_lines": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Cruise line slugs"
        },
        "ships": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Ship slugs"
        },
        "months": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Departure months, YYYY-MM"
        },
        "date_from": {
          "description": "Earliest departure date",
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "date_to": {
          "description": "Latest departure date",
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "nights_min": {
          "description": "Shortest length, in nights",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "nights_max": {
          "description": "Longest length, in nights",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "max_price_gbp": {
          "description": "Highest price per person, in pounds",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "no_fly": {
          "type": "boolean",
          "description": "Only cruises leaving from a UK port"
        },
        "round_trip": {
          "description": "true: round trips only; false: one-way only",
          "type": "boolean"
        },
        "kind": {
          "description": "ocean or river",
          "type": "string",
          "enum": [
            "ocean",
            "river"
          ]
        },
        "sort": {
          "type": "string",
          "enum": [
            "departure",
            "price",
            "price_per_night",
            "nights",
            "newest"
          ],
          "description": "The order of the results"
        }
      },
      "required": [
        "destinations",
        "departure_ports",
        "cruise_lines",
        "ships",
        "months",
        "no_fly",
        "sort"
      ],
      "additionalProperties": false,
      "description": "The search as it ran, in search_cruises' own fields. Send it back, with next_cursor as cursor, for the next page"
    },
    "not_understood": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "What was asked for"
          },
          "reason": {
            "type": "string",
            "description": "Why it was left out of the search"
          }
        },
        "required": [
          "text",
          "reason"
        ],
        "additionalProperties": false
      },
      "description": "What was asked for but left out of the search, and why"
    },
    "landing_url": {
      "description": "The Cruisify page for this search, when there is one",
      "type": "string",
      "format": "uri"
    },
    "search_url": {
      "type": "string",
      "format": "uri",
      "description": "This search on Cruisify"
    },
    "freshness": {
      "type": "string",
      "enum": [
        "fresh",
        "stale",
        "cache_only"
      ],
      "description": "fresh: up to date; stale: some dates or prices may be out of date; cache_only: from the cruises we already held"
    }
  },
  "required": [
    "total",
    "page",
    "results",
    "by_month",
    "applied_filters",
    "not_understood",
    "search_url",
    "freshness"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_cruise(url, slug)

One cruise in full: the day-by-day itinerary, every future sailing with its price (or why there isn't one) and a booking link, and its Cruisify page. Give the url of a Cruisify cruise page, as search_cruises returns it, or the cruise's slug.

输入模式

{
  "type": "object",
  "properties": {
    "url": {
      "description": "A Cruisify cruise page URL, as search_cruises returns it",
      "type": "string",
      "maxLength": 500
    },
    "slug": {
      "description": "A cruise's slug: the last part of its URL",
      "type": "string",
      "maxLength": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The cruise's title"
    },
    "cruise_line": {
      "type": "string",
      "description": "The cruise line's name"
    },
    "ship": {
      "type": "string",
      "description": "The ship's name"
    },
    "kind": {
      "type": "string",
      "enum": [
        "ocean",
        "river",
        "expedition"
      ],
      "description": "ocean, river or expedition"
    },
    "nights": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Length in nights"
    },
    "route": {
      "type": "string",
      "description": "Where it starts and ends: \"Round trip from Southampton\", \"Southampton to New York\""
    },
    "destinations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The destinations it visits, the main one first"
    },
    "description": {
      "description": "A short description, or null",
      "type": [
        "string",
        "null"
      ]
    },
    "itinerary": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "day": {
            "description": "\"Day 3\" or \"Days 3–4\", or null when the day isn't known",
            "type": [
              "string",
              "null"
            ]
          },
          "place": {
            "type": "string",
            "description": "The port, \"At sea\", or \"Port to be confirmed\""
          },
          "country": {
            "description": "The port's country, or null",
            "type": [
              "string",
              "null"
            ]
          },
          "duration": {
            "description": "\"Overnight in port\", \"3 days at sea\" and so on for a row of several days, else null",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "day",
          "place",
          "country",
          "duration"
        ],
        "additionalProperties": false
      },
      "description": "Day by day, with consecutive days in one place as one row"
    },
    "sailings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "departure_date": {
            "type": "string",
            "format": "date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "description": "Departure date"
          },
          "return_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Return date, or null when we don't have it"
          },
          "sold_out": {
            "type": "boolean",
            "description": "true when this sailing is sold out"
          },
          "price": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "from_gbp": {
                    "type": "number",
                    "description": "The lowest price per person, in pounds"
                  },
                  "basis": {
                    "type": "string",
                    "description": "What the price covers, in the cruise line's own words"
                  },
                  "checked_at": {
                    "type": "string",
                    "format": "date",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
                    "description": "The UK date the price was checked, YYYY-MM-DD"
                  },
                  "converted_from": {
                    "description": "The currency we converted the price from, so it is our estimate; null for a price set in pounds",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "from_gbp",
                  "basis",
                  "checked_at",
                  "converted_from"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "The lowest price we hold for this sailing, or null (price_note says why)"
          },
          "price_note": {
            "description": "Why there is no price, or null when there is one",
            "type": [
              "string",
              "null"
            ]
          },
          "book_url": {
            "type": "string",
            "format": "uri",
            "description": "Where to book this sailing"
          }
        },
        "required": [
          "departure_date",
          "return_date",
          "sold_out",
          "price",
          "price_note",
          "book_url"
        ],
        "additionalProperties": false
      },
      "description": "Every future sailing"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "The cruise's Cruisify page, which shows every date and the current price"
    }
  },
  "required": [
    "title",
    "cruise_line",
    "ship",
    "kind",
    "nights",
    "route",
    "destinations",
    "description",
    "itinerary",
    "sailings",
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_destinations

Every destination we know, ocean or river, with how many upcoming cruises we hold for each and its Cruisify page where there is one.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "destinations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Its name"
          },
          "slug": {
            "type": "string",
            "description": "Its slug, which search_cruises takes as well as the name"
          },
          "cruises_held": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "How many upcoming cruises we hold"
          },
          "landing_url": {
            "description": "Its Cruisify page, when it holds enough cruises to have one",
            "type": "string",
            "format": "uri"
          },
          "kind": {
            "type": "string",
            "enum": [
              "ocean",
              "river"
            ],
            "description": "An ocean region or a river"
          }
        },
        "required": [
          "name",
          "slug",
          "cruises_held",
          "kind"
        ],
        "additionalProperties": false
      },
      "description": "Every destination, by name"
    }
  },
  "required": [
    "destinations"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_departure_ports(uk_only)

The ports the cruises we hold leave from, with UK ports marked, how many upcoming cruises leave from each and its Cruisify page where there is one. Set uk_only for UK ports only (no-fly cruises).

输入模式

{
  "type": "object",
  "properties": {
    "uk_only": {
      "description": "true: UK ports only, the departures for no-fly cruises",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "ports": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Its name"
          },
          "slug": {
            "type": "string",
            "description": "Its slug, which search_cruises takes as well as the name"
          },
          "cruises_held": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "How many upcoming cruises we hold"
          },
          "landing_url": {
            "description": "Its Cruisify page, when it holds enough cruises to have one",
            "type": "string",
            "format": "uri"
          },
          "is_uk": {
            "type": "boolean",
            "description": "A UK port: cruises from it need no flight"
          },
          "country": {
            "description": "The port's country, or null",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "slug",
          "cruises_held",
          "is_uk",
          "country"
        ],
        "additionalProperties": false
      },
      "description": "The departure ports, by name"
    }
  },
  "required": [
    "ports"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_cruise_lines

The cruise lines we cover and their ships, with how many upcoming cruises we hold for each and their Cruisify pages where there are some.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "cruise_lines": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Its name"
          },
          "slug": {
            "type": "string",
            "description": "Its slug, which search_cruises takes as well as the name"
          },
          "cruises_held": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "How many upcoming cruises we hold"
          },
          "landing_url": {
            "description": "Its Cruisify page, when it holds enough cruises to have one",
            "type": "string",
            "format": "uri"
          },
          "ships": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Its name"
                },
                "slug": {
                  "type": "string",
                  "description": "Its slug, which search_cruises takes as well as the name"
                },
                "cruises_held": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991,
                  "description": "How many upcoming cruises we hold"
                },
                "landing_url": {
                  "description": "Its Cruisify page, when it holds enough cruises to have one",
                  "type": "string",
                  "format": "uri"
                }
              },
              "required": [
                "name",
                "slug",
                "cruises_held"
              ],
              "additionalProperties": false
            },
            "description": "Its ships, by name"
          }
        },
        "required": [
          "name",
          "slug",
          "cruises_held",
          "ships"
        ],
        "additionalProperties": false
      },
      "description": "The cruise lines, by name"
    }
  },
  "required": [
    "cruise_lines"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本5 个工具