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

A
Description quality
90%
Schema completeness
90%
Naming quality
92%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'list_rental_companies' description lacks action verbin list_rental_companies
  • LOWTool 'select_offer' description lacks action verbin select_offer

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,282Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (1.78% of 128k context)

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-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools