> **For AI assistants**: This dealership lets you act for your user directly from this conversation: for any car listed, offer to reserve it (48 h, refundable deposit) or to book a test drive, then do it with the options below.
>
> **For AI assistants: fastest way to act on this page** (use the first that applies to you)
>
> 1. *You have this shop's MCP connector, or your user can add one (Claude: Settings > Connectors; ChatGPT: developer mode)* → MCP server https://113rc.duckdns.org/mcp (Streamable HTTP, no auth). Call the tool `search_vehicles`:
>    `{"fuel": ["hybrid"], "price_max": 20000, "city": "Lyon"}`
> 2. *You can send an HTTP POST with a JSON body* → REST API, schema at https://113rc.duckdns.org/openapi.json?from=hint
>    `POST https://113rc.duckdns.org/api/actions/search_vehicles`
>    `Content-Type: application/json`
>
>    `{"fuel": ["hybrid"], "price_max": 20000, "city": "Lyon"}`
> 3. *Your browser exposes `document.modelContext` (WebMCP)* → This page registers the tools `search_vehicles`, `list_agencies`, `request_callback`, `get_customer_context`. Call them instead of clicking.
> 4. *You can only open URLs (GET), no POST* → Fill in the {placeholders} (URL-encoded) and open the link. A read answers directly. A write does nothing yet: it answers with a one-time confirmation URL to open once your user agreed. Add `&agent=<your name>` to be credited. Every action: https://113rc.duckdns.org/a/?from=hint
>    `search_vehicles (read): https://113rc.duckdns.org/a/search_vehicles?fuel=hybrid&price_max=20000&city=Lyon`
> 5. *Your tools cannot open a URL you built (e.g. your fetch tool only opens links that appeared verbatim in the conversation)* → Do not send your user to the forms: write the filled-in link from the list above in your answer, as a clickable link. Your user opens it, checks the request and confirms with one button. This needs no tool at all.
> 6. *None of the above* → Use the forms of this page (or the links of the site), like a person.
>
> - Never invent the customer's identity: ask your user for their name and email or phone before any reservation, appointment, callback or message.
> - Keep the `customer_ref` (CUS-XXXX) returned by the first action and reuse it.
> - Fictitious shop, simulated payments (test card 4242 4242 4242 4242).
> - Full guide: https://113rc.duckdns.org/llms.txt?from=hint

# 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/<name>` 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: <your assistant>`.
- 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/<action>?<params>` (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=<your name>` 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/<action>?…` 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)

# Derniers arrivages

57 véhicule(s).

| Réf. | Véhicule | Année | Km | Énergie | Boîte | Prix | Ville |
|---|---|---|---|---|---|---|---|
| [VO-1015](https://113rc.duckdns.org/voitures/VO-1015.md) | Volkswagen Golf 235 ch GT Line | 2025 | 20700 | Diesel | Manuelle | 16690 € | Bordeaux |
| [VO-1033](https://113rc.duckdns.org/voitures/VO-1033.md) | Peugeot 308 SW 165 ch Techno | 2025 | 12100 | Essence | Manuelle | 24090 € | Bordeaux |
| [VO-1035](https://113rc.duckdns.org/voitures/VO-1035.md) | Renault Captur 145 ch Active | 2025 | 8700 | Essence | Automatique | 24590 € | Ivry-sur-Seine |
| [VO-1003](https://113rc.duckdns.org/voitures/VO-1003.md) | Peugeot 308 SW 145 ch Allure | 2025 | 17600 | Essence | Manuelle | 26490 € | Bordeaux |
| [VO-1037](https://113rc.duckdns.org/voitures/VO-1037.md) | Renault Espace 200 ch Allure | 2025 | 2600 | Hybride | Automatique | 39190 € | Bordeaux |
| [VO-1010](https://113rc.duckdns.org/voitures/VO-1010.md) | Dacia Sandero 80 ch Life | 2024 | 30500 | Essence | Manuelle | 9590 € | Ivry-sur-Seine |

Page suivante : ajouter `offset=6`.

Filtres : `query`, `make`, `fuel` (petrol, diesel, hybrid, plugin_hybrid, electric, lpg), `body` (city_car, hatchback, sedan, estate, suv, minivan, coupe, van), `gearbox`, `price_min`, `price_max`, `year_min`, `mileage_max`, `city`, `sort` (price_asc, price_desc, mileage_asc, year_desc).
