An MCP (Model Context Protocol) server for automating VRBO vacation rental interactions using Playwright browser automation.
- Search for vacation rental properties by location, dates, and filters
- View property details, availability calendars, and pricing breakdowns
- Manage bookings (view, get details, cancel)
- Save favorite properties
- Contact property hosts
- Read property reviews
- Node.js 18 or higher
- npm
npm install -g @striderlabs/mcp-vrbo
npx playwright install chromiumgit clone https://github.com/markswendsen-code/mcp-vrbo
cd mcp-vrbo
npm install
npx playwright install chromium
npm run buildAdd to your MCP client configuration (e.g., Claude Desktop ~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"vrbo": {
"command": "striderlabs-mcp-vrbo"
}
}
}Or if running from source:
{
"mcpServers": {
"vrbo": {
"command": "node",
"args": ["/path/to/mcp-vrbo/dist/index.js"]
}
}
}Authenticate with your VRBO account. Required before using tools that access account-specific data.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
email |
string | ✓ | VRBO account email address |
password |
string | ✓ | VRBO account password |
Example:
{
"email": "user@example.com",
"password": "your-password"
}Search for vacation rentals by location with optional filters.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
location |
string | ✓ | Destination (city, state, landmark) |
check_in |
string | Check-in date (YYYY-MM-DD) | |
check_out |
string | Check-out date (YYYY-MM-DD) | |
guests |
number | Number of guests | |
filters |
object | Search filters (see below) |
Filters object:
| Field | Type | Description |
|---|---|---|
min_price |
number | Minimum nightly price (USD) |
max_price |
number | Maximum nightly price (USD) |
min_bedrooms |
number | Minimum bedrooms |
max_bedrooms |
number | Maximum bedrooms |
pets_allowed |
boolean | Pet-friendly only |
property_type |
string | Property type (house, condo, cabin, etc.) |
amenities |
string[] | Required amenities (pool, hot-tub, wifi, etc.) |
Example:
{
"location": "Scottsdale, AZ",
"check_in": "2025-07-04",
"check_out": "2025-07-11",
"guests": 4,
"filters": {
"min_bedrooms": 3,
"pets_allowed": true,
"amenities": ["pool"]
}
}Retrieve comprehensive details for a specific property.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
property_id |
string | ✓ | VRBO property ID or listing number |
Returns: Title, description, amenities, photos, host info, location, bedroom/bath count, cancellation policy, house rules.
Check the availability calendar for a property in a given month.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
property_id |
string | ✓ | VRBO property ID |
month |
string | ✓ | Month in YYYY-MM format (e.g., 2025-08) |
Returns: Lists of available and unavailable dates for the specified month.
Get detailed pricing breakdown for specific dates.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
property_id |
string | ✓ | VRBO property ID |
check_in |
string | ✓ | Check-in date (YYYY-MM-DD) |
check_out |
string | ✓ | Check-out date (YYYY-MM-DD) |
guests |
number | ✓ | Number of guests |
Returns: Nightly rate, cleaning fee, service fee, taxes, and total price.
Initiate the booking flow for a property.
⚠️ Safety Note: Booking is NOT auto-submitted to prevent unintended charges. The tool navigates to checkout and fills payment details — you must review and confirm manually.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
property_id |
string | ✓ | VRBO property ID |
check_in |
string | ✓ | Check-in date (YYYY-MM-DD) |
check_out |
string | ✓ | Check-out date (YYYY-MM-DD) |
guests |
number | ✓ | Number of guests |
payment_info |
object | ✓ | Payment details (see below) |
Payment info object:
| Field | Type | Description |
|---|---|---|
card_number |
string | Credit card number |
expiry |
string | Card expiry (MM/YY) |
cvv |
string | Card CVV |
name_on_card |
string | Cardholder name |
billing_zip |
string | Billing zip/postal code |
List all bookings for the authenticated account.
Parameters: None (requires prior vrbo_login)
Returns: List of bookings with property name, dates, status, and total.
Get complete details for a specific booking.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
booking_id |
string | ✓ | VRBO booking ID or confirmation code |
Locate and initiate the cancellation process for a booking.
⚠️ Safety Note: Cancellation is NOT auto-confirmed. The tool finds the cancel button — you must confirm manually.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
booking_id |
string | ✓ | VRBO booking ID to cancel |
Send a message to a property host.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
property_id |
string | ✓ | VRBO property ID |
message |
string | ✓ | Message to send to the host |
Fetch reviews and ratings for a property.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
property_id |
string | ✓ | VRBO property ID |
Returns: Overall rating, category scores, and individual guest reviews with author, text, rating, and date.
Retrieve all saved/favorited properties for the authenticated account.
Parameters: None (requires prior vrbo_login)
Add a property to your VRBO favorites list.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
property_id |
string | ✓ | VRBO property ID to save |
VRBO property IDs are numeric identifiers found in property URLs:
- URL:
https://www.vrbo.com/123456 - Property ID:
123456
You can get property IDs from vrbo_search_properties results.
src/
├── index.ts # MCP server, tool definitions, request handlers
└── browser.ts # Playwright automation helpers, page extractors
The server uses a singleton browser instance that persists across tool calls within a session, enabling login state to be maintained across multiple operations.
- VRBO's website structure may change, requiring updates to CSS selectors
- Some operations (booking confirmation, cancellation, sending messages) are intentionally not auto-submitted for safety
- Rate limiting and CAPTCHA may affect automated access
- Playwright headless mode may be detected by VRBO's bot protection
MIT