Enterprise Rent-A-Car MCP Connector
# @striderlabs/mcp-enterprise
A Model Context Protocol (MCP) connector for Enterprise Rent-A-Car. This connector enables AI assistants (such as Claude) to search for vehicles, manage reservations, and check Enterprise Plus loyalty account information — all through enterprise.com via headless browser automation.
---
## Overview
This connector uses [Playwright](https://playwright.dev/) to drive a stealth headless Chromium browser against `enterprise.com`. It exposes 7 MCP tools covering the full car rental workflow:
- Search available vehicles by location, dates, and preferences
- Get detailed vehicle pricing and protection options
- Create, modify, and cancel reservations
- Retrieve Enterprise Plus account details
- Check Enterprise Plus loyalty points balance and activity
Session cookies are persisted to `~/.mcp-enterprise/session.json` so repeat calls avoid re-authenticating.
---
## Prerequisites
- **Node.js** 18 or higher
- **npm** 9 or higher
- Internet access to `enterprise.com`
---
## Installation
### From the package directory
```bash
npm install
npx playwright install chromium
npm run build
```
### As a global CLI
```bash
npm install -g @striderlabs/mcp-enterprise
npx playwright install chromium
```
---
## Configuration
No API keys are required. The connector uses Enterprise's public-facing website.
| Environment Variable | Description |
|---|---|
| `PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH` | Path to a custom Chromium binary |
| `HTTP_PROXY` / `HTTPS_PROXY` | Proxy server for outbound requests |
---
## MCP Client Configuration
Add to your Claude Desktop `claude_desktop_config.json`:
```json
{
"mcpServers": {
"enterprise": {
"command": "node",
"args": ["/path/to/mcp-enterprise/dist/index.js"]
}
}
}
```
Or if installed globally:
```json
{
"mcpServers": {
"enterprise": {
"command": "mcp-enterprise"
}
}
}
```
---
## Available Tools
### `search_vehicles`
Search for available vehicles at Enterprise for specific dates and locations.
```json
{
"pickup_location": "LAX",
"pickup_date": "2025-06-15",
"pickup_time": "10:00",
"dropoff_date": "2025-06-20",
"dropoff_time": "10:00",
"vehicle_class": "SUV",
"driver_age": 30,
"enterprise_plus_number": "EP123456"
}
```
**Returns:** Array of available vehicles with `vehicle_id`, make/model, class, pricing, features, and mileage policy.
---
### `get_vehicle_details`
Get full pricing breakdown and protection options for a vehicle from search results.
```json
{
"vehicle_id": "ENT-ABC12345",
"rate_code": "STANDARD"
}
```
**Returns:** Vehicle details plus `rate_details` (base rate, taxes, fees) and `protection_options` (LDW, PAI, PEC).
---
### `create_reservation`
Create a new Enterprise reservation.
```json
{
"vehicle_id": "ENT-ABC12345",
"pickup_location_id": "LAX01",
"pickup_datetime": "2025-06-15T10:00:00",
"dropoff_datetime": "2025-06-20T10:00:00",
"driver_first_name": "Jane",
"driver_last_name": "Smith",
"driver_email": "jane@example.com",
"driver_phone": "555-555-1234",
"enterprise_plus_number": "EP123456",
"protection_plan": "partial"
}
```
**Returns:** Confirmed `Reservation` with `confirmation_number`, vehicle, location, dates, driver info, and cost breakdown.
---
### `modify_reservation`
Modify an existing reservation (dates, locations, or vehicle class).
```json
{
"confirmation_number": "ENT-XYZ789",
"last_name": "Smith",
"new_pickup_datetime": "2025-06-16T10:00:00",
"new_dropoff_datetime": "2025-06-22T10:00:00",
"new_vehicle_class": "Midsize"
}
```
**Returns:** Updated `Reservation` with modified details.
---
### `cancel_reservation`
Cancel an existing reservation. No fee when cancelled before scheduled pickup.
```json
{
"confirmation_number": "ENT-XYZ789",
"last_name": "Smith",
"reason": "Travel plans changed"
}
```
**Returns:** `{ success: true, confirmation_number, message, refund_amount }`.
---
### `get_account`
Retrieve Enterprise Plus account information.
```json
{
"enterprise_plus_number": "EP123456",
"pin": "your-pin"
}
```
**Returns:** Account details including `tier` (Standard/Silver/Gold/Platinum), `points_balance`, `rentals_ytd`, and `free_day_certificates`.
---
### `get_loyalty_points`
Check Enterprise Plus points balance, tier progress, and recent activity.
```json
{
"enterprise_plus_number": "EP123456",
"pin": "your-pin"
}
```
**Returns:** `points_balance`, `tier`, `points_to_next_tier`, `expiration_date`, and `recent_activity` array.
---
## Example Usage with Claude
> "Find me an SUV at LAX from June 15–20, then book it for Jane Smith."
Claude will:
1. Call `search_vehicles` with the specified parameters
2. Present available SUVs with pricing
3. Call `create_reservation` with the chosen vehicle and driver details
4. Return the confirmation number
> "How many Enterprise Plus points do I have? My number is EP123456."
Claude will call `get_loyalty_points` and report your balance, tier, and recent activity.
---
## Session Management
Cookies are persisted to `~/.mcp-enterprise/session.json` after each authenticated request. This means Enterprise Plus sign-in is preserved across calls, avoiding repeated login prompts.
To clear the session:
```bash
rm ~/.mcp-enterprise/session.json
```
---
## Troubleshooting
| Problem | Solution |
|---|---|
| `Browser not initialized` | Ensure `playwright install chromium` was run |
| Search returns no results | Check that enterprise.com is reachable; try a major city or airport code |
| Login fails | Verify your Enterprise Plus number and PIN; clear session and retry |
| Timeout errors | Increase system timeout or check network connectivity |
---
## License
MIT
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose with no overlap: cancel_reservation, create_reservation, modify_reservation handle the reservation lifecycle; get_account and get_loyalty_points focus on account and loyalty data; search_vehicles and get_vehicle_details cover vehicle discovery and details. The descriptions reinforce these boundaries, making misselection unlikely.
All tools follow a consistent verb_noun pattern with clear, descriptive names (e.g., cancel_reservation, get_account, search_vehicles). There are no deviations in style or convention, making the set predictable and easy to understand at a glance.
With 7 tools, the count is well-scoped for a car rental domain, covering core operations like reservation management (create, modify, cancel), vehicle search and details, and account/loyalty features. Each tool earns its place without redundancy or bloat.
The tool set provides complete coverage for the car rental domain: full CRUD for reservations (create, modify, cancel), vehicle discovery (search_vehicles and get_vehicle_details), and account management (get_account and get_loyalty_points). There are no obvious gaps that would hinder agent workflows.