Skip to main content
Glama

BEEP.rent — car rental in Poland

Search rental offers

search_offers
Read-onlyIdempotent

Use when looking for available cars and full prices in Poland. Supply the whole trip when changing criteria; omitted options reset. Filters and sort are not remembered: repeat them on every page. Do not use for an existing reservation. Examples: {"pickup":{"query":"Kraków"},"pickup_at":"2026-12-01T10:00:00+01:00","return_at":"2026-12-08T10:00:00+01:00","sort":"price"}; {"search_id":"from_previous_result","offset":8,"sort":"price"}.

Input Schema

NameRequiredDescriptionDefault
sortNoinstant
limitNo
marketNo
offsetNo
pickupNoFor a new trip supply pickup, pickup_at and return_at together. For paging supply search_id instead.
filtersNoA JSON object of filters. Omit it or use {} for no filters; never use [].
optionsNoA JSON object of rental options. Omit it or use {} for defaults; never use [].
card_typeNocredit
pickup_atNo
return_atNo
search_idNo
driver_ageNo
response_formatNoconcise
return_locationNo
license_tenure_monthsNo

Output Schema

NameRequiredDescriptionDefault
metaNo
nameNo
fieldNo
linksNo
offerNo
driverNo
facetsNo
offersNo
pickupNo
pointsNo
statusNook
city_idNo
currencyNo
messagesNo
policiesNo
search_idNo
candidatesNo
categoriesNo
conditionsNo
expires_atNo
next_stepsNo
paginationNo
valid_untilNo
continue_urlNo
return_locationNo
content_languageNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / filters / properties / deposit_max_inclusive
      Added value: +{
      +  "default": true,
      +  "description": "False for strictly below the deposit limit; true for at most.",
      +  "title": "Deposit Max Inclusive",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / filters / properties / deposit_max_pln
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 1000000,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Maximum actual deposit for the selected options, in PLN. Does not silently buy insurance.",
      +  "title": "Deposit Max Pln"
      +}
  2. Changed12 schema fields changed
    • addedInput schema / properties / filters / properties / low_deposit / description
      Added value: +"A deposit of at most 1000 PLN."
    • addedInput schema / properties / filters / properties / no_credit_card / description
      Added value: +"The deposit can be paid with a debit card."
    • changedInput schema / properties / filters / properties / segment / description
      Previous value: -"Exact BEEP segment codes, never a body style such as estate/kombi."New value: +"Car types as beep.rent lists them, e.g. Mały, Średni, Duży (Small, Medium, Large); never a body style such as kombi. Omit it when the user names car models: their titles are in the results."
    • addedInput schema / properties / filters / properties / vehicle_size / description
      Added value: +"Website car-type shortcut, prefer segment: small=Mały; medium=Średni; large=Duży; xlarge=Bus 8-9 os. or Minivan 7 os."
    • addedInput schema / properties / filters / properties / zero_deposit / description
      Added value: +"No deposit; it may add the damage waiver to the price."
    • changedInput schema / properties / options / properties / pickup_service_address / anyOf
      Previous value: -[
      -  {
      -    "maxLength": 160,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 160,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / options / properties / pickup_service_place_id / anyOf
      Previous value: -[
      -  {
      -    "maxLength": 512,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 512,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / options / properties / return_service_address / anyOf
      Previous value: -[
      -  {
      -    "maxLength": 160,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 160,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / options / properties / return_service_place_id / anyOf
      Previous value: -[
      -  {
      -    "maxLength": 512,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 512,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / pickup / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "city_id": {
      -        "anyOf": [
      -          {
      -            "maxLength": 128,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "A city_id returned by get_city_prices or a clarification; for a city name use query.",
      -        "title": "City Id"
      -      },
      -      "lat": {
      -        "anyOf": [
      -          {
      -            "maximum": 90,
      -            "minimum": -90,
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Lat"
      -      },
      -      "lng": {
      -        "anyOf": [
      -          {
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Lng"
      -      },
      -      "pickup_point_id": {
      -        "anyOf": [
      -          {
      -            "maxLength": 64,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "An id from find_pickup_points.",
      -        "title": "Pickup Point Id"
      -      },
      -      "place_id": {
      -        "anyOf": [
      -          {
      -            "maxLength": 512,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "A place_id from earlier candidates.",
      -        "title": "Place Id"
      -      },
      -      "query": {
      -        "anyOf": [
      -          {
      -            "maxLength": 160,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "A place name or address, e.g. Kraków or Warsaw Chopin Airport.",
      -        "title": "Query"
      -      }
      -    },
      -    "title": "LocationInput",
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "city_id": {
      +        "anyOf": [
      +          {
      +            "maxLength": 128,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "A city_id returned by get_city_prices or a clarification; for a city name use query.",
      +        "title": "City Id"
      +      },
      +      "lat": {
      +        "anyOf": [
      +          {
      +            "maximum": 90,
      +            "minimum": -90,
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Lat"
      +      },
      +      "lng": {
      +        "anyOf": [
      +          {
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Lng"
      +      },
      +      "pickup_point_id": {
      +        "anyOf": [
      +          {
      +            "maxLength": 64,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "An id from find_pickup_points.",
      +        "title": "Pickup Point Id"
      +      },
      +      "place_id": {
      +        "anyOf": [
      +          {
      +            "maxLength": 512,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "A place_id from earlier candidates.",
      +        "title": "Place Id"
      +      },
      +      "query": {
      +        "anyOf": [
      +          {
      +            "maxLength": 160,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "A place name or address, e.g. Kraków or Warsaw Chopin Airport.",
      +        "title": "Query"
      +      }
      +    },
      +    "title": "LocationInput",
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / return_location / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "city_id": {
      -        "anyOf": [
      -          {
      -            "maxLength": 128,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "A city_id returned by get_city_prices or a clarification; for a city name use query.",
      -        "title": "City Id"
      -      },
      -      "lat": {
      -        "anyOf": [
      -          {
      -            "maximum": 90,
      -            "minimum": -90,
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Lat"
      -      },
      -      "lng": {
      -        "anyOf": [
      -          {
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Lng"
      -      },
      -      "pickup_point_id": {
      -        "anyOf": [
      -          {
      -            "maxLength": 64,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "An id from find_pickup_points.",
      -        "title": "Pickup Point Id"
      -      },
      -      "place_id": {
      -        "anyOf": [
      -          {
      -            "maxLength": 512,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "A place_id from earlier candidates.",
      -        "title": "Place Id"
      -      },
      -      "query": {
      -        "anyOf": [
      -          {
      -            "maxLength": 160,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "A place name or address, e.g. Kraków or Warsaw Chopin Airport.",
      -        "title": "Query"
      -      }
      -    },
      -    "title": "LocationInput",
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "city_id": {
      +        "anyOf": [
      +          {
      +            "maxLength": 128,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "A city_id returned by get_city_prices or a clarification; for a city name use query.",
      +        "title": "City Id"
      +      },
      +      "lat": {
      +        "anyOf": [
      +          {
      +            "maximum": 90,
      +            "minimum": -90,
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Lat"
      +      },
      +      "lng": {
      +        "anyOf": [
      +          {
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Lng"
      +      },
      +      "pickup_point_id": {
      +        "anyOf": [
      +          {
      +            "maxLength": 64,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "An id from find_pickup_points.",
      +        "title": "Pickup Point Id"
      +      },
      +      "place_id": {
      +        "anyOf": [
      +          {
      +            "maxLength": 512,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "A place_id from earlier candidates.",
      +        "title": "Place Id"
      +      },
      +      "query": {
      +        "anyOf": [
      +          {
      +            "maxLength": 160,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "A place name or address, e.g. Kraków or Warsaw Chopin Airport.",
      +        "title": "Query"
      +      }
      +    },
      +    "title": "LocationInput",
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / search_id / anyOf
      Previous value: -[
      -  {
      -    "maxLength": 64,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 64,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Changed3 schema fields changed
    • addedInput schema / properties / filters / description
      Added value: +"A JSON object of filters. Omit it or use {} for no filters; never use []."
    • addedInput schema / properties / options / description
      Added value: +"A JSON object of rental options. Omit it or use {} for defaults; never use []."
    • addedInput schema / properties / pickup / description
      Added value: +"For a new trip supply pickup, pickup_at and return_at together. For paging supply search_id instead."
  4. Changed2 schema fields changed
    • addedInput schema / properties / filters / properties / is_estate
      Added value: +{
      +  "default": false,
      +  "description": "True for kombi, estate, station wagon, Wagon or SW. Independent of segment and vehicle size.",
      +  "title": "Is Estate",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / filters / properties / segment / description
      Added value: +"Exact BEEP segment codes, never a body style such as estate/kombi."
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, open-World), so the bar is lower, and the description still adds non-obvious state semantics: omitted options reset, filters and sort are not remembered across pages. It does not mention result volume, pagination limits, or why a search_id is preferred over resubmitting a trip, which would round out the behavior picture.

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

Conciseness5/5

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

It is front-loaded with the use case, then constraints, then examples, with no filler sentences. Every clause carries an operational rule the agent would otherwise get wrong.

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

Completeness4/5

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

Given a 15-parameter nested schema with an output schema present, the description covers the hardest parts: establishing a trip versus paging, and statelessness of filters. Gaps remain around cross-city one-way returns, market/language selection, and what detailed versus concise responses mean.

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 description coverage is only 20% across 15 parameters, so the description should compensate far more than it does. The examples give concrete meaning to pickup/pickup_at/return_at/search_id/offset/sort, but market, card_type, driver_age, license_tenure_months, response_format and the one-way return_location relationship are untouched.

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?

The description names a specific verb and resource ('looking for available cars and full prices in Poland') and explicitly rules out the reservation siblings ('Do not use for an existing reservation'). It never names get_offer or search_long_term_offers, so the boundary with the closest search siblings is left implicit.

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

Usage Guidelines5/5

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

It states when to use it, when not to (existing reservations), the rule for re-submitting criteria, and the paging pattern with search_id plus offset. The two worked examples show both the new-trip call and the page call, which is exactly the disambiguation an agent needs.

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