Skip to main content
Glama

Server Details

Search and compare live vehicles from participating US and Canadian dealers outside Quebec.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 74 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.6/5.0

Scored across 10 tools

Disambiguation3/5

Most tools have distinct roles, but search, shop_vehicles, fetch, and get_vehicle form a layered inventory-access surface that can be confusing. The descriptions help clarify that shop_vehicles is the main search/rank tool while fetch and get_vehicle use exact listing IDs, but the boundary between search and shop_vehicles is still somewhat ambiguous.

Naming Consistency4/5

Eight of ten tools follow a clear verb_noun pattern, such as compare_vehicles, find_dealerships, get_vehicle, and schedule_test_drive. The bare verbs search and fetch are minor deviations but remain readable and understandable.

Tool Count5/5

Ten tools is a well-scoped size for a car-shopping assistant, covering discovery, comparison, dealership lookup, and lead-generation actions. Each tool appears to earn its place without obvious redundancy or excessive surface area.

Completeness4/5

The surface covers the core car-shopping workflow: inventory search, vehicle detail, comparison, dealership lookup, and key dealer actions like test drives, trade-in appraisals, and inquiries. Minor gaps may exist around saving favorites or broader post-search workflows, but the essential lifecycle is well represented.

Available Tools

10 tools
compare_vehiclesCompare vehiclesA
Read-onlyIdempotent
Inspect

Compare two to four distinct returned listing IDs using current inventory facts. Missing data is not an assessment of the vehicle.

NameRequiredDescriptionDefault
prioritiesNoShopper priorities, up to eight.
listing_idsYes2-4 exact IDs returned by shop_vehicles.

Output Schema

NameRequiredDescription
comparedYes
vehiclesYes
recommendationYes
missing_listing_idsYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile, and the description adds useful behavioral context: comparisons use current inventory facts and missing data should not be interpreted as a negative assessment. It does not contradict the read-only, idempotent annotations.

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?

Two short sentences, front-loaded with the core action and followed by a relevant interpretation caveat. There is no wasted wording.

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 the rich annotations, complete input schema, and existing output schema, the description is nearly complete. The main remaining gap is that it does not explicitly route agents to or away from sibling tools, though the schema points to shop_vehicles.

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 the baseline is 3, but the description adds a meaningful constraint by requiring distinct listing IDs, beyond the schema's minItems/maxItems. The optional priorities parameter is left to the schema description, which is adequate.

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 gives a specific verb and resource: compare two to four listing IDs using current inventory facts. It clearly implies a multi-vehicle comparison rather than a single-vehicle lookup, though it does not explicitly name sibling tools like get_vehicle or shop_vehicles.

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?

It establishes a clear usage context: compare 2-4 distinct listing IDs that were already returned, using current inventory facts. It does not explicitly state when to prefer this over get_vehicle or shop_vehicles, but it does not introduce misleading exclusions either.

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

fetchFetch citationA
Read-onlyIdempotent
Inspect

Return citation text and metadata for one exact listing ID returned by search.

NameRequiredDescriptionDefault
idYesExact listing ID returned by search.

Output Schema

NameRequiredDescription
idYes
urlYes
textYes
titleYes
metadataNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered structurally. The description adds only the per-ID lookup constraint; it says nothing about behavior for invalid/unknown IDs or any throttling, which is a modest gap given the lower bar set by annotations.

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?

A single front-loaded sentence with zero filler that conveys the return content, the keyability, and the provenance constraint all at once.

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 a full input schema, an output schema that documents return values, and annotations covering the safety profile, the description needs only to state what is returned and for which ID — both of which it does.

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?

There is a single parameter and schema coverage is 100%, with the schema description ('Exact listing ID returned by search') already defining format (uuid) and provenance. The description restates the same constraint without adding syntax or format detail beyond the schema, matching the baseline 3 for high coverage.

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 ('Return') and resource ('citation text and metadata') scoped to 'one exact listing ID returned by search'. This distinguishes it from the sibling search tool that produces the IDs and from get_vehicle, whose output is vehicle data rather than citations.

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?

The phrase 'one exact listing ID returned by search' establishes a clear precondition and data flow from the search sibling. It does not name get_vehicle as an alternative or state when not to use this tool, so the routing guidance is contextual rather than explicit.

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

