SnowSure
SnowSure MCP Server
Hosted, remote Model Context Protocol server for live ski & snow data — no install, keyless read access.
SnowSure gives AI assistants and agents grounded, verified snow intelligence: live conditions, 14‑day multi‑model forecasts, powder rankings, resort guides, webcams, ski‑pass intelligence, avalanche/road safety, and a natural‑language Answer Engine across 480+ ski resorts worldwide. Every answer is grounded in SnowSure's data (seven weather models + verified resort‑reported ground truth) — never open web search.
Endpoint:
https://www.snowsure.ai/mcpTransport: Streamable HTTP (MCP spec
2025-03-26)Auth: none (public, read‑only). A handful of write/personalization tools use an optional signed‑in SnowSure account.
Tools: 39
Website: https://www.snowsure.ai
Connect
Claude / ChatGPT / any remote‑MCP client
Add a custom connector with the URL — no token, no config:
https://www.snowsure.ai/mcpCursor / config file
{
"mcpServers": {
"snowsure": { "url": "https://www.snowsure.ai/mcp" }
}
}Via Smithery
Install from the Smithery directory — the server needs no connection parameters.
Related MCP server: Weather MCP Server
What you can ask
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
Tools
Ask & discover
ask_snowdata— grounded natural‑language Q&A (the primary tool for chat)search_resorts— resolve a name to canonical resort slugsget_resort— full resort detail: live conditions, 7‑model forecast, history, webcamsget_resort_info— resort guide card: elevation, lifts/runs, season dates, ski passesget_resort_photos— resort photo galleryget_destination— multi‑mountain hubs (Niseko, Chamonix, Hakuba, …)find_resorts_by_criteria— filter by depth, elevation, runs, score, country, regionget_regional_summary— regional/country statistics and top resorts by scoreget_southern_hemisphere_report— in‑season AU/NZ/AR/CL report (NH off‑season)get_season_openings— resorts opening on a given day
Snow & forecasts
get_snow_report— global rankings by SnowSure score, fresh snow, depth, or 14‑day forecastfind_best_powder— resorts with the freshest 24‑hour snowfallget_weather_forecast— day‑by‑day weather up to 14 dayscompare_forecasts— 14‑day forecast across all 7 models with a confidence ratingget_snow_history— season‑to‑date totals plus 5‑yr and 30‑yr averagesget_ml_trends— SnowSure ML datasets: powder/bluebird leaderboards, model accuracy, forecast trustget_insights/list_insight_categories— season norms, forecast‑trust and other intelligence cards
Passes & planning
get_pass/find_pass_resorts/compare_passes— Epic, Ikon, Mountain Collective, Indy, …compare_resorts— compare 2–4 resorts side by sideplan_ski_trip— trip recommendations for a region, ability, and datesplan_ski_road_trip— multi‑stop drivable route with day allocation and conditionsfind_powder_trips— bookable powder trips ranked by 14‑day forecast, paired with lodging
Safety & roads
get_avalanche— official avalanche bulletin (US/Canada/Switzerland), relayed with issuer + linkget_operating_risk— 48h wind‑hold / visibility / cold / heavy‑snow lift‑operation riskget_road_access/get_road_cameras/get_road_weather— chain control, DOT cameras, roadside weather (Caltrans/WSDOT/CDOT/UDOT)get_webcam_status— live webcams
Account & personalized (optional signed‑in SnowSure account)
save_resort/remove_saved_resort/list_saved_resortssubscribe_alerts/list_alerts/unsubscribe_alertsget_my_snow_report— personalized report for your saved resortsbook_lodging— lodging near a resort with a booking link (never auto‑books)
Python SDK & CLI
pip install snowsurefrom snowsure import SnowSureClient
client = SnowSureClient()
client.get_snow_report(region="europe")["resorts"] # global rankings
client.get_resort("matterhorn-ski-paradise") # one resort in full
client.ask("where is the best powder right now?") # grounded Q&AThe package also installs a snowsure CLI:
snowsure report --sort recent --region europe
snowsure resort matterhorn-ski-paradise
snowsure ask "how much snow fell at Niseko this week?"Source: python-sdk/. Thin typed wrappers over the public REST API (GET /api/v1/resorts, GET /api/v1/resorts/{slug}, GET /api/v1/snow-report, POST /api/v1/ask) — no API key required.
Agent configs & skills
This repo ships ready-made agent configuration so coding agents and assistants know how to use SnowSure:
Agent skill (Claude Code, Cursor, Codex, and other skills-compatible agents):
.claude/skills/snowsure/SKILL.md— an agent skill covering the MCP server, REST API, resort-slug conventions, and answer guidelines. Install with:npx skills add mikeslone/snowsure-mcpCursor rules:
.cursor/rules/snowsure.mdc— copy into your project's.cursor/rules/.Repo agent guidance:
CLAUDE.md.
Discovery documents
Server card: https://www.snowsure.ai/.well-known/mcp/server-card.json
MCP manifest: https://www.snowsure.ai/.well-known/mcp.json
AI catalog: https://www.snowsure.ai/.well-known/ai-catalog.json
OpenAPI: https://www.snowsure.ai/openapi.json
LLM guide: https://www.snowsure.ai/llms.txt
About
SnowSure is the consumer + agent surface of Snowdata's snow‑intelligence stack. The SnowSure Score (0–100) summarizes skiability from seven weather models, decades of archive, and verified resort ground truth. Forecasts are model‑based, not certainty; avalanche/safety data is relayed from official issuers with attribution.
License
MIT — see LICENSE. This repository contains public metadata and documentation for the hosted SnowSure MCP service.
Available Tools
40 toolsask_snowdataAsk SnowSureARead-onlyIdempotent
Text-only Q&A grounded in SnowSure data (~1s). Use for open-ended questions, terrain %, expert-run counts, advice, AND specifically: head-to-head resort comparisons (annual snowfall, vertical drop, base/summit elevation, skiable area — "which has more snowfall, Niseko or Whistler"), season-opening norms ("which resort typically opens earliest", "usually open by Thanksgiving"), glacier / year-round skiing, and factual resort & geography trivia (what country/state/island a resort is in, named runs like Corbet's Couloir, records like the highest chairlift). NEVER use for photo/gallery/picture requests (→ get_resort_photos) or resort guide cards (→ get_resort_info). Does NOT render UI cards.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response shape: markdown (default) or json | |
| locale | No | Response language (default: en) | |
| question | Yes | Natural-language question about snow or a resort | |
| partnerId | No | Client hint for tailored guidance: claude, chatgpt, cursor, perplexity | |
| hemisphere | No | Optional hemisphere hint when not resort-scoped | |
| resortSlug | No | Optional resort slug to scope the answer (e.g. jackson-hole) |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | No | |
| intent | No | |
| queryId | No | |
| evidence | No | |
| markdown | Yes | Human-readable markdown summary (required for ChatGPT Instant mode). |
| confidence | No | |
| generatedAt | No | |
| sourceLabel | No | |
| answerSource | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds behavioral context by specifying it is text-only, quick (~1s), and does not render UI cards, which goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening, specific examples, and exclusions. Every sentence adds value, and it is appropriately sized for a Q&A tool with many use cases. The front-loading of purpose and explicit exclusions makes it concise and actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, 1 required, output schema exists), the description covers purpose, usage guidelines, behavioral details, and parameter hints. The presence of an output schema means return values need not be explained. The description is complete enough for an agent to decide when to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds usage context (e.g., locale for language, partnerId for client hint, hemisphere when not resort-scoped) but does not significantly enhance parameter meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Text-only Q&A grounded in SnowSure data' and lists specific use cases (open-ended questions, comparisons, trivia). It explicitly distinguishes from siblings by stating it never handles photo or gallery requests and directs to get_resort_photos and get_resort_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance through a detailed list of use cases and when-not-to-use guidance by stating 'NEVER use for photo/gallery/picture requests (→ get_resort_photos) or resort guide cards (→ get_resort_info).' It also mentions the response time (~1s) and that it does not render UI cards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_lodgingFind lodging & booking linkAIdempotent
Lodging near a resort via LUXSKI for the signed-in user. With a specific hotelName + checkIn + checkOut it PREBOOKS a live rate and returns a LUXSKI checkout URL to complete payment (we hold the rate + attribute the booking; we never charge). Without those it returns availability + a booking link. Requires a SnowSure user access token (OAuth). Payment always completes on LUXSKI.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug to find lodging near, e.g. verbier | |
| guests | No | Number of adults, optional | |
| checkIn | No | Check-in date (YYYY-MM-DD) | |
| checkOut | No | Check-out date (YYYY-MM-DD) | |
| hotelName | No | Specific hotel to prebook (from find_powder_trips / search). With dates → returns a checkout URL. | |
| powderEventId | No | Optional powder-event id to attribute the booking to |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits beyond annotations: it prebooks and holds a rate, never charges, attributes booking, returns checkout URL for payment on LUXSKI, and requires OAuth. No annotation contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded main purpose. Some redundancy (OAuth mentioned twice implicitly), but efficient overall. Could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers modes, auth, and payment handling. Output schema exists (not shown) so missing return details are acceptable. No mention of error cases or rate limits, but adequate for a booking tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. The description adds value by explaining how hotelName and dates together trigger prebooking vs availability, and clarifies powderEventId for attribution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool does lodging near a resort via LUXSKI. It differentiates two modes: prebooking with hotelName+dates (returns checkout URL) and availability-only without (returns availability+booking link). This distinguishes it from siblings like plan_ski_trip or get_destination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use each mode (with hotelName+dates vs without) and notes the OAuth requirement. It doesn't explicitly exclude alternative tools, but given no other lodging booking tools among siblings, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_forecastsCompare forecast modelsARead-onlyIdempotent
Compare 14-day snow forecasts across 7 weather models (ECMWF, GFS, GEM, JMA, ICON, Météo-France, Met Norway) for a resort. Shows model agreement and uncertainty. Use for forecast reliability queries.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug to compare forecasts for |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by revealing the output includes model agreement and uncertainty, which is behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences: the first conveys core function and specifics, the second provides use-case guidance. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, complete schema, and an existing output schema (implied but not shown), the description sufficiently covers the tool's purpose and output nature. No gaps for an AI agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'slug' well-described. The description adds 'for a resort' but does not enrich parameter meaning beyond the schema, earning the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the tool as comparing 14-day snow forecasts across 7 named weather models, with output focusing on model agreement and uncertainty. This distinguishes it from sibling tools like get_weather_forecast or get_snow_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use for forecast reliability queries,' providing clear when-to-use guidance. While it does not mention when not to use or name alternatives, the context of sibling tools implies single-model forecasts are elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_passesCompare ski passesARead-onlyIdempotent
Compare ski passes on price, resort coverage, and value. Optionally pass resortSlugs you plan to ski and tripDays to see which pass covers them and whether it beats buying window lift tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| passIds | No | Passes to compare (default: all). e.g. ["epic-pass","ikon-pass"] | |
| tripDays | No | Total days you plan to ski (for the value calc) | |
| resortSlugs | No | Resorts you plan to ski — used for coverage scoring | |
| dailyTicketUsd | No | Override the assumed window ticket rate (default $185) |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds valuable context about what the comparison covers (price, coverage, value) and how optional parameters affect it, going beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. The main purpose is front-loaded, and the second sentence efficiently explains optional parameter usage. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (documenting return values) and the tool has 4 optional parameters, the description adequately covers the core functionality and optional enhancements. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all 4 parameters (100% coverage). The description adds semantic value by explaining how each optional parameter is used (e.g., resortSlugs for coverage scoring, tripDays for value calculation), which enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares ski passes on price, resort coverage, and value. It uses a specific verb and resource, and distinguishes from sibling tools like get_pass (single pass) or compare_resorts (resort comparison).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on optional parameters (resortSlugs, tripDays) for detailed comparison. It does not explicitly exclude use cases or mention alternatives, but the purpose is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_resortsCompare resortsARead-onlyIdempotent
Compare 2–4 resorts side by side across snow, terrain, and live conditions — every value comes from the SnowSure conditions resolver/contract. Optionally restrict to specific dimensions.
| Name | Required | Description | Default |
|---|---|---|---|
| slugs | Yes | 2–4 resort slugs to compare, e.g. ["verbier","val-disere"] | |
| dimensions | No | Optional subset of: score, status, depth, snowfall24h, forecast14d, lifts, runs, snowQuality, summit, vertical, longestRun |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe read operations. The description adds context about the data source ('SnowSure conditions resolver/contract') and optional dimension filtering, which provides value beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, no wasted words. The core purpose and key constraints are front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (so return values need not be described), the description sufficiently covers purpose, parameter constraints, and data provenance. No gaps are evident for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaningful examples (e.g., '["verbier","val-disere"]') for the slugs parameter and lists the optional dimensions, enhancing understanding beyond the schema alone. Both parameters are clearly elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Compare 2–4 resorts side by side across snow, terrain, and live conditions', specifying the verb (compare), resource (resorts), and scope (2-4, multiple dimensions). This distinguishes it from single-resort tools like get_resort or specialized comparisons like compare_forecasts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a side-by-side comparison of multiple resorts across multiple dimensions is needed, and mentions optional dimensional restriction. However, it does not explicitly state when not to use (e.g., for a single resort or only forecasts) or name alternatives among siblings, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_best_powderFind fresh powderARead-onlyIdempotent
Find resorts with the freshest powder snow right now. Returns resorts sorted by 24-hour snowfall. Use for "where is it snowing?" or "fresh powder" queries.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default: 10) | |
| region | No | Filter by region | |
| minSnowfall | No | Minimum 24h snowfall in cm to include (default: 5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | Yes | |
| resorts | Yes | |
| markdown | Yes | Human-readable markdown summary (required for ChatGPT Instant mode). |
| subtitle | No | |
| updatedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by explaining the sorting by 24-hour snowfall and real-time nature, which is beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. The first sentence defines the action and output, the second provides usage context. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with optional parameters and an output schema, the description covers core purpose, ranking logic, and use cases. No gaps given the available structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all three parameters (limit, region, minSnowfall). The description does not add further parameter-specific details, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it finds resorts with the freshest powder snow, sorted by 24-hour snowfall. It distinguishes from sibling tools like 'find_powder_trips' or 'get_snow_report' by focusing on current conditions and ranking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use for 'where is it snowing?' or 'fresh powder' queries, providing clear context. It does not mention when not to use or alternatives, but the guidance is sufficient for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_flights_to_powderFlights to the powderARead-onlyIdempotent
Complete the trip: from a resort, find the nearest gateway airport(s) and get flight-search links from your home airport. The "get there" leg of the funnel — pair with find_best_powder / find_powder_trips (find fresh snow) → this → book_lodging (stay). Args: resort (slug, required — use search_resorts to resolve a name), optional origin (your home-airport IATA like DEN, or a city name).
| Name | Required | Description | Default |
|---|---|---|---|
| origin | No | Your departure airport IATA (e.g. DEN, LHR) or a city name. Optional — omit for an origin-less flight search. | |
| resort | Yes | Resort slug (use search_resorts first if you only have a name). |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description need not reiterate safety. It adds context about outputting flight-search links (not bookings), but this is already implied by annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and efficient, front-loaded with the primary action, followed by funnel positioning and parameter breakdown. No redundant sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essential aspects: main functionality, relationship to siblings, parameter guidance, and output type. Good annotations and output schema further reduce ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description repeats parameter details from schema with minor additions (e.g., 'use search_resorts to resolve a name'), offering marginal extra value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool finds gateway airports from a resort and returns flight-search links, positioning it as the 'get there' leg. It distinguishes from siblings like find_best_powder and book_lodging by specifying its role in the trip funnel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: after finding powder, before booking lodging. It names siblings (find_best_powder, find_powder_trips, book_lodging) and advises using search_resorts to resolve resort names, providing clear context for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_pass_resortsResorts on a ski passARead-onlyIdempotent
List the resorts on a ski pass, optionally filtered to a region. Returns names + SnowSure slugs you can pass to get_resort.
| Name | Required | Description | Default |
|---|---|---|---|
| passId | Yes | Pass id, e.g. ikon-pass | |
| region | No | Optional region filter (matches the pass’s region labels) |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent, read-only, non-destructive behavior. The description adds value by disclosing the return format (names + slugs) and the relationship with get_resort.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence of about 20 words, front-loading the main action without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and thorough annotations, the description is nearly complete, covering purpose, parameters, return format, and usage hint. Minor omission: no mention of pagination or ordering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description adds the meaningful detail that the region filter 'matches the pass's region labels', enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List the resorts on a ski pass' with a specific verb and resource, and distinguishes from siblings by mentioning the return of SnowSure slugs for use with get_resort.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing resorts on a pass with optional region filtering, but does not explicitly provide when-to-use or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_powder_tripsFind bookable powder tripsARead-onlyIdempotent
Powder trips you can BOOK: ranks resorts by their 14-day forecast (best chance of fresh snow in the bookable window) and returns handpicked luxury ski hotels at each — "where to go AND where to stay". Use for "where should I book for powder", "best powder trip this month", "book a ski trip with good snow coming". Optional vibe filter (lux | hip | family | budget) shows only hotels handpicked into that tier. Each hotel carries an attribution-tagged booking link; booking completes on LUXSKI.
| Name | Required | Description | Default |
|---|---|---|---|
| vibe | No | Only show handpicked hotels in this tier: lux, hip, family, or budget | |
| limit | No | Number of destinations (default: 5) | |
| region | No | Filter destinations by region |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint. Description adds that it uses 14-day forecast and handpicked hotels, but does not contradict annotations. No additional behavioral context beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph with front-loaded purpose, though slightly lengthy. Every sentence adds value including examples and optional filter explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, usage examples, and output (booking links). No missing information for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions. Description adds value by explaining default limit (5) and the purpose of vibe filter ('shows only hotels handpicked into that tier').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it ranks resorts by 14-day forecast and returns handpicked luxury hotels, using specific verbs like 'ranks' and 'returns'. It distinguishes from siblings like find_best_powder by focusing on bookable trips with hotel recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit query examples such as 'where should I book for powder' and explains optional vibe filter. No explicit when-not-to-use, but context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_resorts_by_criteriaFilter resorts by criteriaARead-onlyIdempotent
Find resorts matching specific criteria like minimum snow depth, elevation range, number of runs, or SnowSure rating. Advanced filtering for trip planning.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default: 20) | |
| region | No | Filter by region | |
| country | No | Filter by country | |
| minRuns | No | Minimum number of ski runs | |
| minDepth | No | Minimum snow depth in cm | |
| minScore | No | Minimum SnowSure score (0-100) | |
| minElevation | No | Minimum summit elevation in meters |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool is safe and read-only. The description adds 'Advanced filtering for trip planning', which provides context but no additional behavioral traits beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the core action and key criteria examples. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (mentioned in context signals) and full schema documentation for parameters, the description is sufficiently complete for a read-only filtering tool. It captures the essential criteria and use case for trip planning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters have descriptions in the input schema (100% coverage). The description mentions some example criteria (snow depth, elevation, runs, SnowSure), but it does not add meaning beyond what the schema already provides. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds resorts based on specific criteria like snow depth, elevation, runs, and SnowSure rating. The title 'Filter resorts by criteria' reinforces the purpose, and it distinguishes from sibling tools like 'search_resorts' and 'get_resort'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for advanced trip planning but does not explicitly state when to use this over alternatives like 'search_resorts' or when not to use it. No exclusions or comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_avalancheAvalanche bulletinARead-onlyIdempotent
Current avalanche danger bulletin for a resort's forecast zone (US, Canada, Switzerland in v1), relayed from the official warning service with the issuer + link. Returns 'no bulletin' when there's no forecast service for the area or it's off-season. NOT a substitute for the official bulletin or avalanche training.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug, e.g. jackson-hole |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds that the data is relayed from an official warning service with issuer/link, and describes the 'no bulletin' return value. This provides additional behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a warning, all front-loaded with the main purpose. No redundant information; every sentence adds value. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (not shown), return format details are not needed. The description covers geographic scope, data source, and edge case behavior. Annotations cover safety. Slightly lacking update frequency, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'slug' with schema description 'Resort slug, e.g. jackson-hole'. The description does not add further meaning beyond the schema. With 100% schema coverage, baseline score 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides the current avalanche danger bulletin for a resort's forecast zone, specifying geographic scope (US, Canada, Switzerland in v1) and edge case behavior (returns 'no bulletin' when unavailable). This differentiates it from sibling tools like get_snow_report or get_weather_forecast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when official avalanche info is needed, but does not explicitly state when to use it versus alternatives. It includes a warning about not being a substitute, but lacks clear guidance on when to prefer this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_destinationDestination hubARead-onlyIdempotent
Multi-mountain destination hub (Niseko, Chamonix, Aspen Snowmass umbrella) with a table of member ski areas. Use ONLY when the user names the hub itself — NOT for photo gallery (→ get_resort_photos on a specific mountain slug) and NOT for resort guide cards (→ get_resort_info).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Destination slug (e.g. niseko, chamonix, hakuba, aspen-snowmass) or alias like "hakuba valley" | |
| limit | No | Max member resorts to return (default 12) |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds that it returns a table of member ski areas, which is useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first defines purpose and output, second provides usage guidelines. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given existence of output schema and clear annotations, description is complete enough for an agent to understand the tool's role and when to invoke it versus the many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions in the schema are clear. Description does not add additional parameter-level semantics, but baseline of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it's a multi-mountain destination hub with a table of member ski areas, gives specific examples (Niseko, Chamonix, Aspen Snowmass), and explicitly distinguishes from sibling tools like get_resort_photos and get_resort_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use ('only when the user names the hub itself') and when not to, with specific alternative tool directions in parentheses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insightsSnowSure insightsBRead-onlyIdempotent
Get categorized SnowSure intelligence insights (not just snow totals). Answers questions like season vs 5yr norm, last season powder leaders, model accuracy by region, longest dry spell, trend pulse. Filter by category or insightType=intelligence to skip simple leaderboards.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | snapshot = one hemisphere; global = both hemispheres. | |
| category | No | Single insight category id from list_insight_categories. Omit to return all categories. | |
| hemisphere | No | Northern (nh) or southern (sh) hemisphere. Defaults to nh. | |
| insightType | No | data = leaderboards only; intelligence = analysis cards (recommended). |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to repeat safety. It adds context about the nature of insights (e.g., season norms, powder leaders) but does not disclose any unexpected behaviors or side effects beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the tool's purpose and examples, followed by a filtering tip. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the existence of an output schema and comprehensive parameter schemas, the description fails to mention a critical usage step: calling list_insight_categories first to obtain a category ID. This omission makes the description incomplete for an agent relying solely on it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters have descriptions in the input schema, providing 100% coverage. The main description adds value by relating insightType and category to filtering, but it does not explain scope or hemisphere beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves categorized SnowSure insights, not just snow totals, and provides example questions. It distinguishes from simple leaderboards by mentioning insightType=intelligence. However, it doesn't explicitly contrast with sibling tools like list_insight_categories or get_snow_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises filtering by category or insightType=intelligence to skip leaderboards, giving some usage guidance. However, it omits the crucial prerequisite of calling list_insight_categories first (mentioned only in the input schema description), which is a significant gap for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ml_trendsML/AI trendsARead-onlyIdempotent
Fetch SnowSure-unique ML/AI trend datasets from the public REST API. Use for powder-day leaders, bluebird-day leaders, bluebird predictions, improving/stable/declining score pulse, per-model accuracy weights, daily SnowSure score component history, ML extended outlook (days 8–14), global forecast trust, and powder/bluebird event logs. Start with dataset=catalog. Prefer get_insights for narrative intelligence cards; use this for raw rankings and time series.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback days for score_components (default 30, max 365). | |
| slug | No | Resort slug — required for score_components, vs_last_year, and season_stats; optional for extended_outlook (per-resort). | |
| limit | No | Max rows for leaderboards or snow_events (default 25, max 100). | |
| minCm | No | Minimum ML days 8–14 snow (cm) when dataset=extended_outlook leaderboard (default 0). | |
| stats | No | When dataset=snow_events, return season aggregates instead of events. | |
| resort | No | Resort slug filter when dataset=snow_events. | |
| dataset | Yes | Trend dataset to fetch. catalog lists all endpoints; powder_days / bluebird_days = season leaderboards; score_components needs slug. | |
| openOnly | No | When dataset=extended_outlook, filter to open resorts only (default true). | |
| eventType | No | Filter snow_events by event type. | |
| minSpread | No | Minimum 14d model spread (cm) when dataset=forecast_disagreement (default 5). |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the description is not required to repeat safety traits. It adds value by specifying the data source (public REST API) and listing the datasets, which gives insight into what the tool accesses. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences that front-load purpose, list datasets, and provide usage guidance. No filler words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters and an output schema, the description provides an effective overview of available datasets and a starting point. It differentiates from a major sibling tool. It doesn't need to detail every parameter since the schema covers it. A minor gap might be not explaining the behavior when no parameters are specified aside from dataset, but the schema and annotation imply safe read. Overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds organizational guidance (start with catalog, slug required for certain datasets) that enhances the schema descriptions, earning an extra point.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Fetch' and the resource 'SnowSure-unique ML/AI trend datasets'. It distinguishes itself from sibling tool 'get_insights' by noting its use for raw rankings and time series, and advises starting with dataset=catalog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use this tool (for raw rankings and time series) and when not to (prefer get_insights for narrative cards). Also recommends starting with dataset=catalog, giving clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_snow_reportMy personalized snow reportARead-onlyIdempotent
Personalized snow report for the signed-in user's saved resorts — live conditions for each, ranked best-first (open resorts with the freshest snow on top). Requires a SnowSure user access token (OAuth).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds ranking behavior (best-first, fresh snow) and auth requirement, providing context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with purpose and key details (ranking, auth).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and presence of output schema, description fully covers purpose, required auth, ranking, and behavior. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Description adds no parameter info but doesn't need to. Context about output ranking compensates for lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it provides a personalized snow report for the signed-in user's saved resorts, with live conditions ranked best-first. Distinguishes from generic get_snow_report and list_saved_resorts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions it requires OAuth token and is for saved resorts. Implicitly suggests when to use personalized report vs generic, but lacks explicit when-not-to-use or direct sibling comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operating_riskLift-operation riskARead-onlyIdempotent
Will the lifts run? A 48-hour operating-risk estimate from the Open-Meteo forecast — wind-hold (gusts), visibility, cold (wind-chill), and heavy-snow control delays. Modeled guidance, NOT the resort's own operating decision — always check live lift status.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations that confirm read-only and idempotent behavior, the description adds valuable details: the forecast source (Open-Meteo), time horizon (48 hours), specific risk factors (wind, visibility, cold, heavy snow), and a critical caveat that it is not the resort's decision. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, front-loaded with the core question 'Will the lifts run?', followed by essential details and a clear caveat. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and an output schema, the description fully covers the tool's purpose, inputs, and limitations. It provides sufficient context for an agent to decide when and how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the only parameter ('slug' with description 'Resort slug'). The description does not add extra parameter semantics beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool provides a 48-hour operating-risk estimate for lifts, using a specific verb 'get' and resource 'operating risk'. It distinguishes from siblings by focusing on lift operation risk, which is unique among the listed tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly tells when to use (to check if lifts will run) and when not to rely solely on it (modeled guidance, not the resort's own decision). It lacks explicit alternatives but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_passSki pass detailsARead-onlyIdempotent
Details for a multi-resort ski pass (Epic, Ikon, Mountain Collective, …): operator, season pricing tiers, destination count, regions, and the buy link.
| Name | Required | Description | Default |
|---|---|---|---|
| passId | Yes | Pass id, e.g. epic-pass, ikon-pass, mountain-collective |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, etc. The description adds value by specifying the exact data fields returned (operator, pricing tiers, etc.). There is no contradiction, and the added detail helps the agent understand the output without relying solely on the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the core purpose, no redundant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter), the presence of annotations covering behavior, and an output schema that likely details the return structure, the description is complete enough. It lists key output fields, and the agent can infer the rest from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'passId' is well-documented in the schema (with examples). Since schema coverage is 100%, the description adds no additional parameter meaning beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves details for a multi-resort ski pass, listing specific examples (Epic, Ikon, Mountain Collective) and the kinds of details returned (operator, pricing tiers, etc.). This distinguishes it from sibling tools like compare_passes and find_pass_resorts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies when to use (when you need details of a specific pass). Although it doesn't explicitly state when not to use or mention alternatives, the sibling context makes usage clear. A slight improvement would be to directly contrast with compare_passes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_regional_summaryRegional snow summaryARead-onlyIdempotent
Get a summary of snow conditions across an entire region or country with statistics and top resorts.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Geographic region to summarize, e.g. alps or japan. | |
| country | No | Exact country name when region is too broad, e.g. "Switzerland" or "Japan". |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, indicating safe behavior. The description adds that the summary includes 'statistics and top resorts' but offers no additional transparency about performance, latency, or data aggregation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no redundancy. It conveys the core purpose clearly, though it could optionally include a brief note on parameter usage without hurting conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (two optional parameters) and the presence of an output schema (not shown but indicated), the description sufficiently covers the tool's purpose and scope. It does not need to detail return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have descriptions. The description aligns with the schema by mentioning 'region or country' but does not add new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('summary of snow conditions across an entire region or country with statistics and top resorts'). It distinguishes from sibling tools like get_resort and get_snow_report, which target specific resorts, but does not explicitly mention this differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining aggregated snow data but provides no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions or prerequisites, relying on the user's understanding of the sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resortLive snow & forecastARead-onlyIdempotent
Single-resort data with a REQUIRED card parameter that picks the interactive UI. card=guide → resort info card (elevation, lifts, season dates). card=photos → photo gallery carousel. card=snow → snow conditions card (score, base depth, forecast). card=full → detailed markdown only, no card. "Resort guide" → card=guide. "Photos/gallery" → card=photos. "Conditions/forecast" / "is it open right now, base depth, lifts open of total" → card=snow (open status, base depth, and lifts open of total). Prefer get_resort_info / get_resort_photos when available (same cards).
| Name | Required | Description | Default |
|---|---|---|---|
| card | Yes | UI card type: guide (resort info), photos (gallery carousel), snow (conditions), full (text only) | |
| slug | Yes | Resort slug identifier (e.g., "aspen-mountain", "niseko-hanazono-resort", "jackson-hole") |
Output Schema
| Name | Required | Description |
|---|---|---|
| resort | No | Structured resort payload for inline widget rendering. |
| markdown | Yes | Human-readable markdown summary (required for ChatGPT Instant mode). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds context about interactive UI and card selection, but the safety profile is already clear from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections and examples. While slightly long, every sentence adds value and the front-loading is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 required params) and presence of output schema and sibling list, the description covers purpose, usage, parameter details, and alternatives comprehensively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant meaning by explaining each enum value with natural language examples and showing how to use the card parameter. This aids agent understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides single-resort data with a required card parameter for interactive UI. It distinguishes itself from sibling tools by mentioning get_resort_info and get_resort_photos as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use each card value with real-world queries, and advises preferring other tools when available. It provides concrete examples for each card type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resort_infoResort guide cardARead-onlyIdempotent
INTERACTIVE RESORT GUIDE CARD (Resort Info sidebar UI) — elevation, vertical, lifts, runs, skiable acres, average snowfall, season dates, ski passes, editorial description, hero/gallery carousel. REQUIRED when the user asks for: resort guide, mountain profile, resort info, lifts/runs/vertical/skiable area, season dates, ski passes, or "tell me about the mountain" (non-weather). Examples: "Aspen Mountain resort guide", "how many lifts at Jackson Hole". Do NOT use get_resort (that shows the snow conditions card).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug identifier (e.g., "aspen-mountain", "niseko-hanazono-resort", "jackson-hole") |
Output Schema
| Name | Required | Description |
|---|---|---|
| resort | No | Structured resort payload for inline widget rendering. |
| markdown | Yes | Human-readable markdown summary (required for ChatGPT Instant mode). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds context that the tool returns a card with a list of specific data fields, providing value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise (about 100 words) and front-loaded with the most important information. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and an output schema present, the description fully covers purpose, usage guidance, and contents of the card. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes the slug parameter with examples. Description does not add new semantic information beyond what's in the schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states that the tool returns an interactive resort guide card with specific details (elevation, vertical, lifts, etc.). Explicitly distinguishes from sibling get_resort which shows snow conditions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use contexts (e.g., resort guide, mountain profile, lifts/runs) and when-not-to-use with a clear alternative (get_resort for snow conditions). Includes examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resort_photosResort photo galleryARead-onlyIdempotent
INTERACTIVE PHOTO GALLERY CAROUSEL — official SnowSure resort photos (hero + Sanity gallery). REQUIRED for: photos, pictures, images, gallery, "show me photos of Vail/Aspen". Never use web search or inline images — call this tool. Do NOT use get_destination, get_resort_info, or ask_snowdata for photo requests.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug identifier (e.g., "aspen-mountain", "jackson-hole", "niseko-hanazono-resort") |
Output Schema
| Name | Required | Description |
|---|---|---|
| resort | No | Structured resort payload for inline widget rendering. |
| markdown | Yes | Human-readable markdown summary (required for ChatGPT Instant mode). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare safety (readOnlyHint, idempotentHint, destructiveHint). Description adds 'INTERACTIVE PHOTO GALLERY CAROUSEL' and specifies official SnowSure photos, providing behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one-line purpose, a list of required usage contexts, and exclusions. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists, annotations cover safety), the description is complete. It covers purpose, when to use, and what to avoid. No missing information for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for slug. Tool description mentions examples like 'Vail/Aspen' which adds minimal extra context but does not significantly enhance understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Title and description clearly identify tool as providing resort photos with specific sources (hero + Sanity gallery). Explicitly distinguishes from sibling tools by naming alternatives not to use (get_destination, get_resort_info, ask_snowdata).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (for photos, pictures, images, gallery, specific queries like 'show me photos of Vail/Aspen') and when not to use (do not use web search or inline images). Also lists sibling tools to avoid for photo requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_road_accessRoad & chain controlARead-onlyIdempotent
Driving access for a resort — chain-control / mountain-pass / road-surface conditions on nearby highways (California via Caltrans, Washington via WSDOT, Colorado via CDOT, Utah via UDOT). Returns 'no road data' outside the covered area. Links to the official DOT map; the resort's road status is authoritative.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. Description adds coverage limitations (specific states, 'no road data' fallback), data sources (Caltrans, WSDOT, etc.), and authoritative link, providing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences convey purpose, coverage, and caveats efficiently. No wasted words, front-loaded with action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given tool has output schema (not shown), description adequately covers what is returned (conditions, states, fallback), data sources, and authoritative note. No gaps for the stated functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single required parameter 'slug' has 100% schema coverage with description 'Resort slug'. Description does not add further parameter semantics, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns driving access info (chain-control, mountain-pass, road-surface) for resorts in CA, WA, CO, UT via specific DOTs. It distinguishes from siblings like get_road_cameras and get_road_weather by specifying the type of road data and coverage area.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use when resort road access conditions are needed in covered states, and notes 'no road data' outside. However, it does not explicitly state when not to use or provide alternatives among siblings, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_road_camerasRoad camerasARead-onlyIdempotent
Live roadside DOT/CCTV camera stills on the highways near a resort — shows what the drive actually looks like right now (California via Caltrans, Washington via WSDOT, Utah via UDOT). Distinct from resort webcams. Returns 'no road cameras' outside the covered area; each camera includes a live image URL.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. The description adds that images are live stills with URLs, and returns 'no road cameras' outside coverage area. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient sentence conveying purpose, scope, and behavior without redundancy. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given annotations, output schema existence, and limited parameters, the description fully covers intent, result shape (image URL), and edge case ('no road cameras'). Complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter (slug) with 100% coverage. Description implicitly aligns by stating 'near a resort'. No additional syntax details needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the tool returns live roadside DOT/CCTV camera stills near a resort, naming specific agencies (Caltrans, WSDOT, UDOT). It clearly distinguishes from resort webcams and notes coverage limitations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use (live driving conditions) and distinguishes from resort webcams, but does not explicitly name alternatives like get_webcam_status or get_road_weather for comparative purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_road_weatherRoadside weatherARead-onlyIdempotent
Measured roadside weather (RWIS) on the highways near a resort — surface + air temperature, visibility, wind, precipitation (Colorado via CDOT, Washington via WSDOT, Utah via UDOT). Sensor data on the actual road, distinct from the modeled get_operating_risk. Returns 'no road weather' outside the covered area.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds useful behavioral context: data sources (CDOT, WSDOT, UDOT), coverage boundaries, and return value for uncovered areas. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words: the first states the core function and data types, the second differentiates from a sibling, and the third notes the fallback. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple interface (one required param, output schema exists), the description covers the essential context: data types, sources, coverage area, and fallback. It could mention data freshness, but overall it is sufficient for an agent to decide to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the slug parameter. The description reinforces that the slug identifies a resort but does not add new semantic detail beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns measured roadside weather data (RWIS) including surface/air temperature, visibility, wind, and precipitation, and explicitly distinguishes itself from the modeled get_operating_risk sibling. It specifies the geographic scope (Colorado, Washington, Utah) and the fallback behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly differentiates from get_operating_risk by noting sensor vs. modeled data, implying when to use this tool. However, it does not provide guidance on when to use alternatives like get_road_access or get_road_cameras, nor does it state prerequisites or exclusions beyond coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_season_openingsSeason opening calendarARead-onlyIdempotent
Resorts whose season OPENING DATE is a specific day — answers "what opens today?", "opening this week", or "which resorts start their season on June 27?". Returns only resorts scheduled or confirmed to open on that date, NOT all currently-open resorts. Prefer over get_southern_hemisphere_report for opening-day questions. For historical-norm questions ("which resort typically opens earliest each season", "is X usually open by Thanksgiving / mid-December"), use ask_snowdata instead — those are about typical timing, not a specific calendar date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Opening date YYYY-MM-DD. Defaults to today (UTC). | |
| region | No | Filter by region | |
| country | No | Filter by country, e.g. Chile or New Zealand | |
| hemisphere | No | Northern or Southern Hemisphere filter |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds that the tool returns only resorts scheduled/confirmed to open on that date, not all currently-open resorts, which provides valuable behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core functionality and uses two sentences efficiently. While it is fairly long, every sentence adds value and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of output schema and 100% parameter coverage, the description is mostly complete. It covers the main use case and distinctions, but could mention potential limitations like data freshness or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add further meaning to parameters beyond what the schema already provides; it only mentions date-related usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool answers queries like 'what opens today?' and 'which resorts start their season on June 27?', using specific verbs and resource. It distinguishes itself from siblings by specifying that it returns only scheduled opening dates, not all open resorts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to prefer this tool over get_southern_hemisphere_report for opening-day questions, and to use ask_snowdata for historical-norm questions. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_snow_historyResort snow historyARead-onlyIdempotent
Get historical snowfall data for a resort including season totals, comparison to 5-year and 30-year averages, and best months to visit.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, safe, idempotent behavior. Description adds valuable context about the specific data returned (averages, best months), enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient, no wasted words. Perfectly front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description doesn't need to explain return values. It covers purpose and key data points completely for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'slug' with schema description 'Resort slug'. Schema coverage is 100%, so description adds no additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets historical snowfall data for a resort, including season totals, comparisons to averages, and best months. This distinguishes it from siblings like get_snow_report (current conditions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. It is implied for historical data, but alternatives are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_snow_reportGlobal snow reportARead-onlyIdempotent
Get the global snow report with top-ranked resorts by snow conditions. Returns resorts sorted by SnowSure score, forecast, or recent snowfall. Use this for "where has the best snow?" or "top ski resorts right now" queries.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order: snowsure (AI rating), forecast (14-day snow), recent (24h snowfall), depth (current base) | |
| limit | No | Number of resorts to return (default: 10, max: 50) | |
| region | No | Filter by region |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | Yes | |
| resorts | Yes | |
| markdown | Yes | Human-readable markdown summary (required for ChatGPT Instant mode). |
| subtitle | No | |
| updatedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already confirm read-only, idempotent, non-destructive behavior. The description adds that results are sorted by SnowSure score, forecast, or recent snowfall, enhancing understanding beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: one for purpose, one for usage. No redundant information, front-loaded with key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters fully described in schema and an output schema present, the description covers core functionality well. Could briefly mention default limit (10) but not necessary given schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining sort options in user-friendly terms (e.g., 'snowsure (AI rating)') that complement the schema's enum descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a global snow report with top-ranked resorts sorted by snow conditions. It explicitly distinguishes its use case ('where has the best snow?', 'top ski resorts right now') from sibling tools like find_best_powder or compare_resorts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific query examples for when to use the tool. While it does not explicitly exclude alternatives, the examples serve as clear context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_southern_hemisphere_reportSouthern Hemisphere reportARead-onlyIdempotent
Get snow conditions for Southern Hemisphere ski resorts (Australia, New Zealand, Argentina, Chile) currently in season. Answers "is Perisher / Portillo / Valle Nevado open right now and what are the current conditions" and "which Southern Hemisphere region — the Andes, Australia, or NZ — has the best snow right now". Use for June–October SH ski queries. Prefers operator-verified data when available. Do NOT use for a specific opening DATE — use get_season_openings instead.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort: snowsure (AI score), recent (24h snow), depth (base depth) | |
| limit | No | Max resorts (default: 10) | |
| country | No | Optional country filter |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds 'Prefers operator-verified data when available,' providing a behavioral nuance beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with core purpose, and every sentence adds value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the optional params and existence of an output schema, the description covers purpose, usage, behavioral nuance, and exclusions. It is self-contained and sufficient for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description need not add much. It provides context on how parameters relate to use cases (e.g., sorting by snowsure for best region), but doesn't significantly extend schema meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets snow conditions for Southern Hemisphere ski resorts currently in season, and explicitly distinguishes it from get_season_openings for opening dates. It answers specific questions like 'is Perisher open?' and 'which region has best snow?'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use for June–October SH ski queries and not for specific opening dates, directing to get_season_openings. It also outlines example questions, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weather_forecastResort weather forecastARead-onlyIdempotent
Get detailed day-by-day weather forecast for a resort including temperature, snowfall, wind, and conditions for each of the next 14 days.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to forecast (default: 7, max: 14) | |
| slug | Yes | Resort slug |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds time horizon and return fields but no further behavioral traits (rate limits, data source). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 20 words, front-loaded with main action. Every word contributes to understanding. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (2 params, output schema present, annotations rich), description sufficiently covers what the tool returns and time range. Complete for a forecast tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% fully documents parameters. Description repeats some fields but adds no extra meaning beyond schema. Baseline score of 3 applies due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'get', resource 'weather forecast for a resort', and details (day-by-day, temperature, snowfall, wind, conditions, next 14 days). Title 'Resort weather forecast' reinforces purpose. Distinct from sibling tools like get_snow_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for detailed resort weather forecasts but lacks explicit guidance on when to use this over siblings (e.g., get_snow_report, get_road_weather). No exclusions or alternatives stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webcam_statusResort webcamsARead-onlyIdempotent
Get live webcam links and status for a resort to see current on-mountain conditions visually — answers "show me the webcam / live cam at ", "current conditions on camera", and named-cam lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds no additional behavioral context beyond what is in annotations, such as side effects, permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no superfluous information. Front-loaded with the main purpose and example queries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description sufficiently conveys the tool's functionality. It covers purpose, usage examples, and resource identification without missing key details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'slug', which is adequately described in the schema. The description does not add any extra meaning beyond the schema's 'Resort slug'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves live webcam links and status for a resort, with specific examples of queries it answers. It distinguishes from sibling tools like get_resort_photos or get_snow_report by focusing on webcams.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit query patterns (e.g., 'show me the webcam at <resort>') and mentions named-cam lookups. Lacks explicit when-not-to-use or comparison to alternatives, but the context is sufficient for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_alertsList alert subscriptionsARead-onlyIdempotent
List the signed-in user's alert subscriptions. Requires a SnowSure user access token (OAuth).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true. Description adds the OAuth token requirement, providing additional behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no wasted words, purpose front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and output schema present, the description is complete. Includes auth requirement and clearly states action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in input schema, so description doesn't need to add parameter info. Baseline 4 for 0 params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List the signed-in user's alert subscriptions' with specific verb and resource. Distinguishes from sibling tools like subscribe_alerts and unsubscribe_alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions OAuth token requirement. While it doesn't explicitly mention when not to use or alternatives, the context of listing subscriptions is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_insight_categoriesList insight categoriesARead-onlyIdempotent
List SnowSure insight categories (live conditions, current season, last season, forecast trust, patterns, SnowSure index, ground truth). Use before get_insights to choose a category filter. Lighter than raw leaderboards — retrospective and verification-backed cards.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds context that cards are 'retrospective and verification-backed', which is useful beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, each sentence adding value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with an output schema (implied), the description explains what categories are, when to use it, and its lightweight nature. Completely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description adds no parameter info, but that's acceptable as the baseline is 4 for zero-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'SnowSure insight categories', and lists specific examples. It distinguishes from siblings by stating it is used before get_insights and is lighter than raw leaderboards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use before get_insights to choose a category filter', providing clear when-to-use guidance. Also contrasts with raw leaderboards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_saved_resortsList saved resortsARead-onlyIdempotent
List the signed-in user's saved resorts. Requires a SnowSure user access token (OAuth); without one it returns an authorization-required error telling the agent how to connect.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context about authentication requirements and error handling, which is beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence without any wasted words. It front-loads the primary action and includes essential context (auth requirement), making it very concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, annotations cover safety, and an output schema exists, the description is complete. It adds the key piece of missing context (authentication), making the tool fully defined for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (input schema empty), so the description does not need to add parameter meaning. Baseline for zero parameters with 100% coverage is 4, and the description adequately handles this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('the signed-in user's saved resorts'), using a specific verb and noun. It distinguishes clearly from sibling tools like 'save_resort' and 'remove_saved_resort'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies a prerequisite ('Requires a SnowSure user access token') and describes the error behavior when not met. While it does not explicitly list alternatives, the context is clear enough for an agent to decide when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_ski_road_tripPlan a ski road tripARead-onlyIdempotent
Plan a multi-stop ski road trip: picks the top-scoring resorts in a region, orders them into a drivable route (nearest-neighbour, minimal backtracking), allocates your days across stops, estimates each driving leg, and folds in live conditions plus chain-control where covered. Args: region (required), days, optional pass.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| pass | No | Optional ski pass to limit stops (e.g. epic, ikon) | |
| region | Yes | europe | north-america | asia | oceania | south-america | alps | rockies | japan | any |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only, idempotent, non-destructive behavior, and the description adds algorithmic details: nearest-neighbor ordering, minimal backtracking, day allocation, driving estimates, and integration of live conditions and chain-control. No contradictions and significant extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the primary purpose and packs many details efficiently. It could benefit from slight restructuring for readability, but it avoids fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers inputs, algorithm, and outputs. An output schema exists, so return values are documented elsewhere. Missing are edge cases like insufficient days or empty results, but overall it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% with clear parameter descriptions for region, days, and pass. The description merely restates 'Args: region (required), days, optional pass' and adds no new semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool plans a multi-stop ski road trip with specific steps: picking top-scoring resorts, ordering by nearest-neighbor, allocating days, estimating driving legs, and incorporating live conditions. This distinguishes it from sibling tools like plan_ski_trip which likely handles single destinations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly suggests use for multi-stop road trips but lacks explicit guidance on when to use versus alternatives such as plan_ski_trip or find_powder_trips. No 'when not to use' or condition-based exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_ski_tripPlan a ski tripCRead-onlyIdempotent
Get ski trip recommendations based on dates, preferences, and conditions. Suggests best resorts for a given time period.
| Name | Required | Description | Default |
|---|---|---|---|
| dates | No | When you plan to travel — month name or date range, e.g. "February" or "Jan 15-22". | |
| level | No | Skier or snowboarder ability level. | |
| region | No | Preferred ski region. Defaults to worldwide (any). | |
| priority | No | Optional main trip priority (single value). Omit for best overall SnowSure score ranking. |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. However, the description adds no behavioral context beyond 'recommendations'—e.g., what data sources are used, how conditions are evaluated, or if any side effects exist (none per annotations).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are concise and front-load the core action. However, the first sentence is slightly vague ('conditions' is broad), but overall economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 optional parameters, an output schema, and many siblings, the description is adequate but vague. It doesn't hint at the SnowSure scoring or that it uses non-ski conditions. The output schema covers return details, so that gap is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with detailed descriptions for all 4 parameters. The description's mention of 'dates, preferences, and conditions' aligns but does not add significant new meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('ski trip recommendations') and mentions suggesting best resorts, making the purpose clear. However, it does not explicitly differentiate from sibling tools like find_resorts_by_criteria, which may overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like find_resorts_by_criteria or compare_resorts. The description implies it's for trip planning with dates and preferences but does not state when it is preferred or excluded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_saved_resortRemove a saved resortADestructiveIdempotent
Remove a resort from the signed-in user's saved list. Requires a SnowSure user access token (OAuth).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug to remove |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds authentication context, which is useful. No contradiction, but little extra behavioral disclosure beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be detailed. Description covers action and auth for this simple one-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for 'slug'. The description does not add additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a specific verb ('Remove') and resource ('resort from the signed-in user's saved list'). It clearly distinguishes from sibling tools like 'save_resort' and 'list_saved_resorts'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a prerequisite ('Requires SnowSure user access token (OAuth)'). Use case is clear, but does not explicitly state when not to use or contrast with alternatives, though sibling context helps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_resortSave a resortAIdempotent
Save a resort to the signed-in user's favorites. Requires a SnowSure user access token (OAuth). The slug must be a real SnowSure resort.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Resort slug to save, e.g. jackson-hole |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotency and non-destructive hints. The description adds important context: requires authentication via OAuth and that the slug must represent a real resort. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Key information (action, auth, parameter constraint) is front-loaded. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description covers auth, parameter validity, and the action. It is complete for selecting and using the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'slug' has 100% schema coverage with a description. The tool description adds that the slug must be a real SnowSure resort, which provides additional validation context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Save a resort') and the resource ('signed-in user's favorites'), with specific verb and resource. It distinguishes from siblings like 'remove_saved_resort' and 'list_saved_resorts'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use (saving to favorites) and includes prerequisites (OAuth token, real slug). It does not explicitly state when not to use, but sibling names make the exclusion clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_resortsSearch resortsARead-onlyIdempotent
Search for ski resorts by name, country, or region. Returns matching resorts with basic conditions. Use for "find resorts in [location]" or "search [name]" queries.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to return (default: 20) | |
| query | No | Search query - can be resort name, country, or partial match | |
| country | No | Filter by exact country name (e.g., "Japan", "Switzerland", "United States") |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds that it returns 'basic conditions', which is additional context but not critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words. Front-loaded with the core purpose, then provides usage examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers the tool's behavior. Mentions 'basic conditions' which gives a hint about return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and includes descriptions for all three parameters. The description adds context by mentioning filtering by name, country, or region, but does not go beyond the schema for limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search', the resource 'resorts', and the methods 'by name, country, or region'. It effectively distinguishes this tool from siblings like 'find_resorts_by_criteria' or 'get_resort'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage examples for common query patterns ('find resorts in [location]', 'search [name]'). Does not specify when not to use or mention alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribe_alertsSubscribe to snow alertsA
Subscribe the signed-in user to snow alerts. Requires a SnowSure user access token (OAuth). type: 'powder' (OBSERVED fresh snow >= thresholdCm in 24h), 'forecast' (the 14-day FORECAST clears thresholdCm within windowDays — the proactive 'tell me when a powder trip is forming' watcher), 'opening' (resort opens for the season), or 'bluebird' (powder day then clear skies).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Alert type | |
| scope | No | Resort slug, or 'any' for all resorts (default 'any') | |
| channel | No | Delivery channel (default email) | |
| windowDays | No | forecast alerts only: scan the next N days of forecast (1–14, default 14) | |
| thresholdCm | No | Snow threshold in cm — fresh-snow for powder (default 15), 14-day forecast total for forecast (default 30) |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and destructiveHint; description adds OAuth requirement but does not disclose side effects like overriding existing subscriptions, limits, or confirmation behavior. Reasonable but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is succinct, front-loaded with purpose, and every sentence adds value. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and an output schema, the description covers core purpose, auth, and alert types. It could mention duplicate behavior or limits, but overall complete enough for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description adds meaning by explaining enum values for 'type' parameter (e.g., powder, forecast). This goes beyond the schema descriptions, though other parameters are not elaborated further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool subscribes the signed-in user to snow alerts and lists the specific alert types with explanations. It distinguishes from sibling tools like unsubscribe_alerts and list_alerts by its action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions OAuth token requirement but does not specify when to use this tool versus alternatives (e.g., when to use subscribe vs list vs unsubscribe). No explicit when-not or context for choosing among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unsubscribe_alertsUnsubscribe from alertsADestructiveIdempotent
Remove one of the signed-in user's alert subscriptions by id (from list_alerts). Requires a SnowSure user access token (OAuth).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subscription id to remove |
Output Schema
| Name | Required | Description |
|---|---|---|
| markdown | No | Human-readable markdown summary of the tool result (may be omitted when structuredContent carries a typed payload; content[0].text always has the prose). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations by stating the OAuth requirement and the source of the id, which helps the agent understand prerequisites and workflow. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the core purpose and follow with a key requirement, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description adequately covers the action, parameter source, and authentication requirement, making it complete for a simple unsubscribe operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the 'id' parameter by indicating it comes from list_alerts, which is not in the schema's description. Schema coverage is 100%, but the description still adds value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove'), the resource ('alert subscriptions'), and specifies that the id comes from list_alerts, distinguishing it from sibling tools like subscribe_alerts and list_alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use (to remove a subscription by id) and a prerequisite (requires OAuth token), but does not explicitly mention when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes with detailed descriptions specifying when to use each, but some overlap exists (e.g., multiple tools for snow conditions and resort info). The descriptions help differentiate, but the volume may cause confusion.
All tool names follow a consistent verb_noun pattern in snake_case, such as 'get_resort_info', 'compare_resorts', 'find_best_powder'. No mixing of conventions, making it predictable.
With 40 tools, the server is heavily loaded for a single domain. While each tool has a specific role, many could be consolidated (e.g., multiple 'get' tools). This makes the set feel bloated and harder to navigate.
The server covers a wide range of ski trip planning needs: conditions, forecasts, history, passes, flights, lodging, road conditions, alerts, and user preferences. Minor gaps exist (e.g., no direct booking), but the surface is comprehensive.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Live ski snow, multi-model forecasts, powder rankings & a grounded Answer Engine for 500+ resorts.
Live verified resort snow, forecasts, powder search, trip planning & grounded Q&A for 430+ resorts.
Snow forecasts, lift status, season history, costs and AI ski trip planning for Europe
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides access to real-time and historical snow conditions, weather data, and snowpack analysis from over 800 SNOTEL stations across the western United States through the USDA Air and Water Database API.2MIT
- AlicenseNot gradedqualityDmaintenanceGlobal weather intelligence for AI assistants providing 10 weather tools — forecasts, historical data, air quality, marine, geocoding, elevation, and climate projections at 1km resolution with 80+ years of archive.1MIT

dynamicfeed-mcpofficial
AlicenseNot gradedqualityBmaintenance62 live, cryptographically signed data tools for AI agents and robots: weather, natural hazards, flights, shipping, space, CVEs, sanctions, software versions, sea ice and more. Every datapoint carries source, licence, timestamp and an Ed25519 signature.13MIT- AlicenseNot gradedqualityFmaintenanceProvides weather and climate intelligence for AI agents, including current conditions, forecasts, historical data, severe-weather alerts, agricultural outlook, and travel conditions via free and paid tools.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mikeslone/snowsure-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server