{
  "protocolVersion": "0.2.0",
  "name": "FanDays",
  "description": "Search and look up FanDays football-travel packages (read-only).",
  "url": "https://fandays.se/mcp",
  "preferredTransport": "JSONRPC",
  "supportedInterfaces": [
    {
      "transport": "JSONRPC",
      "url": "https://fandays.se/mcp"
    }
  ],
  "additionalInterfaces": [
    {
      "transport": "JSONRPC",
      "url": "https://fandays.se/mcp"
    }
  ],
  "version": "2.170.0",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain"
  ],
  "skills": [
    {
      "id": "search_football_trips",
      "name": "search_football_trips",
      "description": "Search FanDays' bookable football-travel packages by club, city, or fixture. Returns fixtures with dates, prices (storefront currency) and booking status.",
      "tags": [
        "football",
        "travel"
      ]
    },
    {
      "id": "get_football_trip",
      "name": "get_football_trip",
      "description": "Full semantic detail for one trip by slug (match, clubs, stadium+city, league, included services, prices, bookingUrl).",
      "tags": [
        "football",
        "travel"
      ]
    },
    {
      "id": "recommend_football_trips",
      "name": "recommend_football_trips",
      "description": "Editorial, server-ranked trip recommendations (real score + hook), optionally filtered by league and max budget.",
      "tags": [
        "football",
        "travel"
      ]
    },
    {
      "id": "compare_football_trips",
      "name": "compare_football_trips",
      "description": "Compare several trips side by side (price, included services, league, derby signal). Pass 2-5 slugs.",
      "tags": [
        "football",
        "travel"
      ]
    },
    {
      "id": "find_cheapest_football_trip",
      "name": "find_cheapest_football_trip",
      "description": "Find the cheapest bookable way to see a match, for a real party size and trip length. Use this whenever the user mentions a budget, 'cheapest', a number of nights, or a number of travellers. Pass two clubs for a specific fixture ('Real Madrid vs Real Betis'), one club for that club's cheapest upcoming trip. Ranks the catalogue on merchant prices and then live-prices the top few against real hotel and flight availability; every result says whether its price is a live quote or a catalogue snapshot. Never books.",
      "tags": [
        "football",
        "travel"
      ]
    },
    {
      "id": "quote_football_trip",
      "name": "quote_football_trip",
      "description": "Live priced breakdown for ONE trip: base, tickets, hotel, both flight legs and any discount, for specific dates and a specific party. Use after find_cheapest_football_trip when the user asks why a price is what it is, or wants to change nights or party size on a trip they already picked.",
      "tags": [
        "football",
        "travel"
      ]
    },
    {
      "id": "list_special_offers",
      "name": "list_special_offers",
      "description": "Trips the merchant has flagged as an offer, cheapest first. `kind` selects which flag: general offers, budget trips, clearance (residual sale) or a seasonal campaign. Nothing is inferred — a trip only appears here if the merchant marked it.",
      "tags": [
        "football",
        "travel"
      ]
    }
  ]
}