Find and compare live vehicle inventory from participating US dealers and contact them with consent.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://mcp.carhandshake.com/mcp10 tools · 136msshop_vehiclesUse for live US/CA cars/SUVs/trucks/EVs/motorcycles/RVs/trailers by place (near me), budget, mileage, make/model, condition, body, fuel, features, named dealer, or live-listing recommendation. Quebec excluded. Call once; never retry/refine/broaden. Fallback stays in-country; filters exact. Facts on…Use for live US/CA cars/SUVs/trucks/EVs/motorcycles/RVs/trailers by place (near me), budget, mileage, make/model, condition, body, fuel, features, named dealer, or live-listing recommendation. Quebec excluded. Call once; never retry/refine/broaden. Fallback stays in-country; filters exact. Facts on…
| Parameter | Type | Description |
|---|---|---|
| request* | string | Verbatim shopper request. |
| country | string | US default; CA supported outside Quebec. |
| location_text | string | Free-text city/place/state/postal exactly as the shopper supplied; never ask for a ZIP code. |
| radius_miles | number | US miles; CA kilometres. Fallback widens geography only; filters remain exact. |
| nationwide | boolean | — |
| vehicle_types | array | — |
| makes | array | — |
| models | array | — |
| trims | array | — |
| conditions | array | — |
| bodies | array | — |
| fuels | array | — |
| drivelines | array | — |
| transmissions | array | — |
| exterior_colors | array | — |
| interior_colors | array | — |
| features | array | Classes: third_row, awd_4wd, tow_package, apple_carplay, android_auto, adaptive_cruise, leather, heated_seats, ev_range_200_plus. |
| dealer_ids | array | — |
| year_min | integer | — |
| year_max | integer | — |
| price_min | integer | — |
| price_max | integer | — |
| mileage_max | integer | — |
| displacement_cc_min | integer | — |
get_vehicleFor full detail, pass exact shop_vehicles listing_id; returns dealer.dealer_id.For full detail, pass exact shop_vehicles listing_id; returns dealer.dealer_id.
| Parameter | Type | Description |
|---|---|---|
| listing_id* | string | — |
searchCitation only; never shopping/detail/compare. Search once, then fetch exact IDs.Citation only; never shopping/detail/compare. Search once, then fetch exact IDs.
| Parameter | Type | Description |
|---|---|---|
| query* | string | Vehicle-shopping query, verbatim. |
fetchCitation only after search; never shopping/detail. Fetch one exact ID.Citation only after search; never shopping/detail. Fetch one exact ID.
| Parameter | Type | Description |
|---|---|---|
| id* | string | Exact listing ID returned by search. |
compare_vehiclesOnly for explicit comparison: after exactly one shop_vehicles call, pass 2-4 distinct returned listing IDs. Never search or shop again.Only for explicit comparison: after exactly one shop_vehicles call, pass 2-4 distinct returned listing IDs. Never search or shop again.
| Parameter | Type | Description |
|---|---|---|
| listing_ids* | array | 2-4 exact IDs returned by shop_vehicles. |
| priorities | array | Shopper priorities, up to eight. |
find_dealershipsUse this once to find dealerships by name/place with IDs, addresses, and listing counts. Named stock: one shop_vehicles call with a returned dealer_id. For contacts or sales/service hours: get_dealership once.Use this once to find dealerships by name/place with IDs, addresses, and listing counts. Named stock: one shop_vehicles call with a returned dealer_id. For contacts or sales/service hours: get_dealership once.
| Parameter | Type | Description |
|---|---|---|
| query | string | — |
| country | string | US default; CA for Canada. Quebec excluded. |
| location | string | Place or postal text exactly as supplied. |
| limit | integer | — |
get_dealershipUse this with an exact dealer_id to return every public rooftop, contact, site, capability, and named sales/service schedule.Use this with an exact dealer_id to return every public rooftop, contact, site, capability, and named sales/service schedule.
| Parameter | Type | Description |
|---|---|---|
| dealer_id* | string | — |
schedule_test_driveAfter explicit consent and confirmation, request a test drive for this listing.After explicit consent and confirmation, request a test drive for this listing.
| Parameter | Type | Description |
|---|---|---|
| listing_id* | string | Exact listing_id from prior results. |
| dry_run | boolean | Validate with no dealer contact. |
| first_name* | string | First name. |
| last_name* | string | Last name. |
| string | Email (or phone required). | |
| phone | string | E.164 phone (or email required). |
| preferred_contact | string | — |
| consent_text* | string | Accepted consent words; never fabricate consent. |
| allowed_channels* | array | Consent channels. |
| consent_granted_at* | string | Consent timestamp (RFC 3339). |
| message | string | Dealer note. |
| idempotency_key* | string | Unique retry key. |
| appointment_at | string | — |
request_trade_in_appraisalAfter explicit consent and confirmation, request a trade-in appraisal for this listing.After explicit consent and confirmation, request a trade-in appraisal for this listing.
| Parameter | Type | Description |
|---|---|---|
| listing_id* | string | Exact listing_id from prior results. |
| dry_run | boolean | Validate with no dealer contact. |
| first_name* | string | First name. |
| last_name* | string | Last name. |
| string | Email (or phone required). | |
| phone | string | E.164 phone (or email required). |
| preferred_contact | string | — |
| consent_text* | string | Accepted consent words; never fabricate consent. |
| allowed_channels* | array | Consent channels. |
| consent_granted_at* | string | Consent timestamp (RFC 3339). |
| message | string | Dealer note. |
| idempotency_key* | string | Unique retry key. |
| trade_in_year* | integer | — |
| trade_in_make* | string | — |
| trade_in_model* | string | — |
| trade_in_trim | string | — |
| trade_in_mileage | integer | — |
| trade_in_condition | string | — |
submit_vehicle_inquiryAfter explicit consent and confirmation, send this listing's dealer a question.After explicit consent and confirmation, send this listing's dealer a question.
| Parameter | Type | Description |
|---|---|---|
| listing_id* | string | Exact listing_id from prior results. |
| dry_run | boolean | Validate with no dealer contact. |
| first_name* | string | First name. |
| last_name* | string | Last name. |
| string | Email (or phone required). | |
| phone | string | E.164 phone (or email required). |
| preferred_contact | string | — |
| consent_text* | string | Accepted consent words; never fabricate consent. |
| allowed_channels* | array | Consent channels. |
| consent_granted_at* | string | Consent timestamp (RFC 3339). |
| message* | string | Dealer note. |
| idempotency_key* | string | Unique retry key. |
10 of 10 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Find and compare live vehicle inventory from participating US dealers and contact them with consent.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.