Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "get_trip_brief"; changed the definition of "get_alerts", "get_forecast_accuracy", "get_objective_conditions" and 2 more (5 tools before, 6 now)
⟨723 unchanged words⟩ enum","length","pattern","range","format","not_in_window","unexpected"]}},"required":["field"," ⟨113 unchanged words⟩
⟨23 unchanged words⟩ slug, which resolves to the accuracy regioncontainingofthattheobjective.NWAC zone the objective is bound to. Informational only.
⟨31 unchanged words⟩ by search_objectives. It resolves to the accuracy regioncontainingof theobjective.NWAC zone the objective is bound to. Provide exactly one of slug and region_id.", ⟨8 unchanged words⟩
⟨72 unchanged words⟩ decisions in the outdoors."},"eligible":{"typeconst":"boolean"true
⟨100 unchanged words⟩ stations":{"anyOf":[{"items":{"$refadditionalProperties":false,"#/$defs/sourceproperties":{"name":{"type":"string"},"seasonalStatus":{"enum":["active","dormant"]},"status":{"enum":["fresh","stale","long_stale","down",null]}},"required":["name","status"],"type":"object"},"type":"array"},{"type":"null"}]}, ⟨103 unchanged words⟩ "type":["string","null"]},"reliability":{"enum":["primary","secondary","supplementary"]},"sourceName":{"type":"string"},"url" ⟨142 unchanged words⟩ "type":["string","null"]},"reliability":{"enum":["primary","secondary","supplementary"]},"sourceName":{"type":"string"},"url" ⟨443 unchanged words⟩ ","enum","length","pattern","range","format","not_in_window","unexpected"]}},"required":["field ⟨113 unchanged words⟩
⟨7 unchanged words⟩ route conditions, anchored to the route high pointand aspect, with catalog gain, source provenance, and ⟨6 unchanged words⟩ one of the route's activities listed by search_objectives. For what the whole trip looks like, get_trip_brief returns the forecast page sections in one call. Informational only.
⟨100 unchanged words⟩ stations":{"anyOf":[{"items":{"$refadditionalProperties":false,"#/$defs/sourceproperties":{"name":{"type":"string"},"seasonalStatus":{"enum":["active","dormant"]},"status":{"enum":["fresh","stale","long_stale","down",null]}},"required":["name","status"],"type":"object"},"type":"array"},{"type":"null"}]}, ⟨210 unchanged words⟩ "type":["string","null"]},"reliability":{"enum":["primary","secondary","supplementary"]},"
⟨242 unchanged words⟩ enum","length","pattern","range","format","not_in_window","unexpected"]}},"required":["field"," ⟨113 unchanged words⟩
Trip brief — Returns the signed-out forecast page sections for a route in one call: forecast days, daylight, air quality, and agency alerts, each with source provenance and a freshness status. Informational only.
Changed the definition of "get_forecast_accuracy", "get_objective_conditions", "get_route_conditions" and 1 more
⟨9 unchanged words⟩ model-proxy truth lineage, data sufficiency, and eligibility. Takes either a region_id or an objective slug, which resolves to the accuracy region containing that objective. Informational only.
⟨5 unchanged words⟩ :"Public accuracy region identifier, for example pnw-olympics. Provide exactly one of region_id and slug.","maxLength":256,"minLength":1,"type":"string"}},"requiredslug":[{"region_iddescription
Added "get_alerts"; changed the definition of "get_objective_conditions" and "get_route_conditions" (4 tools before, 5 now)
⟨179 unchanged words⟩ ,"centerName"],"type":"object"},"avalancheDangercondition":{"type":"string"},"date":{"type":"string"},"overallRating":{"enum":["lowexcellent","moderategood","considerablemarginal","highpoor","extremedangerous"]},"no_dataprecipChancePercent":{"type":["number","null"
Changed the definition of "get_forecast_accuracy", "get_objective_conditions", "get_route_conditions" and 1 more
before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"additionalProperties":false,"properties":{"computedAt":{"type":["string","null"]},"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"eligible":{"type":"boolean"},"precipOccurrence":{"oneOf":[{"additionalProperties":false,"properties":{"accuracyPct":{"type":"number"},"n":{"type":"number"}},"required":["accuracyPct","n"],"type":"object"},{"const":"insufficient"}]},"provenance":{"oneOf":[{"additionalProperties":false,"properties":{"replaySource":{"const":"open-meteo-archive"},"truth":{"const":"ifs-9km"}},"required":["truth","replaySource"],"type":"object"},{"additionalProperties":false,"properties":{"replaySource":{"const":"open-meteo-archive"},"station":{"additionalProperties":false,"properties":{"distanceMi":{"type":"number"},"elevDeltaFt":{"type":"number"},"network":{"enum":["snotel","bc-asws","synoptic"]},"stationId":{"type":"string"},"stationName":{"type":"string"}},"required":["stationId","network","stationName","distanceMi","elevDeltaFt"],"type":"object"},"truth":{"const":"station-obs"}},"required":["truth","replaySource","station"],"type":"object"}]},"reason":{"enum":["no-station-truth","insufficient-samples","elevation-gap-exceeded","stale-station-truth"]},"regionId":{"type":"string"},"sampleCount":{"type":"number"},"temperature":{"oneOf":[{"additionalProperties":false,"properties":{"biasF":{"type":"number"},"maeF":{"type":"number"},"n":{"type":"number"}},"required":["maeF","biasF","n"],"type":"object"},{"const":"insufficient"}]},"windowDays":{"type":"number"}},"required":["regionId","windowDays","sampleCount","temperature","precipOccurrence","provenance","computedAt","eligible","disclaimerText"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"message":{"type":"string"},"status":{"const":"not_found"},"suggestions":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name"],"type":"object"},"maxItems":3,"type":"array"},"try":{"const":"search_objectives"}},"required":["status","message","try","suggestions","disclaimerText"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"error":{"const":"invalid_input"},"fields":{"items":{"additionalProperties":false,"properties":{"allowed":{"items":{"type":"string"},"type":"array"},"field":{"type":"string"},"problem":{"enum":["required","type","enum","length","pattern","range","unexpected"]}},"required":["field","problem"],"type":"object"},"type":"array"},"message":{"type":"string"},"requestId":{"type":["string","null"]}},"required":["error","message","requestId","disclaimerText","fields"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"error":{"enum":["MCP_BUSY","MCP_RESPONSE_TOO_LARGE","MCP_VOICE_GATE_FAILED","MCP_TOOL_FAILED","rate_limited","processing_limit","response_limit"]},"message":{"type":"string"},"requestId":{"type":["string","null"]}},"required":["error","message","requestId","disclaimerText"],"type":"object"}],"type":"object"}Certificate recorded, valid to 2026-12-07
Authorization not required
Unknown → Live
First tool surface recorded: 4 tools (server version 1.0.0)
https://climbcast.io/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 9 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨373 unchanged words⟩ for your decisions in the outdoors."},"knownRegionIds":{"items":{"type":"string"},"type":"array"},"message":{"type":"string"},"status":{"const":"not_found"},"suggestions":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name"],"type":"object"},"maxItems":3,"type":"array"},"try":{"const":"search_objectives"}},"required":["status","message","try","suggestions","disclaimerText","knownRegionIds"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"error":{"const":"invalid_input"},"fields" ⟨137 unchanged words⟩
Returns public conditions for a covered objective: summit weather, the objective page's route list with grade, type, and round-trip distance, source provenance, and timestamps, in JSON or markdown. Informational only.
⟨149 unchanged words⟩ ":[{"additionalProperties":false,"properties":{"accuracyRegionId":{"type":["string","null"]},"days":{"items":{"additionalProperties":false," ⟨111 unchanged words⟩ ":[{"additionalProperties":false,"properties":{"airQuality":{"additionalProperties":false,"properties":{"aqi":{"type":"number"},"category":{"type":"string"},"scale":{"enum":["us_aqi","aqhi"]},"sourceName":{"type":"string"},"warning":{"type":"boolean"}},"required":["aqi","category","scale","sourceName","warning"],"type":"object"},"avalancheBasis":{"additionalProperties":false,"properties":{" ⟨255 unchanged words⟩ ,"name"],"type":"object"},"routes":{"items":{"additionalProperties":false,"properties":{"difficulty":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"roundTripDistanceMi":{"type":"number"},"type":{"type":"string"}},"required":["id","name","difficulty","type"],"type":"object"},"type":"array"},"source":{"const":"ClimbCast"},"sourceUrl" ⟨18 unchanged words⟩ source","sourceUrl","disclaimer","objective","accuracyRegionId","updatedAt","sources","disclaimerText","routes","days"],"type":"object"}, ⟨314 unchanged words⟩
⟨11 unchanged words⟩ the route high point and aspect, with catalog gain, source provenance, and timestamps. An optional activity input selects one of the route's activities listed by search_objectives. Informational only.
{"additionalProperties":false,"properties":{"activity":{"description":"Optional activity mode for the route forecast. Accepted values are the route's activities entries from search_objectives. When omitted, the route's default visible activity is used.","maxLength":64,"minLength":1,"type":"string"},"format":{"default":"json","description": ⟨46 unchanged words⟩
⟨149 unchanged words⟩ ":[{"additionalProperties":false,"properties":{"accuracyRegionId":{"type":["string","null"]},"airQualityTrend":{"additionalProperties":false,"properties":{"backfilledFrom":{"type":"string"},"firstDate":{"type":"string"},"lastDate":{"type":"string"},"latestValue":{"type":"number"},"scale":{"enum":["us_aqi","aqhi"]}},"required":["scale","firstDate","lastDate","latestValue"],"type":"object"},"days":{"items":{"additionalProperties":false,"properties":{"airQuality":{"additionalProperties":false,"properties":{"aqi":{"type":"number"},"category":{"type":"string"},"scale":{"enum":["us_aqi","aqhi"]},"sourceName":{"type":"string"},"warning":{"type":"boolean"}},"required":["aqi","category","scale","sourceName","warning"],"type":"object"},"avalancheBasis":{"additionalProperties":false,"properties":{" ⟨320 unchanged words⟩ ,"aspect":{"type":"string"},"catalogGainFt":{"type":"number"},"highPointElevationFt":{"type":"number"},"id" ⟨17 unchanged words⟩ },"required":["id","name","catalogGainFt","activityMode","supportedActivities"],"type":"object"} ⟨22 unchanged words⟩ :["source","sourceUrl","disclaimer","objective","accuracyRegionId","updatedAt","sources","disclaimerText","route ⟨317 unchanged words⟩
⟨96 unchanged words⟩ items":{"additionalProperties":false,"properties":{"activities":{"items":{"enum":["mountaineering","skimo_splitboard","rock_climbing"]},"type":"array"},"activity":{"enum":["mountaineering","skimo_splitboard" ⟨7 unchanged words⟩ ,"required":["id","name","activity","activities"],"type":"object"},"type": ⟨235 unchanged words⟩
Returnssevenup to five days of public route conditions, anchored to ⟨13 unchanged words⟩
⟨223 unchanged words⟩ ,"date":{"type":"string"},"freezingLevelFt":{"type":"number"},"moonIllumination":{"type":"number"},"moonPhase" ⟨12 unchanged words⟩ ,"good","marginal","poor","dangerous",null]},"precipChancePercent":{"type":["number","null"]},"precipType":{"enum":["none","rain","snow","mixed","sleet"]},"provenance":{"additionalProperties":false,"properties":{" ⟨73 unchanged words⟩ summitTempHighF","windMaxMph","windDirection","precipChancePercent","freezingLevelFt","snowpackCondition","avalancheDangerprovenance","sunrise","sunset","sunriseAt","sunsetAt","moonPhase","moonIllumination","provenancesnowpackCondition","referencePoint","windAvgMph","precipType"],"type":"object"},"maxItems":5,"type":"array"},"disclaimer":{"type" ⟨58 unchanged words⟩ solely responsible for your decisions in the outdoors."},"lockedOutlook":{"additionalProperties":false,"properties":{"lockedDayCount":{"minimum":1,"type":"integer"},"maxHorizonDays":{"const":15},"note":{"const":"This response covers days 1 to 5. Later days are published on climbcast.io."},"throughDate":{"type":"string"}},"required":["lockedDayCount","throughDate","maxHorizonDays","note"],"type":"object"},"objective":{"additionalProperties":false,"properties ⟨402 unchanged words⟩
Objective alerts — Returns the NPS park and USFS forest alerts displayed for a covered objective, including source attribution and retrieval timestamps. Existing National Weather Service fallback notices retain their source identity. Informational only.
before
—after
{"$defs":{"source":{"additionalProperties":false,"properties":{"confidence":{"enum":["full","degraded","unknown"]},"contributesTo":{"items":{"enum":["weather","precip","wind","temperature","snowpack","avalanche","road","alerts","air_quality","other"]},"type":"array"},"expectedFreshnessSeconds":{"type":["number","null"]},"fetchedAt":{"type":["string","null"]},"history24h":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"bucketStart":{"type":"string"},"status":{"enum":["ok","down","degraded","nodata"]}},"required":["bucketStart","status"],"type":"object"},"type":"array"},{"type":"null"}]},"history7d":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"bucketStart":{"type":"string"},"status":{"enum":["ok","down","degraded","nodata"]}},"required":["bucketStart","status"],"type":"object"},"type":"array"},{"type":"null"}]},"isStale":{"type":["boolean","null"]},"lastSuccessAt":{"type":["string","null"]},"name":{"type":"string"},"ok":{"type":["boolean","null"]},"seasonalStatus":{"enum":["active","dormant"]},"stations":{"anyOf":[{"items":{"$ref":"#/$defs/source"},"type":"array"},{"type":"null"}]},"status":{"enum":["fresh","stale","long_stale","down",null]},"type":{"enum":["weather","avalanche","road","nps","snow","air","other"]},"upstreamIssuedAt":{"type":["string","null"]}},"required":["name","type","fetchedAt","ok","isStale","lastSuccessAt","expectedFreshnessSeconds","upstreamIssuedAt","history24h","history7d","status","confidence","contributesTo"],"type":"object"}},"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"additionalProperties":false,"properties":{"days":{"items":{"additionalProperties":false,"properties":{"avalancheBasis":{"additionalProperties":false,"properties":{"centerName":{"type":["string","null"]},"included":{"type":"boolean"},"reason":{"enum":["off_season","no_zone","not_yet_issued","expired","unavailable",null]}},"required":["included","reason","centerName"],"type":"object"},"avalancheDanger":{"enum":["low","moderate","considerable","high","extreme","no_data"]},"condition":{"type":"string"},"date":{"type":"string"},"freezingLevelFt":{"type":"number"},"moonIllumination":{"type":"number"},"moonPhase":{"enum":["new","waxing_crescent","first_quarter","waxing_gibbous","full","waning_gibbous","last_quarter","waning_crescent"]},"overallRating":{"enum":["excellent","good","marginal","poor","dangerous"]},"precipChancePercent":{"type":["number","null"]},"provenance":{"additionalProperties":false,"properties":{"weather":{"additionalProperties":false,"properties":{"fetchedAt":{"type":["string","null"]},"reliability":{"enum":["primary","secondary","supplementary"]},"sourceName":{"type":"string"},"url":{"type":"string"}},"required":["sourceName"],"type":"object"}},"required":["weather"],"type":"object"},"referencePoint":{"const":"summit"},"snowInches":{"type":["number","null"]},"snowpackCondition":{"enum":["powder","packed_powder","wind_crust","sun_crust","corn","ice","wet_heavy","bare"]},"summitTempHighF":{"type":"number"},"summitTempLowF":{"type":"number"},"sunrise":{"type":"string"},"sunriseAt":{"type":["string","null"]},"sunset":{"type":"string"},"sunsetAt":{"type":["string","null"]},"windDirection":{"type":["string","null"]},"windMaxMph":{"type":"number"}},"required":["date","overallRating","summitTempLowF","summitTempHighF","windMaxMph","windDirection","precipChancePercent","freezingLevelFt","snowpackCondition","sunrise","sunset","sunriseAt","sunsetAt","moonPhase","moonIllumination","provenance","referencePoint","condition","snowInches"],"type":"object"},"type":"array"},"disclaimer":{"type":"string"},"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"objective":{"additionalProperties":false,"properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name"],"type":"object"},"source":{"const":"ClimbCast"},"sourceUrl":{"type":"string"},"sources":{"items":{"$ref":"#/$defs/source"},"type":"array"},"timeZone":{"type":"string"},"updatedAt":{"type":"string"},"utcOffsetSeconds":{"type":"number"}},"required":["source","sourceUrl","disclaimer","objective","updatedAt","sources","disclaimerText","days"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"message":{"type":"string"},"status":{"const":"not_found"},"suggestions":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name"],"type":"object"},"maxItems":3,"type":"array"},"try":{"const":"search_objectives"}},"required":["status","message","try","suggestions","disclaimerText"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"error":{"const":"invalid_input"},"fields":{"items":{"additionalProperties":false,"properties":{"allowed":{"items":{"type":"string"},"type":"array"},"field":{"type":"string"},"problem":{"enum":["required","type","enum","length","pattern","range","unexpected"]}},"required":["field","problem"],"type":"object"},"type":"array"},"message":{"type":"string"},"requestId":{"type":["string","null"]}},"required":["error","message","requestId","disclaimerText","fields"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"error":{"enum":["MCP_BUSY","MCP_RESPONSE_TOO_LARGE","MCP_VOICE_GATE_FAILED","MCP_TOOL_FAILED","rate_limited","processing_limit","response_limit"]},"message":{"type":"string"},"requestId":{"type":["string","null"]}},"required":["error","message","requestId","disclaimerText"],"type":"object"}],"type":"object"}before
—after
{"$defs":{"source":{"additionalProperties":false,"properties":{"confidence":{"enum":["full","degraded","unknown"]},"contributesTo":{"items":{"enum":["weather","precip","wind","temperature","snowpack","avalanche","road","alerts","air_quality","other"]},"type":"array"},"expectedFreshnessSeconds":{"type":["number","null"]},"fetchedAt":{"type":["string","null"]},"history24h":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"bucketStart":{"type":"string"},"status":{"enum":["ok","down","degraded","nodata"]}},"required":["bucketStart","status"],"type":"object"},"type":"array"},{"type":"null"}]},"history7d":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"bucketStart":{"type":"string"},"status":{"enum":["ok","down","degraded","nodata"]}},"required":["bucketStart","status"],"type":"object"},"type":"array"},{"type":"null"}]},"isStale":{"type":["boolean","null"]},"lastSuccessAt":{"type":["string","null"]},"name":{"type":"string"},"ok":{"type":["boolean","null"]},"seasonalStatus":{"enum":["active","dormant"]},"stations":{"anyOf":[{"items":{"$ref":"#/$defs/source"},"type":"array"},{"type":"null"}]},"status":{"enum":["fresh","stale","long_stale","down",null]},"type":{"enum":["weather","avalanche","road","nps","snow","air","other"]},"upstreamIssuedAt":{"type":["string","null"]}},"required":["name","type","fetchedAt","ok","isStale","lastSuccessAt","expectedFreshnessSeconds","upstreamIssuedAt","history24h","history7d","status","confidence","contributesTo"],"type":"object"}},"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"additionalProperties":false,"properties":{"days":{"items":{"additionalProperties":false,"properties":{"avalancheBasis":{"additionalProperties":false,"properties":{"centerName":{"type":["string","null"]},"included":{"type":"boolean"},"reason":{"enum":["off_season","no_zone","not_yet_issued","expired","unavailable",null]}},"required":["included","reason","centerName"],"type":"object"},"avalancheDanger":{"enum":["low","moderate","considerable","high","extreme","no_data"]},"cornHarvestWindow":{"anyOf":[{"additionalProperties":false,"properties":{"status":{"type":"string"},"window":{"anyOf":[{"additionalProperties":false,"properties":{"end":{"type":"string"},"start":{"type":"string"}},"required":["start","end"],"type":"object"},{"type":"null"}]}},"required":["status","window"],"type":"object"},{"type":"null"}]},"date":{"type":"string"},"freezingLevelFt":{"type":"number"},"moonIllumination":{"type":"number"},"moonPhase":{"enum":["new","waxing_crescent","first_quarter","waxing_gibbous","full","waning_gibbous","last_quarter","waning_crescent"]},"overallRating":{"enum":["excellent","good","marginal","poor","dangerous"]},"precipChancePercent":{"type":["number","null"]},"precipType":{"enum":["none","rain","snow","mixed","sleet"]},"provenance":{"additionalProperties":false,"properties":{"weather":{"additionalProperties":false,"properties":{"fetchedAt":{"type":["string","null"]},"reliability":{"enum":["primary","secondary","supplementary"]},"sourceName":{"type":"string"},"url":{"type":"string"}},"required":["sourceName"],"type":"object"}},"required":["weather"],"type":"object"},"referencePoint":{"const":"route-high-point"},"snowpackCondition":{"enum":["powder","packed_powder","wind_crust","sun_crust","corn","ice","wet_heavy","bare"]},"summitTempHighF":{"type":"number"},"summitTempLowF":{"type":"number"},"sunrise":{"type":"string"},"sunriseAt":{"type":["string","null"]},"sunset":{"type":"string"},"sunsetAt":{"type":["string","null"]},"windAvgMph":{"type":"number"},"windDirection":{"type":"string"},"windMaxMph":{"type":"number"}},"required":["date","overallRating","summitTempLowF","summitTempHighF","windMaxMph","windDirection","precipChancePercent","freezingLevelFt","snowpackCondition","avalancheDanger","sunrise","sunset","sunriseAt","sunsetAt","moonPhase","moonIllumination","provenance","referencePoint","windAvgMph","precipType"],"type":"object"},"type":"array"},"disclaimer":{"type":"string"},"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"objective":{"additionalProperties":false,"properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name"],"type":"object"},"route":{"additionalProperties":false,"properties":{"activityMode":{"enum":["mountaineering","skimo_splitboard","rock_climbing","trail_running","mountain_biking","snowmobiling","ice_climbing"]},"aspect":{"type":"string"},"highPointElevationFt":{"type":"number"},"id":{"type":"string"},"name":{"type":"string"},"supportedActivities":{"items":{"enum":["mountaineering","skimo_splitboard","rock_climbing","trail_running","mountain_biking","snowmobiling","ice_climbing"]},"type":"array"}},"required":["id","name","activityMode","supportedActivities"],"type":"object"},"source":{"const":"ClimbCast"},"sourceUrl":{"type":"string"},"sources":{"items":{"$ref":"#/$defs/source"},"type":"array"},"timeZone":{"type":"string"},"updatedAt":{"type":"string"},"utcOffsetSeconds":{"type":"number"}},"required":["source","sourceUrl","disclaimer","objective","updatedAt","sources","disclaimerText","route","days"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"message":{"type":"string"},"status":{"const":"not_found"},"suggestions":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name"],"type":"object"},"maxItems":3,"type":"array"},"try":{"const":"search_objectives"}},"required":["status","message","try","suggestions","disclaimerText"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"error":{"const":"invalid_input"},"fields":{"items":{"additionalProperties":false,"properties":{"allowed":{"items":{"type":"string"},"type":"array"},"field":{"type":"string"},"problem":{"enum":["required","type","enum","length","pattern","range","unexpected"]}},"required":["field","problem"],"type":"object"},"type":"array"},"message":{"type":"string"},"requestId":{"type":["string","null"]}},"required":["error","message","requestId","disclaimerText","fields"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"error":{"enum":["MCP_BUSY","MCP_RESPONSE_TOO_LARGE","MCP_VOICE_GATE_FAILED","MCP_TOOL_FAILED","rate_limited","processing_limit","response_limit"]},"message":{"type":"string"},"requestId":{"type":["string","null"]}},"required":["error","message","requestId","disclaimerText"],"type":"object"}],"type":"object"}⟨50 unchanged words⟩ ":{"description":"Optional state or provincefilter.code or name: WA, Washington, OR, Oregon, BC, British Columbia, or B.C. Matching ignores case.","enumexamples":["WA","OR","BC","Washington","Oregon","British Columbia","B.C."],"type":"string"}},"required" ⟨3 unchanged words⟩
before
—after
{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"objectives":{"items":{"additionalProperties":false,"properties":{"conditions_url":{"type":"string"},"elevation_ft":{"type":"number"},"lat":{"type":"number"},"lon":{"type":"number"},"name":{"type":"string"},"region":{"type":"string"},"routes":{"items":{"additionalProperties":false,"properties":{"activity":{"enum":["mountaineering","skimo_splitboard","rock_climbing"]},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","activity"],"type":"object"},"type":"array"},"slug":{"type":"string"}},"required":["slug","name","elevation_ft","region","lat","lon","routes","conditions_url"],"type":"object"},"type":"array"},"truncated":{"type":"boolean"}},"required":["objectives","truncated","disclaimerText"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"error":{"const":"invalid_input"},"fields":{"items":{"additionalProperties":false,"properties":{"allowed":{"items":{"type":"string"},"type":"array"},"field":{"type":"string"},"problem":{"enum":["required","type","enum","length","pattern","range","unexpected"]}},"required":["field","problem"],"type":"object"},"type":"array"},"message":{"type":"string"},"requestId":{"type":["string","null"]}},"required":["error","message","requestId","disclaimerText","fields"],"type":"object"},{"additionalProperties":false,"properties":{"disclaimerText":{"const":"This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."},"error":{"enum":["MCP_BUSY","MCP_RESPONSE_TOO_LARGE","MCP_VOICE_GATE_FAILED","MCP_TOOL_FAILED","rate_limited","processing_limit","response_limit"]},"message":{"type":"string"},"requestId":{"type":["string","null"]}},"required":["error","message","requestId","disclaimerText"],"type":"object"}],"type":"object"}