Skip to content

Moonshot Lab (demo) changelog

com.moonshotlab1/inventory

4 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • server.json 1 field changed
    version
    1.31.0 1.32.1

  • server.json 2 fields changed
    icon_url
    — https://moonshotlab1.com/icon.png
    version
    1.0.0-demo 1.31.0

  • llms.txt +29 −2

    https://moonshotlab1.com/llms.txt

    −   - [Payment estimate](https://moonshotlab1.com/v1/listings/bluebonnetridge:0DT5703W4TD100002/payment-estimate?down_payment=2000&term_months=60) (MCP get_payment_estimate): that out-the-door total as a demo monthly finance payment, with down payment, trade, APR or credit tier and term. Includes the out-the-door figure it used. To search many cars by payment, use payment_max on search instead.− - Payments are DEMO estimates, not offers of credit. They are built from the itemized out-the-door estimate (tax, title, registration, dealer fees) for the buyer's state, county, city or ZIP, minus down payment and trade equity, at the APR given or a demo APR by credit tier (excellent, good, fair, poor; default good) and 60 months unless term_months is set. They are rounded to $5 with a range and are never penny-accurate. Say so when you show them. Leases are not modeled.+ - [Cars under $300/month near a ZIP](https://moonshotlab1.com/v1/vehicles?max_monthly_payment=300&zip=75201&radius_miles=50&sort=payment_asc&limit=5): max_monthly_payment is the canonical monthly cap (payment_max is a deprecated alias). A ZIP alone resolves buyer state, county and city. Tax and fees use buyer_zip, else the search zip, else the selling store (payment_assumptions.buyer.source). The response has a one-line assumptions_summary to read back, near_misses (up to 3 cars within $25 above+ - Compare financing scenarios for one car: POST https://moonshotlab1.com/v1/listings/bluebonnetridge:0DT5703W4TD100002/payment-scenarios with {"buyer_zip":"75201","scenarios":[{"name":"0 down"},{"name":"3k down 72","down_payment":3000,"term_months":72}]} (MCP compare_payment_scenarios), up to 6 scenarios, each with out-the-door total, amount financed, APR and source, term, payment, total interest and total cost. search_inventory also accepts scenarios for the returned page.+ - Dealer handoff for one configured deal: POST https://moonshotlab1.com/v1/dealer-handoff with {"listing_id":"bluebonnetridge:0DT5703W4TD100002","buyer_zip":"75201","scenario":{"term_months":60,"credit_tier":"good"},"shopper_contact":{"name":"Pat","phone":"214-555-0100","preferred_contact":"text"}} (MCP prepare_dealer_handoff; listing_id or vin). Returns a structured package (vehicle and VIN, itemized out-the-door, chosen financing scenario with eligibility, trade and negative equity, warnings, + - Dealer handoff extras (all optional, from the shopper, with their OK): trade_details {year, make, model, trim, vin, odometer, plate, plate_state, color, payoff_lender, payoff_amount}; buyer_address {street, street2, city, state, zip, county} (sets tax and registration where the rules support it, county matters in Texas; saved with the deal and visible only to that store, its region and group, never public, logged or in analytics); financing_details {deposit, cash_down, rebates, pre_approval {h+ - Dealer hierarchy: Dealer Group, then Region (defined by each group, not by geography), then Store. GET https://moonshotlab1.com/v1/hierarchy (MCP list_dealers returns it too). Every listing has group_id, region_id and store_id; filter search with group_id, region_id (group_id/region_id, e.g. meridian/dfw-metro) or store_id (dealer_key plus store ZIP, e.g. bluebonnetridge-75201), as parameters or as filters fields.+ - Optional agent identity: POST https://moonshotlab1.com/v1/agents/register (MCP register_agent) returns a free agent key once; send it as the X-MoonshotLab-Agent-Key header (or ?agent_key= on the MCP URL) for a durable anonymous id in bot analytics. Anonymous use keeps working with the same limits. For aggregate dealer demand insights, searches keep whitelisted vehicle criteria only (no shopper contact, notes, down payment or trade figures; ZIP reduced to 3 digits).+   - [Payment estimate](https://moonshotlab1.com/v1/listings/bluebonnetridge:0DT5703W4TD100002/payment-estimate?down_payment=2000&term_months=60) (MCP get_payment_estimate): that out-the-door total as a demo monthly finance payment, with down payment, trade, APR or credit tier and term. Includes the out-the-door figure it used. To search many cars by payment, use max_monthly_payment on search instead; to compare several what-ifs, use compare_payment_scenarios.+ - Saved searches with alerts (DEMO): MCP save_search (criteria including max_monthly_payment, zip and radius_miles; returns search_id and expires_at, default 30 days, max 90; renew with renew_search_id), get_new_matches(search_id, since) and cancel_search. REST: POST https://moonshotlab1.com/v1/saved-searches, GET https://moonshotlab1.com/v1/saved-searches/{id}/matches?since=, POST https://moonshotlab1.com/v1/saved-searches/{id}/renew, DELETE https://moonshotlab1.com/v1/saved-searches/{id}. Opti+ - Payments are DEMO estimates, not offers of credit. They are built from the itemized out-the-door estimate (tax, title, registration, dealer fees) for the buyer's state, county, city or ZIP, minus down payment and trade equity, at the APR given or a demo APR by credit tier (excellent, good, fair, poor; default good) and 60 months unless term_months is set. They are rounded to $5 with a range and are never penny-accurate. Estimate, not an offer; dealer sets price, lender sets rate.+ - Credit tiers and demo APRs (new / used and certified): excellent, score about 720 and up, 6.0% / 8.5%; good, about 660 to 719, 7.5% / 11.0% (default); fair, about 620 to 659, 11.5% / 16.0%; poor, below about 620, 15.5% / 20.0%. These are illustrative demo assumptions, not market rates.+ - Totals: total_cost_including_trade_equity is the PRIMARY total: cash down plus all monthly payments plus the net trade equity given up (allowance minus payoff, or trade_equity). It decides lowest_total_cost. cash_outlay_excluding_trade_equity is cash down plus payments only (lowest_cash_outlay_excluding_trade_equity). total_cost_estimate is a deprecated alias of cash_outlay_excluding_trade_equity, kept for one version.+ - Payment rounding: estimated_monthly_payment is rounded to $5; monthly_payment_unrounded is exact; monthly_payment_range is rounded outward so it always contains the unrounded value. Amount financed and totals are exact to the cent.+ - financing_eligibility (demo rules, not a credit decision): minimum amount financed $3,000; max term by vehicle age (up to 2 years 84 months, 5 years 72, 8 years 60, 10 years 48, older 36) and by mileage (up to 60k 84, 100k 72, 125k 60, 150k 48, more 36); no financing above 200,000 miles. Flags: below_min_amount_financed, term_exceeds_demo_limit_for_age_or_mileage, mileage_above_demo_financeable_limit, nothing_to_finance.+ - Out-the-door in search: every result has estimated_out_the_door (exact, the same number estimate_out_the_door returns for the same buyer location and trade; financed omitted). Filter with max_out_the_door and min_out_the_door; sort=otd_asc sorts on it. Buyer location: explicit buyer fields win; buyer_zip fills any missing state, county and city; with none, the search zip, then the selling store. estimate_out_the_door echoes the result in tax_location.resolution (source, components, unresolved)+ - sort=best_value: score = 0.35 * cost_score + 0.30 * age_score + 0.35 * mileage_score. cost_score = 1 - (otd - min_otd) / (max_otd - min_otd) over the matched listings (1 when all equal); age_score = 1 - min(age_years, 15) / 15; mileage_score = 1 - min(mileage, 150000) / 150000. Ties: lower otd, then listing_id. Each result has ranking_rationale (components, inputs, text, rank); the response has best_value_formula.+ - Family specs (synthetic demo values, approximate model figures): seating_capacity, third_row and cargo_capacity_cu_ft on each result; filter with seating_min and third_row, or the filters fields seating_capacity, third_row, cargo_capacity.+ - Availability on each result: availability.status, price_valid_until, last_updated, observed_at (synthetic, not dealer-confirmed).+ - Coverage: demo stores exist only in these metros: Dallas-Fort Worth and Houston TX, Los Angeles and the San Francisco Bay Area CA, Orlando, Tampa and Jacksonville FL, Atlanta GA, Phoenix AZ, Chicago IL, New York NY, Columbus and Cincinnati OH. See https://moonshotlab1.com/v1/coverage or list_dealers.coverage. A zero-result search with a zip returns coverage.nearest_store, nearest_new_inventory and nearest_qualifying_inventory (dealer, city, straight-line distance, match count, lowest out the d+ - compare_payment_scenarios winners: recommended_scenario, lowest_monthly_eligible and lowest_total_cost_eligible skip scenarios the demo financing rules flag; never recommend one listed in ineligible_scenarios. lowest_monthly, lowest_total_cost and the other lowest_* keys are unfiltered math winners (also given as lowest_monthly_unfiltered and lowest_total_cost_unfiltered). Add {"name":"cash","cash":true} to price paying cash (no loan, no interest); cash_purchase always gives the cash due using+ - Trade risk: every payment estimate and scenario has trade_risk with negative_equity_rolled_in, trade_equity_in_out_the_door, loan_to_value_pct (amount financed divided by the advertised price) and warnings: negative equity rolled in, LTV over 110%, a term over 60 months carrying negative equity, and trade_equity losing the trade-in tax credit (pass trade_value and payoff to keep it). When negative equity is rolled in, quote cash_outlay_excluding_trade_equity as what the buyer pays.+ - Payment search: financeable_only=true drops listings that fail the demo financing rules at the given terms; financing_summary counts eligible, ineligible and dropped listings. estimated_payment echoes credit_tier and credit_tier_source (default means the caller gave none and good was used) plus negative_equity_rolled_in and loan_to_value_pct. Responses keep the caller's raw inputs (inputs_raw) apart from resolved values (inputs_resolved).+ - estimated_out_the_door in search results and near_misses carries the same warnings and excluded_items as estimate_out_the_door, including any optional dealer add-on by name and price.+ - Family fields: third_row_type (full or compact), sliding_doors, seat_rows, history_report_available (false: no history data in this demo), car_seat_fit_data and safety_ratings (not_available). Filter with third_row_type and sliding_doors. best_value_needs (seats, cargo, full_third_row, sliding_doors, low_mileage, newer, budget_headroom) makes best_value need-aware: score = 0.70 * base + 0.30 * mean need score, shown in ranking_rationale.+ - Dealer type: each result has dealer_segment (franchise, independent_used, bhph) and dealer_type; filter with dealer_segment. Buy-here-pay-here dealers finance in-house and often charge higher rates.+ - Incentive tax treatment cites its rule (tax_treatment.rule): CA Cal. Code Regs. tit. 18 sec. 1671.1 (rebates do not reduce the taxable amount), GA TAVT value less dealer rebates, elsewhere a labeled demo engine assumption.+ - get_price_breakdown: each price_component has a plain label, source_text and method_text; fees and incentives carry tax_treatment (taxable or reduces_taxable_amount, whether it is in the advertised price, and why). Texas doc fees are not taxed (34 TAC 3.74).+ - To compare two or more down payment, term, trade-in or credit options for one car, call compare_payment_scenarios once with all of them instead of repeating get_payment_estimate. Say so when you show them. Leases are not modeled.+ - Offer save_search when nothing fits yet. Ask before saving a shopper email, and say alerts are a demo.+ - When the shopper is ready to take a deal to the dealer, call prepare_dealer_handoff and show them the package. Never tell the shopper it was sent: it was not. Ask before adding their contact details, and do not invent a dealer email.
  • Tools +8
    • + list_searchable_fields
    • + get_payment_estimate
    • + compare_payment_scenarios
    • + register_agent
    • + save_search
    • + get_new_matches
    • + cancel_search
    • + prepare_dealer_handoff