find_dealershipsFind US/CA dealershipsA
Read-onlyIdempotent
Inspect

Find participating dealerships by name or place with IDs, addresses and listing counts. Returned dealer_id values select named-dealer stock; get_dealership provides contacts and sales/service hours.

NameRequiredDescriptionDefault
limitNo
queryNo
countryNoUS default; CA for Canada. Quebec excluded.
locationNoPlace or postal text exactly as supplied.

Output Schema

NameRequiredDescription
totalYes
dealershipsYes
next_actionYes
interpreted_locationYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the operation is read-only, idempotent, non-destructive and closed-world. The description adds useful behavioral context beyond that: it identifies the returned data (IDs, addresses, listing counts) and the downstream purpose of dealer_id values. It does not discuss pagination or limit behavior, which keeps it from a 5.

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?

Two tight sentences, front-loaded with the purpose and output fields, followed by the most actionable routing information. No filler or redundancy.

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 an output schema exists, the description need not enumerate return values, yet it still usefully names them. It covers the key downstream use of dealer_id and points to get_dealership for complementary data. Some operational details (limit semantics, empty-result behavior) are left implicit, but the definition is complete enough for correct invocation.

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 moderate at 50%: country and location are described in the schema, while query and limit are not. The phrase 'by name or place' indirectly maps to query and location, adding some meaning, but the description does not clarify limit or query syntax beyond that. A 3 reflects the schema doing much of the work while the description partially compensates.

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?

The description uses a specific verb and resource ('Find participating dealerships') and immediately states the scope ('by name or place') and returned fields ('IDs, addresses and listing counts'). It also names the sibling get_dealership as the tool for contacts and hours, so an agent can distinguish the two without inspecting schemas.

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?

It clearly frames this as the lookup tool for dealer IDs and explains that those dealer_id values are used to select named-dealer stock, with get_dealership pointed to for contacts and hours. It lacks explicit exclusion rules (e.g., when not to use it), so it falls short of a full when/when-not guide.

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

get_dealershipGet dealership locations, hours, and contactsB
Read-onlyIdempotent
Inspect

Use this with an exact dealer_id to return every public rooftop, contact, site, capability, and named sales/service schedule.

NameRequiredDescriptionDefault
dealer_idYes

Output Schema

NameRequiredDescription
nameYes
domainYes
dealer_idYes
locationsYes
vehicle_countYes
agent_card_urlYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds the scope of returned data ('every public...'), which is valuable but does not cover error handling, rate limits, or authorization requirements. No contradiction with annotations.

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?

Single sentence conveys all essential information without redundancy. Front-loaded with usage condition and scope. No wasted words.

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 single required parameter and an output schema present, the description adequately lists the returned data categories. However, it omits behavior for missing IDs, pagination (if any), or access permissions, though these are less critical with annotations indicating safe reads.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate. It only notes that dealer_id must be 'exact', adding minimal semantic value beyond the schema's type/format. The agent gains little insight into constraints or usage nuances.

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?

Description clearly states the action ('return') and the resource ('every public rooftop, contact, site, capability, and named sales/service schedule') for a specific dealer_id. It implicitly differentiates from sibling 'find_dealerships' by requiring an exact ID, but does not explicitly contrast.

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

Usage Guidelines3/5

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

Description specifies the condition for use: 'with an exact dealer_id'. However, it does not mention when not to use it, alternative tools like 'find_dealerships', or error scenarios like missing ID.

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

get_vehicleGet vehicle detailsA
Read-onlyIdempotent
Inspect

For full detail, pass exact shop_vehicles listing_id; returns dealer.dealer_id.

NameRequiredDescriptionDefault
listing_idYes

Output Schema

NameRequiredDescription
vinNo
bodyNo
fuelNo
makeYes
msrpNo
trimNo
yearYes
modelYes
priceNo
stockNo
dealerYes
engineNo
photosNo
statusYes
mileageNo
city_mpgNo
currencyNo
featuresNo
locationYes
conditionNo
drivelineNo
listing_idYes
updated_atNo
battery_kwhNo
charge_portNo
descriptionNo
highway_mpgNo
listing_urlNo
transmissionNo
vehicle_typeYes
dc_fast_chargeNo
distance_milesNo
exterior_colorNo
interior_colorNo
motor_power_hpNo
displacement_ccNo
primary_photo_urlNo
listing_url_sourceNo
electric_range_milesNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the agent knows this is a safe read. The description adds that it returns dealer.dealer_id but does not disclose behavior for missing IDs or other context. With annotations covering the safety profile, this is modest but acceptable additional context.

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?

The description is a single, efficient sentence that wastes no words. 'For full detail' front-loads the purpose, though it could be more direct. It is appropriately concise for the tool's simplicity.

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?

For a simple read-only getter with one parameter and an output schema, the description covers the key aspects: the input source and a notable return field. It does not discuss errors or fallback behavior, but given the annotations and output schema, this is acceptable and effectively complete.

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?

With 0% schema description coverage, the description compensates by clarifying that listing_id must be the 'exact shop_vehicles listing_id', providing the source and precision required. This adds meaning beyond the schema's uuid type, though it could elaborate further on the ID's role.

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 implies this tool fetches full vehicle details via 'For full detail', and specifies the key input (listing_id) and a return field (dealer.dealer_id). It is clear in context but relies on the tool name/title for the explicit 'get vehicle' purpose, so it lacks the directness of the highest standard.

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?

The instruction to 'pass exact shop_vehicles listing_id' gives a clear when-to-use context: after obtaining a listing_id from the shop_vehicles tool, use this tool for full details. It implies a dependency but does not explicitly name alternative tools or when not to use.

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

request_trade_in_appraisalRequest trade-inB
DestructiveIdempotent
Inspect

After explicit consent and confirmation, request a trade-in appraisal for this listing.

NameRequiredDescriptionDefault
emailNoEmail (or phone required).
phoneNoE.164 phone (or email required).
dry_runNoValidate with no dealer contact.
messageNoDealer note.
last_nameYesLast name.
first_nameYesFirst name.
listing_idYesExact listing_id from prior results.
consent_textYesAccepted consent words; never fabricate consent.
trade_in_makeYes
trade_in_trimNo
trade_in_yearYes
trade_in_modelYes
idempotency_keyYesUnique retry key.
allowed_channelsYesConsent channels.
trade_in_mileageNo
preferred_contactNo
consent_granted_atYesConsent timestamp (RFC 3339).
trade_in_conditionNo

Output Schema

NameRequiredDescription
statusYes
lead_idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, which the description supports ('request a trade-in appraisal' implies a mutation). The description adds a key precondition ('after explicit consent and confirmation'), which is helpful. However, it does not disclose potential side effects (e.g., dealer contact being initiated) or the idempotency retry behavior, and does not explain what happens on dry_run or if the listing's seller is contacted automatically.

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?

Single sentence, front‑loaded with the critical prerequisite, zero wasted words. Perfectly concise.

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?

For an 18‑parameter, 10‑required, destructive toy with an output schema, the description is too brief. It does not explain the return contract (output_schema exists but gets no mention), does not clarify the idempotency guarantee, and does not specify which channel the appraisal request uses. While annotations and schema carry some burden, the description's extreme brevity leaves important behavioral questions unanswered.

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 description coverage is 61%, meaning 39% of parameters lack schema descriptions. The tool description compensates partially by stating the high‑level workflow (consent, then request), but does not individually clarify undocumented fields like trade_in_make, trade_in_model, trade_in_condition, or trade_in_trim. The warning 'never fabricate consent' in consent_text's description is valuable, but not part of the tool's description.

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 uses a specific verb-resource pair ('request trade-in appraisal') and clearly ties it to a 'listing'. However, it doesn't explicitly differentiate from siblings like 'submit_vehicle_inquiry' or 'schedule_test_drive', which also involve dealer actions.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs. alternatives. Given complex prerequisites (explicit consent, consent confirmation, listing ownership) and many sibling tools, the lack of when/why guidance is a serious gap.

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

schedule_test_driveRequest test driveB
DestructiveIdempotent
Inspect

After explicit consent and confirmation, request a test drive for this listing.

NameRequiredDescriptionDefault
emailNoEmail (or phone required).
phoneNoE.164 phone (or email required).
dry_runNoValidate with no dealer contact.
messageNoDealer note.
last_nameYesLast name.
first_nameYesFirst name.
listing_idYesExact listing_id from prior results.
consent_textYesAccepted consent words; never fabricate consent.
appointment_atNo
idempotency_keyYesUnique retry key.
allowed_channelsYesConsent channels.
preferred_contactNo
consent_granted_atYesConsent timestamp (RFC 3339).

