Skip to main content
Glama
README.md
# mcp-turo

An MCP (Model Context Protocol) server for automating Turo peer-to-peer car rental interactions. Built with stealth browser automation via [patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright).

## Tools

| Tool | Description |
|------|-------------|
| `search_cars` | Search available cars by location, dates, and optional filters (price range, vehicle type) |
| `get_car_details` | Get detailed info about a specific listing: specs, photos, reviews, policies |
| `get_host_profile` | View a host's ratings, reviews, response rate, and all their vehicles |
| `create_booking` | Reserve a car (requires active Turo session) |
| `manage_booking` | View, modify, or cancel an existing booking |

## Requirements

- Node.js 18+
- A Turo account (required for `create_booking` and `manage_booking`)

## Installation

```bash
npm install
npm run build
```

Install Playwright browsers (required by patchright):

```bash
npx patchright install chromium
```

## Usage

### Run directly

```bash
node dist/index.js
```

### Claude Desktop configuration

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "turo": {
      "command": "node",
      "args": ["/path/to/mcp-turo/dist/index.js"]
    }
  }
}
```

Or if installed globally via npm:

```json
{
  "mcpServers": {
    "turo": {
      "command": "striderlabs-mcp-turo"
    }
  }
}
```

## Tool Reference

### `search_cars`

Search for available Turo rentals.

**Parameters:**
- `location` (required): Pickup location — city, address, or airport code (e.g. `"San Francisco, CA"`, `"SFO"`)
- `start_date` (required): Rental start date in `YYYY-MM-DD` format
- `end_date` (required): Rental end date in `YYYY-MM-DD` format
- `min_price` (optional): Minimum daily price in USD
- `max_price` (optional): Maximum daily price in USD
- `vehicle_type` (optional): One of `car`, `suv`, `truck`, `van`, `minivan`, `convertible`, `luxury`, `electric`
- `min_seats` (optional): Minimum number of seats

**Returns:** Array of car listings with ID, make/model/year, daily rate, rating, trip count, and host info.

---

### `get_car_details`

Get full details for a specific listing.

**Parameters:**
- `listing_id` (required): Numeric listing ID from the Turo URL (`/vehicles/{id}`)

**Returns:** Detailed listing object including description, vehicle specs, photos, reviews, guidelines, and cancellation policy.

---

### `get_host_profile`

View a host's public profile.

**Parameters:**
- `host_id` (required): Host ID from the Turo profile URL (`/drivers/{id}`)

**Returns:** Host profile with ratings, reviews, response rate/time, verified status, all-star status, and their vehicle listings.

---

### `create_booking`

Book a car on Turo.

> **Note:** Requires an active authenticated Turo session in the browser. The server uses your local browser profile if configured.

**Parameters:**
- `listing_id` (required): The listing to book
- `start_date` (required): Start date in `YYYY-MM-DD` format
- `end_date` (required): End date in `YYYY-MM-DD` format
- `message_to_host` (optional): Message to send to the host

**Returns:** Booking confirmation with ID, status, price breakdown, and confirmation URL.

---

### `manage_booking`

View or modify an existing booking.

**Parameters:**
- `booking_id` (required): Your Turo reservation ID
- `action` (required): One of `view`, `cancel`, `modify`
- `new_start_date` (optional, required for `modify`): New start date
- `new_end_date` (optional, required for `modify`): New end date
- `message` (optional): Message to include with the request

**Returns:** For `view`: full booking details. For `cancel`/`modify`: success status and message.

## License

MIT — Strider Labs <hello@striderlabs.ai>

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting different aspects of the Turo car rental domain. create_booking handles new reservations, get_car_details retrieves listing information, get_host_profile focuses on host data, manage_booking manages existing bookings, and search_cars finds available vehicles. There is no overlap in functionality that would cause agent confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case throughout. The verbs (create, get, manage, search) are appropriately descriptive and the nouns (booking, car_details, host_profile, cars) clearly indicate the target resources, creating a predictable and readable naming convention.

Tool Count5/5

With 5 tools, this server is well-scoped for a car rental booking domain. Each tool serves a distinct and necessary function, from searching and viewing details to creating and managing bookings. The count is neither too sparse nor bloated, providing comprehensive coverage without redundancy.

Completeness4/5

The tool set covers the core car rental workflow effectively: search, view details, create bookings, and manage existing bookings. A minor gap exists in user account management (e.g., login/logout or profile viewing), but agents can work around this as the tools assume logged-in users. The domain coverage is otherwise complete for typical rental operations.

Maintenance

ActivityInactive
ResponsivenessNo issues