The lab · AI tooling
WanderLuxe MCP
A Model Context Protocol server that lets Claude plan a trip directly inside WanderLuxe.
Chat assistants are good at suggesting an itinerary and bad at putting it anywhere useful. This server gives Claude twenty tools over the WanderLuxe data model, so a conversation ends with a real trip in the app. Anyone with Claude and a WanderLuxe account can connect it.
- Status
- Live
- Domain
- AI tooling
- Since
- 2025
- Role
- Design, engineering
- Site
- setup guide
The problem
The plan an assistant produces usually dies in the chat window. Getting it into a product means copying it by hand, which nobody does.
What was built
- Twenty tools across the whole trip model: list, read, create and update trips; add, update and delete accommodations, activities, dining, transportation and expenses; read the budget.
- Items are added by date and resolved to the matching trip day on the server, so the model never guesses an internal ID.
- Times are floating wall-clock values with optional per-item time zones. A flight landing in another country does not shift the rest of the day.
- A date change that would drop days with bookings returns the at-risk days first and requires explicit confirmation.
- When a required field is not established in the conversation, the tool asks instead of guessing. Especially dates and names.
How it was built
- 01
Start from the schema
The trip and each of its five item types got a matching set of tools. No new data model, no sync layer.
- 02
Design tools around intent
A model thinks in dates and names, not primary keys. The tools accept what the model has and resolve the rest server-side.
- 03
Add guardrails where mistakes are expensive
Lossy operations confirm first. Missing required fields prompt a question. Time zones are display metadata, never arithmetic.
- 04
Use it every day
The server is wired into the founder's own Claude setup, which is where the rough edges show up first. An on-demand eval suite exercises the tools.
Stack
- Protocol
- Model Context Protocol (MCP) with OAuth 2.1 via Supabase
- Runtime
- TypeScript, inside WanderLuxe's Express server
- Data
- WanderLuxe's Supabase schema; every call checks access to the trip
- Clients
- claude.ai as a custom connector
- Claude desktop and mobile
- Claude Code
- Any remote MCP client
How it works: Claude is handed the server's tool list and a short set of rules (call list_trips first, add items by date, never convert times between zones). Each tool call becomes a validated read or write against WanderLuxe. The result is a trip that opens in the app, with every booking where the conversation put it.