MCP-Server

Samuelz Chauffeur Booking

io.github.samuelzcom/chauffeur-booking
Reisen & Hospitality Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'locale': {'enum': ['de', 'en'], 'type': 'string', 'default': 'de'}}, 'additionalProperties': False}
Ausgabeschema
{'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.
Nur Lesen Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'locale': {'enum': ['de', 'en'], 'type': 'string', 'default': 'de'}}, 'additionalProperties': False}
Ausgabeschema
{'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.
Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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.
Nur Lesen Externer Zugriff
Eingabeschema
{'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}
Ausgabeschema
{'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'}
Geändert
prepare_offer
29. September 2026 02:50
Geändert
quote_ride
29. September 2026 02:50
Geändert
prepare_offer
25. September 2026 02:49
Geändert
quote_ride
25. September 2026 02:49
Hinzugefügt
get_offer_status
23. September 2026 02:40
Hinzugefügt
prepare_offer
23. September 2026 02:40
Hinzugefügt
quote_ride
23. September 2026 02:40
Hinzugefügt
get_customer_policy
23. September 2026 02:40
Hinzugefügt
get_service_options
23. September 2026 02:40