It started as a Google Task. Due Wednesday. “Book Airbnb in Granby, CO — Brett + Haley + parents (Anglum wedding).” Two-bedroom minimum. Friday and Saturday night. Four people, two of them my parents flying in from Raleigh, both sea-level lungs about to land at 8,200 feet.
The wedding is at the top of Granby Ranch on Saturday, July 11. Guests ride a chairlift up. Reception runs late, with a shuttle from 9 to 11 PM back to the base lodge. The Zola travel page is honest about lodging:
There are no name brand hotels in the immediate Granby vicinity. Book Airbnb’s or other similar properties in the Granby Ranch neighborhood.
For “maximum convenience” they name two specific places at the resort base: Base Camp Lodge at Ski Granby and Mountainside at Silver Creek. Both are ski-base condos. Both are individually owned, so quality is hit-or-miss. My mom would rather not roll those dice.
So the task on the calendar said “book an Airbnb.” I didn’t want to scroll Airbnb. I wanted Claude to.
The 60-second install
There’s an MCP server for Airbnb on GitHub. MCP is the Model Context Protocol — the open standard Anthropic put out for plugging tools into agents. The openbnb-org/mcp-server-airbnb package is a thin wrapper around Airbnb’s public listing pages, exposing two tools to any MCP client: airbnb_search and airbnb_listing_details.
One command added it to Claude Code:

That bottom command is my favorite part of this whole project.
Airbnb’s robots.txt disallows automated traffic to the search endpoints. The MCP server respects that by default and returns a polite error. The README, in the very next breath, documents the --ignore-robots-txt flag that turns the polite error into actual listings. It’s the open-source equivalent of a bouncer saying “I cannot let you in” and then nodding toward an unlocked side door.
Sorry, Airbnb. In my defense: one wedding, one couple, four searches. My best friend is getting married, my mom is flying in from Raleigh, and she needs a place with two bathrooms. I’m not training a model on your inventory. I’m not building a competitor. I am the exact customer who was about to spend two hours doing all of this by hand on your real website with my real human eyeballs. I just gave the eyeballs to Claude.
I added the flag.
The parallel hunt
I gave Claude the brief and let it run four searches in parallel. Granby Ranch (max convenience), Grand Lake (15 min north, charming lake town), Winter Park (20 min south, more inventory), Tabernash (the Devil’s Thumb Ranch corridor):

Seventy result rows came back. Many overlapped because the area boundaries blur in this part of the Fraser Valley. After dedup, 39 unique 2-bedroom-or-larger listings for Friday and Saturday, July 10–12, 2026, four adults.
That is a real dataset. Now what does it look like?
What 39 listings actually cost
Median asking price came in at $486 a night. Mean $497. Almost half of all qualifying inventory clusters in the $400–500/night band. There’s a thin tail of cheap stuff under $300 (two listings) and a fatter tail above $600 (six listings, mostly Grand Lake’s lakefront premium).
Across all 39 listings: 3,516 total guest reviews, median rating 4.90.
That is enough signal to actually rank.
Crunching the data
I gave Claude a value score:

Reward rating above 4.5. Reward more reviews (square-root, so going from 50 to 200 helps but not 4x). Penalize price (relative to a $400/night anchor). The result, top 10:
A clear leader emerges. “Private sauna, amazing view, pool, hot tub!” in Fraser scores 8.35. The next closest is at 6.06. And the leader gets there with 318 reviews at 4.98 stars, which is the kind of social proof that doesn’t lie.
Where things sit
Mapping all 39 listings on price vs rating tells a different story:
Most of the inventory is genuinely good. There’s no junk in this market on summer wedding weekends — you have to pay above $400/night to play, and almost everyone delivers above 4.7. The differentiator is review depth.
The yellow bubble is my finalist #1. The orange one is the convenience play. The purple one is the cheap-but-thin-reviews wildcard.
The three finalists
| # | Listing | Beds | Rating | $ / 2 nt | $/person | Why |
|---|---|---|---|---|---|---|
| 🥇 1 | Private sauna + pool + hot tub | 2BR / 5 beds | 4.98 (318) | $821 | $205 | Battle-tested. Sauna, shared pool, hot tub, pool table, ping pong, fast wifi. Top 5% of Airbnb homes. |
| 🥈 2 | Granby Ranch Fairway Cabin | 4BR / 6 beds | 5.00 (64) | $1,028 | $257 | Walk to the chairlift Saturday morning. Three king bedrooms (each couple gets their own). Top 1% of Airbnb homes. |
| 🥉 3 | Luxury Condo · Private Hot Tub | 2BR / 3 beds | 5.00 (14) | $420 | $105 | Half the price of #1. Risk: only 14 reviews. One bath for four adults. |
Plotting them against drive time to the ceremony lift makes the tradeoff blunt:
The cheap-and-close quadrant is empty. Nobody offers both. You’re picking which axis to surrender on.
What Granby looks like in summer
A few things the Zola page glosses over and the Airbnb listings don’t mention:
- Altitude. Granby town sits around 8,000 ft. The ceremony summit is closer to 9,200. Coming from sea level (my parents) or near it (Austin, ~500 ft), this is real. Hydrate aggressively for two days before flying. Pack ibuprofen.
- Weather. Mid-July highs around 75–80, lows 45–50. Afternoon thunderstorms are common. Pack a layer.
- The drive. DEN to Granby is 109 miles, about 2 hours 6 minutes via I-70 and US-40, over Berthoud Pass at 11,300 ft. Daylight is safer.
- One nice thing nearby. Rocky Mountain National Park is 30 minutes from Granby Ranch. If you have a free morning, Trail Ridge Road is the drive.
- Splurge upgrade. Devil’s Thumb Ranch in Tabernash, 25 minutes south, is the actual luxury option in the corridor. Real ranch resort, fly-fishing, cabins. None of it surfaced cheap on Airbnb because they’re booked direct.
What I’m doing
The Sauna+Pool+Hot Tub place is going to get the ask first. If it’s gone, the Granby Ranch Fairway Cabin is the safety net and worth the extra $200 because three actual king bedrooms means nobody draws the short straw.
The Wednesday Google Task is moving from “shop for an Airbnb” to “book the one we already picked.” The shopping was the work, and Claude did it in the time it took me to walk Mango.
The thing I keep noticing
Two months ago, I would have spent a Saturday morning with eight Airbnb tabs open, comparing them by hand, forgetting which one had the hot tub by the time I clicked the third. Now I have a scriptable agent that runs four parallel queries, dedupes the results, ranks them by a value function I write inline, and hands me back a defended top-three with charts.
The MCP that made it possible took 60 seconds to install. The dataset took 30 seconds to gather. The friction with robots.txt was a five-line config change with a documented escape hatch.
This is the third time this month a Google Task on my calendar has triggered something like this. It’s starting to feel less like “AI helps me with tasks” and more like “tasks are now small experiments in tool-building.” The agent gets sharper every time.
Andrew and Tara, see you in July.