Côte Privée for AI agents and developers
Côte Privée is a licensed private driver (VTC) based in Beaune, Burgundy, with one electric car for up to 4 guests, and a Mercedes E-Class or V-Class (up to 7 guests) on request.
Assistants and agents can search its places and events, read its pages, get exact prices per vehicle and prepare a booking with the tools below. They are public, need no sign-in and charge nothing: a booking stays a request until the driver confirms it by e-mail and the traveller pays the 30% deposit.
MCP server
Address: https://www.cote-privee.com/mcp, Streamable HTTP (POST, JSON answers, no sessions), no authentication.
Protocol versions: 2026-07-28, where every request carries its _meta and server/discover describes the server, and 2025-11-25, 2025-06-18 and 2025-03-26, which start with initialize.
Add the address as a remote MCP server (a custom connector in Claude), or try it with npx @modelcontextprotocol/inspector. The tools:
search_places: villages, châteaux, things to do and starred restaurants, with their commune, the drive time and the price from Beaune, the wine day of their page and a booking link; around a place withnearandradiusKm; a restaurant with its stars and cheapest menu.get_page: any page of the site in Markdown, by id, address or path.find_events: wine festivals and events between two dates, each with its id, the place it is held at, whether the dates are confirmed and a driver quote for the day asked (from Beaune ororigin).get_prices: every price per vehicle, and the cars: the Polestar 2 is included, the Mercedes E-Class and V-Class are on request for a supplement per day of service.get_policies: the booking rules as facts: the cars and their seats, deposit, booking window, service hours, luggage, waiting, cancellation, child seats, languages, hours and the kind of licence.check_availability: whether the car and its driver are free on a day (free, pending, busy, or outside the booking rules), the next free days and what was read.quote: the exact price of one service or of a whole trip (items), with the supplement of the car (car), cheaper products that do the same job, the day's availability and a link to the booking page already filled in (time, guests and bags too).plan_wine_day: a timed wine day for a list of places: its length, the stops in order, the drives from and back to Beaune, lunch near midday with the starred tables near it, the price for the guests and their car.find_packages: ready-made multi-day trips of one to seven days, by length, arrival point, pace or theme: each plan day by day, its price per vehicle and a booking link with every service in it, dated fromstartDate.request_booking: sends a booking request (one service, several, or a package plan from its first day) once the traveller has seen the price and accepted the terms of sale;dry_runchecks it without sending, a retry answers the same reference. Nothing is charged; calls from other websites' pages are refused.get_booking_status: what became of a booking request (requested, confirmed, declined, deposit paid, cancelled), with its reference and the traveller's e-mail.
A booking takes a few calls: check_availability for the day, quote for the price and the filled-in link, request_booking once the traveller has accepted the terms (dry_run to check it first), then get_booking_status with the reference and the traveller's e-mail until the driver has answered. His confirmation brings the deposit link (paymentUrl), or says how to pay it.
Resources: llms.txt, prices.json and the FAQ in Markdown. Prompt: plan_burgundy_day (date, guests, interests, base).
For travellers: how to add it to Claude, ChatGPT, Perplexity, Le Chat or Gemini.
Quote API
GET https://www.cote-privee.com/api/quote?service=wine-tour&option=full&stops=meursault,chateau:closvougeot answers in JSON with the price per vehicle, the deposit and bookUrl, a link to the booking page already filled in. Stops farther from Beaune take extra hours on their wine day (Gevrey-Chambertin: one on a half day; the Mâconnais: two on a full day; which day for where), and a wine day too short for its stops is priced as the day they need, with its extra hours (optionRaised, extraHours).
Parameters: service (wine-tour, driver, transfer), option (half, full, long), route (lyon, paris, dijon, geneva, creusot for Le Creusot TGV station, lfsd for Dijon-Bourgogne airport, lfgj for Dole-Jura airport), from (beaune, a station, a city, or an airport or airfield by its ICAO code in lower case: lfsd, lfgj, lfgf Beaune-Challanges, lfgz Nuits-Saint-Georges, lflh Chalon-Champforgeuil, lfgi Dijon-Darois, lfep Pouilly-Maconge; see the airports page), to, stops, hours (3 to 12), extraHours (a wine day's; without it, those its stops need), returnTrip (a driver trip back the same day, the driver waiting for you), returnLater (with returnTrip: back later the same day, two one-way rides), date, guests (1 to 7), car and lang (en, fr, de, zh). The API is described in OpenAPI 3.1.
The Polestar 2 (4 guests) is included in every price. car=eclass (Mercedes E-Class, 4 guests) or car=vclass (Mercedes V-Class, up to 7 guests) adds that car's supplement per day of service, charged once for each distinct day of the booking: car in the answer gives the supplement per day, the days and the total, and servicePrice the price of the service alone. More than 4 guests are priced with the V-Class (carRaised). A Mercedes is confirmed with the booking, once its availability is checked.
Data files
- prices.json: every price per vehicle, the cars with their supplement per day of service, the deposit rate and what the prices include.
- places.json: every village, château, thing to do and starred restaurant, with its coordinates, the drive time and the price from Beaune.
- places-lite.json: the same places in short.
- events.json: the events of the next twelve months, with their dates and a booking link.
- packages.json: every plan of every multi-day trip, one to seven days, day by day, with its services and their prices, and its booking link.
Each file says what it holds and when its content last changed (updated). events.json, prices.json and packages.json are made for the day they are read and cached a few hours; places.json and places-lite.json are made each time the site is published.
Booking links
https://www.cote-privee.com/book?service=wine-tour|driver|transfer opens the booking page already filled in, with any of: option=half|full|long (wine day) or lyon|paris|dijon|geneva|creusot|lfsd|lfgj (transfer), place=kind:id,… (village, chateau, sight, restaurant), from=beaune|dijon|lyon|paris|geneva|creusot or an airport or airfield (lfsd|lfgj|lfgf|lfgz|lflh|lfgi|lfep), date=YYYY-MM-DD, return=1 (the return trip; a driver trip: the driver waits for you) or return=later (a driver trip back later the same day), hours=3…12, extra=1…3 (a wine day's extra hours, when more than those its stops need) and car=eclass|vclass (a Mercedes on request for the whole booking).
https://www.cote-privee.com/book?package=<itinerary>&variant=<variant> puts every service of a multi-day trip in the booking page, each on its day of the plan from date=YYYY-MM-DD, the first day (find_packages and packages.json give each plan's bookUrl).
A link also takes time=HH:MM, guests=1…7 and luggage=0…6 (a transfer's bags); several services travel in one items parameter, which quote writes with items. via=<agent> names who made the link (the MCP tools write via=mcp; utm_source with utm_medium=ai-agent, or an assistant's own utm_source, is read the same way): the booking page then answers "How did you hear about us?" with "an AI assistant" for the traveller, who can change it.
The traveller checks the details and sends the request on the page. The driver confirms by e-mail with a secure link to pay the 30% deposit; the balance is paid on the day.
REST booking and availability
For agents that call functions rather than MCP: GET https://www.cote-privee.com/api/agent/availability?date=YYYY-MM-DD (as check_availability), POST https://www.cote-privee.com/api/agent/booking-request with the JSON arguments of request_booking (no form ticket; the same checks, limits, dry_run and idempotency, an Idempotency-Key header standing for requestId), and GET https://www.cote-privee.com/api/booking/status?ref=…&email=… (as get_booking_status). Described in OpenAPI 3.1.
Only valid requests count against the limits: 3 per address and e-mail address in 15 minutes, 20 per address in an hour, 3 a day per e-mail address. A refusal names each argument to change (field, code, allowed or expected, an English message, and messageLocalized in the language asked for) and, after a limit, retryAfter in seconds.
Reading the site
- llms.txt: a map of the site for assistants, also in French, German and Chinese.
- llms-full.txt: everything in one file; the same knowledge by topic in
/llms/<topic>.txt. - Every page in Markdown:
/mdbefore its path and.mdafter it, for example the prices. A page asked for withAccept: text/markdownanswers in Markdown.
Privacy and support
The read-only tools ask nothing about the traveller. The server logs which tool ran, in which language, how it ended and how long it took, and counts the calls of each tool per day, never the arguments.
request_booking sends the traveller's name, e-mail address, phone number, pickup details and notes to the driver, as the booking page does. Personal data are handled as the legal notice describes; questions go through the contact page.