Skip to main content
Glama

Compare destinations

compare_destinations
Read-only

Use when the user names two or more destinations and wants their prices side by side ("porovnej Egypt a Maltu", "compare Malta and Madeira"). Put 2-8 named destinations side by side on the same snapshot, each with the stats current_vs_history reports (last measurement, median, min, share of TRACKED DAYS that were dearer). Numbers are for the WHOLE party, not per person, and percentages are over observed days rather than the calendar span. Rows come back in the order you asked for - it does not rank, and gives no verdict; use find_opportunities to rank. A destination that yields no row is returned under excluded with the reason, and with available_in_country when a page of the same country does publish that party. A flight row and a package row can price DIFFERENT trip lengths (searched.stay_nights, e.g. 28-31-night flights beside the cheapest 5-14-night package): stay_comparison says so per destination - say the lengths when you put the two side by side, and never present the gap as the price of accommodation. When you answer from this, say where the latest price sits in its own history and stop there: do not tell the reader to buy, book, wait, avoid or which destination to pick - the series carries no trend, volatility or live availability, so that judgement stays the reader's.

Input Schema

NameRequiredDescriptionDefault
railNooptional (default both): restrict to one rail
partyNooptional (default '2-2'): '<adults>-<children>', the same A-C shape the price streams are keyed on. A well-formed party no rail carries returns `no_coverage` with the parties that exist
destinationsYes2-8 destination slugs, or each destination's own published name in English or Czech (e.g. 'turkey', 'Bulharsko'); resort keys are not accepted here; the answer keeps this order
min_history_daysNooptional (default 30): rails measured for fewer days are listed under 'excluded'

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / destinations / description
      Previous value: -"2-8 destination slugs; the answer keeps this order"New value: +"2-8 destination slugs, or each destination's own published name in English or Czech (e.g. 'turkey', 'Bulharsko'); resort keys are not accepted here; the answer keeps this order"
  2. Changed2 schema fields changed
    • changedInput schema / properties / party / description
      Previous value: -"optional (default '2-2'): '<adults>-<children>', the same A-C shape the price streams are keyed on"New value: +"optional (default '2-2'): '<adults>-<children>', the same A-C shape the price streams are keyed on. A well-formed party no rail carries returns `no_coverage` with the parties that exist"
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "comparison": {
      -        "items": {
      -          "properties": {
      -            "arrivals": {
      -              "description": "arrival airports RECORDED; covers_all_published_prices is false",
      -              "type": "object"
      -            },
      -            "destination": {
      -              "type": "string"
      -            },
      -            "generated": {
      -              "type": "string"
      -            },
      -            "latest_stale_after_days": {
      -              "description": "this rail's own freshness boundary, in days after measured.to",
      -              "type": "number"
      -            },
      -            "measured": {
      -              "properties": {
      -                "days": {
      -                  "type": "integer"
      -                },
      -                "from": {
      -                  "type": "string"
      -                },
      -                "to": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "days",
      -                "from",
      -                "to"
      -              ],
      -              "type": "object"
      -            },
      -            "origins": {
      -              "description": "departure-airport CLUSTER; covers_all_published_prices is false",
      -              "type": "object"
      -            },
      -            "party": {
      -              "properties": {
      -                "adults": {
      -                  "type": "integer"
      -                },
      -                "children": {
      -                  "type": "integer"
      -                }
      -              },
      -              "required": [
      -                "adults",
      -                "children"
      -              ],
      -              "type": "object"
      -            },
      -            "price_covers": {
      -              "description": "what the money buys - airfare only, or a package as offered",
      -              "type": "object"
      -            },
      -            "rail": {
      -              "enum": [
      -                "flight",
      -                "package"
      -              ],
      -              "type": "string"
      -            },
      -            "regime_breaks": {
      -              "description": "[from, to] date spans where the series was not comparable",
      -              "type": "array"
      -            },
      -            "resort": {
      -              "type": "string"
      -            },
      -            "resort_key": {
      -              "type": "string"
      -            },
      -            "searched": {
      -              "description": "the search mode (and fixed dates, where there are any) the series was collected under",
      -              "type": "object"
      -            },
      -            "stats": {
      -              "properties": {
      -                "basis": {
      -                  "type": "string"
      -                },
      -                "cheaper_than_pct": {
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                },
      -                "is_series_max": {
      -                  "type": "boolean"
      -                },
      -                "is_series_min": {
      -                  "type": "boolean"
      -                },
      -                "latest": {
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                },
      -                "median": {
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                },
      -                "min": {
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "basis"
      -              ],
      -              "type": "object"
      -            },
      -            "title": {
      -              "properties": {
      -                "cs": {
      -                  "type": "string"
      -                },
      -                "en": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "cs",
      -                "en"
      -              ],
      -              "type": "object"
      -            },
      -            "url": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "destination",
      -            "title",
      -            "url",
      -            "generated",
      -            "rail",
      -            "party",
      -            "price_covers",
      -            "measured",
      -            "stats"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "comparison_rows": {
      -        "description": "rows, not destinations - a dual-rail destination contributes two",
      -        "type": "integer"
      -      },
      -      "currency": {
      -        "type": "string"
      -      },
      -      "disclaimer": {
      -        "type": "string"
      -      },
      -      "excluded": {
      -        "items": {
      -          "properties": {
      -            "destination": {
      -              "type": "string"
      -            },
      -            "generated": {
      -              "type": "string"
      -            },
      -            "measured": {
      -              "properties": {
      -                "days": {
      -                  "type": "integer"
      -                },
      -                "from": {
      -                  "type": "string"
      -                },
      -                "to": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "days",
      -                "from",
      -                "to"
      -              ],
      -              "type": "object"
      -            },
      -            "party": {
      -              "type": "string"
      -            },
      -            "rail": {
      -              "enum": [
      -                "flight",
      -                "package",
      -                "both"
      -              ],
      -              "type": "string"
      -            },
      -            "reason": {
      -              "type": "string"
      -            },
      -            "resort_key": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "destination",
      -            "reason"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "generated": {
      -        "description": "the OLDEST `generated` among the rows and dated exclusions",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "license": {
      -        "properties": {
      -          "attribution": {
      -            "type": "string"
      -          },
      -          "id": {
      -            "type": "string"
      -          },
      -          "url": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "url",
      -          "attribution"
      -        ],
      -        "type": "object"
      -      },
      -      "min_history_days": {
      -        "type": "integer"
      -      },
      -      "party": {
      -        "type": "string"
      -      },
      -      "rail": {
      -        "enum": [
      -          "flight",
      -          "package",
      -          "both"
      -        ],
      -        "type": "string"
      -      },
      -      "schema": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "schema",
      -      "generated",
      -      "party",
      -      "rail",
      -      "min_history_days",
      -      "comparison_rows",
      -      "comparison",
      -      "excluded",
      -      "disclaimer"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "description": "tool-level failure, returned with isError: true",
      -    "properties": {
      -      "error": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "error"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "comparison": {
      +        "items": {
      +          "properties": {
      +            "arrivals": {
      +              "description": "arrival airports RECORDED; covers_all_published_prices is false",
      +              "type": "object"
      +            },
      +            "destination": {
      +              "type": "string"
      +            },
      +            "generated": {
      +              "type": "string"
      +            },
      +            "latest_stale_after_days": {
      +              "description": "this rail's own freshness boundary, in days after measured.to",
      +              "type": "number"
      +            },
      +            "measured": {
      +              "properties": {
      +                "days": {
      +                  "type": "integer"
      +                },
      +                "from": {
      +                  "type": "string"
      +                },
      +                "to": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "days",
      +                "from",
      +                "to"
      +              ],
      +              "type": "object"
      +            },
      +            "origins": {
      +              "description": "departure-airport CLUSTER; covers_all_published_prices is false",
      +              "type": "object"
      +            },
      +            "party": {
      +              "properties": {
      +                "adults": {
      +                  "type": "integer"
      +                },
      +                "children": {
      +                  "type": "integer"
      +                }
      +              },
      +              "required": [
      +                "adults",
      +                "children"
      +              ],
      +              "type": "object"
      +            },
      +            "price_covers": {
      +              "description": "what the money buys - airfare only, or a package as offered",
      +              "type": "object"
      +            },
      +            "rail": {
      +              "enum": [
      +                "flight",
      +                "package"
      +              ],
      +              "type": "string"
      +            },
      +            "regime_breaks": {
      +              "description": "[from, to] date spans where the series was not comparable",
      +              "type": "array"
      +            },
      +            "resort": {
      +              "type": "string"
      +            },
      +            "resort_key": {
      +              "type": "string"
      +            },
      +            "searched": {
      +              "description": "the search mode (and fixed dates, where there are any) the series was collected under, and `stay_nights` {from, to}: how long a trip each point prices - the flight and package rails of one destination can differ",
      +              "type": "object"
      +            },
      +            "stats": {
      +              "properties": {
      +                "basis": {
      +                  "type": "string"
      +                },
      +                "cheaper_than_pct": {
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "is_series_max": {
      +                  "type": "boolean"
      +                },
      +                "is_series_min": {
      +                  "type": "boolean"
      +                },
      +                "latest": {
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "median": {
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "min": {
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "basis"
      +              ],
      +              "type": "object"
      +            },
      +            "title": {
      +              "properties": {
      +                "cs": {
      +                  "type": "string"
      +                },
      +                "en": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "cs",
      +                "en"
      +              ],
      +              "type": "object"
      +            },
      +            "url": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "destination",
      +            "title",
      +            "url",
      +            "generated",
      +            "rail",
      +            "party",
      +            "price_covers",
      +            "measured",
      +            "stats"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "comparison_rows": {
      +        "description": "rows, not destinations - a dual-rail destination contributes two",
      +        "type": "integer"
      +      },
      +      "currency": {
      +        "type": "string"
      +      },
      +      "disclaimer": {
      +        "type": "string"
      +      },
      +      "excluded": {
      +        "items": {
      +          "properties": {
      +            "available_in_country": {
      +              "description": "on `no_rail_for_selection`: pages in the same country that do publish the party asked",
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "available_parties": {
      +              "description": "on `no_rail_for_selection`: the parties this destination does publish for the rail asked",
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "destination": {
      +              "type": "string"
      +            },
      +            "generated": {
      +              "type": "string"
      +            },
      +            "measured": {
      +              "properties": {
      +                "days": {
      +                  "type": "integer"
      +                },
      +                "from": {
      +                  "type": "string"
      +                },
      +                "to": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "days",
      +                "from",
      +                "to"
      +              ],
      +              "type": "object"
      +            },
      +            "party": {
      +              "type": "string"
      +            },
      +            "rail": {
      +              "enum": [
      +                "flight",
      +                "package",
      +                "both"
      +              ],
      +              "type": "string"
      +            },
      +            "reason": {
      +              "type": "string"
      +            },
      +            "resort_key": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "destination",
      +            "reason"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "generated": {
      +        "description": "the OLDEST `generated` among the rows and dated exclusions",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "license": {
      +        "properties": {
      +          "attribution": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "url",
      +          "attribution"
      +        ],
      +        "type": "object"
      +      },
      +      "min_history_days": {
      +        "type": "integer"
      +      },
      +      "no_coverage": {
      +        "description": "present only when NO published rail carries the requested party: a coverage limit, distinct from an empty ranking",
      +        "properties": {
      +          "available_parties": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "message": {
      +            "type": "string"
      +          },
      +          "party": {
      +            "type": "string"
      +          },
      +          "rail": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "party",
      +          "rail",
      +          "available_parties",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "party": {
      +        "type": "string"
      +      },
      +      "rail": {
      +        "enum": [
      +          "flight",
      +          "package",
      +          "both"
      +        ],
      +        "type": "string"
      +      },
      +      "schema": {
      +        "type": "string"
      +      },
      +      "stay_comparison": {
      +        "description": "per destination with both a flight and a package row: the trip length each series prices, and whether the two ranges overlap (`stay_comparable`); a `note` when they do not",
      +        "items": {
      +          "properties": {
      +            "destination": {
      +              "type": "string"
      +            },
      +            "flight_stay_nights": {
      +              "type": "object"
      +            },
      +            "note": {
      +              "type": "string"
      +            },
      +            "package_stay_nights": {
      +              "type": "object"
      +            },
      +            "resort_key": {
      +              "type": "string"
      +            },
      +            "stay_comparable": {
      +              "type": "boolean"
      +            }
      +          },
      +          "required": [
      +            "destination",
      +            "flight_stay_nights",
      +            "package_stay_nights",
      +            "stay_comparable"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "schema",
      +      "generated",
      +      "party",
      +      "rail",
      +      "min_history_days",
      +      "comparison_rows",
      +      "comparison",
      +      "excluded",
      +      "disclaimer"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "description": "tool-level failure, returned with isError: true",
      +    "properties": {
      +      "error": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "anyOf": [
      +    {
      +      "properties": {
      +        "comparison": {
      +          "items": {
      +            "properties": {
      +              "arrivals": {
      +                "description": "arrival airports RECORDED; covers_all_published_prices is false",
      +                "type": "object"
      +              },
      +              "destination": {
      +                "type": "string"
      +              },
      +              "generated": {
      +                "type": "string"
      +              },
      +              "latest_stale_after_days": {
      +                "description": "this rail's own freshness boundary, in days after measured.to",
      +                "type": "number"
      +              },
      +              "measured": {
      +                "properties": {
      +                  "days": {
      +                    "type": "integer"
      +                  },
      +                  "from": {
      +                    "type": "string"
      +                  },
      +                  "to": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "days",
      +                  "from",
      +                  "to"
      +                ],
      +                "type": "object"
      +              },
      +              "origins": {
      +                "description": "departure-airport CLUSTER; covers_all_published_prices is false",
      +                "type": "object"
      +              },
      +              "party": {
      +                "properties": {
      +                  "adults": {
      +                    "type": "integer"
      +                  },
      +                  "children": {
      +                    "type": "integer"
      +                  }
      +                },
      +                "required": [
      +                  "adults",
      +                  "children"
      +                ],
      +                "type": "object"
      +              },
      +              "price_covers": {
      +                "description": "what the money buys - airfare only, or a package as offered",
      +                "type": "object"
      +              },
      +              "rail": {
      +                "enum": [
      +                  "flight",
      +                  "package"
      +                ],
      +                "type": "string"
      +              },
      +              "regime_breaks": {
      +                "description": "[from, to] date spans where the series was not comparable",
      +                "type": "array"
      +              },
      +              "resort": {
      +                "type": "string"
      +              },
      +              "resort_key": {
      +                "type": "string"
      +              },
      +              "searched": {
      +                "description": "the search mode (and fixed dates, where there are any) the series was collected under",
      +                "type": "object"
      +              },
      +              "stats": {
      +                "properties": {
      +                  "basis": {
      +                    "type": "string"
      +                  },
      +                  "cheaper_than_pct": {
      +                    "type": [
      +                      "number",
      +                      "null"
      +                    ]
      +                  },
      +                  "is_series_max": {
      +                    "type": "boolean"
      +                  },
      +                  "is_series_min": {
      +                    "type": "boolean"
      +                  },
      +                  "latest": {
      +                    "type": [
      +                      "number",
      +                      "null"
      +                    ]
      +                  },
      +                  "median": {
      +                    "type": [
      +                      "number",
      +                      "null"
      +                    ]
      +                  },
      +                  "min": {
      +                    "type": [
      +                      "number",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "basis"
      +                ],
      +                "type": "object"
      +              },
      +              "title": {
      +                "properties": {
      +                  "cs": {
      +                    "type": "string"
      +                  },
      +                  "en": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "cs",
      +                  "en"
      +                ],
      +                "type": "object"
      +              },
      +              "url": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "destination",
      +              "title",
      +              "url",
      +              "generated",
      +              "rail",
      +              "party",
      +              "price_covers",
      +              "measured",
      +              "stats"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "comparison_rows": {
      +          "description": "rows, not destinations - a dual-rail destination contributes two",
      +          "type": "integer"
      +        },
      +        "currency": {
      +          "type": "string"
      +        },
      +        "disclaimer": {
      +          "type": "string"
      +        },
      +        "excluded": {
      +          "items": {
      +            "properties": {
      +              "destination": {
      +                "type": "string"
      +              },
      +              "generated": {
      +                "type": "string"
      +              },
      +              "measured": {
      +                "properties": {
      +                  "days": {
      +                    "type": "integer"
      +                  },
      +                  "from": {
      +                    "type": "string"
      +                  },
      +                  "to": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "days",
      +                  "from",
      +                  "to"
      +                ],
      +                "type": "object"
      +              },
      +              "party": {
      +                "type": "string"
      +              },
      +              "rail": {
      +                "enum": [
      +                  "flight",
      +                  "package",
      +                  "both"
      +                ],
      +                "type": "string"
      +              },
      +              "reason": {
      +                "type": "string"
      +              },
      +              "resort_key": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "destination",
      +              "reason"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "generated": {
      +          "description": "the OLDEST `generated` among the rows and dated exclusions",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "license": {
      +          "properties": {
      +            "attribution": {
      +              "type": "string"
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "url": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "url",
      +            "attribution"
      +          ],
      +          "type": "object"
      +        },
      +        "min_history_days": {
      +          "type": "integer"
      +        },
      +        "party": {
      +          "type": "string"
      +        },
      +        "rail": {
      +          "enum": [
      +            "flight",
      +            "package",
      +            "both"
      +          ],
      +          "type": "string"
      +        },
      +        "schema": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "schema",
      +        "generated",
      +        "party",
      +        "rail",
      +        "min_history_days",
      +        "comparison_rows",
      +        "comparison",
      +        "excluded",
      +        "disclaimer"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "description": "tool-level failure, returned with isError: true",
      +      "properties": {
      +        "error": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "code": {
      +              "type": "string"
      +            },
      +            "message": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "code",
      +            "message"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "error"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "type": "object"
      +}
  4. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (readOnly, non-destructive) but the description adds far more: whole-party vs per-person pricing, percentages over observed days not calendar span, preserved input ordering with no ranking, excluded rows with reasons plus available_in_country, and the flight/package stay_nights mismatch with the stay_comparison caveat. It even constrains the agent's phrasing ('do not tell the reader to buy, book, wait').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Trigger phrase and core behavior are front-loaded, and the informational density is high. It runs long and the final guidance sentence is extended, but nearly every clause carries decision-relevant content rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, yet the description still supplies the interpretation the schema can't convey (whole-party totals, observed-day percentages, ordering, exclusion semantics). Nothing needed to call or interpret this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds real meaning beyond the schema: prices are for the whole party rather than per person, and min_history_days excludes under-measured rails into 'excluded'. It explains the semantic consequence of the destinations ordering as well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (compare) plus resource (destinations) with an explicit scope: 2-8 named destinations side by side on the same snapshot. It also states what each row contains and that rows are not ranked, which separates it cleanly from find_opportunities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with the exact trigger condition ('user names two or more destinations and wants their prices side by side') and gives bilingual example utterances. It explicitly routes ranking/verdict requests to find_opportunities, so the when-not is covered too.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources