Skip to main content
Glama
www-joyautomart-com

JOY Automart MCP Server

Official

Search cars for sale

search_vehicles
Read-onlyIdempotent

Browse and filter public car listings in Bangladesh by make, model, fuel type, year, and BDT price to find listing IDs for full details or comparison.

Instructions

Find and browse cars for sale in JOY Auto Exchange's public Bangladesh listings. Use this to discover listing_id values; use get_vehicle for one listing's full detail, or compare_vehicles for a selected shortlist. Filters combine: query matches a make/model/trim phrase; make and fuel_type match prefixes, with inclusive year and BDT price bounds. For a Toyota below 30 lakh BDT, use {"make":"Toyota","max_price_bdt":3000000,"sort":"price_asc"}. No filters browses listings; defaults are latest ordering (verified first, then newest), page 1 and 10 items. Unpriced/POA listings are excluded unless include_unpriced=true; unknown prices must not be treated as zero. Returns items, total, page, page_size and currency=BDT; each item includes listing_id, stated specs, asking price, verification status, image and browse_url. Empty items means no matches. Errors return isError=true with structuredContent.error; no seller is contacted and nothing is reserved.

Input Schema

NameRequiredDescriptionDefault
makeNoCase-insensitive manufacturer prefix, e.g. Toyota. Combine with query='Premio' for that model; omit to include all makes.
pageNoOne-based results page, 1 through 500; defaults to 1. Keep filters and sort unchanged when paging.
sortNoResult order: latest (default: verified first, then newest), price_asc (lowest stated price first), price_desc (highest first), or year_desc (newest model year first). Stable tie-breaks support paging; no valuation is performed.latest
queryNoCase-insensitive phrase within make, model or trim; use query='Premio' with make='Toyota', not one combined 'Toyota Premio' phrase. Known Bangla/Banglish vocabulary is normalized; unsupported words may be dropped. Use known English model words for precision; omit to browse.
max_yearNoInclusive latest model year, 1950 through 2100. Omit for no upper-year filter; supply a value no less than min_year.
min_yearNoInclusive earliest model year, 1950 through 2100. Omit for no lower-year filter; supply a value no greater than max_year.
fuel_typeNoCase-insensitive prefix of a public listing's fuel label, e.g. hybrid. Copy a known label where possible; omit to include all fuel types.
page_sizeNoMaximum results requested per page, 1 through 20; defaults to 10. total is the matching population, which may exceed this page's item count.
max_price_bdtNoInclusive maximum stated asking price in Bangladesh taka, e.g. 3000000 means ৳30 lakh. Omit for no maximum; no less than min_price_bdt.
min_price_bdtNoInclusive minimum stated asking price in Bangladesh taka, e.g. 2000000 means ৳20 lakh. Omit for no minimum; no greater than max_price_bdt.
verified_onlyNoTrue requires the storefront's verified flag, approved inspection status and a non-empty inspection ID; false (default) also permits other public listings. Verification is not a vehicle warranty.
include_unpricedNoTrue includes price-on-application or otherwise unpriced listings; false (default) excludes them. A missing asking price is unknown, never zero.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changedv1.0.1
    • addedInput schema / properties / fuel_type / description
      Added value: +"Case-insensitive prefix of a public listing's fuel label, e.g. hybrid. Copy a known label where possible; omit to include all fuel types."
    • changedInput schema / properties / include_unpriced / description
      Previous value: -"Include vehicles with a pending or undisclosed asking price (POA)."New value: +"True includes price-on-application or otherwise unpriced listings; false (default) excludes them. A missing asking price is unknown, never zero."
    • addedInput schema / properties / make / description
      Added value: +"Case-insensitive manufacturer prefix, e.g. Toyota. Combine with query='Premio' for that model; omit to include all makes."
    • addedInput schema / properties / max_price_bdt / description
      Added value: +"Inclusive maximum stated asking price in Bangladesh taka, e.g. 3000000 means ৳30 lakh. Omit for no maximum; no less than min_price_bdt."
    • addedInput schema / properties / max_year / description
      Added value: +"Inclusive latest model year, 1950 through 2100. Omit for no upper-year filter; supply a value no less than min_year."
    • addedInput schema / properties / max_year / maximum
      Added value: +2100
    • addedInput schema / properties / max_year / minimum
      Added value: +1950
    • addedInput schema / properties / min_price_bdt / description
      Added value: +"Inclusive minimum stated asking price in Bangladesh taka, e.g. 2000000 means ৳20 lakh. Omit for no minimum; no greater than max_price_bdt."
    • addedInput schema / properties / min_year / description
      Added value: +"Inclusive earliest model year, 1950 through 2100. Omit for no lower-year filter; supply a value no greater than max_year."
    • addedInput schema / properties / min_year / maximum
      Added value: +2100
    • addedInput schema / properties / min_year / minimum
      Added value: +1950
    • addedInput schema / properties / page / description
      Added value: +"One-based results page, 1 through 500; defaults to 1. Keep filters and sort unchanged when paging."
    • addedInput schema / properties / page / maximum
      Added value: +500
    • addedInput schema / properties / page_size / description
      Added value: +"Maximum results requested per page, 1 through 20; defaults to 10. total is the matching population, which may exceed this page's item count."
    • addedInput schema / properties / query / description
      Added value: +"Case-insensitive phrase within make, model or trim; use query='Premio' with make='Toyota', not one combined 'Toyota Premio' phrase. Known Bangla/Banglish vocabulary is normalized; unsupported words may be dropped. Use known English model words for precision; omit to browse."
    • addedInput schema / properties / sort / description
      Added value: +"Result order: latest (default: verified first, then newest), price_asc (lowest stated price first), price_desc (highest first), or year_desc (newest model year first). Stable tie-breaks support paging; no valuation is performed."
    • addedInput schema / properties / verified_only / description
      Added value: +"True requires the storefront's verified flag, approved inspection status and a non-empty inspection ID; false (default) also permits other public listings. Verification is not a vehicle warranty."
  2. First observedv1.0.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, closed-world, so the description correctly focuses on what annotations cannot say: unpriced/POA listings are excluded unless include_unpriced=true, unknown prices must not be read as zero, empty items means no matches, and errors surface as isError with structuredContent.error. It also reassures that no seller is contacted and nothing is reserved. Minor gap: no note on total-vs-page truncation behavior beyond what page_size already implies.

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?

