Skip to main content
Glama

Bota — car rental availability and bookings

Select an offer

select_offer

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.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "company_id": "<company_id>",
      "session_id": "<session_id>",
      "offer_number": "<offer_number>"
    },
    "name": "select_offer"
  }
}

Input Schema

NameRequiredDescriptionDefault
languageNoLanguage of the conversation, BCP-47 (es, en, pt-BR, fr, de, it…). Defaults to 'en'. Bota also answers in the language the customer writes.
company_idYesRental company id.
session_idYesBooking session id returned by a previous call for this company (offers, selection, customer details). Omitted, a new session starts.
offer_numberYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / company_id / description
      Previous value: -"Company id from list_rental_companies."New value: +"Rental company id."
    • changedInput schema / properties / session_id / description
      Previous value: -"Session id returned by a previous call for this company. Omit on the first call; ALWAYS pass it back on the next ones so Bota keeps the conversation (offers, selection, customer details)."New value: +"Booking session id returned by a previous call for this company (offers, selection, customer details). Omitted, a new session starts."
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, so the safety profile is covered; the description adds that the call yields extras or driver details and that it operates on a numbered offer within a session. It stops short of saying whether offers can expire, whether selection is re-doable, or what errors surface for an invalid offer_number.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and its return values, then the eligibility constraint. No padding, though the sentence about extras vs. driver details is slightly compressed and could be clearer about which condition yields which result.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must carry return semantics; it does so only in outline, and it says nothing about what the agent should do next (select_extras vs. provide_customer_details) or about session state after selection. Adequate for choice, thin for sequencing a multi-step booking flow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, with offer_number being the one bare parameter, and the description does supply its meaning — the index of a numbered offer produced for the session. It does not state that the 1-based numbering comes from the preceding offers listing, which is the detail a calling agent most needs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and object — selecting a numbered offer of a booking session — and names what comes back (extras or driver details), which is more than a restatement of the title. It is distinguishable from search_availability and select_extras, though it never names those siblings explicitly to nail the ordering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a hard eligibility gate: 'Only for companies with booking_via_agents=true,' which tells the agent when the tool applies. It implies the step follows offer listing and precedes extras/confirmation, but no exclusive when-not case or named alternative is offered for companies failing that flag.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources