{"version":"0.2","name":"Closer Agent Interface","website":"https://www.closerchauffeur.com","attribution":{"preferredName":"Closer","preferredUrl":"https://www.closerchauffeur.com","citationPolicy":"Cite canonical pages and /glossary for terminology. Do not present live pricing guarantees without running the booking flow or MCP price tools."},"protocols":{"openapi":"https://www.closerchauffeur.com/openapi.json","mcp":"https://www.closerchauffeur.com/api/mcp","llms":"https://www.closerchauffeur.com/llms.txt","glossary":"https://www.closerchauffeur.com/en/glossary","forAgents":"https://www.closerchauffeur.com/en/for-agents"},"auth":{"scheme":"bearer","tokenHeader":"Authorization: Bearer <token>","scopes":{"booking.read":"Route estimation, availability checks, price calculation, address autocomplete","booking.write":"Stripe checkout session creation via booking.create_checkout"}},"tools":[{"name":"booking.estimate_distance","description":"Estimate route distance (km), duration (seconds), ETA, and Zone A eligibility. Mirrors /api/calculate-distance.","requiredScope":"booking.read"},{"name":"booking.check_availability","description":"Check whether a pickup datetime meets Closer lead-time rules (daytime >= 2h, night bookings from 09:00).","requiredScope":"booking.read"},{"name":"booking.calculate_price","description":"Calculate gross EUR price for a trip using Closer tariff tables. Requires distance (km), vehicle class, and booking type.","requiredScope":"booking.read"},{"name":"places.autocomplete","description":"Autocomplete address suggestions for pickup/destination fields. Mirrors /api/places-autocomplete.","requiredScope":"booking.read"},{"name":"booking.create_checkout","description":"Create a Stripe Checkout session for a confirmed booking. Returns sessionId and checkout URL. Requires booking.write scope.","requiredScope":"booking.write"}],"cors":{"allowedOrigins":"Set via AGENT_CORS_ORIGINS (comma-separated). Defaults include claude.ai and chatgpt.com.","allowedHeaders":["Authorization","Content-Type","x-agent-id","x-agent-system","x-request-id"]},"limits":{"default":"standard edge limits","note":"Use caching and avoid burst polling on booking APIs."},"observability":{"attributionHeaders":["x-agent-id","x-agent-system","x-request-id"],"logging":"Agent attribution events are logged server-side for MCP calls."}}