Skip to main content
Glama

MCP VRBO

MCP server for searching VRBO vacation rental listings using browser automation.

Overview

This server provides VRBO search capabilities by leveraging mcp-browser for browser automation. Unlike the Airbnb MCP which uses embedded JSON extraction, VRBO requires full browser rendering to access listing data.

Port: 3046 URL: https://mcp-vrbo.local.jbmurphy.com

Architecture

mcp-vrbo (3042) --> mcp-browser (3020) --> browser-pool --> LXC browsers

The server:

  1. Receives search/listing requests

  2. Calls mcp-browser to navigate to VRBO pages

  3. Executes JavaScript to extract listing data from the DOM

  4. Returns structured property information

Tools

Tool

Description

vrbo_search

Search VRBO listings with filters (location, dates, guests, price range, bedrooms)

vrbo_listing_details

Get detailed information about a specific VRBO property

Usage

Search for listings

curl -X POST https://mcp-vrbo.local.jbmurphy.com/mcp/call_tool \
  -H "Content-Type: application/json" \
  -d '{
    "name": "vrbo_search",
    "arguments": {
      "location": "New York",
      "checkin": "2025-03-01",
      "checkout": "2025-03-05",
      "adults": 2,
      "min_bedrooms": 2
    }
  }'

Get listing details

curl -X POST https://mcp-vrbo.local.jbmurphy.com/mcp/call_tool \
  -H "Content-Type: application/json" \
  -d '{
    "name": "vrbo_listing_details",
    "arguments": {
      "id": "4515867"
    }
  }'

Search Parameters

Parameter

Type

Description

location

string

Required. City, state, or region to search

checkin

string

Check-in date (YYYY-MM-DD)

checkout

string

Check-out date (YYYY-MM-DD)

adults

number

Number of adults (default: 2)

children

number

Number of children (default: 0)

min_bedrooms

number

Minimum number of bedrooms

min_bathrooms

number

Minimum number of bathrooms

min_price

number

Minimum price per night

max_price

number

Maximum price per night

Response Format

{
  "searchUrl": "https://www.vrbo.com/search?destination=...",
  "location": "New York",
  "totalAvailable": "300+",
  "returnedCount": 17,
  "properties": [
    {
      "id": "4515867",
      "name": "Spacious apartment in Brooklyn",
      "url": "https://www.vrbo.com/4515867",
      "price": "$1,181",
      "priceNumeric": 1181,
      "rating": 9.4,
      "reviews": 10,
      "propertyType": "Apartment",
      "sleeps": 16,
      "bedrooms": 4,
      "bathrooms": "3+",
      "neighborhood": "Brooklyn"
    }
  ]
}

Dependencies

  • mcp-browser - Browser automation service (must be running)

  • browser-pool - LXC browser container pool

Build & Deploy

# Build locally
docker-compose up -d --build

# Or via main docker-compose
cd .. && docker-compose up -d --build mcp-vrbo

Technical Notes

  • VRBO uses React and loads data dynamically via GraphQL

  • Data extraction is done by parsing the rendered DOM, not embedded JSON

  • The browser pool handles anti-bot measures through real browser instances

  • Slower than Airbnb scraping (~3-5 seconds per search) due to full page rendering

Comparison: Airbnb vs VRBO

Aspect

mcp-airbnb

mcp-vrbo

Method

Embedded JSON extraction

DOM parsing via browser

Speed

Fast (~1 second)

Slower (~3-5 seconds)

Browser required

No

Yes (via mcp-browser)

Reliability

May break on JSON structure changes

May break on DOM changes

Related MCP Connectors