
Veabird: ski & beach trip planner
io.github.alexchouck-hashv2.0.0Updated Oct 1, 2026
Ski & beach trip planning: resort matching, snow and sargassum forecasts, lodging and flights.
Overview
Lets an assistant plan ski and beach trips using Veabird data: resort matching, snow and sargassum forecasts, lodging, flights and advisories.
- What it does
- Exposes read-only tools for ski and beach trip planning. Ski tools rank resorts by group ability, snow, crowds, pass and gateway airport, and report conditions. Beach tools rank resorts, report beach scores, sargassum, tides, hurricane threats and travel advisories. Trip tools assemble lodging, flight and extras searches for a given destination and dates.
- When to use it
- Use it when someone asks where to ski or which beach to visit, wants conditions for specific dates, or needs lodging and flight options around a resort. It suits assistants that keep a traveler profile such as home airport, ability, pass and budget in memory and pass it as arguments.
- Requirements
- A remote MCP endpoint over Streamable HTTP; no authentication is declared. The hosted server reads the Worker secret LITEAPI_KEY and the variable LITEAPI_WHITELABEL. A local Node.js server is also offered, taking LITEAPI_KEY, LITEAPI_WHITELABEL, VEABIRD_FEED, VEABIRD_SARGASSUM and VEABIRD_SITE. Network access is needed.
Installation
In SourceWeft
- Open Veabird: ski & beach trip planner in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"veabird": {
"type": "http",
"url": "https://veabird.com/mcp"
}
}
}README
Veabird for AI assistants (MCP server + API)
Lets ChatGPT, Claude, Gemini and other assistants plan ski and beach trips with Veabird's data: "Where should we ski in late January? Two intermediates and a 7-year-old, Ikon pass, flying from Dallas", "Plan 4 nights at Breckenridge under $350 a night", "Is there seaweed in Tulum next week?"
One set of tools (tools.mjs), served three ways:
User-facing setup instructions: veabird.com/ai. Agent-facing site map: /llms.txt.
Tools
All tools are read-only (readOnlyHint), so assistants don't ask for confirmation before calling them. Results carry structuredContent plus a JSON text copy, photo URLs where we have them, partner links with a disclosure, and an attribution line.
Personalization. The server is stateless. The traveler's profile (home airport, ability, pass, kids' ages, budget) lives in the assistant's memory and arrives as tool arguments. The schemas have a slot for each, and the server instructions tell the assistant to ask for them.
Data
- Ski catalog:
snow/js/resorts.js,snow/js/resorts-more.js,snow/js/tickets.js(passes, airports, sites). - Ski conditions:
ski/boards.jsonon the data feed (every 3 h,snow/scripts/boards.mjs), scored withsnow/js/now.jsandsnow/js/crowds.js. - Terrain mix:
data/ski-terrain.json, the share of downhill run length by difficulty plus run and lift counts from OpenSkiMap (OpenStreetMap). Rebuild withnode scripts/build-ski-terrain.mjs(one download, about 20 MB). - Airports:
data/airports.json, 3,200+ airports with scheduled service from OurAirports. Rebuild withnode scripts/build-airports.mjs. - Beach: the resort feed (format) and
js/data/hotel-photos.json. - Lodging prices: LiteAPI
/hotels/rateswhenLITEAPI_KEYis set (a sandbox key returns sample prices, labeled as such).LITEAPI_WHITELABEL(the domain of the LiteAPI white-label booking site, e.g.book.veabird.com) sends hotel "book" links to that hotel's page there with dates and guests filled in; without it they open a Stay22 search. - Affiliate IDs and templates:
js/affiliates.js(Stay22 AID, Vrbo/Booking/flights/rentals wraps).
Run locally
Claude Code: claude mcp add --transport http veabird https://veabird.com/mcp (hosted) or claude mcp add veabird -- node /path/to/bluebird/mcp/server.mjs (local).
Env for the local server: LITEAPI_KEY, LITEAPI_WHITELABEL, VEABIRD_FEED, VEABIRD_SARGASSUM, VEABIRD_SITE. The hosted one reads the Worker secret LITEAPI_KEY and the var LITEAPI_WHITELABEL (see wrangler.jsonc). Worker checks: node tests/worker.test.mjs.
Terms
Free with attribution ("Data: Veabird" + link). Forecasts are modeled, not safety guidance. Lodging, flight and rental links are partner links; partners never affect forecasts or rankings.
Source: mcp/README.md at commit 5f4f799
Tools
0Version history
1- v2.0.0LatestOct 1, 2026
