MCP Server

Samuelz Chauffeur Booking

io.github.samuelzcom/chauffeur-booking
Travel & Hospitality Public & reachable MCP 2025-11-25

What this MCP does

Provides chauffeur service options, ride price previews, customer policies, and prepared unpaid offers for transfers or hourly service.

get_customer_policy
Published customer terms
Read current booking preparation terms, account requirement, guest booking and minimum lead time. Service-specific cancellation and waiting terms must be checked on the current offer before confirmation. This does not confirm a booking.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'locale': {'enum': ['de', 'en'], 'type': 'string', 'default': 'de'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'invalid_request'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'unavailable'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'bookingUrl', 'timeZone', 'observedAt', 'scope', 'revalidationRequired', 'terms', 'bookingConfirmed'], 'properties': {'scope': {'type': 'string', 'const': 'booking_preparation'}, 'terms': {'type': 'object', 'required': ['minimumLeadTimeMinutes', 'accountRequired', 'bookerForGuestAllowed', 'bookingConfirmation', 'serviceSpecificTerms'], 'properties': {'accountRequired': {'type': 'boolean'}, 'bookingConfirmation': {'type': 'string', 'const': 'after_confirmed_full_payment'}, 'serviceSpecificTerms': {'type': 'string', 'const': 'review_the_current_offer_before_confirmation'}, 'bookerForGuestAllowed': {'type': 'boolean'}, 'minimumLeadTimeMinutes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'available'}, 'timeZone': {'type': 'string'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}, 'observedAt': {'type': 'string'}, 'bookingConfirmed': {'type': 'boolean', 'const': False}, 'revalidationRequired': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema'}
get_offer_status
Read prepared offer status
Read one prepared offer by its submissionId and resumeToken. No quote, booking, payment, message or provider request is created.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['submissionId', 'resumeToken'], 'properties': {'resumeToken': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'submissionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'invalid_request'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'unavailable'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'retryAfterSeconds'], 'properties': {'status': {'type': 'string', 'const': 'pending'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'retryAfterSeconds'], 'properties': {'status': {'type': 'string', 'const': 'rate_limited'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'enum': ['conflict', 'ambiguous', 'not_found'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'bookingConfirmed', 'checkoutUrl', 'termsUrl', 'offer', 'nextAction'], 'properties': {'offer': {'type': 'object', 'required': ['currency', 'grossTotalCents', 'expiresAt', 'customerConfirmationRequired', 'completeTermsBound'], 'properties': {'currency': {'type': 'string', 'const': 'EUR'}, 'expiresAt': {'type': 'string'}, 'grossTotalCents': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'completeTermsBound': {'type': 'boolean', 'const': True}, 'customerConfirmationRequired': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'prepared'}, 'termsUrl': {'type': 'string', 'format': 'uri'}, 'nextAction': {'type': 'string'}, 'checkoutUrl': {'type': 'string', 'format': 'uri'}, 'bookingConfirmed': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema'}
get_service_options
Chauffeur service options
Read this provider's public service, required ride facts and booking link.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'locale': {'enum': ['de', 'en'], 'type': 'string', 'default': 'de'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'invalid_request'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'unavailable'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'provider', 'timeZone', 'bookingUrl', 'services', 'requiredRideFacts', 'returnRideFacts', 'nextAction'], 'properties': {'status': {'type': 'string', 'const': 'available'}, 'provider': {'type': 'string'}, 'services': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'tripTypes', 'availability'], 'properties': {'key': {'type': 'string'}, 'tripTypes': {'type': 'array', 'items': {'enum': ['one_way', 'return'], 'type': 'string'}}, 'availability': {'type': 'string', 'const': 'requires_offer_review'}}, 'additionalProperties': False}}, 'timeZone': {'type': 'string'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}, 'nextAction': {'type': 'string'}, 'returnRideFacts': {'type': 'array', 'items': {'type': 'string'}}, 'requiredRideFacts': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema'}
prepare_offer
Prepare a binding chauffeur offer
Prepare exactly one unpaid reservation and binding offer for an authorized transfer, return transfer or hourly service. Requires real customer contact data and a client-generated submissionId and resumeToken. Approved distribution partners may add their opaque capability for tenant-bound attribution. The customer must review the complete bound terms and confirm on checkoutUrl; this does not charge or confirm the booking.
Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['submissionId', 'resumeToken', 'contact', 'ride'], 'properties': {'ride': {'type': 'object', 'required': ['pickup', 'destination', 'date', 'time', 'passengers', 'tripType'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'time': {'type': 'string', 'pattern': '^(?:[01]\\d|2[0-3]):[0-5]\\d$'}, 'hours': {'type': 'integer', 'maximum': 24, 'minimum': 1}, 'pickup': {'type': 'string', 'maxLength': 240, 'minLength': 2}, 'luggage': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'tripType': {'enum': ['one_way', 'return'], 'type': 'string'}, 'passengers': {'type': 'integer', 'maximum': 60, 'minimum': 1}, 'returnDate': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'returnTime': {'type': 'string', 'pattern': '^(?:[01]\\d|2[0-3]):[0-5]\\d$'}, 'destination': {'type': 'string', 'maxLength': 240, 'minLength': 2}, 'serviceType': {'enum': ['hourly'], 'type': 'string'}, 'flightNumber': {'type': 'string', 'maxLength': 240, 'minLength': 1}}, 'additionalProperties': False}, 'locale': {'enum': ['de', 'en'], 'type': 'string', 'default': 'de'}, 'contact': {'type': 'object', 'properties': {'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'maxLength': 254}, 'phone': {'type': 'string', 'pattern': '^\\+[1-9][0-9]{6,14}$'}, 'fullName': {'type': 'string', 'maxLength': 120, 'minLength': 2}}, 'additionalProperties': False}, 'resumeToken': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'submissionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'specialRequests': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'firstTouchTrackingToken': {'type': 'string', 'pattern': '^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'}, 'distributionPartnerCapability': {'type': 'string', 'pattern': '^dp_live_[a-f0-9]{64}$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'invalid_request'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'unavailable'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'retryAfterSeconds'], 'properties': {'status': {'type': 'string', 'const': 'pending'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'retryAfterSeconds'], 'properties': {'status': {'type': 'string', 'const': 'rate_limited'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'enum': ['conflict', 'ambiguous', 'not_found'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'bookingConfirmed', 'checkoutUrl', 'termsUrl', 'offer', 'nextAction'], 'properties': {'offer': {'type': 'object', 'required': ['currency', 'grossTotalCents', 'expiresAt', 'customerConfirmationRequired', 'completeTermsBound'], 'properties': {'currency': {'type': 'string', 'const': 'EUR'}, 'expiresAt': {'type': 'string'}, 'grossTotalCents': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'completeTermsBound': {'type': 'boolean', 'const': True}, 'customerConfirmationRequired': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'prepared'}, 'termsUrl': {'type': 'string', 'format': 'uri'}, 'nextAction': {'type': 'string'}, 'checkoutUrl': {'type': 'string', 'format': 'uri'}, 'bookingConfirmed': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema'}
quote_ride
Chauffeur price preview
Get a current price preview for complete ride facts, using local service time and addresses with city or postcode. No availability guarantee, booking, charge, message or reservation. Do not include customer contact details.
Read only Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ride'], 'properties': {'ride': {'type': 'object', 'required': ['pickup', 'destination', 'date', 'time', 'passengers', 'tripType'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'time': {'type': 'string', 'pattern': '^(?:[01]\\d|2[0-3]):[0-5]\\d$'}, 'hours': {'type': 'integer', 'maximum': 24, 'minimum': 1}, 'pickup': {'type': 'string', 'maxLength': 240, 'minLength': 2}, 'luggage': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'tripType': {'enum': ['one_way', 'return'], 'type': 'string'}, 'passengers': {'type': 'integer', 'maximum': 60, 'minimum': 1}, 'returnDate': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'returnTime': {'type': 'string', 'pattern': '^(?:[01]\\d|2[0-3]):[0-5]\\d$'}, 'destination': {'type': 'string', 'maxLength': 240, 'minLength': 2}, 'serviceType': {'enum': ['hourly'], 'type': 'string'}, 'flightNumber': {'type': 'string', 'maxLength': 240, 'minLength': 1}}, 'additionalProperties': False}, 'locale': {'enum': ['de', 'en'], 'type': 'string', 'default': 'de'}, 'specialRequests': {'type': 'string', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'invalid_request'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string', 'const': 'unavailable'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'bookingUrl', 'retryAfterSeconds'], 'properties': {'status': {'type': 'string', 'const': 'rate_limited'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'bookingUrl', 'message'], 'properties': {'status': {'type': 'string', 'const': 'review_required'}, 'message': {'type': 'string'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'bookingUrl', 'bookingConfirmed', 'quote', 'nextAction'], 'properties': {'quote': {'type': 'object', 'required': ['currency', 'grossTotalCents', 'pricesIncludeVat', 'vatRateBasisPoints', 'parkingIncluded', 'tollsIncluded', 'vehicleCount', 'billableHoursPerServiceLine', 'serviceLines', 'calculatedAt', 'revalidationRequired'], 'properties': {'currency': {'type': 'string'}, 'calculatedAt': {'type': 'string'}, 'serviceLines': {'type': 'array', 'items': {'type': 'object', 'required': ['direction', 'grossAmountCents'], 'properties': {'direction': {'enum': ['outbound', 'return'], 'type': 'string'}, 'grossAmountCents': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'vehicleCount': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'tollsIncluded': {'type': 'boolean'}, 'grossTotalCents': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'parkingIncluded': {'type': 'boolean'}, 'pricesIncludeVat': {'type': 'boolean'}, 'vatRateBasisPoints': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'revalidationRequired': {'type': 'boolean', 'const': True}, 'billableHoursPerServiceLine': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'quoted'}, 'bookingUrl': {'type': 'string', 'format': 'uri'}, 'nextAction': {'type': 'string'}, 'bookingConfirmed': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema'}
Changed
prepare_offer
Sept. 29, 2026, 2:50 a.m.
Changed
quote_ride
Sept. 29, 2026, 2:50 a.m.
Changed
prepare_offer
Sept. 25, 2026, 2:49 a.m.
Changed
quote_ride
Sept. 25, 2026, 2:49 a.m.
Added
get_offer_status
Sept. 23, 2026, 2:40 a.m.
Added
prepare_offer
Sept. 23, 2026, 2:40 a.m.
Added
quote_ride
Sept. 23, 2026, 2:40 a.m.
Added
get_customer_policy
Sept. 23, 2026, 2:40 a.m.
Added
get_service_options
Sept. 23, 2026, 2:40 a.m.