MCPサーバー

RIED.TAXI

taxi.ried/booking

このMCPでできること

Provides live quotes, availability, temporary holds, bookings, cancellations, and changes for fixed-price taxi transfers and long rides.

ried_taxi_cancel_booking
Cancel my RIED.TAXI booking
Cancels a booking, free of charge, any time before the pickup. Requires reference, access code, customer_confirmed=true after the customer explicitly confirmed, and an idempotency_key. Cannot be undone.
破壊的操作あり 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['booking_reference', 'access_code', 'idempotency_key', 'customer_confirmed'], 'properties': {'reason': {'type': 'string', 'maxLength': 200}, 'access_code': {'type': 'string', 'maxLength': 8, 'minLength': 8, 'description': '8-character access code given at booking time.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 80, 'minLength': 8, 'description': 'Unique key for this one intended action. Reuse it only when retrying the same action.'}, 'booking_reference': {'type': 'string', 'pattern': '^RT-[A-Z0-9]{4,10}$', 'description': 'Public booking reference, e.g. RT-K7QM.'}, 'customer_confirmed': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': 'string'}, 'status': {'type': 'string'}, 'message': {'type': 'string'}, 'currency': {'type': 'string'}, 'timezone': {'type': 'string'}, 'pickup_at': {'type': 'string'}, 'price_eur': {'type': ['number', 'null']}, 'booking_id': {'type': 'string'}, 'passengers': {'type': ['integer', 'null']}, 'destination': {'type': 'string'}, 'pickup_date': {'type': 'string'}, 'pickup_time': {'type': 'string'}, 'cancelled_at': {'type': 'string'}, 'flight_number': {'type': ['string', 'null']}, 'pickup_address': {'type': 'string'}, 'confirmation_url': {'type': ['string', 'null']}, 'booking_reference': {'type': 'string'}, 'cancellation_fee_eur': {'type': 'number'}, 'free_cancellation_until': {'type': 'string'}}, 'additionalProperties': True}
ried_taxi_check_availability
Check RIED.TAXI availability
Checks RIED.TAXI's real calendar (bookings, the owner's own calendar and other customers' temporary holds). One car, one driver: availability depends on the whole day including driving to the pickup and back, not only the minute. Read-only; a free result is NOT a reservation. Returns alternatives when unavailable.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['pickup_date', 'pickup_time'], 'properties': {'passengers': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'pickup_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD (Europe/Vienna).'}, 'pickup_time': {'type': 'string', 'pattern': '^([01]?\\d|2[0-3]):[0-5]\\d$', 'description': 'HH:MM, 24h, Europe/Vienna.'}, 'pickup_address': {'type': 'string', 'maxLength': 200}, 'destination_address': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': 'string'}, 'reason': {'enum': ['free', 'fits_around_existing_ride', 'unavailable', 'too_short_notice', 'in_the_past'], 'type': 'string'}, 'message': {'type': 'string'}, 'timezone': {'type': 'string'}, 'available': {'type': 'boolean'}, 'pickup_at': {'type': 'string'}, 'availability_ref': {'type': 'string'}, 'alternative_dates': {'type': 'array', 'items': {'type': 'string'}}, 'alternative_times': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': True}
ried_taxi_create_booking
Create a confirmed RIED.TAXI booking
Creates a REAL, CONFIRMED booking in RIED.TAXI's booking system and blocks the day. Only call after the customer has seen the complete trip and price and explicitly said yes. Requires the quote_id, customer_confirmed=true, accepted_terms=true and an idempotency_key (retrying with the same key never creates a second booking). Returns the booking reference and an access code for the customer.
外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['idempotency_key', 'quote_id', 'first_name', 'last_name', 'phone', 'language', 'pickup_date', 'pickup_time', 'pickup_address', 'destination_address', 'passengers', 'large_suitcases', 'whatsapp_opt_in', 'accepted_terms', 'customer_confirmed'], 'properties': {'email': {'type': 'string', 'maxLength': 160}, 'notes': {'type': 'string', 'maxLength': 600}, 'phone': {'type': 'string', 'pattern': '^\\+[1-9][0-9 ()/-]{6,22}$', 'description': 'Mobile number in international format, e.g. +43 660 1234567.'}, 'stops': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 0, 'description': 'Not bookable online; must be empty.'}, 'hold_id': {'type': 'string', 'maxLength': 40}, 'language': {'enum': ['en', 'de'], 'type': 'string'}, 'quote_id': {'type': 'string', 'maxLength': 40}, 'last_name': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'first_name': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'passengers': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'child_seats': {'type': 'string', 'maxLength': 0, 'description': 'Not bookable online; must be empty.'}, 'pickup_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD (Europe/Vienna).'}, 'pickup_time': {'type': 'string', 'pattern': '^([01]?\\d|2[0-3]):[0-5]\\d$', 'description': 'Requested DRIVER PICKUP time, HH:MM Europe/Vienna. For an airport arrival this is normally the scheduled landing time; the driver monitors the flight.'}, 'hand_luggage': {'type': 'integer', 'maximum': 10, 'minimum': 0}, 'flight_number': {'type': 'string', 'maxLength': 12, 'description': 'Required when picking up at an airport.'}, 'accepted_terms': {'type': 'boolean', 'const': True, 'description': 'Customer accepted that RIED.TAXI processes their details to carry out the ride (https://ried.taxi/en/privacy/) and the booking terms (https://ried.taxi/en/terms/; cancellation is free of charge).'}, 'pickup_address': {'type': 'string', 'maxLength': 200, 'minLength': 2, 'description': 'Exact pickup address (street + number + town, hotel, or airport + terminal).'}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 80, 'minLength': 8, 'description': 'Unique key for this one intended action. Reuse it only when retrying the same action.'}, 'large_suitcases': {'type': 'integer', 'maximum': 10, 'minimum': 0}, 'whatsapp_opt_in': {'type': 'boolean', 'description': 'True only if the customer agreed to WhatsApp messages about this ride.'}, 'customer_confirmed': {'type': 'boolean', 'const': True, 'description': 'Customer saw the full booking summary and explicitly said to book it.'}, 'destination_address': {'type': 'string', 'maxLength': 200, 'minLength': 2}, 'flight_arrival_time': {'type': 'string', 'pattern': '^([01]?\\d|2[0-3]):[0-5]\\d$', 'description': 'Scheduled landing time (local) - required for airport pickups.'}, 'pickup_instructions': {'type': 'string', 'maxLength': 300}, 'flight_departure_time': {'type': 'string', 'pattern': '^([01]?\\d|2[0-3]):[0-5]\\d$', 'description': 'Scheduled departure time for rides TO the airport (optional).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': 'string'}, 'status': {'type': 'string'}, 'message': {'type': 'string'}, 'currency': {'type': 'string'}, 'replayed': {'type': 'boolean'}, 'timezone': {'type': 'string'}, 'pickup_at': {'type': 'string'}, 'price_eur': {'type': ['number', 'null']}, 'booking_id': {'type': 'string'}, 'passengers': {'type': ['integer', 'null']}, 'access_code': {'type': 'string'}, 'destination': {'type': 'string'}, 'pickup_date': {'type': 'string'}, 'pickup_time': {'type': 'string'}, 'flight_number': {'type': ['string', 'null']}, 'pickup_address': {'type': 'string'}, 'confirmation_url': {'type': ['string', 'null']}, 'booking_reference': {'type': 'string'}, 'free_cancellation_until': {'type': 'string'}}, 'additionalProperties': True}
ried_taxi_get_booking
Look up my RIED.TAXI booking
Returns status, pickup time, addresses, price and flight of ONE booking. Requires the booking reference and the access code the customer received when booking. Read-only.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['booking_reference', 'access_code'], 'properties': {'access_code': {'type': 'string', 'maxLength': 8, 'minLength': 8, 'description': '8-character access code given at booking time.'}, 'booking_reference': {'type': 'string', 'pattern': '^RT-[A-Z0-9]{4,10}$', 'description': 'Public booking reference, e.g. RT-K7QM.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': 'string'}, 'status': {'type': 'string'}, 'message': {'type': 'string'}, 'currency': {'type': 'string'}, 'timezone': {'type': 'string'}, 'pickup_at': {'type': 'string'}, 'price_eur': {'type': ['number', 'null']}, 'booking_id': {'type': 'string'}, 'passengers': {'type': ['integer', 'null']}, 'destination': {'type': 'string'}, 'pickup_date': {'type': 'string'}, 'pickup_time': {'type': 'string'}, 'flight_number': {'type': ['string', 'null']}, 'pickup_address': {'type': 'string'}, 'confirmation_url': {'type': ['string', 'null']}, 'booking_reference': {'type': 'string'}, 'free_cancellation_until': {'type': 'string'}}, 'additionalProperties': True}
ried_taxi_get_quote
Get live RIED.TAXI price
Returns RIED.TAXI's current price for one journey, calculated by the ried.taxi backend (the only valid price source). Read-only: it never books or reserves anything. Returns quote_id (valid 30 min), status priced | manual_quote_required | not_offered, and the resolved pickup/destination - show those names to the customer. If the result is ambiguous_place, ask the customer which place they mean and resend with the postcode.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['pickup_address', 'destination_address', 'passengers'], 'properties': {'stops': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 3, 'description': 'Intermediate stops. Any stop means manual_quote_required.'}, 'passengers': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'child_seats': {'type': 'string', 'maxLength': 100, 'description': 'Ages of children needing a seat. Means manual_quote_required.'}, 'pickup_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD (Europe/Vienna).'}, 'pickup_time': {'type': 'string', 'pattern': '^([01]?\\d|2[0-3]):[0-5]\\d$', 'description': 'HH:MM, 24h, Europe/Vienna.'}, 'flight_number': {'type': 'string', 'maxLength': 12}, 'pickup_address': {'type': 'string', 'maxLength': 200, 'minLength': 2, 'description': 'Street address, hotel, town with postcode, or airport name/code (MUC, SZG, LNZ, VIE).'}, 'large_suitcases': {'type': 'integer', 'maximum': 10, 'minimum': 0}, 'destination_address': {'type': 'string', 'maxLength': 200, 'minLength': 2}, 'special_requirements': {'type': 'string', 'maxLength': 300}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': 'string'}, 'status': {'enum': ['priced', 'manual_quote_required', 'not_offered'], 'type': 'string'}, 'message': {'type': 'string'}, 'currency': {'type': 'string'}, 'included': {'type': 'array', 'items': {'type': 'string'}}, 'quote_id': {'type': ['string', 'null']}, 'price_eur': {'type': ['number', 'null']}, 'promotion': {'type': 'null'}, 'candidates': {'type': 'array'}, 'price_type': {'enum': ['fixed_published', 'fixed_calculated', None], 'type': ['string', 'null']}, 'valid_until': {'type': 'string'}, 'waiting_rules': {'type': 'string'}, 'pickup_resolved': {'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}, 'name': {'type': 'string'}, 'match': {'type': 'string'}, 'country': {'type': 'string'}, 'is_airport': {'type': 'boolean'}}}, 'destination_resolved': {'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}, 'name': {'type': 'string'}, 'match': {'type': 'string'}, 'country': {'type': 'string'}, 'is_airport': {'type': 'boolean'}}}}, 'additionalProperties': True}
ried_taxi_hold_booking
Hold the day for 15 minutes
Temporarily reserves the quoted date for THIS customer for 15 minutes so nobody else (website or another assistant) can take it while the customer confirms. Expires automatically. Not a booking. Call after availability is confirmed and the customer wants to proceed.
入力スキーマ
{'type': 'object', 'required': ['quote_id', 'pickup_date', 'pickup_time'], 'properties': {'quote_id': {'type': 'string', 'maxLength': 40}, 'pickup_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD (Europe/Vienna).'}, 'pickup_time': {'type': 'string', 'pattern': '^([01]?\\d|2[0-3]):[0-5]\\d$', 'description': 'HH:MM, 24h, Europe/Vienna.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': 'string'}, 'hold_id': {'type': 'string'}, 'message': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'pickup_date': {'type': 'string'}, 'expires_in_minutes': {'type': 'integer'}}, 'additionalProperties': True}
ried_taxi_update_booking
Change my RIED.TAXI booking
Changes a booking. Always call first with mode='preview' and show the result to the customer; then call with mode='apply', customer_confirmed=true and an idempotency_key. Same-day time changes, flight number, passengers (max 5), notes and new addresses with the same price apply immediately; a new date or a different price is sent to Ronald for approval (status change_requested).
外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['booking_reference', 'access_code', 'mode', 'changes'], 'properties': {'mode': {'enum': ['preview', 'apply'], 'type': 'string'}, 'changes': {'type': 'object', 'properties': {'notes': {'type': 'string', 'maxLength': 400}, 'passengers': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'pickup_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD (Europe/Vienna).'}, 'pickup_time': {'type': 'string', 'pattern': '^([01]?\\d|2[0-3]):[0-5]\\d$', 'description': 'HH:MM, 24h, Europe/Vienna.'}, 'flight_number': {'type': 'string', 'maxLength': 12}, 'pickup_address': {'type': 'string', 'maxLength': 200}, 'destination_address': {'type': 'string', 'maxLength': 200}}, 'minProperties': 1, 'additionalProperties': False}, 'access_code': {'type': 'string', 'maxLength': 8, 'minLength': 8, 'description': '8-character access code given at booking time.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 80, 'minLength': 8, 'description': 'Unique key for this one intended action. Reuse it only when retrying the same action.'}, 'booking_reference': {'type': 'string', 'pattern': '^RT-[A-Z0-9]{4,10}$', 'description': 'Public booking reference, e.g. RT-K7QM.'}, 'customer_confirmed': {'type': 'boolean'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': 'string'}, 'status': {'type': 'string'}, 'changes': {'type': 'object'}, 'handled': {'enum': ['automatic', 'needs_ronald'], 'type': 'string'}, 'message': {'type': 'string'}, 'currency': {'type': 'string'}, 'timezone': {'type': 'string'}, 'pickup_at': {'type': 'string'}, 'price_eur': {'type': ['number', 'null']}, 'booking_id': {'type': 'string'}, 'passengers': {'type': ['integer', 'null']}, 'destination': {'type': 'string'}, 'pickup_date': {'type': 'string'}, 'pickup_time': {'type': 'string'}, 'flight_number': {'type': ['string', 'null']}, 'pickup_address': {'type': 'string'}, 'updated_fields': {'type': 'array', 'items': {'type': 'string'}}, 'confirmation_url': {'type': ['string', 'null']}, 'booking_reference': {'type': 'string'}, 'free_cancellation_until': {'type': 'string'}}, 'additionalProperties': True}
追加
ried_taxi_cancel_booking
2026年9月24日2:40
追加
ried_taxi_update_booking
2026年9月24日2:40
追加
ried_taxi_get_booking
2026年9月24日2:40
追加
ried_taxi_create_booking
2026年9月24日2:40
追加
ried_taxi_hold_booking
2026年9月24日2:40
追加
ried_taxi_check_availability
2026年9月24日2:40
追加
ried_taxi_get_quote
2026年9月24日2:40