MCP-Server

Veabird: ski & beach trip planner

io.github.alexchouck-hash/veabird
Reisen & Hospitality Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Plans ski and beach trips using resort matching, conditions, forecasts, lodging, flights, activities and travel advisories.

beach_conditions
Conditions at a beach resort on a date
Full conditions for one beach resort on one date: 0-100 beach score with per-metric scores, sargassum, weather, water temperature, waves and rip currents, UV, crowds, hurricane risk, holidays. For today, also live conditions and alerts. Days 0-15 are forecasts, later dates climate outlooks.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['resort'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD, today to ~365 days out (default today).'}, 'resort': {'type': 'string', 'description': 'Resort id or name'}}}
better_nearby_beaches
Better nearby beaches
For a beach resort and date (within 16 days), nearby resorts with a meaningfully higher beach score: swap suggestions when sargassum or weather is bad.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['resort'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD'}, 'resort': {'type': 'string'}, 'radiusMiles': {'type': 'number', 'maximum': 1000, 'minimum': 25}}}
find_flights
Flight searches to a resort
Pre-filled flight searches from the traveler's home airport to the best gateway airports for a ski or beach resort (or any airport code), with the drive from each airport to the resort.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['from', 'to', 'depart'], 'properties': {'to': {'type': 'string', 'description': 'Ski or beach resort name/id, or a destination airport code.'}, 'from': {'type': 'string', 'description': "Traveler's home airport code (e.g. DFW), city (e.g. 'Dallas') or 'lat,lon'."}, 'adults': {'type': 'integer', 'maximum': 16, 'minimum': 1, 'description': 'Adults (default 2).'}, 'depart': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD'}, 'return': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Return date (optional for one-way).'}, 'childrenAges': {'type': 'array', 'items': {'type': 'integer', 'maximum': 17, 'minimum': 0}, 'maxItems': 8, 'description': 'Ages of children traveling, e.g. [6, 9].'}}}
find_lodging
Find places to stay
Places to stay near a ski or beach resort (or any 'lat,lon') for given dates and party: live nightly prices, ratings and photos where available, filtered by budget, plus hotel and vacation-rental searches.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['near', 'checkin', 'checkout'], 'properties': {'near': {'type': 'string', 'description': "Ski or beach resort name/id, or 'lat,lon'."}, 'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1}, 'rooms': {'type': 'integer', 'maximum': 8, 'minimum': 1, 'description': 'Rooms needed (default 1).'}, 'adults': {'type': 'integer', 'maximum': 16, 'minimum': 1, 'description': 'Adults (default 2).'}, 'checkin': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD'}, 'checkout': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD'}, 'radiusMiles': {'type': 'number', 'maximum': 30, 'minimum': 0.5, 'description': 'Search radius (default 5).'}, 'childrenAges': {'type': 'array', 'items': {'type': 'integer', 'maximum': 17, 'minimum': 0}, 'maxItems': 8, 'description': 'Ages of children traveling, e.g. [6, 9].'}, 'maxPricePerNight': {'type': 'number', 'maximum': 20000, 'minimum': 20, 'description': 'Lodging budget per night for the whole party, in USD.'}}}
find_ski_resorts
Find the best ski resorts for a traveler
Ranks ski resorts for one traveler or group: terrain that fits their ability (beginner/intermediate/advanced/expert, or a mixed group), snow and crowds for their dates, travel from their home airport or city (drive or fly), and their Epic/Ikon pass. Returns the reasons for each pick plus lodging, flight and rental links. Use for 'where should I ski' questions.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'properties': {'area': {'type': 'string', 'description': "Limit to a country, state or range, e.g. 'colorado', 'utah', 'alps', 'japan', 'US'."}, 'from': {'type': 'string', 'description': "Traveler's home airport code (e.g. DFW), city (e.g. 'Dallas') or 'lat,lon'."}, 'pass': {'enum': ['epic', 'ikon', 'none'], 'type': 'string', 'description': 'Season pass they hold.'}, 'limit': {'type': 'integer', 'maximum': 15, 'minimum': 1, 'description': 'How many resorts (default 5).'}, 'budget': {'enum': ['value', 'mid', 'luxury'], 'type': 'string', 'description': 'Value weights pass coverage and driving more heavily. Use find_lodging for nightly prices.'}, 'depart': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'First ski day, YYYY-MM-DD (default today).'}, 'nights': {'type': 'integer', 'maximum': 21, 'minimum': 1, 'description': 'Trip length in nights (default 3).'}, 'travel': {'enum': ['drive', 'fly', 'either'], 'type': 'string', 'description': 'How they want to get there (default either).'}, 'ability': {'type': 'array', 'items': {'enum': ['beginner', 'intermediate', 'advanced', 'expert'], 'type': 'string'}, 'description': "Ability of each skier or the group, e.g. ['intermediate'] or ['advanced','beginner']."}, 'childrenAges': {'type': 'array', 'items': {'type': 'integer', 'maximum': 17, 'minimum': 0}, 'maxItems': 8, 'description': 'Ages of children traveling, e.g. [6, 9].'}, 'maxDriveHours': {'type': 'number', 'maximum': 16, 'minimum': 0.5, 'description': 'Longest acceptable drive (default 5).'}}}
hurricane_threats
Active hurricanes and threatened resorts
Active Atlantic tropical storms and hurricanes (NOAA NHC) with position, intensity and track, and which Veabird beach resorts are threatened.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'properties': {'resort': {'type': 'string', 'description': 'Optional resort to check'}}}
plan_trip
Plan a ski or beach trip
Everything to book one trip to a ski or beach resort: conditions for the dates, places to stay (live nightly prices with photos where available, plus rental and hotel searches), flights from the traveler's airport to the best gateway, and extras (lift tickets, ski rentals, tours, car hire, insurance).
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['resort', 'depart'], 'properties': {'from': {'type': 'string', 'description': "Traveler's home airport code (e.g. DFW), city (e.g. 'Dallas') or 'lat,lon'."}, 'kind': {'enum': ['ski', 'beach'], 'type': 'string', 'description': 'Only if the name is ambiguous.'}, 'adults': {'type': 'integer', 'maximum': 16, 'minimum': 1, 'description': 'Adults (default 2).'}, 'depart': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Arrival date, YYYY-MM-DD.'}, 'resort': {'type': 'string', 'description': 'Ski or beach resort name or id.'}, 'return': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Departure date (default 4 nights later).'}, 'childrenAges': {'type': 'array', 'items': {'type': 'integer', 'maximum': 17, 'minimum': 0}, 'maxItems': 8, 'description': 'Ages of children traveling, e.g. [6, 9].'}, 'maxPricePerNight': {'type': 'number', 'maximum': 20000, 'minimum': 20, 'description': 'Lodging budget per night for the whole party, in USD.'}}}
rank_beaches
Best beach resorts for a date
Rank beach resorts by 0-100 beach score for a date, optionally within a region, island or country, or a radius around a resort. With `from`, also gives each resort's airports and a flight search. Use for 'where should I go to the beach' questions.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD (default today). Beyond 16 days needs a narrow query or near.'}, 'from': {'type': 'string', 'description': "Traveler's home airport code (e.g. DFW), city (e.g. 'Dallas') or 'lat,lon'."}, 'near': {'type': 'string', 'description': 'Resort id or name to rank around.'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Default 8.'}, 'query': {'type': 'string', 'description': "Region, island, town or country, e.g. 'mexico', 'bahamas', 'punta cana'."}, 'radiusMiles': {'type': 'number', 'maximum': 2000, 'minimum': 10, 'description': 'With near: max distance (default 300).'}}}
sargassum_forecast
Sargassum forecast for a beach resort
Sargassum (seaweed) outlook for a beach resort: the next 16 days in detail plus a weekly outlook for coming months, barrier and cleanup programs, and the model's source and held-out skill.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['resort'], 'properties': {'weeks': {'type': 'integer', 'maximum': 52, 'minimum': 1, 'description': 'Weekly outlook length (default 12)'}, 'resort': {'type': 'string', 'description': 'Resort id or name'}}}
sargassum_model_skill
Sargassum model accuracy
How well Veabird's sargassum model performs on held-out years (AUC, Brier score, calibration) versus baselines.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'properties': {}}
search_beach_resorts
Search beach resorts
Search Veabird's 1,400+ beach resorts (Caribbean, Gulf of Mexico, Mexico's Pacific coast, Hawaii) by name, town, island, region or country. Returns ids, today's headline conditions, photos and page links.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'description': "e.g. 'tulum', 'punta cana', 'barbados'"}}}
search_ski_resorts
Search ski resorts
Search Veabird's ~300 ski resorts by name, country, state or range, optionally only those on a pass. Returns ids, terrain mix, passes, gateway airports and forecast links.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'properties': {'pass': {'enum': ['epic', 'ikon'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'description': "e.g. 'utah', 'alps', 'whistler', 'japan'"}}}
ski_conditions
Snow conditions at a ski resort
Today's 0-100 'ski today' score (fresh snow, base depth, weather, crowds), the next 7 days of summit snowfall and temperature, crowd outlook, terrain mix, passes and gateway airport for one ski resort.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['resort'], 'properties': {'resort': {'type': 'string', 'description': "Ski resort name or id, e.g. 'Breckenridge'."}}}
tides
Tide times
High and low tide times and heights at a beach resort for the next days (Open-Meteo sea level model, heights relative to mean sea level).
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['resort'], 'properties': {'days': {'type': 'integer', 'maximum': 7, 'minimum': 1}, 'resort': {'type': 'string'}}}
travel_advisory
Travel advisory (crime and safety)
US State Department travel advisory level (1-4) and summary for a country or a beach resort's country, plus Veabird's local safety notes.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'properties': {'resort': {'type': 'string'}, 'country': {'type': 'string', 'description': 'ISO2 code, e.g. MX, JM, DO'}}}
Hinzugefügt
find_flights
2. October 2026 02:40
Hinzugefügt
find_lodging
2. October 2026 02:40
Hinzugefügt
plan_trip
2. October 2026 02:40
Hinzugefügt
sargassum_model_skill
2. October 2026 02:40
Hinzugefügt
tides
2. October 2026 02:40
Hinzugefügt
travel_advisory
2. October 2026 02:40
Hinzugefügt
hurricane_threats
2. October 2026 02:40
Hinzugefügt
sargassum_forecast
2. October 2026 02:40
Hinzugefügt
better_nearby_beaches
2. October 2026 02:40
Hinzugefügt
rank_beaches
2. October 2026 02:40
Hinzugefügt
beach_conditions
2. October 2026 02:40
Hinzugefügt
search_beach_resorts
2. October 2026 02:40
Hinzugefügt
search_ski_resorts
2. October 2026 02:40
Hinzugefügt
ski_conditions
2. October 2026 02:40
Hinzugefügt
find_ski_resorts
2. October 2026 02:40