Output Schema

NameRequiredDescription
statusYes
lead_idYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate destructive and idempotent behavior, so the description's mention of consent confirms an important compliance requirement. However, the description adds minimal behavioral context beyond what annotations provide—it does not explain that this tool contacts the dealer, the role of the idempotency key, or the validation via dry_run. No contradiction with annotations.

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?

The description is a single sentence, front-loaded, and free of unnecessary words. However, it is so concise that it omits important context; a slightly longer description that includes usage guidelines would be more helpful without losing conciseness.

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

Completeness2/5

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

Given the tool's complexity (13 parameters, 7 required, output schema exists), the description is too brief. It does not cover the consent flow, return value, idempotency behavior, or how this tool differs from sibling inquiry tools. The annotations and schema fill many gaps, but the description should provide a higher-level context for the AI agent.

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 high (85%), so the baseline is 3. The description does not add any parameter-specific meaning beyond what the schema already provides. For example, it does not clarify the purpose of 'idempotency_key', 'dry_run', or the relationship between 'email' and 'phone' requirements.

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 clearly states the action ('request a test drive') and the resource ('this listing'), making the purpose immediately understandable. However, it does not differentiate this tool from sibling tools like 'submit_vehicle_inquiry' or 'request_trade_in_appraisal', which could cause confusion for an AI agent deciding which tool to use.

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

Usage Guidelines2/5

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

The description mentions a prerequisite ('after explicit consent and confirmation'), but provides no guidance on when to use this tool versus alternatives. It does not specify when not to use it, nor does it reference any sibling tools that might be more appropriate for general inquiries or other actions.

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

shop_vehiclesShop vehiclesA
Read-onlyIdempotent
Inspect

Search and rank participating US/Canadian dealer cars, SUVs, trucks, EVs, motorcycles, RVs and trailers by place (including near me), budget, mileage, make/model, condition, body, fuel and features. Quebec excluded. Accepts the shopper’s wording and optional structured filters. Named-dealer stock uses a dealer_id from find_dealerships. Returns a ranked page, total and geographic fallback details. Coverage and equipment evidence are partial; zero matches do not establish market-wide absence.

NameRequiredDescriptionDefault
fuelsNo
limitNo
makesNo
trimsNo
bodiesNo
cursorNo
modelsNo
countryNoUS default; CA supported outside Quebec.
requestYesVerbatim shopper request.
sort_byNoDefault: relevance.
featuresNoClasses: third_row, awd_4wd, tow_package, apple_carplay, android_auto, adaptive_cruise, leather, heated_seats, ev_range_200_plus.
statusesNoOmit unless status is explicit; omission searches both available and intransit.
year_maxNo
year_minNo
price_maxNo
price_minNo
conditionsNo
dealer_idsNo
drivelinesNo
nationwideNo
mileage_maxNo
charge_portsNo
radius_milesNoUS miles; CA kilometres. Fallback widens geography only; filters remain exact.
location_textNoFree-text city/place/state/postal exactly as the shopper supplied; never ask for a ZIP code.
transmissionsNo
vehicle_typesNo
dc_fast_chargeNo
sort_directionNo
exterior_colorsNo
interior_colorsNo
electric_range_maxNo
electric_range_minNo
displacement_cc_maxNo
displacement_cc_minNo

Output Schema

NameRequiredDescription
totalYes
matchesYes
coverageYes
fallbackYes
freshnessYes
next_actionYes
next_cursorYes
total_relationYes
applied_filtersYes
interpreted_requestYes
suggested_relaxationsYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so safety and side-effect behavior are covered. The description adds meaningful context beyond annotations: Quebec is excluded, a ranked page plus total and geographic fallback are returned, coverage/equipment evidence is partial, and zero matches do not establish market-wide absence. That is unusually useful transparency for a search tool.

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?

