Bota — car rental availability and bookings
Real availability, prices and bookings of car rental companies (rent-a-car), by conversation.
Should I use this
Quality & Safety
Findings (2)
- LOWin list_rental_companies
- LOWin select_offer
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"bota": {
"url": "https://mcp.bota-chat.com/mcp"
}
}
}Remote endpoints
https://mcp.bota-chat.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢list_rental_companies
Car rental companies that use Bota and rent directly through it. Returns id, name, website, active channels, whether bookings can be completed here (booking_via_agents) and whether it is the demo company.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_offices(company_id, language)
Rental offices (pickup/return locations) of a company: name, city, address, opening hours, timezone, coordinates.
Input Schema
{
"type": "object",
"properties": {
"company_id": {
"type": "string",
"description": "Rental company id."
},
"language": {
"type": "string",
"description": "Language of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes."
}
},
"required": [
"company_id"
],
"additionalProperties": false
}🟢search_availability(company_id, session_id, pickup_office, return_office, pickup_date, ...)
Search available vehicles with real prices for a company, office and dates. Prices are identical to the company's own web chat (mandatory charges, one-way and time rules included). Returns numbered offers and the session_id of this booking session.
Input Schema
{
"type": "object",
"properties": {
"company_id": {
"type": "string",
"description": "Rental company id."
},
"session_id": {
"type": "string",
"description": "Booking session id returned by a previous call for this company (offers, selection, customer details). Omitted, a new session starts."
},
"pickup_office": {
"type": "string",
"description": "Pickup office name or id."
},
"return_office": {
"type": "string",
"description": "Return office name or id when different (one-way)."
},
"pickup_date": {
"type": "string",
"description": "YYYY-MM-DD, office-local."
},
"pickup_time": {
"type": "string",
"description": "HH:MM, office-local. Default 10:00."
},
"return_date": {
"type": "string",
"description": "YYYY-MM-DD, office-local."
},
"return_time": {
"type": "string",
"description": "HH:MM, office-local. Default 10:00."
},
"driver_age": {
"type": "integer",
"minimum": 18,
"maximum": 99,
"description": "Main driver's age. The price and the available cars depend on it."
},
"promo_code": {
"type": "string"
},
"language": {
"type": "string",
"description": "Language of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes."
}
},
"required": [
"company_id",
"pickup_office",
"pickup_date",
"return_date",
"driver_age"
],
"additionalProperties": false
}🟢ask_company(company_id, question, language)
Ask the company a free-text question (requirements, deposit, insurance, documents, opening hours, pickup instructions…). Bota answers in the customer's language with the company's approved information. Read-only: it never starts, changes or completes a booking.
Input Schema
{
"type": "object",
"properties": {
"company_id": {
"type": "string",
"description": "Rental company id."
},
"question": {
"type": "string",
"maxLength": 2000
},
"language": {
"type": "string",
"description": "Language of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes."
}
},
"required": [
"company_id",
"question"
],
"additionalProperties": false
}🟢select_offer(company_id, session_id, offer_number, language)
Selects one of the numbered offers of the booking session. Returns the extras available for it, or the driver details the company needs. Only for companies with booking_via_agents=true.
Input Schema
{
"type": "object",
"properties": {
"company_id": {
"type": "string",
"description": "Rental company id."
},
"session_id": {
"type": "string",
"description": "Booking session id returned by a previous call for this company (offers, selection, customer details). Omitted, a new session starts."
},
"offer_number": {
"type": "integer",
"minimum": 1
},
"language": {
"type": "string",
"description": "Language of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes."
}
},
"required": [
"company_id",
"session_id",
"offer_number"
],
"additionalProperties": false
}🟢select_extras(company_id, session_id, extras, language)
Adds optional extras (child seat, additional driver, coverage…) to the booking in progress by extra id; an empty list continues without extras. Only for companies with booking_via_agents=true.
Input Schema
{
"type": "object",
"properties": {
"company_id": {
"type": "string",
"description": "Rental company id."
},
"session_id": {
"type": "string",
"description": "Booking session id returned by a previous call for this company (offers, selection, customer details). Omitted, a new session starts."
},
"extras": {
"type": "array",
"items": {
"type": "string"
},
"description": "Extra ids to add; empty array = no extras."
},
"language": {
"type": "string",
"description": "Language of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes."
}
},
"required": [
"company_id",
"session_id",
"extras"
],
"additionalProperties": false
}⚪provide_customer_details(company_id, session_id, first_name, last_name, email, ...)
Submits the driver's details for the booking in progress and returns the booking summary with its confirmation_token. terms_accepted records that the customer accepted the company's terms and must be true.
Input Schema
{
"type": "object",
"properties": {
"company_id": {
"type": "string",
"description": "Rental company id."
},
"session_id": {
"type": "string",
"description": "Booking session id returned by a previous call for this company (offers, selection, customer details). Omitted, a new session starts."
},
"first_name": {
"type": "string",
"maxLength": 80
},
"last_name": {
"type": "string",
"maxLength": 120
},
"email": {
"type": "string",
"format": "email"
},
"phone": {
"type": "string",
"maxLength": 30,
"description": "With country code (+1…). Required by most companies."
},
"notes": {
"type": "string",
"maxLength": 500
},
"flight_number": {
"type": "string",
"maxLength": 20
},
"terms_accepted": {
"type": "boolean"
},
"language": {
"type": "string",
"description": "Language of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes."
}
},
"required": [
"company_id",
"session_id",
"first_name",
"last_name",
"email",
"terms_accepted"
],
"additionalProperties": false
}🔴confirm_booking(company_id, session_id, confirmation_token, language)
Confirms the summarised booking with its confirmation_token, which proves the customer saw that exact summary. Creates the reservation in the company's reservation system and returns the confirmation code (and a payment link when the company requires prepayment). An on-request booking comes back pending the company's confirmation and without a code yet.
Input Schema
{
"type": "object",
"properties": {
"company_id": {
"type": "string",
"description": "Rental company id."
},
"session_id": {
"type": "string",
"description": "Booking session id returned by a previous call for this company (offers, selection, customer details). Omitted, a new session starts."
},
"confirmation_token": {
"type": "string",
"description": "confirmation_token from the response that showed the booking summary."
},
"language": {
"type": "string",
"description": "Language of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes."
}
},
"required": [
"company_id",
"session_id",
"confirmation_token"
],
"additionalProperties": false
}🟢get_booking_status(company_id, booking_reference, email, language)
Look up a booking made through Bota: status (confirmed, cancelled…), vehicle, office, dates and total. Needs the booking reference and the email it was made with.
Input Schema
{
"type": "object",
"properties": {
"company_id": {
"type": "string",
"description": "Rental company id."
},
"booking_reference": {
"type": "string",
"maxLength": 40,
"description": "Booking reference from the customer's confirmation email."
},
"email": {
"type": "string",
"format": "email",
"description": "Email the booking was made with. Required to prove the customer owns it."
},
"language": {
"type": "string",
"description": "Language of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes."
}
},
"required": [
"company_id",
"booking_reference",
"email"
],
"additionalProperties": false
}🔴cancel_booking(company_id, booking_reference, email, confirm, language)
Cancels a booking made through Bota. Without confirm it only returns the booking and whether it can be cancelled; with confirm=true it cancels it. Cancellation fees, if any, follow the company's terms.
Input Schema
{
"type": "object",
"properties": {
"company_id": {
"type": "string",
"description": "Rental company id."
},
"booking_reference": {
"type": "string",
"maxLength": 40,
"description": "Booking reference from the customer's confirmation email."
},
"email": {
"type": "string",
"format": "email",
"description": "Email the booking was made with. Required to prove the customer owns it."
},
"confirm": {
"type": "boolean",
"description": "true cancels the booking; omitted or false only previews it."
},
"language": {
"type": "string",
"description": "Language of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes."
}
},
"required": [
"company_id",
"booking_reference",
"email"
],
"additionalProperties": false
}Community
Evidence