VailVacay Directory
Search 355+ curated Vail Valley, Colorado restaurants, hotels, activities, shops and services.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"vailvacay-directory": {
"url": "https://vailvacay-connector.michael-b38.workers.dev/mcp"
}
}
}Remote endpoints
https://vailvacay-connector.michael-b38.workers.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
๐ขsearch_listings(q, category, area, price_tier, amenities, ...)
Search VailVacay's curated directory of Vail, Colorado businesses (hotels and lodging, restaurants, bars and aprรจs-ski, activities, ski shops, shopping, services and spas). Read-only. Filters: keyword, category, area/neighborhood, price tier, amenities (e.g. ski_in_ski_out, walk_to_lifts, hot_tub, pool, pet_friendly), tag, and distance from a lat/lng or from another listing. Returns compact plain-text listings (description shortened; use get_listing for the full text, hours and FAQ) with the listing page URL, address, phone, website, up to 2 credited photos, and booking links. Booking links are the path to book with the named provider (Expedia for hotels, plus Viator/Klook where the listing has one), not ads; those marked affiliate:true are affiliate links, and VailVacay may earn a commission if the user books, at no extra cost to them. Results are not ranked by commission. Pass check_in/check_out to get date-specific Expedia hotel links (live rates are shown on Expedia, not in this result).
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Keywords, e.g. 'steak', 'ski rental', 'hot tub condo'"
},
"category": {
"type": "string",
"description": "Category name or id from list_categories, e.g. 'Hotels'"
},
"area": {
"type": "string",
"description": "Area/neighborhood, e.g. 'Vail Village', 'Lionshead', 'Golden Peak', 'Cascade Village'. See list_filters."
},
"price_tier": {
"type": "string",
"enum": [
"budget",
"moderate",
"upscale",
"luxury"
]
},
"amenities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ski_in_ski_out",
"walk_to_lifts",
"pool",
"hot_tub",
"spa",
"fitness_center",
"pet_friendly",
"parking",
"shuttle",
"family_friendly",
"breakfast",
"kitchen",
"rooftop",
"river_view",
"outdoor_seating",
"apres_ski",
"live_music",
"free_entry",
"michelin",
"wheelchair_accessible"
]
},
"description": "All must match"
},
"tag": {
"type": "string",
"description": "Exact listing tag, see list_filters"
},
"near_lat": {
"type": "number"
},
"near_lng": {
"type": "number"
},
"near_listing_id": {
"type": "string",
"description": "Rank by distance from this listing"
},
"radius_km": {
"type": "number",
"description": "Max distance (km) when near_* is set"
},
"has_booking_link": {
"type": "boolean",
"description": "Only listings with a booking link"
},
"check_in": {
"type": "string",
"description": "YYYY-MM-DD (hotels)"
},
"check_out": {
"type": "string",
"description": "YYYY-MM-DD"
},
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 14,
"default": 2
},
"sort": {
"type": "string",
"enum": [
"relevance",
"distance",
"name"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
},
"page": {
"type": "integer",
"minimum": 1,
"default": 1
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"total": {
"type": "integer"
},
"page": {
"type": "integer"
},
"per_page": {
"type": "integer"
},
"returned": {
"type": "integer"
},
"has_more": {
"type": "boolean"
},
"affiliate_disclosure": {
"type": "string"
},
"data_fetched_at": {
"type": "string"
},
"listings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"url": {
"type": [
"string",
"null"
],
"description": "Listing page on vailvacay.com"
},
"category": {
"type": [
"string",
"null"
]
},
"area": {
"type": [
"string",
"null"
]
},
"price_tier": {
"type": [
"string",
"null"
]
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string",
"description": "Plain text"
},
"address": {
"type": [
"string",
"null"
]
},
"lat": {
"type": [
"number",
"null"
]
},
"lon": {
"type": [
"number",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"website": {
"type": [
"string",
"null"
]
},
"booking_link": {
"type": [
"string",
"null"
],
"description": "First affiliate booking link, if any"
},
"booking": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"label": {
"type": "string"
},
"url": {
"type": "string"
},
"affiliate": {
"type": "boolean"
}
}
}
},
"photos": {
"type": "array",
"items": {
"type": "string"
}
},
"photo_details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"caption": {
"type": [
"string",
"null"
]
},
"credit": {
"type": "string"
},
"source": {
"type": "string"
}
}
}
},
"distance_km": {
"type": "number"
}
},
"required": [
"id",
"name"
]
}
}
},
"required": [
"status",
"total",
"listings"
]
}๐ขget_listing(id, check_in, check_out, adults)
Read-only. Full details for one VailVacay listing by id: complete plain-text description, FAQ, hours, up to 10 gallery photos with captions and credits (e.g. 'Photo via Expedia'), listing page URL, and booking links (the path to book with the named provider, not ads). Links marked affiliate:true are affiliate links; VailVacay may earn a commission at no extra cost to the user. Returns NOT_FOUND for an unknown id.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Listing id from search_listings"
},
"check_in": {
"type": "string"
},
"check_out": {
"type": "string"
},
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 14
}
},
"required": [
"id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"affiliate_disclosure": {
"type": "string"
},
"listing": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"url": {
"type": [
"string",
"null"
],
"description": "Listing page on vailvacay.com"
},
"category": {
"type": [
"string",
"null"
]
},
"area": {
"type": [
"string",
"null"
]
},
"price_tier": {
"type": [
"string",
"null"
]
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string",
"description": "Plain text"
},
"address": {
"type": [
"string",
"null"
]
},
"lat": {
"type": [
"number",
"null"
]
},
"lon": {
"type": [
"number",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"website": {
"type": [
"string",
"null"
]
},
"booking_link": {
"type": [
"string",
"null"
],
"description": "First affiliate booking link, if any"
},
"booking": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"label": {
"type": "string"
},
"url": {
"type": "string"
},
"affiliate": {
"type": "boolean"
}
}
}
},
"photos": {
"type": "array",
"items": {
"type": "string"
}
},
"photo_details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"caption": {
"type": [
"string",
"null"
]
},
"credit": {
"type": "string"
},
"source": {
"type": "string"
}
}
}
},
"distance_km": {
"type": "number"
}
},
"required": [
"id",
"name"
]
}
},
"required": [
"status",
"listing"
]
}๐ขlist_categories
Read-only. List the VailVacay directory's top-level categories with listing counts.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"total": {
"type": "integer"
},
"categories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": [
"string",
"null"
],
"description": "Category id; null for categories that exist only as listing group names (filter by name instead)"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"listing_count": {
"type": "integer"
}
}
}
}
},
"required": [
"status",
"categories"
]
}๐ขlist_filters
Read-only. Values usable in search_listings: areas/neighborhoods, price tiers, amenities and tags, each with listing counts, plus notes on how each is derived.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"areas": {
"type": "array"
},
"price_tiers": {
"type": "array"
},
"amenities": {
"type": "array"
},
"tags": {
"type": "array"
}
},
"required": [
"status"
]
}๐ขsearch_tours(q, start_date, end_date, max_price, min_rating, ...)
Read-only. Live search of bookable tours and activities in Vail, Colorado from Viator's partner API. Returns title, live starting ('from') price and currency, rating, review count, duration, free-cancellation flag, image and a booking_url. Optional start_date/end_date return only products Viator lists as available on those dates. Default order: keyword relevance when q is given, otherwise traveler rating; 'featured' uses Viator's own default order. booking_url is the Viator booking page and a Viator affiliate link: VailVacay may earn a commission if the user books, at no extra cost to them. Viator confirms the final price, availability and cancellation terms before payment.
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Keywords, e.g. 'jeep tour', 'fly fishing', 'mountain bike'"
},
"start_date": {
"type": "string",
"description": "YYYY-MM-DD"
},
"end_date": {
"type": "string",
"description": "YYYY-MM-DD"
},
"max_price": {
"type": "number"
},
"min_rating": {
"type": "number",
"minimum": 0,
"maximum": 5
},
"free_cancellation": {
"type": "boolean"
},
"sort": {
"type": "string",
"enum": [
"relevance",
"rating",
"price_low",
"price_high",
"featured"
],
"description": "Default: relevance to q when q is given (Viator keyword match), otherwise rating (highest traveler rating first). featured = Viator's own default order."
},
"currency": {
"type": "string",
"enum": [
"USD",
"EUR",
"GBP",
"CAD",
"AUD",
"THB"
],
"default": "USD"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 5
},
"page": {
"type": "integer",
"minimum": 1,
"default": 1
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"total": {
"type": "integer"
},
"prices_checked_at": {
"type": "string"
},
"affiliate_disclosure": {
"type": "string"
},
"tours": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_code": {
"type": "string"
},
"title": {
"type": "string"
},
"from_price": {
"type": "number"
},
"currency": {
"type": "string"
},
"rating": {
"type": [
"number",
"null"
]
},
"review_count": {
"type": "integer"
},
"booking_url": {
"type": "string"
},
"affiliate": {
"type": "boolean"
}
}
}
}
},
"required": [
"status",
"tours"
]
}Community
Evidence