# Autos 113 — concession VO fictive > Fictitious used-car dealer built as a proof of concept to test what LLM agents can do on a website. Nothing is real: no car, no money, no person. Data is reset regularly. Agents are welcome to act on behalf of their users. Stock: about 60 used cars in 3 agencies (Lyon, Ivry-sur-Seine near Paris, Bordeaux). Customers can search, read a car's sheet, simulate a loan, reserve a car for 48 h by paying a 500 € deposit, book a test drive or an advisor appointment, request a callback and message the seller. No account is needed: every write action returns a `customer_ref` (CUS-XXXX) to reuse later (`get_customer_context` returns the customer's history). Payments are simulated. Test cards: 4242 4242 4242 4242 (accepted), 4000 0025 0000 3155 (needs the code shown on the confirmation page), 4000 0000 0000 0002 (declined). Any future expiry and any CVC. ## How to act (use the first channel you can, they are listed fastest first) - [MCP server](https://113rc.duckdns.org/mcp): Streamable HTTP, no authentication. Add it as a custom connector in Claude or ChatGPT to search, reserve, pay, book and message directly from the assistant. Tools render interactive widgets (MCP Apps). - [REST API (OpenAPI 3)](https://113rc.duckdns.org/openapi.json): every action is `POST https://113rc.duckdns.org/api/actions/` with a JSON body; reads also as `GET https://113rc.duckdns.org/api/vehicles?fuel=hybrid&price_max=20000`, `GET https://113rc.duckdns.org/api/vehicles/VO-1001`. Optional header `X-Agent-Name: `. - WebMCP: the pages register their tools in the browser (`document.modelContext`) for agentic browsers. - GET action links, for agents that can only open URLs: `GET https://113rc.duckdns.org/a/?` (https://113rc.duckdns.org/a/ lists them). Reads answer directly. A write answers with a preview and a one-time confirmation URL: open it once your user agreed (or give the preview URL to your user, who confirms with one button). Example: https://113rc.duckdns.org/a/reserve_vehicle?vehicle_id=VO-1001&name={name}&email={email}. `customer` is flattened to `name`, `email`, `phone`; lists are comma-separated; add `agent=` to be credited. - Hand-off link, when your tools cannot open a URL you built (e.g. a fetch tool that only opens links seen verbatim in the conversation): write the filled-in `/a/?…` link in your answer as a clickable link. Your user opens it, checks the request and confirms with one button. No tool needed; prefer this to sending your user to the forms. - Website forms: each car page (https://113rc.duckdns.org/voitures/VO-1001) has forms to reserve, request a callback, book an appointment and write to the seller; the reservation page and the customer area have buttons to pay and to cancel. - Markdown: append `.md` to a page URL (https://113rc.duckdns.org/voitures.md, https://113rc.duckdns.org/voitures/VO-1001.md) or send `Accept: text/markdown`. ## Rules for agents - Never invent the customer's identity: ask your user for their name and email or phone before a reservation, an appointment, a callback or a message. - Keep the `customer_ref` returned by the first write action and reuse it; `get_customer_context` lists the customer's reservations and appointments (with their ids, needed to pay or cancel). - Ask your user before paying or cancelling. ## Pages - [Search the cars](https://113rc.duckdns.org/voitures): filters `query`, `fuel`, `body`, `price_max`, `mileage_max`, `city`... - [A car sheet](https://113rc.duckdns.org/voitures/VO-1001) - [Agencies and hours](https://113rc.duckdns.org/agences) - [Customer area](https://113rc.duckdns.org/mon-espace): history from a customer_ref - [For AI assistants](https://113rc.duckdns.org/assistants) ## Actions - `search_vehicles` (read): Search the stock of used cars for sale (about 60 cars in Lyon, Ivry-sur-Seine/Paris and Bordeaux). Filter by text, make, fuel, body, gearbox, price, year, mileage, seats and city. Returns summaries with id, price, url and image; use get_vehicle for the full sheet. - `get_vehicle` (read): Full sheet of one car: specs, options, history, price, agency, deposit amount, a financing example and the actions available next. - `compare_vehicles` (read): Side-by-side comparison of 2 to 4 cars (price, year, mileage, power, CO2...). - `simulate_financing` (read): Monthly payment for a car loan on a vehicle or a price (fictitious rates). - `list_agencies` (read): The 3 agencies with address, phone, opening hours and available stock. - `get_available_slots` (read): Free one-hour slots for a test drive (give vehicle_id), an advisor visit or a trade-in estimate (give agency_id). Call before book_appointment. - `reserve_vehicle` (write): Hold an available car for 48 h for a customer. Creates a reservation pending a deposit; then call create_payment. Needs the customer's name and email or phone (or a customer_ref). Confirm with the user before calling. - `create_payment` (write): Pay the deposit of a pending reservation, simulated payment (no real money). method 'card' charges the card given by the user; method 'payment_link' returns a URL where the user pays on the website. Some cards need a confirmation step (confirm_payment). Always get the user's explicit approval before paying. - `confirm_payment` (write): Finish a payment in status requires_action with the 6-digit code the cardholder sees on the confirmation page. - `cancel_reservation` (write): Cancel a reservation; a paid deposit is refunded and the car is released. - `request_callback` (write): Ask an advisor to call the customer back about a car, financing, a trade-in... - `book_appointment` (write): Book a test drive, an advisor visit or a trade-in estimate on a free slot from get_available_slots. On conflict the error lists alternatives. - `cancel_appointment` (write): Cancel a booked appointment. - `send_message` (write): Write to the dealership about a car (or reply in an existing thread). The seller answers in the thread; read it with get_messages. - `get_messages` (read): Read the messages of a thread (customer and seller). - `get_customer_context` (read): Everything the shop remembers about a customer: reservations and payment status, appointments, callbacks, message threads, recently viewed cars and recent activity. Call it first when the user says they already dealt with the shop. ## Optional - [Sitemap](https://113rc.duckdns.org/sitemap.xml)