Skip to main content
Glama
www-joyautomart-com

JOY Automart MCP Server

Official

Compare cars

compare_vehicles
Read-onlyIdempotent

Compare two to four JOY vehicle listings side by side to review stated specs, BDT asking prices, and optional QC summaries for shortlist decisions.

Instructions

Compare a selected shortlist of two to four JOY vehicle listings side by side. Obtain listing_id values from search_vehicles or slugs from public listing URLs; use get_vehicle for a single car. Returns vehicles with stated specs, BDT asking prices and optional QC summaries, plus not_found, unavailable and price-coverage counts. Missing or temporarily unavailable listings are reported explicitly. Unknown/non-positive asking prices become null, not zero; at least two distinct listings with positive stated prices are required to return cheapest_listing_id. When price_comparison_complete=false, any cheapest result covers only the known-price subset, not every requested car or the wider market. Repeated IDs/aliases are not independent price evidence. Invalid arguments return isError=true with structuredContent.error. No valuation, seller contact or reservation is performed.

Input Schema

NameRequiredDescriptionDefault
vehicle_idsYesTwo to four listing_id values from search_vehicles or public listing slugs, not VINs or URLs. Choose distinct listings; repeated IDs or an ID and its slug do not provide separate price evidence.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.1
    • addedInput schema / properties / vehicle_ids / description
      Added value: +"Two to four listing_id values from search_vehicles or public listing slugs, not VINs or URLs. Choose distinct listings; repeated IDs or an ID and its slug do not provide separate price evidence."
  2. First observedv1.0.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world, but the description adds substantial context they cannot: what the response contains (specs, BDT prices, optional QC summaries, not_found/unavailable/price-coverage counts), how unknown prices become null rather than zero, and that invalid arguments produce isError=true with structuredContent.error. It also scopes out valuation, seller contact and reservation.

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 and input sourcing, then degrades into a fairly dense chain of edge-case clauses. All content is substantive, but the price-coverage sentences are packed tightly enough to slow scanning; slight trimming would help.

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 no output schema, the description carries the return-value burden and does it well: field-level contents, count fields, null handling, error shape, and the market-scope caveat on cheapest_listing_id. Nothing an agent needs to interpret results is missing.

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 100% and the schema already states the 2-4 range, the 'not VINs or URLs' constraint, and the distinct-listings/alias caveat. The description largely restates this ('Repeated IDs/aliases are not independent price evidence' mirrors the schema text), so it adds little beyond what structured data already provides. Baseline 3 applies.

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 (compare) plus resource and cardinality (two to four JOY vehicle listings side by side), and explicitly distinguishes itself from get_vehicle for single-car lookups and from search_vehicles as the ID source. An agent can route between the three siblings without opening any schema.

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?

Names the upstream tools that supply inputs, the alternative tool for the single-vehicle case, and the conditions under which a cheapest result is meaningful (at least two distinct listings with positive stated prices; price_comparison_complete flag). Both when-to-use and when-not-to-trust-the-output are spelled out.

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