mcp-turo
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-turoFind an SUV in Denver from Dec 20 to Dec 27 for under $80/day"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-turo
An MCP (Model Context Protocol) server for automating Turo peer-to-peer car rental interactions. Built with stealth browser automation via patchright.
Tools
Tool | Description |
| Search available cars by location, dates, and optional filters (price range, vehicle type) |
| Get detailed info about a specific listing: specs, photos, reviews, policies |
| View a host's ratings, reviews, response rate, and all their vehicles |
| Reserve a car (requires active Turo session) |
| View, modify, or cancel an existing booking |
Related MCP server: MCP Playwright Server
Requirements
Node.js 18+
A Turo account (required for
create_bookingandmanage_booking)
Installation
npm install
npm run buildInstall Playwright browsers (required by patchright):
npx patchright install chromiumUsage
Run directly
node dist/index.jsClaude Desktop configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"turo": {
"command": "node",
"args": ["/path/to/mcp-turo/dist/index.js"]
}
}
}Or if installed globally via npm:
{
"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 inYYYY-MM-DDformatend_date(required): Rental end date inYYYY-MM-DDformatmin_price(optional): Minimum daily price in USDmax_price(optional): Maximum daily price in USDvehicle_type(optional): One ofcar,suv,truck,van,minivan,convertible,luxury,electricmin_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 bookstart_date(required): Start date inYYYY-MM-DDformatend_date(required): End date inYYYY-MM-DDformatmessage_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 IDaction(required): One ofview,cancel,modifynew_start_date(optional, required formodify): New start datenew_end_date(optional, required formodify): New end datemessage(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
Available Tools
5 toolscreate_bookingA
Create a new car booking/reservation on Turo. Requires the user to be logged in to their Turo account. Returns booking confirmation details and price breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| listing_id | Yes | The Turo listing ID to book | |
| start_date | Yes | Rental start date in YYYY-MM-DD format | |
| end_date | Yes | Rental end date in YYYY-MM-DD format | |
| message_to_host | No | Optional message to send to the host with your booking request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and successfully discloses authentication requirements and return value structure ('booking confirmation details and price breakdown'). However, it omits important behavioral traits like financial commitment implications, cancellation policies, or failure modes when vehicles are unavailable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly constructed sentences follow a logical progression: purpose (sentence 1), prerequisites (sentence 2), and return values (sentence 3). No redundant or filler content exists; every clause provides distinct operational context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriately compensates for missing output schema by describing return contents ('booking confirmation details and price breakdown') and covers the critical authentication context. Could be improved by noting the financial/destructive nature of booking creation or error handling scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters (listing_id, start_date, end_date, message_to_host) fully documented in the input schema. The description adds no supplementary parameter guidance, meeting the baseline expectation when the schema is self-sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Create' with clear resource 'car booking/reservation on Turo'. It clearly distinguishes this creation tool from siblings like search_cars (discovery), get_car_details (inspection), and manage_booking (modification of existing bookings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the critical prerequisite that 'the user [must be] logged in to their Turo account,' providing essential context for invocation. However, it does not explicitly contrast with manage_booking to clarify when to create new vs. modify existing bookings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_car_detailsA
Retrieve detailed information about a specific Turo car listing, including specs, features, reviews, cancellation policy, and host info.
| Name | Required | Description | Default |
|---|---|---|---|
| listing_id | Yes | The Turo listing ID (numeric string). Found in the listing URL: turo.com/us/en/car-rental/.../vehicles/{listing_id} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Compensates by disclosing return data categories (specs, reviews, cancellation policy, host info), providing context for what the tool delivers. However, omits operational traits: does not state this is read-only/safe, mention rate limits, auth requirements, or caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single 13-word sentence with zero waste. Front-loaded with action verb, efficiently enumerates return data categories without filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description effectively compensates by enumerating the rich data returned (specs, features, reviews, etc.). For a single-parameter retrieval tool, this is functionally complete despite lacking annotations, though could benefit from explicit read-only declaration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for listing_id (including URL location hint), doing the heavy lifting. Description adds minimal parameter-specific semantics beyond implying the 'specific' listing constraint, warranting baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses specific verb 'Retrieve' with clear resource 'Turo car listing' and distinguishes from siblings: contrasts with search_cars (find vs. get details) and get_host_profile (car vs. host focus). Lists specific data categories (specs, features, reviews, cancellation policy, host info) to define scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'specific' implies this requires an identifier, suggesting usage comes after discovery, but lacks explicit workflow guidance like 'Use after search_cars to get details' or 'Do not use for host-only info.' Relies on agent to infer from parameter schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_host_profileA
View a Turo host's profile including their ratings, reviews, response rate, and all their vehicle listings.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes | The Turo host/driver ID. Found in the host profile URL: turo.com/us/en/drivers/{host_id} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the data scope returned (ratings, reviews, response rate, listings), which compensates partially for missing output schema. However, omits operational details like error handling (invalid host_id), pagination behavior for listings, or idempotency characteristics that annotations would typically cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single well-structured sentence with information-dense structure. Front-loaded with action verb ('View'), follows with resource identification, and concludes with specific inclusion clause. No redundant or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Excellent completeness for a single-parameter tool. Compensates effectively for missing output schema by enumerating return data fields (ratings, reviews, response rate, listings). Combined with 100% parameter schema coverage, provides sufficient context for agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing detailed guidance on host_id format and location in URLs. Description mentions 'host's profile' reinforcing the parameter purpose but does not add syntax or semantic details beyond the schema. Baseline score appropriate for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'View' with clear resource 'Turo host's profile' and enumerates specific data returned (ratings, reviews, response rate, vehicle listings). Distinct from siblings which focus on bookings (create_booking, manage_booking), car details (get_car_details), or search (search_cars).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context about the tool's function (retrieving host profile data including specific fields), allowing agents to infer when to use it (when host credibility or listing aggregation is needed). However, lacks explicit 'when not to use' guidance or direct comparison to siblings like search_cars.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_bookingA
View, modify, or cancel an existing Turo booking. Use action='view' to see booking details, 'cancel' to cancel, or 'modify' to change dates.
| Name | Required | Description | Default |
|---|---|---|---|
| booking_id | Yes | The Turo booking/reservation ID | |
| action | Yes | The action to perform: 'view', 'cancel', or 'modify' | |
| new_start_date | No | New rental start date in YYYY-MM-DD format (required for 'modify' action) | |
| new_end_date | No | New rental end date in YYYY-MM-DD format (required for 'modify' action) | |
| message | No | Optional message to include with a modification or cancellation request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. While it explains the three operational modes, it fails to mention critical safety aspects like whether cancellation is reversible, if modifications incur fees, or required permissions/authorization levels for these mutations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of exactly two sentences with zero redundancy. The first establishes scope, the second provides actionable parameter guidance—efficiently front-loaded with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% schema coverage and clear action mapping, the description adequately covers the tool's functionality for a multi-mode operation. However, the absence of output schema and annotations leaves gaps regarding return values and side effects that the description could have partially addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description adds value by explaining the semantic meaning of each action ('see booking details', 'change dates') beyond the schema's literal enumeration, though it omits mention of the optional 'message' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs three specific operations (view, modify, cancel) on an existing Turo booking. The phrase 'existing Turo booking' effectively distinguishes it from sibling tool create_booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description maps each action value to its specific outcome ('view' to see details, 'cancel' to cancel, 'modify' to change dates), providing clear usage patterns. However, it lacks explicit guidance on when to choose this over create_booking or whether modifications have prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_carsA
Search for available rental cars on Turo by location, dates, and optional filters such as price range and vehicle type.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | The pickup location (city, address, or airport code). Example: 'San Francisco, CA' or 'SFO' | |
| start_date | Yes | Rental start date in YYYY-MM-DD format. Example: '2025-06-15' | |
| end_date | Yes | Rental end date in YYYY-MM-DD format. Example: '2025-06-20' | |
| min_price | No | Minimum daily price filter in USD (optional) | |
| max_price | No | Maximum daily price filter in USD (optional) | |
| vehicle_type | No | Filter by vehicle type: 'car', 'suv', 'truck', 'van', 'minivan', 'convertible', 'luxury', 'electric' (optional) | |
| min_seats | No | Minimum number of seats required (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses 'available' (implying real-time availability checking) and 'optional' filters, but lacks details on pagination, rate limits, authentication requirements, or error conditions (e.g., no results found).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence that is front-loaded with the action ('Search'). Every word earns its place—no redundancy or tautology. Efficiently communicates the core function and key parameters without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema (100% coverage, 7 parameters) and lack of output schema, the description adequately covers the input domain by mentioning required fields (location, dates) and examples of optional filters. It could be improved by briefly indicating the return value (e.g., 'returns list of available vehicles').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The description adds value by grouping parameters logically (location, dates, optional filters) and specifying the Turo platform context not present in the schema, but does not elaborate on parameter formats beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Search' with clear resource 'available rental cars on Turo', and explicitly mentions the key parameters (location, dates, filters). It clearly distinguishes this as a discovery/search operation from sibling tools like create_booking or get_car_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context that this tool is for searching with filters by location and dates, establishing it as the entry point for finding vehicles. However, it lacks explicit guidance on when to transition to siblings like get_car_details or create_booking, or when search might fail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
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.
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.
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.
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.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search and discover 25,000+ MCP servers across all major registries. Connect and pay autonomously.
Skiplagged MCP Server for flight search, hotel booking, and travel planning
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
Related MCP Servers
- AlicenseBqualityNot gradedmaintenanceA MCP server that provides browser automation tools, allowing users to navigate websites, take screenshots, click elements, fill forms, and execute JavaScript through Playwright.82
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI-powered browser automation, web scraping, and testing using Playwright across Chromium, Firefox, and WebKit. It allows users to perform actions like navigation, clicking, typing, and taking screenshots through natural language interfaces.15MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for stealth browser automation that uses human-like interaction patterns to bypass bot detection via the Chrome DevTools Protocol. It enables users to navigate, interact with elements, and capture data from websites using undetectable behaviors like Bezier mouse movements and Gaussian typing delays.1651MIT
- FlicenseNot gradedqualityDmaintenanceProduction-grade MCP server for autonomous web automation with stealth features, designed for complex booking workflows like tickets, tours, hotels, and transport.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/markswendsen-code/mcp-turo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server