{
  "schemaVersion": "1.0",
  "protocolVersion": "2025-03-26",
  "serverInfo": {
    "name": "snowsure-live",
    "title": "SnowSure MCP Server",
    "version": "1.0.0"
  },
  "description": "40 tools for live ski conditions, 14-day multi-model forecasts, powder rankings, resort guides, webcams, ML trends, and grounded Q&A across 500+ resorts. Streamable HTTP — reads need no auth; account tools (save/alerts/booking) use OAuth 2.1. Also available as a native ChatGPT App.",
  "documentationUrl": "https://www.snowsure.ai/developers/mcp",
  "transport": {
    "type": "streamable-http",
    "url": "https://www.snowsure.ai/mcp"
  },
  "chatgptApp": {
    "directory": "OpenAI ChatGPT Apps",
    "name": "SnowSure",
    "url": "https://chatgpt.com/apps/snowsure/asdk_app_6a32759f0a04819192e230c5b9f4a360"
  },
  "tools": [
    {
      "name": "get_destination",
      "title": "Destination hub",
      "description": "Multi-mountain hub with live data for each member resort (Niseko, Chamonix, Hakuba, etc.).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Destination hub slug, e.g. \"niseko\", \"chamonix\"."
          }
        },
        "required": [
          "slug"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Destination hub",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "ask_snowdata",
      "title": "Ask SnowSure",
      "description": "Primary Q&A — grounded natural-language answers via the SnowSure Answer Engine (prefer this for chat questions).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "description": "Natural-language snow or resort question, e.g. \"where is the best powder in the Alps right now?\""
          },
          "resortSlug": {
            "type": "string",
            "description": "Optional resort slug to scope the answer, e.g. \"jackson-hole\"."
          },
          "locale": {
            "type": "string",
            "enum": [
              "en",
              "es",
              "fr",
              "de",
              "it",
              "ja"
            ],
            "description": "Response language (default: en)."
          }
        },
        "required": [
          "question"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary (required for ChatGPT Instant mode)."
          },
          "answer": {
            "type": "string"
          },
          "queryId": {
            "type": "string"
          },
          "intent": {
            "type": "string"
          },
          "confidence": {
            "type": "string"
          },
          "answerSource": {
            "type": "string"
          },
          "sourceLabel": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "summary": {
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "id",
                "title",
                "summary"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "markdown"
        ],
        "additionalProperties": true
      },
      "annotations": {
        "title": "Ask SnowSure",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_snow_report",
      "title": "Global snow report",
      "description": "Global rankings by SnowSure score, fresh snowfall, depth, or 14-day forecast totals.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sort": {
            "type": "string",
            "enum": [
              "snowsure",
              "forecast",
              "recent",
              "depth"
            ],
            "description": "Ranking order: snowsure (AI score), forecast (14-day snow), recent (24h snowfall), or depth (current base). Default: snowsure."
          },
          "limit": {
            "type": "number",
            "description": "Number of resorts to return (default 10, max 50)."
          },
          "region": {
            "type": "string",
            "enum": [
              "europe",
              "north-america",
              "asia",
              "oceania",
              "south-america"
            ],
            "description": "Optional region filter."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary (required for ChatGPT Instant mode)."
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "resorts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "number"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                },
                "country": {
                  "type": "string"
                },
                "region": {
                  "type": "string"
                },
                "isOpen": {
                  "type": "boolean"
                },
                "snowSureScore": {
                  "type": "number"
                },
                "snowSureRating": {
                  "type": "string"
                },
                "baseDepthCm": {
                  "type": "number"
                },
                "newSnow24hCm": {
                  "type": "number"
                },
                "forecast14dCm": {
                  "type": "number"
                },
                "imageUrl": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "rank",
                "name",
                "slug",
                "country",
                "isOpen",
                "url"
              ],
              "additionalProperties": true
            }
          }
        },
        "required": [
          "markdown",
          "title",
          "updatedAt",
          "resorts"
        ],
        "additionalProperties": true
      },
      "annotations": {
        "title": "Global snow report",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_resort",
      "title": "Live snow & forecast",
      "description": "Full resort detail: live conditions, 7-model forecast, history, webcams.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Resort slug identifier, e.g. \"aspen-mountain\", \"niseko-hanazono-resort\"."
          },
          "card": {
            "type": "string",
            "enum": [
              "guide",
              "photos",
              "snow",
              "full"
            ],
            "description": "Which UI card to render: guide (resort info), photos (gallery), snow (live conditions), or full (text-only detail)."
          }
        },
        "required": [
          "slug"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary (required for ChatGPT Instant mode)."
          },
          "resort": {
            "type": "object",
            "description": "Structured resort payload for inline widget rendering.",
            "additionalProperties": true
          }
        },
        "required": [
          "markdown"
        ],
        "additionalProperties": true
      },
      "annotations": {
        "title": "Live snow & forecast",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_resort_info",
      "title": "Resort guide card",
      "description": "Resort guide card: hero image, elevation, lifts/runs, season dates, ski passes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Resort slug identifier, e.g. \"jackson-hole\"."
          }
        },
        "required": [
          "slug"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary (required for ChatGPT Instant mode)."
          },
          "resort": {
            "type": "object",
            "description": "Structured resort payload for inline widget rendering.",
            "additionalProperties": true
          }
        },
        "required": [
          "markdown"
        ],
        "additionalProperties": true
      },
      "annotations": {
        "title": "Resort guide card",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_resort_photos",
      "title": "Resort photo gallery",
      "description": "Resort photo gallery carousel (official hero + Sanity images).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Resort slug identifier, e.g. \"vail\"."
          }
        },
        "required": [
          "slug"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary (required for ChatGPT Instant mode)."
          },
          "resort": {
            "type": "object",
            "description": "Structured resort payload for inline widget rendering.",
            "additionalProperties": true
          }
        },
        "required": [
          "markdown"
        ],
        "additionalProperties": true
      },
      "annotations": {
        "title": "Resort photo gallery",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "search_resorts",
      "title": "Search resorts",
      "description": "Resolve a name to canonical resort slugs (use before get_resort when unsure).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Free-text resort name to resolve to canonical slugs, e.g. \"st anton\"."
          }
        },
        "required": [
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Search resorts",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "find_best_powder",
      "title": "Find fresh powder",
      "description": "Resorts with the freshest 24-hour snowfall, filtered by region and minimum cm.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "Optional region filter (europe, north-america, asia, oceania, south-america)."
          },
          "min_cm": {
            "type": "number",
            "description": "Minimum fresh 24-hour snowfall in centimetres."
          },
          "limit": {
            "type": "number",
            "description": "Number of resorts to return (default 10)."
          }
        },
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary (required for ChatGPT Instant mode)."
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "resorts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "number"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                },
                "country": {
                  "type": "string"
                },
                "region": {
                  "type": "string"
                },
                "isOpen": {
                  "type": "boolean"
                },
                "snowSureScore": {
                  "type": "number"
                },
                "snowSureRating": {
                  "type": "string"
                },
                "baseDepthCm": {
                  "type": "number"
                },
                "newSnow24hCm": {
                  "type": "number"
                },
                "forecast14dCm": {
                  "type": "number"
                },
                "imageUrl": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "rank",
                "name",
                "slug",
                "country",
                "isOpen",
                "url"
              ],
              "additionalProperties": true
            }
          }
        },
        "required": [
          "markdown",
          "title",
          "updatedAt",
          "resorts"
        ],
        "additionalProperties": true
      },
      "annotations": {
        "title": "Find fresh powder",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "find_powder_trips",
      "title": "Find bookable powder trips",
      "description": "Bookable powder trips: ranks destinations by their 14-day forecast and pairs each with handpicked luxury ski hotels + booking links (optional vibe filter: lux/hip/family/budget).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "vibe": {
            "type": "string",
            "enum": [
              "lux",
              "hip",
              "family",
              "budget"
            ],
            "description": "Optional lodging vibe filter for the paired hotels."
          },
          "region": {
            "type": "string",
            "enum": [
              "europe",
              "north-america",
              "asia",
              "oceania",
              "south-america"
            ],
            "description": "Optional region filter."
          },
          "limit": {
            "type": "number",
            "description": "Number of trips to return (default 5)."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Find bookable powder trips",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "compare_forecasts",
      "title": "Compare forecast models",
      "description": "Side-by-side 14-day forecast across all 7 weather models with confidence rating.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slugs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 2,
            "maxItems": 5,
            "description": "2–5 resort slugs to compare across all 7 weather models."
          }
        },
        "required": [
          "slugs"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Compare forecast models",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_weather_forecast",
      "title": "Resort weather forecast",
      "description": "Day-by-day weather for up to 14 days for any resort.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Resort slug identifier."
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 14,
            "description": "Forecast horizon in days (1–14, default 7)."
          }
        },
        "required": [
          "slug"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Resort weather forecast",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "find_resorts_by_criteria",
      "title": "Filter resorts by criteria",
      "description": "Filter by depth, elevation, runs, SnowSure score, country, region.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Filter by country name."
          },
          "region": {
            "type": "string",
            "description": "Filter by region."
          },
          "min_depth_cm": {
            "type": "number",
            "description": "Minimum base depth in centimetres."
          },
          "min_elevation_m": {
            "type": "number",
            "description": "Minimum summit elevation in metres."
          },
          "min_runs": {
            "type": "number",
            "description": "Minimum number of runs."
          },
          "min_score": {
            "type": "number",
            "description": "Minimum SnowSure score (0–100)."
          },
          "limit": {
            "type": "number",
            "description": "Number of resorts to return."
          }
        },
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Filter resorts by criteria",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_snow_history",
      "title": "Resort snow history",
      "description": "Season-to-date totals plus 5-year and 30-year averages.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Resort slug identifier."
          }
        },
        "required": [
          "slug"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Resort snow history",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "plan_ski_trip",
      "title": "Plan a ski trip",
      "description": "Trip recommendations for a region, ability level, and date window.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "Destination region or country for the trip."
          },
          "ability": {
            "type": "string",
            "description": "Skier ability level, e.g. beginner, intermediate, advanced, expert."
          },
          "start_date": {
            "type": "string",
            "description": "Trip start date, YYYY-MM-DD."
          },
          "end_date": {
            "type": "string",
            "description": "Trip end date, YYYY-MM-DD."
          },
          "days": {
            "type": "number",
            "description": "Trip length in days (alternative to explicit dates)."
          }
        },
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Plan a ski trip",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_webcam_status",
      "title": "Resort webcams",
      "description": "Live webcam links and thumbnails.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Resort slug identifier."
          }
        },
        "required": [
          "slug"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Resort webcams",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_regional_summary",
      "title": "Regional snow summary",
      "description": "Regional / country statistics and top resorts by score.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "Region or country name to summarise, e.g. \"alps\", \"colorado\"."
          }
        },
        "required": [
          "region"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Regional snow summary",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_southern_hemisphere_report",
      "title": "Southern Hemisphere report",
      "description": "In-season AU/NZ/AR/CL snow report (June–October NH off-season).",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Southern Hemisphere report",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_season_openings",
      "title": "Season opening calendar",
      "description": "Resorts whose season opening date is a specific day — \"what opens today?\" (not all open resorts).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Target date YYYY-MM-DD (default today)."
          },
          "country": {
            "type": "string",
            "description": "Optional country filter."
          },
          "region": {
            "type": "string",
            "description": "Optional region filter."
          },
          "hemisphere": {
            "type": "string",
            "enum": [
              "nh",
              "sh"
            ],
            "description": "Optional hemisphere hint: nh (northern) or sh (southern)."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Season opening calendar",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_insight_categories",
      "title": "List insight categories",
      "description": "Taxonomy of SnowSure intelligence card categories.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "List insight categories",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_insights",
      "title": "SnowSure insights",
      "description": "Season norms, forecast trust, and other intelligence cards (filter by category).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "Optional insight category slug (see list_insight_categories)."
          },
          "slug": {
            "type": "string",
            "description": "Optional resort slug to scope insights."
          }
        },
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "SnowSure insights",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_ml_trends",
      "title": "ML/AI trends",
      "description": "SnowSure-unique ML/AI datasets: powder/bluebird leaderboards, score components, model accuracy, bluebird predictions, forecast trust, snow events.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "dataset": {
            "type": "string",
            "description": "Which ML dataset: powder-leaderboard, bluebird, score-components, model-accuracy, forecast-trust, snow-events."
          },
          "limit": {
            "type": "number",
            "description": "Number of rows to return."
          }
        },
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "ML/AI trends",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_pass",
      "title": "Ski pass details",
      "description": "Ski-pass details: operator, season pricing tiers, destinations, regions, buy link (Epic, Ikon, Mountain Collective, …).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Ski pass details",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "find_pass_resorts",
      "title": "Resorts on a ski pass",
      "description": "List the resorts on a ski pass, optionally by region, with SnowSure slugs.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Resorts on a ski pass",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "compare_passes",
      "title": "Compare ski passes",
      "description": "Compare ski passes on price, resort coverage, and value vs window lift tickets for a planned trip.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Compare ski passes",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "compare_resorts",
      "title": "Compare resorts",
      "description": "Compare 2–4 resorts side by side across snow, terrain, and live conditions (all values from the conditions resolver).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Compare resorts",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_avalanche",
      "title": "Avalanche bulletin",
      "description": "Official avalanche danger bulletin for a resort’s forecast zone (US/Canada/Switzerland), relayed with issuer + link.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Avalanche bulletin",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_operating_risk",
      "title": "Lift-operation risk",
      "description": "Will the lifts run? 48h wind-hold / visibility / cold / heavy-snow risk from the Open-Meteo forecast.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Lift-operation risk",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_road_access",
      "title": "Road & chain control",
      "description": "Driving access: chain-control / mountain-pass / road-surface conditions on nearby highways (California, Washington, Colorado, Utah via Caltrans/WSDOT/CDOT/UDOT).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Road & chain control",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_road_cameras",
      "title": "Road cameras",
      "description": "Live roadside DOT/CCTV camera stills on highways near a resort (California via Caltrans, Washington via WSDOT, Utah via UDOT) — what the drive looks like now.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Road cameras",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_road_weather",
      "title": "Roadside weather",
      "description": "Measured roadside weather (RWIS) near a resort — surface/air temp, visibility, wind, precip (Colorado via CDOT, Washington via WSDOT, Utah via UDOT).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Roadside weather",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "plan_ski_road_trip",
      "title": "Plan a ski road trip",
      "description": "Plan a multi-stop ski road trip: top resorts in a region ordered into a drivable route with day allocation, drive legs, conditions, and chain-control.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Plan a ski road trip",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "find_flights_to_powder",
      "title": "Flights to the powder",
      "description": "The \"get there\" leg: nearest gateway airport(s) for a resort plus flight-search links (Google Flights / Skyscanner / Kayak) from your home airport.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Flights to the powder",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "save_resort",
      "title": "Save a resort",
      "description": "Save a resort to your favorites (requires a signed-in SnowSure account).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Save a resort",
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "remove_saved_resort",
      "title": "Remove a saved resort",
      "description": "Remove a resort from your saved list (requires sign-in).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Remove a saved resort",
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_saved_resorts",
      "title": "List saved resorts",
      "description": "List your saved resorts (requires sign-in).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "List saved resorts",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "subscribe_alerts",
      "title": "Subscribe to snow alerts",
      "description": "Subscribe to powder / opening / bluebird snow alerts (requires sign-in).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Subscribe to snow alerts",
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "list_alerts",
      "title": "List alert subscriptions",
      "description": "List your alert subscriptions (requires sign-in).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "List alert subscriptions",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "unsubscribe_alerts",
      "title": "Unsubscribe from alerts",
      "description": "Remove an alert subscription by id (requires sign-in).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Unsubscribe from alerts",
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "book_lodging",
      "title": "Find lodging & booking link",
      "description": "Find lodging near a resort and get a booking link to confirm — never auto-books (requires sign-in).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "Find lodging & booking link",
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "get_my_snow_report",
      "title": "My personalized snow report",
      "description": "Personalized snow report for your saved resorts, ranked best-first by live conditions (requires sign-in).",
      "inputSchema": {
        "type": "object",
        "additionalProperties": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose)."
          }
        },
        "additionalProperties": true
      },
      "annotations": {
        "title": "My personalized snow report",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    }
  ],
  "representativeQueries": [
    "where is the best powder in the alps right now",
    "compare the 7-day snow forecast for Niseko and Hakuba",
    "plan a 5-day ski trip to Colorado in late January",
    "which resorts got fresh snow in the last 24 hours",
    "what is the SnowSure score and base depth at Zermatt today"
  ],
  "routing": {
    "useFor": "live snow, forecasts, powder, trip planning, resort Q&A",
    "notFor": "Snowdata corporate onboarding or B2B pricing"
  }
}