The description is front-loaded with the core search scope and then appends the important caveats about dealer_id sourcing, return shape and coverage limits. It is dense but efficient, with no obvious filler. A slight restructuring could make the filter categories and return details easier to scan, but it is well within acceptable length.

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 large search surface with an output schema, the description supplies the critical behavioral context: supported countries, Quebec exclusion, dealer-specific lookup via find_dealerships, ranked pagination, geographic fallback and partial coverage caveats. It does not explain pagination mechanics, limit behavior or every filter category, so it is not fully complete, but it covers the operational essentials for calling the tool correctly.

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 low (21%) across 34 parameters, so the description must carry more semantic weight. It groups the main filters (place, budget, mileage, make/model, condition, body, fuel, features) and states that named-dealer stock uses dealer_ids from find_dealerships, but it does not cover many parameters such as trims, drivelines, transmissions, colors, charge ports, electric range, displacement, nationwide, statuses, cursor or limit. The schema itself documents a few key fields (country, features, statuses, radius_miles, location_text), so the description adds partial value but leaves significant gaps.

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?

The description names a specific verb and resource ('Search and rank participating US/Canadian dealer cars...') and enumerates the covered vehicle categories and ranking dimensions. It also distinguishes itself from the sibling tool find_dealerships by explaining that named-dealer stock uses a dealer_id from that tool. An agent can tell this is the broad vehicle shopping search rather than a detail or comparison tool.

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?

Usage is clear for the main scenario: search by place, budget, mileage, make/model, condition, body, fuel and features, and it explicitly routes dealer-specific stock through find_dealerships. It does not explicitly exclude or compare against siblings like get_vehicle or compare_vehicles, but the context is strong enough to imply when this is the right entry point.

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

submit_vehicle_inquirySend a vehicle inquiryA
DestructiveIdempotent
Inspect

After explicit consent and confirmation, send this listing's dealer a question.

NameRequiredDescriptionDefault
emailNoEmail (or phone required).
phoneNoE.164 phone (or email required).
dry_runNoValidate with no dealer contact.
messageYesDealer note.
last_nameYesLast name.
first_nameYesFirst name.
listing_idYesExact listing_id from prior results.
consent_textYesAccepted consent words; never fabricate consent.
idempotency_keyYesUnique retry key.
allowed_channelsYesConsent channels.
preferred_contactNo
consent_granted_atYesConsent timestamp (RFC 3339).

Output Schema

NameRequiredDescription
statusYes
lead_idYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover readOnly/destructive/idempotent hints, so the bar is lower. The description adds the crucial consent requirement and states that the tool sends an external message to the dealer, which is a side effect. This provides useful context beyond the annotations.

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?

The description is a single sentence that is front-loaded with the consent condition and states the action and target. Every word earns its place, with no redundancy or padding.

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?

The tool has many parameters, but the schema is rich with descriptions. The description covers the essential purpose and the critical consent requirement. An output schema exists, so the description need not explain return values. It is adequate but not exhaustive for such a multi-parameter external side-effect tool.

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 high (92%), so the baseline is 3. The description adds no specific parameter semantics; the consent-related parameters are already well described in the schema. The consent phrase in the description reinforces but does not exceed schema content.

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?

