Tool tree
gradeNot graded
page: Every page
search_inventoryAction
Search MatchRV's normalized multi-dealer RV inventory with structured constraints (price, type, length, weight/tow vehicle, sleeps, features, location radius). Updates the shared shopping session the human sees on the page. Returns a match funnel, top results with match scores, and per-unit unknowns. Default mode 'refine' merges with existing constraints, so pass only what changed.
View tool JSON
{
"name": "search_inventory",
"kind": "act",
"impl": "imperative",
"description": "Search MatchRV's normalized multi-dealer RV inventory with structured constraints (price, type, length, weight/tow vehicle, sleeps, features, location radius). Updates the shared shopping session the human sees on the page. Returns a match funnel, top results with match scores, and per-unit unknowns. Default mode 'refine' merges with existing constraints, so pass only what changed.",
"inputSchema": {
"type": "object",
"properties": {
"intent_summary": {
"description": "One human-readable line of what the shopper asked for; shown in the page's activity feed",
"type": "string",
"maxLength": 200
},
"mode": {
"description": "refine (default) merges into the current shared constraints; replace starts over",
"type": "string",
"enum": [
"refine",
"replace"
]
},
"clear": {
"description": "Constraint keys to remove while refining",
"type": "array",
"items": {
"type": "string",
"enum": [
"location",
"price_max",
"price_min",
"rv_types",
"condition",
"length_max_ft",
"length_min_ft",
"max_weight_lbs",
"tow_vehicle",
"sleeps_min",
"must_have",
"prefer",
"fresh_water_min_gal",
"boondocking",
"sort"
]
}
},
"place": {
"description": "Shopper location, city name (e.g. 'Tacoma')",
"type": "string",
"maxLength": 80
},
"radius_miles": {
"description": "Search radius from place; default 150",
"type": "number",
"minimum": 1,
"maximum": 3000
},
"price_max": {
"description": "Hard price ceiling, USD",
"type": "number",
"minimum": 0,
"maximum": 2000000
},
"price_min": {
"type": "number",
"minimum": 0,
"maximum": 2000000
},
"rv_types": {
"description": "Acceptable RV types; omit for all",
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"enum": [
"travel_trailer",
"fifth_wheel",
"toy_hauler",
"class_a",
"class_b",
"class_c",
"popup_camper",
"truck_camper"
]
}
},
"condition": {
"type": "string",
"enum": [
"new",
"used",
"any"
]
},
"length_max_ft": {
"description": "Hard max overall length, feet",
"type": "number",
"minimum": 8,
"maximum": 60
},
"length_min_ft": {
"type": "number",
"minimum": 8,
"maximum": 60
},
"max_weight_lbs": {
"description": "Hard cap on unit weight (checked against GVWR when known, else dry weight, flagged)",
"type": "number",
"minimum": 500,
"maximum": 60000
},
"tow_vehicle": {
"description": "Shopper's tow vehicle as stated, e.g. '2024 Ford F-150' or 'F-150 rated 8,000 lbs'. Pass raw — MatchRV resolves ratings",
"type": "string",
"maxLength": 120
},
"sleeps_min": {
"type": "integer",
"minimum": 1,
"maximum": 14
},
"must_have": {
"description": "Hard requirements. Search recommendations require these facts to be confirmed; units with missing required data are excluded by the search-readiness gate.",
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"enum": [
"bunkhouse",
"solar",
"solar_prep",
"lithium",
"generator",
"four_season",
"outdoor_kitchen",
"two_entry_doors"
]
}
},
"prefer": {
"description": "Soft preferences — affect ranking only",
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"enum": [
"bunkhouse",
"solar",
"solar_prep",
"lithium",
"generator",
"four_season",
"outdoor_kitchen",
"two_entry_doors"
]
}
},
"fresh_water_min_gal": {
"type": "number",
"minimum": 5,
"maximum": 300
},
"boondocking": {
"description": "Weight off-grid readiness (tanks, solar, generator, insulation) heavily in ranking",
"type": "boolean"
},
"sort": {
"type": "string",
"enum": [
"best_match",
"price_asc",
"price_desc",
"distance",
"newest_model_year"
]
},
"limit": {
"description": "Results to return (default 5); the page shows the full list",
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"additionalProperties": false
},
"page": "/"
}get_unit_detailsAnswer
Full normalized record for one unit: specs, features, dealer, price, weights, tanks — every critical fact carries a source (dealer listing vs parsed text vs computed) and null means the dealer doesn't publish it. Also focuses this unit on the page.
View tool JSON
{
"name": "get_unit_details",
"kind": "answer",
"impl": "imperative",
"description": "Full normalized record for one unit: specs, features, dealer, price, weights, tanks — every critical fact carries a source (dealer listing vs parsed text vs computed) and null means the dealer doesn't publish it. Also focuses this unit on the page.",
"inputSchema": {
"type": "object",
"properties": {
"unit_id": {
"description": "MatchRV unit id from search results (e.g. vin:4X4T...)",
"type": "string",
"minLength": 3,
"maxLength": 120
}
},
"required": [
"unit_id"
],
"additionalProperties": false
},
"page": "/"
}compare_unitsAction
Structured side-by-side comparison of 2-4 units: true spec values with unknowns intact, best-in-row markers, and each unit's status against the current session constraints. Opens the comparison view on the page. Use real values from this result for reasoning — never fill unknowns with guesses.
View tool JSON
{
"name": "compare_units",
"kind": "act",
"impl": "imperative",
"description": "Structured side-by-side comparison of 2-4 units: true spec values with unknowns intact, best-in-row markers, and each unit's status against the current session constraints. Opens the comparison view on the page. Use real values from this result for reasoning — never fill unknowns with guesses.",
"inputSchema": {
"type": "object",
"properties": {
"unit_ids": {
"description": "2-4 unit ids to compare",
"minItems": 2,
"maxItems": 4,
"type": "array",
"items": {
"description": "MatchRV unit id from search results (e.g. vin:4X4T...)",
"type": "string",
"minLength": 3,
"maxLength": 120
}
}
},
"required": [
"unit_ids"
],
"additionalProperties": false
},
"page": "/"
}explain_matchAnswer
Deterministic explanation of one unit against the current session constraints: hard checks passed/failed, soft preferences satisfied, unknown fields, and the exact match-score arithmetic. Use it to justify recommendations with receipts.
View tool JSON
{
"name": "explain_match",
"kind": "answer",
"impl": "imperative",
"description": "Deterministic explanation of one unit against the current session constraints: hard checks passed/failed, soft preferences satisfied, unknown fields, and the exact match-score arithmetic. Use it to justify recommendations with receipts.",
"inputSchema": {
"type": "object",
"properties": {
"unit_id": {
"description": "MatchRV unit id from search results (e.g. vin:4X4T...)",
"type": "string",
"minLength": 3,
"maxLength": 120
}
},
"required": [
"unit_id"
],
"additionalProperties": false
},
"page": "/"
}check_availabilityAnswer
Availability status and when MatchRV last verified this unit on the dealer's site, with a staleness flag. Honest about snapshot age — use before suggesting a dealer visit.
View tool JSON
{
"name": "check_availability",
"kind": "answer",
"impl": "imperative",
"description": "Availability status and when MatchRV last verified this unit on the dealer's site, with a staleness flag. Honest about snapshot age — use before suggesting a dealer visit.",
"inputSchema": {
"type": "object",
"properties": {
"unit_id": {
"description": "MatchRV unit id from search results (e.g. vin:4X4T...)",
"type": "string",
"minLength": 3,
"maxLength": 120
}
},
"required": [
"unit_id"
],
"additionalProperties": false
},
"page": "/"
}evaluate_tow_fitAction
Weight-fit guidance for a tow vehicle against specific units, using MatchRV's manufacturer-rating reference table. Handles configuration ranges honestly (fits-with-margin / marginal / depends-on-config / exceeds / unknown) and never guarantees safety. Also pins the tow vehicle to the shared session.
View tool JSON
{
"name": "evaluate_tow_fit",
"kind": "act",
"impl": "imperative",
"description": "Weight-fit guidance for a tow vehicle against specific units, using MatchRV's manufacturer-rating reference table. Handles configuration ranges honestly (fits-with-margin / marginal / depends-on-config / exceeds / unknown) and never guarantees safety. Also pins the tow vehicle to the shared session.",
"inputSchema": {
"type": "object",
"properties": {
"vehicle": {
"description": "Tow vehicle as the shopper stated it, e.g. '2022 Tundra' or 'F-150 rated 8,000 lbs'",
"type": "string",
"minLength": 2,
"maxLength": 120
},
"unit_ids": {
"description": "Units to evaluate; defaults to the current top results/shortlist",
"maxItems": 6,
"type": "array",
"items": {
"description": "MatchRV unit id from search results (e.g. vin:4X4T...)",
"type": "string",
"minLength": 3,
"maxLength": 120
}
}
},
"required": [
"vehicle"
],
"additionalProperties": false
},
"page": "/"
}get_shopping_sessionAnswer
Current shared state of this page: active constraints (including changes the human made in the UI), shortlist, last search funnel, focused unit, and any pending dealer-contact preview. Call it when joining mid-session or after the human says they changed something.
View tool JSON
{
"name": "get_shopping_session",
"kind": "answer",
"impl": "imperative",
"description": "Current shared state of this page: active constraints (including changes the human made in the UI), shortlist, last search funnel, focused unit, and any pending dealer-contact preview. Call it when joining mid-session or after the human says they changed something.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}update_shortlistAction
Add or remove units on the shared shortlist the human sees and can edit. Use after the shopper picks favorites in conversation.
View tool JSON
{
"name": "update_shortlist",
"kind": "act",
"impl": "imperative",
"description": "Add or remove units on the shared shortlist the human sees and can edit. Use after the shopper picks favorites in conversation.",
"inputSchema": {
"type": "object",
"properties": {
"add": {
"maxItems": 10,
"type": "array",
"items": {
"description": "MatchRV unit id from search results (e.g. vin:4X4T...)",
"type": "string",
"minLength": 3,
"maxLength": 120
}
},
"remove": {
"maxItems": 10,
"type": "array",
"items": {
"description": "MatchRV unit id from search results (e.g. vin:4X4T...)",
"type": "string",
"minLength": 3,
"maxLength": 120
}
}
},
"additionalProperties": false
},
"page": "/"
}prepare_dealer_contactSensitive Action
Stage a contact request to the dealership for one unit. NOTHING IS SENT: this creates a preview (dealer, unit, shopper info, exact message) that the human must review and approve in the page UI. Returns a preview_id and status awaiting_human_approval.
View tool JSON
{
"name": "prepare_dealer_contact",
"kind": "transact",
"impl": "imperative",
"description": "Stage a contact request to the dealership for one unit. NOTHING IS SENT: this creates a preview (dealer, unit, shopper info, exact message) that the human must review and approve in the page UI. Returns a preview_id and status awaiting_human_approval.",
"inputSchema": {
"type": "object",
"properties": {
"unit_id": {
"description": "MatchRV unit id from search results (e.g. vin:4X4T...)",
"type": "string",
"minLength": 3,
"maxLength": 120
},
"name": {
"description": "Shopper's name, as they provided it",
"type": "string",
"minLength": 2,
"maxLength": 80
},
"email": {
"description": "Shopper's email, as they provided it",
"type": "string",
"maxLength": 120,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"phone": {
"type": "string",
"maxLength": 25
},
"message": {
"description": "Message to the dealership; MatchRV drafts one from the session constraints if omitted",
"type": "string",
"maxLength": 1200
}
},
"required": [
"unit_id",
"name",
"email"
],
"additionalProperties": false
},
"page": "/"
}submit_dealer_contactSensitive Action
Submit a dealer contact request that the human has ALREADY approved in the page UI. Consequential action: it records the lead with the dealership. Fails with awaiting_human_approval until the human clicks Approve — do not retry in a loop; ask the human to review the preview on the page.
View tool JSON
{
"name": "submit_dealer_contact",
"kind": "transact",
"impl": "imperative",
"description": "Submit a dealer contact request that the human has ALREADY approved in the page UI. Consequential action: it records the lead with the dealership. Fails with awaiting_human_approval until the human clicks Approve — do not retry in a loop; ask the human to review the preview on the page.",
"inputSchema": {
"type": "object",
"properties": {
"preview_id": {
"description": "The preview id returned by prepare_dealer_contact",
"type": "string",
"minLength": 6,
"maxLength": 60
}
},
"required": [
"preview_id"
],
"additionalProperties": false
},
"page": "/"
}