Front-loaded with purpose, then routing, then filter semantics, then return shape — a sensible ordering with no filler sentences. It is dense and slightly long, and a few items (page 1, 10 items, latest default) restate schema defaults, but the returns summary is justified since no output schema exists.

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

Completeness5/5

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

With 12 parameters and no output schema, the description carries the right load: it documents the return envelope (items, total, page, page_size, currency=BDT), per-item fields including listing_id and browse_url, the empty-result meaning, and the error contract. Nothing an agent needs to call or interpret the result is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description earns above baseline by explaining how filters combine (query is a make/model/trim phrase while make and fuel_type are prefixes, year and price bounds inclusive) and by giving a concrete worked call for a Toyota under 30 lakh BDT — cross-parameter semantics that per-field schema text alone doesn't assemble.

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

Purpose5/5

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

States a specific verb and resource ('Find and browse cars for sale in JOY Auto Exchange's public Bangladesh listings') with explicit scope (public, Bangladesh, for-sale). It immediately distinguishes itself from siblings by naming get_vehicle and compare_vehicles and the role each plays.

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?

Explicitly says this tool's job is to discover listing_id values, then routes to get_vehicle for single-listing detail and compare_vehicles for a shortlist. It also covers the no-filter case ('No filters browses listings') and states the defaults that apply when nothing is supplied.

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