The description uses a specific verb ('send') and identifies the resource ('this listing's dealer a question'), clearly distinguishing it from sibling tools like schedule_test_drive or search. It also includes the important prerequisite of consent, adding scope.

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?

The description implies usage after explicit consent and confirmation, giving a clear condition for when to invoke. It does not explicitly mention alternatives or exclusions, but the tool's function is distinct among siblings, making the context clear.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedshop_vehicles7 fields changed
      • removedInput schema / properties / conditions / description
        Removed value: -"New, used, or certified pre-owned (cpo)."
      • changedInput schema / properties / country / description
        Previous value: -"US default; CA for Canada. Quebec excluded."New value: +"US default; CA supported outside Quebec."
      • changedInput schema / properties / features / description
        Previous value: -"Feature classes: third_row, awd_4wd, tow_package, apple_carplay, android_auto, adaptive_cruise, leather, heated_seats, ev_range_200_plus. Unknowns are disclosed."New value: +"Classes: third_row, awd_4wd, tow_package, apple_carplay, android_auto, adaptive_cruise, leather, heated_seats, ev_range_200_plus."
      • changedInput schema / properties / radius_miles / description
        Previous value: -"US miles; CA kilometres. Zero results widen radius, state/province, then countrywide; filters stay exact; fallback reports stage."New value: +"US miles; CA kilometres. Fallback widens geography only; filters remain exact."
      • changedInput schema / properties / request / description
        Previous value: -"The shopper's natural-language request, verbatim."New value: +"Verbatim shopper request."
      • changedInput schema / properties / sort_by / description
        Previous value: -"Result order; default relevance."New value: +"Default: relevance."
      • removedInput schema / properties / vehicle_types / description
        Removed value: -"Vehicle categories, including motorcycles, RVs, and trailers."
  2. 8 tool updates
    • Changedcompare_vehicles3 fields changed
      • addedOutput schema / properties / vehicles / items / properties / listing / properties / currency
        Added value: +{
        +  "enum": [
        +    "USD",
        +    "CAD"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / properties / vehicles / items / properties / listing / properties / location / properties / country / const
        Removed value: -"US"
      • addedOutput schema / properties / vehicles / items / properties / listing / properties / location / properties / country / enum
        Added value: +[
        +  "US",
        +  "CA"
        +]
    • Changedfind_dealerships3 fields changed
      • addedInput schema / properties / country
        Added value: +{
        +  "description": "US default; CA for Canada. Quebec excluded.",
        +  "enum": [
        +    "US",
        +    "CA"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / properties / dealerships / items / properties / locations / items / properties / country / const
        Removed value: -"US"
      • addedOutput schema / properties / dealerships / items / properties / locations / items / properties / country / enum
        Added value: +[
        +  "US",
        +  "CA"
        +]
    • Changedget_dealership3 fields changed
      • removedOutput schema / properties / locations / items / properties / country / const
        Removed value: -"US"
      • addedOutput schema / properties / locations / items / properties / country / enum
        Added value: +[
        +  "US",
        +  "CA"
        +]
      • changedOutput schema / properties / locations / items / properties / schedules / description
        Previous value: -"All published rooftop schedules; each named entry preserves local sales, service, or other department hours."New value: +"Published rooftop schedules with named sales, service, or other department hours."
    • Changedget_vehicle3 fields changed
      • addedOutput schema / properties / currency
        Added value: +{
        +  "enum": [
        +    "USD",
        +    "CAD"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / properties / location / properties / country / const
        Removed value: -"US"
      • addedOutput schema / properties / location / properties / country / enum
        Added value: +[
        +  "US",
        +  "CA"
        +]
    • Changedrequest_trade_in_appraisal8 fields changed
      • changedInput schema / properties / allowed_channels / description
        Previous value: -"Accepted channels."New value: +"Consent channels."
      • changedInput schema / properties / consent_granted_at / description
        Previous value: -"Consent time, RFC 3339 with timezone."New value: +"Consent timestamp (RFC 3339)."
      • changedInput schema / properties / consent_text / description
        Previous value: -"Exact accepted words; never fabricate consent."New value: +"Accepted consent words; never fabricate consent."
      • changedInput schema / properties / dry_run / description
        Previous value: -"Validate only; no dealer contact."New value: +"Validate with no dealer contact."
      • changedInput schema / properties / email / description
        Previous value: -"Email; email or phone required."New value: +"Email (or phone required)."
      • changedInput schema / properties / listing_id / description
        Previous value: -"Exact listing_id from prior read."New value: +"Exact listing_id from prior results."
      • changedInput schema / properties / message / description
        Previous value: -"Optional dealer note."New value: +"Dealer note."
      • changedInput schema / properties / phone / description
        Previous value: -"E.164 phone; email or phone required."New value: +"E.164 phone (or email required)."
    • Changedschedule_test_drive8 fields changed
      • changedInput schema / properties / allowed_channels / description
        Previous value: -"Accepted channels."New value: +"Consent channels."
      • changedInput schema / properties / consent_granted_at / description
        Previous value: -"Consent time, RFC 3339 with timezone."New value: +"Consent timestamp (RFC 3339)."
      • changedInput schema / properties / consent_text / description
        Previous value: -"Exact accepted words; never fabricate consent."New value: +"Accepted consent words; never fabricate consent."
      • changedInput schema / properties / dry_run / description
        Previous value: -"Validate only; no dealer contact."New value: +"Validate with no dealer contact."
      • changedInput schema / properties / email / description
        Previous value: -"Email; email or phone required."New value: +"Email (or phone required)."
      • changedInput schema / properties / listing_id / description
        Previous value: -"Exact listing_id from prior read."New value: +"Exact listing_id from prior results."
      • changedInput schema / properties / message / description
        Previous value: -"Optional dealer note."New value: +"Dealer note."
      • changedInput schema / properties / phone / description
        Previous value: -"E.164 phone; email or phone required."New value: +"E.164 phone (or email required)."
    • Changedshop_vehicles8 fields changed
      • addedInput schema / properties / country
        Added value: +{
        +  "description": "US default; CA for Canada. Quebec excluded.",
        +  "enum": [
        +    "US",
        +    "CA"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / features / description
        Previous value: -"Features: third_row, awd_4wd, tow_package, apple_carplay, android_auto, adaptive_cruise, leather, heated_seats, ev_range_200_plus. Unknown names are disclosed, not hard-filtered."New value: +"Feature classes: third_row, awd_4wd, tow_package, apple_carplay, android_auto, adaptive_cruise, leather, heated_seats, ev_range_200_plus. Unknowns are disclosed."
      • changedInput schema / properties / radius_miles / description
        Previous value: -"Search radius around the resolved location. If nothing matches, the search widens automatically — double this radius, then statewide, then national — keeping every vehicle filter exact, and reports the stage it stopped at in fallback.applied."New value: +"US miles; CA kilometres. Zero results widen radius, state/province, then countrywide; filters stay exact; fallback reports stage."
      • removedOutput schema / properties / coverage / properties / country / const
        Removed value: -"US"
      • addedOutput schema / properties / coverage / properties / country / enum
        Added value: +[
        +  "US",
        +  "CA"
        +]
      • addedOutput schema / properties / matches / items / properties / listing / properties / currency
        Added value: +{
        +  "enum": [
        +    "USD",
        +    "CAD"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / properties / matches / items / properties / listing / properties / location / properties / country / const
        Removed value: -"US"
      • addedOutput schema / properties / matches / items / properties / listing / properties / location / properties / country / enum
        Added value: +[
        +  "US",
        +  "CA"
        +]
    • Changedsubmit_vehicle_inquiry8 fields changed
      • changedInput schema / properties / allowed_channels / description
        Previous value: -"Accepted channels."New value: +"Consent channels."
      • changedInput schema / properties / consent_granted_at / description
        Previous value: -"Consent time, RFC 3339 with timezone."New value: +"Consent timestamp (RFC 3339)."
      • changedInput schema / properties / consent_text / description
        Previous value: -"Exact accepted words; never fabricate consent."New value: +"Accepted consent words; never fabricate consent."
      • changedInput schema / properties / dry_run / description
        Previous value: -"Validate only; no dealer contact."New value: +"Validate with no dealer contact."
      • changedInput schema / properties / email / description
        Previous value: -"Email; email or phone required."New value: +"Email (or phone required)."
      • changedInput schema / properties / listing_id / description
        Previous value: -"Exact listing_id from prior read."New value: +"Exact listing_id from prior results."
      • changedInput schema / properties / message / description
        Previous value: -"Optional dealer note."New value: +"Dealer note."
      • changedInput schema / properties / phone / description
        Previous value: -"E.164 phone; email or phone required."New value: +"E.164 phone (or email required)."
  3. 1 tool update
    • Changedshop_vehicles1 field changed
      • addedInput schema / properties / radius_miles / description
        Added value: +"Search radius around the resolved location. If nothing matches, the search widens automatically — double this radius, then statewide, then national — keeping every vehicle filter exact, and reports the stage it stopped at in fallback.applied."
  4. 10 tool updates
    • First observedcompare_vehicles
    • First observedfetch
    • First observedfind_dealerships
    • First observedget_dealership
    • First observedget_vehicle
    • First observedrequest_trade_in_appraisal
    • First observedschedule_test_drive
    • First observedsearch
    • First observedshop_vehicles
    • First observedsubmit_vehicle_inquiry

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to search and aggregate used-vehicle listings across Cars.com, Autotrader, and KBB, with filters for price, mileage, dealer information, and CARFAX-style history conditions.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables decoding VINs into complete vehicle specifications, searching active used car listings from US dealers, and retrieving vehicle valuations with total cost of ownership estimates.
    421 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources