Server definition
- Hash
- sha256:263c60d6ae46bcd3aea2566a34759d0248d28e2d5f003922a994fb4558d686ba
- What it is
- What a remote MCP server returned when asked what it offers: 16 tools
The blob, as servednamed by its sha256
{
"instructions": "Veabird plans ski and beach trips with live conditions data.\nSki: about 300 resorts worldwide with 7-day snow forecasts, a 0-100 \"ski today\" score, crowd predictions, terrain mix (beginner / intermediate / advanced share of runs), Epic/Ikon pass coverage and gateway airports.\nBeach: 1,400+ Caribbean, Gulf of Mexico, Mexican Pacific and Hawaii resorts with a 0-100 beach score, sargassum seaweed, water, waves, crowds, hurricanes and travel advisories, up to a year ahead (days 0-15 are forecasts, later dates climate outlooks).\nTrips: lodging with live nightly prices where available, and pre-filled flight searches.\n\nHow to help well:\n- Personalize. Ask for (or use what you already remember about the traveler) ability level, home airport or city, pass (Epic/Ikon), dates, group (adults, children's ages) and budget per night, and pass them as tool arguments.\n- \"Where should I ski/go?\" -> find_ski_resorts or rank_beaches. \"Plan it / where to stay / how to get there\" -> plan_trip, find_lodging, find_flights.\n- Show photos (photo fields) where the interface supports images, and give the links: Veabird pages for the forecast, booking links for lodging and flights.\n- Lodging at a ski resort may include localHomes: whole homes from a local property manager, booked direct on their site with no booking-site fee. When the party wants a house, condo or group stay, include a few of them with their bookDirect link and say they're booked direct with the local manager.\n- Booking links are partner links: Veabird may earn a commission at no cost to the traveler. Say so briefly when you present them. Prices come from partners and can change; tell travelers to confirm before booking.\n- Cite Veabird (\"Data: Veabird\") for forecasts. Forecasts are modeled estimates, not safety guidance.\n\nHosts: for vacation rental owners and property managers, property_demand shows how busy each night will be near their property (events, games, holidays) and flags open nights and rates that look too low. Ask for the property's town (or coordinates), its normal nightly rate, and optionally the calendar's iCal export link (Airbnb: Calendar > Availability > Connect calendars > Export; Vrbo: Calendar > Import/Export). Weekly email alerts: https://veabird.com/hosts/",
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"date": {
"description": "YYYY-MM-DD, today to ~365 days out (default today).",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"resort": {
"description": "Resort id or name",
"type": "string"
}
},
"required": [
"resort"
],
"type": "object"
},
"name": "beach_conditions",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"date": {
"description": "YYYY-MM-DD",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"radiusMiles": {
"maximum": 1000,
"minimum": 25,
"type": "number"
},
"resort": {
"type": "string"
}
},
"required": [
"resort"
],
"type": "object"
},
"name": "better_nearby_beaches",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"adults": {
"description": "Adults (default 2).",
"maximum": 16,
"minimum": 1,
"type": "integer"
},
"childrenAges": {
"description": "Ages of children traveling, e.g. [6, 9].",
"items": {
"maximum": 17,
"minimum": 0,
"type": "integer"
},
"maxItems": 8,
"type": "array"
},
"depart": {
"description": "YYYY-MM-DD",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"from": {
"description": "Traveler's home airport code (e.g. DFW), city (e.g. 'Dallas') or 'lat,lon'.",
"type": "string"
},
"return": {
"description": "Return date (optional for one-way).",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"to": {
"description": "Ski or beach resort name/id, or a destination airport code.",
"type": "string"
}
},
"required": [
"from",
"to",
"depart"
],
"type": "object"
},
"name": "find_flights",
"outputSchema": null
},
{
"description": "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, homes from local property managers booked direct (no booking-site fee) where Veabird has them, plus hotel and vacation-rental searches.",
"inputSchema": {
"properties": {
"adults": {
"description": "Adults (default 2).",
"maximum": 16,
"minimum": 1,
"type": "integer"
},
"checkin": {
"description": "YYYY-MM-DD",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"checkout": {
"description": "YYYY-MM-DD",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"childrenAges": {
"description": "Ages of children traveling, e.g. [6, 9].",
"items": {
"maximum": 17,
"minimum": 0,
"type": "integer"
},
"maxItems": 8,
"type": "array"
},
"limit": {
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"maxPricePerNight": {
"description": "Lodging budget per night for the whole party, in USD.",
"maximum": 20000,
"minimum": 20,
"type": "number"
},
"near": {
"description": "Ski or beach resort name/id, or 'lat,lon'.",
"type": "string"
},
"radiusMiles": {
"description": "Search radius (default 5).",
"maximum": 30,
"minimum": 0.5,
"type": "number"
},
"rooms": {
"description": "Rooms needed (default 1).",
"maximum": 8,
"minimum": 1,
"type": "integer"
}
},
"required": [
"near",
"checkin",
"checkout"
],
"type": "object"
},
"name": "find_lodging",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"ability": {
"description": "Ability of each skier or the group, e.g. ['intermediate'] or ['advanced','beginner'].",
"items": {
"enum": [
"beginner",
"intermediate",
"advanced",
"expert"
],
"type": "string"
},
"type": "array"
},
"area": {
"description": "Limit to a country, state or range, e.g. 'colorado', 'utah', 'alps', 'japan', 'US'.",
"type": "string"
},
"budget": {
"description": "Value weights pass coverage and driving more heavily.",
"enum": [
"value",
"mid",
"luxury"
],
"type": "string"
},
"childrenAges": {
"description": "Ages of children traveling, e.g. [6, 9].",
"items": {
"maximum": 17,
"minimum": 0,
"type": "integer"
},
"maxItems": 8,
"type": "array"
},
"depart": {
"description": "First ski day, YYYY-MM-DD (default today).",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"from": {
"description": "Traveler's home airport code (e.g. DFW), city (e.g. 'Dallas') or 'lat,lon'.",
"type": "string"
},
"limit": {
"description": "How many resorts (default 5).",
"maximum": 15,
"minimum": 1,
"type": "integer"
},
"maxDriveHours": {
"description": "Longest acceptable drive (default 5).",
"maximum": 16,
"minimum": 0.5,
"type": "number"
},
"nights": {
"description": "Trip length in nights (default 3).",
"maximum": 21,
"minimum": 1,
"type": "integer"
},
"pass": {
"description": "Season pass they hold.",
"enum": [
"epic",
"ikon",
"none"
],
"type": "string"
},
"travel": {
"description": "How they want to get there (default either).",
"enum": [
"drive",
"fly",
"either"
],
"type": "string"
}
},
"type": "object"
},
"name": "find_ski_resorts",
"outputSchema": null
},
{
"description": "Active Atlantic tropical storms and hurricanes (NOAA NHC) with position, intensity and track, and which Veabird beach resorts are threatened.",
"inputSchema": {
"properties": {
"resort": {
"description": "Optional resort to check",
"type": "string"
}
},
"type": "object"
},
"name": "hurricane_threats",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"properties": {
"adults": {
"description": "Adults (default 2).",
"maximum": 16,
"minimum": 1,
"type": "integer"
},
"childrenAges": {
"description": "Ages of children traveling, e.g. [6, 9].",
"items": {
"maximum": 17,
"minimum": 0,
"type": "integer"
},
"maxItems": 8,
"type": "array"
},
"depart": {
"description": "Arrival date, YYYY-MM-DD.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"from": {
"description": "Traveler's home airport code (e.g. DFW), city (e.g. 'Dallas') or 'lat,lon'.",
"type": "string"
},
"kind": {
"description": "Only if the name is ambiguous.",
"enum": [
"ski",
"beach"
],
"type": "string"
},
"maxPricePerNight": {
"description": "Lodging budget per night for the whole party, in USD.",
"maximum": 20000,
"minimum": 20,
"type": "number"
},
"resort": {
"description": "Ski or beach resort name or id.",
"type": "string"
},
"return": {
"description": "Departure date (default 4 nights later).",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
}
},
"required": [
"resort",
"depart"
],
"type": "object"
},
"name": "plan_trip",
"outputSchema": null
},
{
"description": "For a vacation rental or hotel owner: how busy each night will be around their property for the next weeks (concerts, festivals, carnivals, conventions, pro and college home games, public holidays and long weekends, weekends), compared with a typical night there. With their calendar's iCal export link (Airbnb, Vrbo, Booking.com, Hostaway, Guesty, OwnerRez...) it marks booked and open nights; with their nightly rate it flags nights priced too low for the demand and suggests a range. Use when a host asks whether their price is too low, what's happening in town, or when to raise rates.",
"inputSchema": {
"properties": {
"days": {
"description": "Nights to check (default 35; events are listed about 5 weeks ahead, holidays further).",
"maximum": 60,
"minimum": 7,
"type": "integer"
},
"from": {
"description": "First night, YYYY-MM-DD (default today).",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"ical": {
"description": "The listing's calendar export (iCal, .ics) link. Airbnb: Calendar > Availability > Connect calendars > Export. Vrbo: Calendar > Import/Export > Export. Read once, never stored.",
"maxLength": 1000,
"type": "string"
},
"location": {
"description": "Where the property is: 'lat,lon' (most precise), a town with state or country ('Destin, FL', 'Tulum'), or a Veabird beach resort name.",
"type": "string"
},
"radiusMiles": {
"description": "How far an event still sends guests to this property (default 25; use ~10 in a big city, 40+ for a remote area).",
"maximum": 100,
"minimum": 2,
"type": "number"
},
"rate": {
"description": "The property's normal nightly rate (USD or local currency).",
"maximum": 100000,
"minimum": 10,
"type": "number"
},
"rates": {
"description": "Current nightly rates for specific dates, e.g. ['2026-10-17=189','2026-10-18=189'].",
"items": {
"description": "YYYY-MM-DD=price",
"pattern": "^\\d{4}-\\d{2}-\\d{2}=\\d+(\\.\\d+)?$",
"type": "string"
},
"maxItems": 120,
"type": "array"
}
},
"required": [
"location"
],
"type": "object"
},
"name": "property_demand",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"date": {
"description": "YYYY-MM-DD (default today). Beyond 16 days needs a narrow query or near.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"from": {
"description": "Traveler's home airport code (e.g. DFW), city (e.g. 'Dallas') or 'lat,lon'.",
"type": "string"
},
"limit": {
"description": "Default 8.",
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"near": {
"description": "Resort id or name to rank around.",
"type": "string"
},
"query": {
"description": "Region, island, town or country, e.g. 'mexico', 'bahamas', 'punta cana'.",
"type": "string"
},
"radiusMiles": {
"description": "With near: max distance (default 300).",
"maximum": 2000,
"minimum": 10,
"type": "number"
}
},
"type": "object"
},
"name": "rank_beaches",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"resort": {
"description": "Resort id or name",
"type": "string"
},
"weeks": {
"description": "Weekly outlook length (default 12)",
"maximum": 52,
"minimum": 1,
"type": "integer"
}
},
"required": [
"resort"
],
"type": "object"
},
"name": "sargassum_forecast",
"outputSchema": null
},
{
"description": "How well Veabird's sargassum model performs on held-out years (AUC, Brier score, calibration) versus baselines.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "sargassum_model_skill",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "e.g. 'tulum', 'punta cana', 'barbados'",
"type": "string"
}
},
"type": "object"
},
"name": "search_beach_resorts",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"pass": {
"enum": [
"epic",
"ikon"
],
"type": "string"
},
"query": {
"description": "e.g. 'utah', 'alps', 'whistler', 'japan'",
"type": "string"
}
},
"type": "object"
},
"name": "search_ski_resorts",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"resort": {
"description": "Ski resort name or id, e.g. 'Breckenridge'.",
"type": "string"
}
},
"required": [
"resort"
],
"type": "object"
},
"name": "ski_conditions",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"properties": {
"days": {
"maximum": 7,
"minimum": 1,
"type": "integer"
},
"resort": {
"type": "string"
}
},
"required": [
"resort"
],
"type": "object"
},
"name": "tides",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"country": {
"description": "Country: ISO2 code (MX, JM, DO) or name (Mexico)",
"type": "string"
},
"resort": {
"type": "string"
}
},
"type": "object"
},
"name": "travel_advisory",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:263c60d6ae46bcd3aea2566a34759d0248d28e2d5f003922a994fb4558d686ba | sha256sum