MCPサーバー

Car Handshake

com.carhandshake/inventory
コマース・小売 公開・接続可能 MCP 2025-11-25

このMCPでできること

Searches live vehicle inventory, compares listings, provides dealership details, and submits consent-based vehicle enquiries, test-drive requests, and trade-in appraisals.

compare_vehicles
Compare vehicles
Only for explicit comparison: after exactly one shop_vehicles call, pass 2-4 distinct returned listing IDs. Never search or shop again.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['listing_ids'], 'properties': {'priorities': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Shopper priorities, up to eight.'}, 'listing_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 4, 'minItems': 2, 'description': '2-4 exact IDs returned by shop_vehicles.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['vehicles', 'missing_listing_ids', 'recommendation', 'compared'], 'properties': {'compared': {'type': 'integer', 'maximum': 4, 'minimum': 2}, 'vehicles': {'type': 'array', 'items': {'type': 'object', 'required': ['listing', 'advantages', 'tradeoffs'], 'properties': {'listing': {'type': 'object', 'required': ['listing_id', 'year', 'make', 'model', 'vehicle_type', 'status', 'dealer', 'location'], 'properties': {'vin': {'type': 'string'}, 'body': {'type': ['string', 'null']}, 'fuel': {'type': ['string', 'null']}, 'make': {'type': 'string'}, 'msrp': {'type': ['integer', 'null']}, 'trim': {'type': ['string', 'null']}, 'year': {'type': 'integer'}, 'model': {'type': 'string'}, 'price': {'type': ['integer', 'null']}, 'stock': {'type': ['string', 'null']}, 'dealer': {'type': 'object', 'required': ['dealer_id', 'name', 'domain', 'agent_card_url'], 'properties': {'name': {'type': 'string'}, 'domain': {'type': 'string'}, 'dealer_id': {'type': 'string', 'format': 'uuid'}, 'agent_card_url': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'engine': {'type': ['string', 'null']}, 'photos': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['available', 'intransit'], 'type': 'string'}, 'mileage': {'type': ['integer', 'null']}, 'city_mpg': {'type': ['integer', 'null']}, 'currency': {'enum': ['USD', 'CAD'], 'type': 'string'}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'location': {'type': 'object', 'required': ['location_id', 'name', 'country'], 'properties': {'zip': {'type': ['string', 'null']}, 'city': {'type': ['string', 'null']}, 'name': {'type': 'string'}, 'state': {'type': ['string', 'null']}, 'country': {'enum': ['US', 'CA'], 'type': 'string'}, 'latitude': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'longitude': {'type': ['number', 'null']}, 'location_id': {'type': 'string', 'format': 'uuid'}, 'website_url': {'type': ['string', 'null']}, 'address_line_1': {'type': ['string', 'null']}, 'address_line_2': {'type': ['string', 'null']}, 'geocode_precision': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'condition': {'enum': ['new', 'used', 'cpo', None], 'type': ['string', 'null']}, 'driveline': {'type': ['string', 'null']}, 'listing_id': {'type': 'string', 'format': 'uuid'}, 'updated_at': {'type': 'string', 'format': 'date-time'}, 'battery_kwh': {'type': ['number', 'null']}, 'charge_port': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'highway_mpg': {'type': ['integer', 'null']}, 'listing_url': {'type': ['string', 'null']}, 'transmission': {'type': ['string', 'null']}, 'vehicle_type': {'enum': ['car', 'motorcycle', 'trailer', 'rv', 'other'], 'type': 'string'}, 'dc_fast_charge': {'type': ['boolean', 'null']}, 'distance_miles': {'type': ['number', 'null']}, 'exterior_color': {'type': ['string', 'null']}, 'interior_color': {'type': ['string', 'null']}, 'motor_power_hp': {'type': ['number', 'null']}, 'displacement_cc': {'type': ['number', 'null']}, 'primary_photo_url': {'type': ['string', 'null']}, 'listing_url_source': {'enum': ['car_handshake', 'dealer_vdp', None], 'type': ['string', 'null']}, 'electric_range_miles': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'tradeoffs': {'type': 'array', 'items': {'type': 'string'}}, 'advantages': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'recommendation': {'type': 'object', 'required': ['listing_id', 'reason', 'next_action'], 'properties': {'reason': {'type': 'string'}, 'listing_id': {'type': 'string', 'format': 'uuid'}, 'next_action': {'type': 'string'}}, 'additionalProperties': False}, 'missing_listing_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}}, 'additionalProperties': False}
fetch
Fetch citation
Citation only after search; never shopping/detail. Fetch one exact ID.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Exact listing ID returned by search.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['id', 'title', 'text', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
find_dealerships
Find US/CA dealerships
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 100, 'minLength': 2}, 'country': {'enum': ['US', 'CA'], 'type': 'string', 'description': 'US default; CA for Canada. Quebec excluded.'}, 'location': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Place or postal text exactly as supplied.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['total', 'dealerships', 'interpreted_location', 'next_action'], 'properties': {'total': {'type': 'integer', 'minimum': 0}, 'dealerships': {'type': 'array', 'items': {'type': 'object', 'required': ['dealer_id', 'name', 'domain', 'agent_card_url', 'locations', 'vehicle_count'], 'properties': {'name': {'type': 'string'}, 'domain': {'type': 'string'}, 'dealer_id': {'type': 'string', 'format': 'uuid'}, 'locations': {'type': 'array', 'items': {'type': 'object', 'required': ['location_id', 'name', 'country'], 'properties': {'zip': {'type': ['string', 'null']}, 'city': {'type': ['string', 'null']}, 'name': {'type': 'string'}, 'state': {'type': ['string', 'null']}, 'country': {'enum': ['US', 'CA'], 'type': 'string'}, 'latitude': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'longitude': {'type': ['number', 'null']}, 'location_id': {'type': 'string', 'format': 'uuid'}, 'website_url': {'type': ['string', 'null']}, 'address_line_1': {'type': ['string', 'null']}, 'address_line_2': {'type': ['string', 'null']}, 'geocode_precision': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'vehicle_count': {'type': 'integer', 'minimum': 0}, 'agent_card_url': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'next_action': {'type': 'string'}, 'interpreted_location': {'type': ['object', 'null'], 'required': ['kind', 'country', 'region_code', 'label', 'confidence', 'latitude', 'longitude', 'candidates'], 'properties': {'kind': {'enum': ['postal', 'place', 'region'], 'type': 'string'}, 'label': {'type': 'string'}, 'country': {'enum': ['US', 'CA'], 'type': 'string'}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'properties': {'label': {'type': 'string'}, 'region_code': {'type': 'string'}, 'inventory_count': {'type': 'integer'}}}}, 'confidence': {'type': 'number'}, 'region_code': {'type': 'string'}}}}, 'additionalProperties': False}
get_dealership
Get dealership locations, hours, and contacts
Use this with an exact dealer_id to return every public rooftop, contact, site, capability, and named sales/service schedule.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['dealer_id'], 'properties': {'dealer_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['dealer_id', 'name', 'domain', 'agent_card_url', 'locations', 'vehicle_count'], 'properties': {'name': {'type': 'string'}, 'domain': {'type': 'string'}, 'dealer_id': {'type': 'string', 'format': 'uuid'}, 'locations': {'type': 'array', 'items': {'type': 'object', 'required': ['location_id', 'name', 'country', 'public_phone', 'schedules', 'capabilities'], 'properties': {'zip': {'type': ['string', 'null']}, 'city': {'type': ['string', 'null']}, 'name': {'type': 'string'}, 'state': {'type': ['string', 'null']}, 'country': {'enum': ['US', 'CA'], 'type': 'string'}, 'latitude': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'longitude': {'type': ['number', 'null']}, 'schedules': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string'}, 'friday': {'type': ['object', 'null'], 'required': ['open', 'close'], 'properties': {'open': {'type': 'string'}, 'close': {'type': 'string'}}, 'additionalProperties': False}, 'monday': {'type': ['object', 'null'], 'required': ['open', 'close'], 'properties': {'open': {'type': 'string'}, 'close': {'type': 'string'}}, 'additionalProperties': False}, 'sunday': {'type': ['object', 'null'], 'required': ['open', 'close'], 'properties': {'open': {'type': 'string'}, 'close': {'type': 'string'}}, 'additionalProperties': False}, 'tuesday': {'type': ['object', 'null'], 'required': ['open', 'close'], 'properties': {'open': {'type': 'string'}, 'close': {'type': 'string'}}, 'additionalProperties': False}, 'saturday': {'type': ['object', 'null'], 'required': ['open', 'close'], 'properties': {'open': {'type': 'string'}, 'close': {'type': 'string'}}, 'additionalProperties': False}, 'thursday': {'type': ['object', 'null'], 'required': ['open', 'close'], 'properties': {'open': {'type': 'string'}, 'close': {'type': 'string'}}, 'additionalProperties': False}, 'wednesday': {'type': ['object', 'null'], 'required': ['open', 'close'], 'properties': {'open': {'type': 'string'}, 'close': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'description': 'Published rooftop schedules with named sales, service, or other department hours.'}, 'location_id': {'type': 'string', 'format': 'uuid'}, 'website_url': {'type': ['string', 'null']}, 'capabilities': {'type': 'array', 'items': {'type': 'string'}}, 'public_phone': {'type': ['object', 'null'], 'required': ['name', 'value'], 'properties': {'name': {'type': ['string', 'null']}, 'value': {'type': 'string'}}, 'additionalProperties': False}, 'address_line_1': {'type': ['string', 'null']}, 'address_line_2': {'type': ['string', 'null']}, 'geocode_precision': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'vehicle_count': {'type': 'integer', 'minimum': 0}, 'agent_card_url': {'type': ['string', 'null']}}, 'additionalProperties': False}
get_vehicle
Get vehicle details
For full detail, pass exact shop_vehicles listing_id; returns dealer.dealer_id.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['listing_id'], 'properties': {'listing_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['listing_id', 'year', 'make', 'model', 'vehicle_type', 'status', 'dealer', 'location'], 'properties': {'vin': {'type': 'string'}, 'body': {'type': ['string', 'null']}, 'fuel': {'type': ['string', 'null']}, 'make': {'type': 'string'}, 'msrp': {'type': ['integer', 'null']}, 'trim': {'type': ['string', 'null']}, 'year': {'type': 'integer'}, 'model': {'type': 'string'}, 'price': {'type': ['integer', 'null']}, 'stock': {'type': ['string', 'null']}, 'dealer': {'type': 'object', 'required': ['dealer_id', 'name', 'domain', 'agent_card_url'], 'properties': {'name': {'type': 'string'}, 'domain': {'type': 'string'}, 'dealer_id': {'type': 'string', 'format': 'uuid'}, 'agent_card_url': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'engine': {'type': ['string', 'null']}, 'photos': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['available', 'intransit'], 'type': 'string'}, 'mileage': {'type': ['integer', 'null']}, 'city_mpg': {'type': ['integer', 'null']}, 'currency': {'enum': ['USD', 'CAD'], 'type': 'string'}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'location': {'type': 'object', 'required': ['location_id', 'name', 'country'], 'properties': {'zip': {'type': ['string', 'null']}, 'city': {'type': ['string', 'null']}, 'name': {'type': 'string'}, 'state': {'type': ['string', 'null']}, 'country': {'enum': ['US', 'CA'], 'type': 'string'}, 'latitude': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'longitude': {'type': ['number', 'null']}, 'location_id': {'type': 'string', 'format': 'uuid'}, 'website_url': {'type': ['string', 'null']}, 'address_line_1': {'type': ['string', 'null']}, 'address_line_2': {'type': ['string', 'null']}, 'geocode_precision': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'condition': {'enum': ['new', 'used', 'cpo', None], 'type': ['string', 'null']}, 'driveline': {'type': ['string', 'null']}, 'listing_id': {'type': 'string', 'format': 'uuid'}, 'updated_at': {'type': 'string', 'format': 'date-time'}, 'battery_kwh': {'type': ['number', 'null']}, 'charge_port': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'highway_mpg': {'type': ['integer', 'null']}, 'listing_url': {'type': ['string', 'null']}, 'transmission': {'type': ['string', 'null']}, 'vehicle_type': {'enum': ['car', 'motorcycle', 'trailer', 'rv', 'other'], 'type': 'string'}, 'dc_fast_charge': {'type': ['boolean', 'null']}, 'distance_miles': {'type': ['number', 'null']}, 'exterior_color': {'type': ['string', 'null']}, 'interior_color': {'type': ['string', 'null']}, 'motor_power_hp': {'type': ['number', 'null']}, 'displacement_cc': {'type': ['number', 'null']}, 'primary_photo_url': {'type': ['string', 'null']}, 'listing_url_source': {'enum': ['car_handshake', 'dealer_vdp', None], 'type': ['string', 'null']}, 'electric_range_miles': {'type': ['number', 'null']}}, 'additionalProperties': False}
request_trade_in_appraisal
Request trade-in
After explicit consent and confirmation, request a trade-in appraisal for this listing.
破壊的操作あり 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['listing_id', 'first_name', 'last_name', 'trade_in_year', 'trade_in_make', 'trade_in_model', 'consent_text', 'allowed_channels', 'consent_granted_at', 'idempotency_key'], 'properties': {'email': {'type': 'string', 'description': 'Email (or phone required).'}, 'phone': {'type': 'string', 'description': 'E.164 phone (or email required).'}, 'dry_run': {'type': 'boolean', 'default': False, 'description': 'Validate with no dealer contact.'}, 'message': {'type': 'string', 'maxLength': 4000, 'description': 'Dealer note.'}, 'last_name': {'type': 'string', 'description': 'Last name.'}, 'first_name': {'type': 'string', 'description': 'First name.'}, 'listing_id': {'type': 'string', 'format': 'uuid', 'description': 'Exact listing_id from prior results.'}, 'consent_text': {'type': 'string', 'description': 'Accepted consent words; never fabricate consent.'}, 'trade_in_make': {'type': 'string'}, 'trade_in_trim': {'type': 'string'}, 'trade_in_year': {'type': 'integer', 'maximum': 2200, 'minimum': 1886}, 'trade_in_model': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Unique retry key.'}, 'allowed_channels': {'type': 'array', 'items': {'enum': ['email', 'phone', 'sms'], 'type': 'string'}, 'maxItems': 3, 'minItems': 1, 'description': 'Consent channels.'}, 'trade_in_mileage': {'type': 'integer', 'minimum': 0}, 'preferred_contact': {'enum': ['email', 'phone', 'sms', 'any'], 'type': 'string'}, 'consent_granted_at': {'type': 'string', 'format': 'date-time', 'pattern': '^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:(?:[0-5]\\d|60)(?:\\.\\d+)?(?:Z|[+-](?:[01]\\d|2[0-3]):[0-5]\\d)(?![\\s\\S])', 'description': 'Consent timestamp (RFC 3339).'}, 'trade_in_condition': {'type': 'string'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['lead_id', 'status'], 'properties': {'status': {'enum': ['received', 'duplicate', 'validated'], 'type': 'string'}, 'lead_id': {'type': 'string'}}, 'additionalProperties': False}
schedule_test_drive
Request test drive
After explicit consent and confirmation, request a test drive for this listing.
破壊的操作あり 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['listing_id', 'first_name', 'last_name', 'consent_text', 'allowed_channels', 'consent_granted_at', 'idempotency_key'], 'properties': {'email': {'type': 'string', 'description': 'Email (or phone required).'}, 'phone': {'type': 'string', 'description': 'E.164 phone (or email required).'}, 'dry_run': {'type': 'boolean', 'default': False, 'description': 'Validate with no dealer contact.'}, 'message': {'type': 'string', 'maxLength': 4000, 'description': 'Dealer note.'}, 'last_name': {'type': 'string', 'description': 'Last name.'}, 'first_name': {'type': 'string', 'description': 'First name.'}, 'listing_id': {'type': 'string', 'format': 'uuid', 'description': 'Exact listing_id from prior results.'}, 'consent_text': {'type': 'string', 'description': 'Accepted consent words; never fabricate consent.'}, 'appointment_at': {'type': 'string', 'format': 'date-time'}, 'idempotency_key': {'type': 'string', 'description': 'Unique retry key.'}, 'allowed_channels': {'type': 'array', 'items': {'enum': ['email', 'phone', 'sms'], 'type': 'string'}, 'maxItems': 3, 'minItems': 1, 'description': 'Consent channels.'}, 'preferred_contact': {'enum': ['email', 'phone', 'sms', 'any'], 'type': 'string'}, 'consent_granted_at': {'type': 'string', 'format': 'date-time', 'pattern': '^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:(?:[0-5]\\d|60)(?:\\.\\d+)?(?:Z|[+-](?:[01]\\d|2[0-3]):[0-5]\\d)(?![\\s\\S])', 'description': 'Consent timestamp (RFC 3339).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['lead_id', 'status'], 'properties': {'status': {'enum': ['received', 'duplicate', 'validated'], 'type': 'string'}, 'lead_id': {'type': 'string'}}, 'additionalProperties': False}
search
Search citations
Citation only; never shopping/detail/compare. Search once, then fetch exact IDs.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 500, 'minLength': 2, 'description': 'Vehicle-shopping query, verbatim.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['results', 'next_action'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}}, 'additionalProperties': False}}, 'next_action': {'type': 'string'}}, 'additionalProperties': False}
shop_vehicles
Shop vehicles
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 only; web only if asked. Named-dealer stock: find_dealerships then shop. Not repair/reliability/facts/MSRP/out-of-market, named-source, web-only, or no-app. Verbatim request; never ask for ZIP/postal.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['request'], 'properties': {'fuels': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1}, 'makes': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'trims': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'bodies': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'cursor': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$', 'maxLength': 12288}, 'models': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'country': {'enum': ['US', 'CA'], 'type': 'string', 'description': 'US default; CA supported outside Quebec.'}, 'request': {'type': 'string', 'maxLength': 500, 'minLength': 2, 'description': 'Verbatim shopper request.'}, 'sort_by': {'enum': ['relevance', 'distance', 'price', 'mileage', 'year', 'freshness'], 'type': 'string', 'description': 'Default: relevance.'}, 'features': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50, 'description': 'Classes: third_row, awd_4wd, tow_package, apple_carplay, android_auto, adaptive_cruise, leather, heated_seats, ev_range_200_plus.'}, 'statuses': {'type': 'array', 'items': {'enum': ['available', 'intransit'], 'type': 'string'}, 'maxItems': 2, 'description': 'Omit unless status is explicit; omission searches both available and intransit.'}, 'year_max': {'type': 'integer', 'maximum': 2200, 'minimum': 1886}, 'year_min': {'type': 'integer', 'maximum': 2200, 'minimum': 1886}, 'price_max': {'type': 'integer', 'minimum': 0}, 'price_min': {'type': 'integer', 'minimum': 0}, 'conditions': {'type': 'array', 'items': {'enum': ['new', 'used', 'cpo'], 'type': 'string'}, 'maxItems': 3}, 'dealer_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 50}, 'drivelines': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'nationwide': {'type': 'boolean'}, 'mileage_max': {'type': 'integer', 'minimum': 0}, 'charge_ports': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'radius_miles': {'type': 'number', 'maximum': 500, 'minimum': 1, 'description': 'US miles; CA kilometres. Fallback widens geography only; filters remain exact.'}, 'location_text': {'type': 'string', 'maxLength': 120, 'description': 'Free-text city/place/state/postal exactly as the shopper supplied; never ask for a ZIP code.'}, 'transmissions': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'vehicle_types': {'type': 'array', 'items': {'enum': ['car', 'motorcycle', 'trailer', 'rv', 'other'], 'type': 'string'}, 'maxItems': 5}, 'dc_fast_charge': {'type': 'boolean'}, 'sort_direction': {'enum': ['asc', 'desc'], 'type': 'string'}, 'exterior_colors': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'interior_colors': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'electric_range_max': {'type': 'number', 'minimum': 0}, 'electric_range_min': {'type': 'number', 'minimum': 0}, 'displacement_cc_max': {'type': 'integer', 'minimum': 0}, 'displacement_cc_min': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['total', 'total_relation', 'matches', 'next_action', 'next_cursor', 'interpreted_request', 'applied_filters', 'suggested_relaxations', 'coverage', 'freshness', 'fallback'], 'properties': {'total': {'type': 'integer', 'minimum': 0}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['listing', 'fit_reasons', 'tradeoffs'], 'properties': {'listing': {'type': 'object', 'required': ['listing_id', 'year', 'make', 'model', 'vehicle_type', 'status', 'dealer', 'location'], 'properties': {'vin': {'type': 'string'}, 'body': {'type': ['string', 'null']}, 'fuel': {'type': ['string', 'null']}, 'make': {'type': 'string'}, 'msrp': {'type': ['integer', 'null']}, 'trim': {'type': ['string', 'null']}, 'year': {'type': 'integer'}, 'model': {'type': 'string'}, 'price': {'type': ['integer', 'null']}, 'stock': {'type': ['string', 'null']}, 'dealer': {'type': 'object', 'required': ['dealer_id', 'name', 'domain', 'agent_card_url'], 'properties': {'name': {'type': 'string'}, 'domain': {'type': 'string'}, 'dealer_id': {'type': 'string', 'format': 'uuid'}, 'agent_card_url': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'status': {'enum': ['available', 'intransit'], 'type': 'string'}, 'mileage': {'type': ['integer', 'null']}, 'currency': {'enum': ['USD', 'CAD'], 'type': 'string'}, 'location': {'type': 'object', 'required': ['location_id', 'name', 'country'], 'properties': {'zip': {'type': ['string', 'null']}, 'city': {'type': ['string', 'null']}, 'name': {'type': 'string'}, 'state': {'type': ['string', 'null']}, 'country': {'enum': ['US', 'CA'], 'type': 'string'}, 'latitude': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'longitude': {'type': ['number', 'null']}, 'location_id': {'type': 'string', 'format': 'uuid'}, 'website_url': {'type': ['string', 'null']}, 'address_line_1': {'type': ['string', 'null']}, 'address_line_2': {'type': ['string', 'null']}, 'geocode_precision': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'condition': {'enum': ['new', 'used', 'cpo', None], 'type': ['string', 'null']}, 'driveline': {'type': ['string', 'null']}, 'listing_id': {'type': 'string', 'format': 'uuid'}, 'updated_at': {'type': 'string', 'format': 'date-time'}, 'battery_kwh': {'type': ['number', 'null']}, 'charge_port': {'type': ['string', 'null']}, 'listing_url': {'type': ['string', 'null']}, 'transmission': {'type': ['string', 'null']}, 'vehicle_type': {'enum': ['car', 'motorcycle', 'trailer', 'rv', 'other'], 'type': 'string'}, 'dc_fast_charge': {'type': ['boolean', 'null']}, 'distance_miles': {'type': ['number', 'null']}, 'exterior_color': {'type': ['string', 'null']}, 'interior_color': {'type': ['string', 'null']}, 'motor_power_hp': {'type': ['number', 'null']}, 'displacement_cc': {'type': ['number', 'null']}, 'primary_photo_url': {'type': ['string', 'null']}, 'listing_url_source': {'enum': ['car_handshake', 'dealer_vdp', None], 'type': ['string', 'null']}, 'electric_range_miles': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'tradeoffs': {'type': 'array', 'items': {'type': 'string'}}, 'fit_reasons': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'coverage': {'type': 'object', 'required': ['country', 'mode', 'radius_miles', 'region_code'], 'properties': {'mode': {'enum': ['radius', 'region', 'viewport', 'nationwide'], 'type': 'string'}, 'country': {'enum': ['US', 'CA'], 'type': 'string'}, 'region_code': {'type': ['string', 'null']}, 'radius_miles': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'fallback': {'type': 'object', 'required': ['applied', 'stage', 'relaxed_filters', 'attempted_stages'], 'properties': {'stage': {'enum': ['requested', 'double_radius', 'statewide', 'drop_softest_filter', 'national', 'national_inventory'], 'type': 'string'}, 'applied': {'type': 'boolean'}, 'relaxed_filters': {'type': 'array', 'items': {'type': 'string'}}, 'attempted_stages': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'freshness': {'type': 'object', 'required': ['catalog_snapshot_at', 'newest_listing_updated_at'], 'properties': {'catalog_snapshot_at': {'type': 'string', 'format': 'date-time'}, 'newest_listing_updated_at': {'type': ['string', 'null'], 'format': 'date-time'}}, 'additionalProperties': False}, 'next_action': {'type': 'string'}, 'next_cursor': {'type': ['string', 'null']}, 'total_relation': {'enum': ['eq', 'gte'], 'type': 'string'}, 'applied_filters': {'type': 'object', 'properties': {'fuels': {'type': 'array', 'items': {'type': 'string'}}, 'makes': {'type': 'array', 'items': {'type': 'string'}}, 'trims': {'type': 'array', 'items': {'type': 'string'}}, 'bodies': {'type': 'array', 'items': {'type': 'string'}}, 'models': {'type': 'array', 'items': {'type': 'string'}}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'statuses': {'type': 'array', 'items': {'type': 'string'}}, 'year_max': {'type': 'integer'}, 'year_min': {'type': 'integer'}, 'price_max': {'type': 'integer'}, 'price_min': {'type': 'integer'}, 'conditions': {'type': 'array', 'items': {'type': 'string'}}, 'dealer_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, 'drivelines': {'type': 'array', 'items': {'type': 'string'}}, 'mileage_max': {'type': 'integer'}, 'charge_ports': {'type': 'array', 'items': {'type': 'string'}}, 'transmissions': {'type': 'array', 'items': {'type': 'string'}}, 'vehicle_types': {'type': 'array', 'items': {'type': 'string'}}, 'dc_fast_charge': {'type': 'boolean'}, 'exterior_colors': {'type': 'array', 'items': {'type': 'string'}}, 'interior_colors': {'type': 'array', 'items': {'type': 'string'}}, 'electric_range_max': {'type': 'number'}, 'electric_range_min': {'type': 'number'}, 'displacement_cc_max': {'type': 'integer'}, 'displacement_cc_min': {'type': 'integer'}}, 'additionalProperties': False}, 'interpreted_request': {'type': 'object', 'required': ['original', 'assumptions', 'location'], 'properties': {'location': {'type': ['object', 'null'], 'required': ['kind', 'country', 'region_code', 'label', 'confidence', 'latitude', 'longitude', 'candidates'], 'properties': {'kind': {'enum': ['postal', 'place', 'region'], 'type': 'string'}, 'label': {'type': 'string'}, 'country': {'enum': ['US', 'CA'], 'type': 'string'}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'properties': {'label': {'type': 'string'}, 'region_code': {'type': 'string'}, 'inventory_count': {'type': 'integer'}}}}, 'confidence': {'type': 'number'}, 'region_code': {'type': 'string'}}}, 'original': {'type': ['string', 'null']}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'suggested_relaxations': {'type': 'array', 'items': {'type': 'object', 'required': ['action', 'field', 'suggestion'], 'properties': {'field': {'type': 'string'}, 'action': {'enum': ['expand_radius', 'remove_filter', 'search_nationwide'], 'type': 'string'}, 'suggestion': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
submit_vehicle_inquiry
Send a vehicle inquiry
After explicit consent and confirmation, send this listing's dealer a question.
破壊的操作あり 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['listing_id', 'first_name', 'last_name', 'message', 'consent_text', 'allowed_channels', 'consent_granted_at', 'idempotency_key'], 'properties': {'email': {'type': 'string', 'description': 'Email (or phone required).'}, 'phone': {'type': 'string', 'description': 'E.164 phone (or email required).'}, 'dry_run': {'type': 'boolean', 'default': False, 'description': 'Validate with no dealer contact.'}, 'message': {'type': 'string', 'maxLength': 4000, 'description': 'Dealer note.'}, 'last_name': {'type': 'string', 'description': 'Last name.'}, 'first_name': {'type': 'string', 'description': 'First name.'}, 'listing_id': {'type': 'string', 'format': 'uuid', 'description': 'Exact listing_id from prior results.'}, 'consent_text': {'type': 'string', 'description': 'Accepted consent words; never fabricate consent.'}, 'idempotency_key': {'type': 'string', 'description': 'Unique retry key.'}, 'allowed_channels': {'type': 'array', 'items': {'enum': ['email', 'phone', 'sms'], 'type': 'string'}, 'maxItems': 3, 'minItems': 1, 'description': 'Consent channels.'}, 'preferred_contact': {'enum': ['email', 'phone', 'sms', 'any'], 'type': 'string'}, 'consent_granted_at': {'type': 'string', 'format': 'date-time', 'pattern': '^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:(?:[0-5]\\d|60)(?:\\.\\d+)?(?:Z|[+-](?:[01]\\d|2[0-3]):[0-5]\\d)(?![\\s\\S])', 'description': 'Consent timestamp (RFC 3339).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['lead_id', 'status'], 'properties': {'status': {'enum': ['received', 'duplicate', 'validated'], 'type': 'string'}, 'lead_id': {'type': 'string'}}, 'additionalProperties': False}
追加
submit_vehicle_inquiry
2026年9月17日12:34
追加
request_trade_in_appraisal
2026年9月17日12:34
追加
schedule_test_drive
2026年9月17日12:34
追加
get_dealership
2026年9月17日12:34
追加
find_dealerships
2026年9月17日12:34
追加
compare_vehicles
2026年9月17日12:34
追加
fetch
2026年9月17日12:34
追加
search
2026年9月17日12:34
追加
get_vehicle
2026年9月17日12:34
追加
shop_vehicles
2026年9月17日12:34