Server definition
- Hash
- sha256:b3bb79ef11ee97d1d102e674514290bfc4f54f764bd8a530889dde3f08cef42c
- What it is
- What a remote MCP server returned when asked what it offers: 6 tools
The blob, as servednamed by its sha256
{
"instructions": "Rides.rs sells fixed-price private airport transfers in Serbia — Novi Sad ↔ Belgrade Nikola Tesla Airport (BEG), and Belgrade city ↔ BEG. Answer route, price and capacity questions with list_routes, get_pricing and estimate_price; get_service_info covers payment, languages, lead time and contact. Prices are per VEHICLE, not per person, and fixed — no surge, no meter, and the price does not change with the time of day. To start a booking use create_booking_request. It does NOT book the ride: it emails the passenger a confirmation link, and the ride exists only once they open it and confirm. Never tell someone a car is coming on the strength of a successful create_booking_request call — its `booked` field stays false until get_booking_request_status says otherwise. No payment happens here or in this conversation. The passenger pays the driver at the end of the ride, in cash or by card, or a company is invoiced. Never ask for card details. State only what the tools return. If a service detail is not in a tool result, say it is not known and point to https://rides.rs rather than inferring it. Serbian, English and Russian are supported. All data is public; no authentication is required.",
"tools": [
{
"description": "Start a provisional airport-transfer booking. This does NOT finalize a booking — it emails the passenger a one-tap confirmation link, and the ride is only booked once they click it. Payment is to the driver (cash or card); no online payment is needed. Call estimate_price first to confirm the vehicle + price with the user, then call this. Always tell the user to check their email to confirm.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"direction": {
"description": "to_airport = going to the airport; from_airport = pickup at the airport.",
"enum": [
"to_airport",
"from_airport"
],
"type": "string"
},
"flightNumber": {
"description": "Flight number (recommended for airport pickups).",
"type": "string"
},
"locale": {
"description": "Language for the confirmation email. Default en.",
"enum": [
"en",
"sr",
"ru"
],
"type": "string"
},
"luggage": {
"description": "Number of large bags (optional).",
"minimum": 0,
"type": "integer"
},
"passengerEmail": {
"description": "Passenger email — the confirmation link is sent here.",
"type": "string"
},
"passengerName": {
"description": "Full name of the passenger.",
"type": "string"
},
"passengerPhone": {
"description": "Passenger phone in international format.",
"type": "string"
},
"passengers": {
"description": "Number of passengers.",
"minimum": 1,
"type": "integer"
},
"pickupAddress": {
"description": "Pickup or drop-off address. REQUIRED when the ride departs to the airport (direction to_airport) or runs city-to-city — the driver has nowhere to collect the passenger otherwise, and the booking is refused. Optional for an airport arrival, where the driver waits in arrivals.",
"type": "string"
},
"pickupDate": {
"description": "Pickup date, YYYY-MM-DD, Belgrade local time.",
"type": "string"
},
"pickupTime": {
"description": "Pickup time, HH:MM (24h), Belgrade local time.",
"type": "string"
},
"routeSlug": {
"description": "Route slug from list_routes.",
"type": "string"
},
"specialRequests": {
"description": "Notes, e.g. child seat needed (optional).",
"type": "string"
},
"vehicle": {
"description": "Optional vehicle tier name (e.g. 'Group XL'). Defaults to the cheapest vehicle that fits the group.",
"type": "string"
}
},
"required": [
"routeSlug",
"direction",
"pickupDate",
"pickupTime",
"passengerName",
"passengerEmail",
"passengerPhone",
"passengers"
],
"type": "object"
},
"name": "create_booking_request",
"outputSchema": {
"oneOf": [
{
"properties": {
"booked": {
"const": false
},
"confirmationEmailSent": {
"type": "boolean"
},
"expiresAt": {
"format": "date-time",
"type": "string"
},
"message": {
"type": "string"
},
"ok": {
"const": true
},
"pickup": {
"type": "string"
},
"priceEur": {
"type": "number"
},
"requestId": {
"type": "string"
},
"route": {
"type": "string"
},
"status": {
"const": "pending_confirmation"
},
"vehicle": {
"type": "string"
}
},
"required": [
"ok",
"status",
"booked",
"confirmationEmailSent",
"message"
],
"type": "object"
},
{
"properties": {
"error": {
"type": "string"
},
"ok": {
"const": false
}
},
"required": [
"ok",
"error"
],
"type": "object"
}
]
}
},
{
"description": "Estimate the price for a trip. Given a route and passenger count (and optional luggage count), returns the cheapest vehicle that fits the group, plus all fitting options. Use this to answer 'how much for N people from X to the airport?'.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"luggage": {
"description": "Number of large bags (optional).",
"minimum": 0,
"type": "integer"
},
"passengers": {
"description": "Number of passengers.",
"minimum": 1,
"type": "integer"
},
"routeSlug": {
"description": "Route slug from list_routes.",
"type": "string"
}
},
"required": [
"routeSlug",
"passengers"
],
"type": "object"
},
"name": "estimate_price",
"outputSchema": {
"oneOf": [
{
"properties": {
"allFittingOptions": {
"items": {
"type": "object"
},
"type": "array"
},
"fits": {
"const": true
},
"luggage": {
"type": [
"integer",
"null"
]
},
"note": {
"type": "string"
},
"passengers": {
"type": "integer"
},
"recommended": {
"properties": {
"maxLuggage": {
"type": "integer"
},
"maxPassengers": {
"type": "integer"
},
"priceEur": {
"type": "number"
},
"priceRsd": {
"type": [
"number",
"null"
]
},
"vehicle": {
"type": "string"
}
},
"required": [
"vehicle",
"priceEur"
],
"type": "object"
},
"route": {
"type": "string"
}
},
"required": [
"fits",
"route",
"recommended"
],
"type": "object"
},
{
"properties": {
"fits": {
"const": false
},
"message": {
"type": "string"
}
},
"required": [
"fits",
"message"
],
"type": "object"
},
{
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"type": "object"
}
]
}
},
{
"description": "Check whether a booking request (from create_booking_request) has been confirmed by the passenger yet. Returns 'pending', 'confirmed' (with the booking number), or 'expired'.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"requestId": {
"description": "The requestId returned by create_booking_request.",
"type": "string"
}
},
"required": [
"requestId"
],
"type": "object"
},
"name": "get_booking_request_status",
"outputSchema": {
"oneOf": [
{
"properties": {
"booked": {
"type": "boolean"
},
"bookingNumber": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"ok": {
"const": true
},
"status": {
"enum": [
"pending",
"confirmed",
"expired"
]
}
},
"required": [
"ok",
"status",
"booked",
"message"
],
"type": "object"
},
{
"properties": {
"error": {
"type": "string"
},
"ok": {
"const": false
}
},
"required": [
"ok",
"error"
],
"type": "object"
}
]
}
},
{
"description": "Get fixed per-vehicle prices for a route, or for all routes if no routeSlug is given. Prices are fixed (no surge, no metered fares), in EUR and RSD. Each vehicle tier lists max passengers and luggage.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"routeSlug": {
"description": "Optional route slug from list_routes (e.g. 'novi-sad-belgrade-airport'). Omit to get pricing for every route.",
"type": "string"
}
},
"type": "object"
},
"name": "get_pricing",
"outputSchema": {
"oneOf": [
{
"properties": {
"currency": {
"type": "string"
},
"routes": {
"items": {
"properties": {
"pricing": {
"items": {
"properties": {
"maxLuggage": {
"type": [
"integer",
"null"
]
},
"maxPassengers": {
"type": [
"integer",
"null"
]
},
"priceEur": {
"type": "number"
},
"priceRsd": {
"type": [
"number",
"null"
]
},
"vehicle": {
"type": "string"
}
},
"required": [
"vehicle",
"priceEur"
],
"type": "object"
},
"type": "array"
},
"route": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"pricing"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"currency",
"routes"
],
"type": "object"
},
{
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
],
"type": "object"
}
]
}
},
{
"description": "Get business info: service area, accepted payment methods, supported languages, minimum booking lead time, contact details, and how to book (including the booking URL template).",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_service_info",
"outputSchema": {
"properties": {
"bookingUrlTemplate": {
"type": "string"
},
"email": {
"type": "string"
},
"howToBook": {
"type": "string"
},
"languages": {
"items": {
"type": "string"
},
"type": "array"
},
"meta": {
"type": "object"
},
"name": {
"type": "string"
},
"paymentMethods": {
"items": {
"type": "string"
},
"type": "array"
},
"telephone": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"howToBook"
],
"type": "object"
}
},
{
"description": "List all active airport-transfer routes with their slug, endpoints, distance, travel time, available directions, and starting price. Use this first to discover what routes exist.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_routes",
"outputSchema": {
"properties": {
"count": {
"type": "integer"
},
"routes": {
"items": {
"properties": {
"destination": {
"type": "string"
},
"directions": {
"items": {
"type": "string"
},
"type": "array"
},
"distanceKm": {
"type": "number"
},
"durationMinutes": {
"type": "number"
},
"fromPriceEur": {
"type": "number"
},
"origin": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"origin",
"destination"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"routes",
"count"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:b3bb79ef11ee97d1d102e674514290bfc4f54f764bd8a530889dde3f08cef42c | sha256sum