@striderlabs/mcp-avis
v1.0.0
Published
Model Context Protocol connector for Avis car rental
Maintainers
Readme
@striderlabs/mcp-avis
Model Context Protocol (MCP) connector for Avis Car Rental. Enables AI assistants to search vehicles, get quotes, book reservations, and manage existing bookings via Playwright browser automation.
Tools
| Tool | Description |
|------|-------------|
| search_vehicles | Search available cars by location, dates, and car type |
| get_quote | Get detailed pricing (base rate, taxes, fees, total) for a specific vehicle |
| make_reservation | Book a car rental reservation |
| view_reservations | List reservations for an Avis Preferred account |
| cancel_reservation | Cancel a booking by confirmation number + last name |
| get_locations | Find Avis locations near a city, airport, or coordinates |
Installation
npm install @striderlabs/mcp-avis
npx playwright install chromiumConfiguration
Optionally set environment variables for Avis Preferred authentication:
AVIS_PREFERRED_ID=your_member_number_or_email
AVIS_PASSWORD=your_password
AVIS_AWD_NUMBER=your_corporate_awd_code # optionalUsage with Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"avis": {
"command": "node",
"args": ["/path/to/node_modules/@striderlabs/mcp-avis/dist/index.js"],
"env": {
"AVIS_PREFERRED_ID": "your_member_number",
"AVIS_PASSWORD": "your_password"
}
}
}
}Usage with mcp CLI
mcp run node dist/index.jsExample Tool Calls
Search for cars
{
"tool": "search_vehicles",
"arguments": {
"pickup_location": "LAX",
"pickup_date": "2025-07-10",
"pickup_time": "10:00",
"dropoff_date": "2025-07-15",
"dropoff_time": "10:00",
"car_type": "SUV"
}
}Get a quote
{
"tool": "get_quote",
"arguments": {
"vehicle_id": "VEH-XXXXX",
"pickup_location_id": "LAX",
"pickup_datetime": "2025-07-10T10:00:00",
"dropoff_datetime": "2025-07-15T10:00:00"
}
}Book a reservation
{
"tool": "make_reservation",
"arguments": {
"vehicle_id": "VEH-XXXXX",
"pickup_location_id": "LAX",
"pickup_datetime": "2025-07-10T10:00:00",
"dropoff_datetime": "2025-07-15T10:00:00",
"driver_first_name": "Jane",
"driver_last_name": "Smith",
"driver_email": "[email protected]",
"driver_phone": "555-123-4567",
"preferred_number": "A1234567"
}
}Cancel a reservation
{
"tool": "cancel_reservation",
"arguments": {
"confirmation_number": "AVIS-ABC123",
"last_name": "Smith"
}
}Find Avis locations
{
"tool": "get_locations",
"arguments": {
"query": "SFO",
"type": "airport"
}
}Notes
- Playwright drives a headless Chromium browser with anti-bot detection measures (no
navigator.webdriver, realistic user-agent). - All tools gracefully fall back to representative mock data if live scraping fails, so the connector remains functional in CI or restricted environments.
- Making actual reservations sends real bookings to Avis — always verify before confirming.
- Avis Preferred AWD codes can be passed per-search or set via
AVIS_AWD_NUMBER.
Development
npm install
npx playwright install chromium
npm run dev # run with ts-node
npm run build # compile TypeScript
npm run start # run compiled outputLicense
MIT
