Search & book Lakpura Sri Lanka tours, transfers, stays & activities as an AI agent.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get full details of one tour/experience by slug: title, description, bookable options (each with a price and option_id) and whether it can be booked via start_booking. Pass an option_id from here to start_booking.
The service slug from search_tours (the last path segment of /products/{slug}).
Get full details of one tour/experience by slug: title, description, bookable options (each with a price and option_id) and whether it can be booked via start_booking. Pass an option_id from here to start_booking.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The service slug from search_tours (the last path segment of /products/{slug}). |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The service slug from search_tours (the last path segment of /products/{slug})."
}
}
}Price a private transfer (car/van with driver) from one place in Sri Lanka to another. Pass the pickup and drop-off exactly as the traveller named them - a town ("Kandy"), an airport ("Colombo airport", "Bandaranaike") or a station. For a hotel, pass the TOWN it is in. Returns the resolved route and fares per vehicle that fits the party. If a place is ambiguous or unknown, it returns status "unresolved" with candidates - ask the traveller, do not guess. Use this for any transfer price, never a transfer page found by search_tours.
| Argument | Type | Description |
|---|---|---|
| to* | string | Drop-off: town, airport or station, e.g. "Kandy". |
| bags | integer | Suitcases / check-in bags, if the traveller said (omit if unknown). |
| from* | string | Pickup: town, airport or station, e.g. "Colombo airport". |
| passengers | integer | Number of travellers (default 2). |
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "Drop-off: town, airport or station, e.g. \"Kandy\"."
},
"bags": {
"type": "integer",
"maximum": 60,
"minimum": 0,
"description": "Suitcases / check-in bags, if the traveller said (omit if unknown)."
},
"from": {
"type": "string",
"description": "Pickup: town, airport or station, e.g. \"Colombo airport\"."
},
"passengers": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Number of travellers (default 2)."
}
}
}Search physical products Lakpura sells and ships worldwide — Sri Lankan handicrafts, wooden masks, tea, spices, homeware, gifts. Returns each match with its Lakpura reference, title, USD price and public product page URL. Use this for anything the caller wants to BUY and have delivered. Also RENTALS in Sri Lanka — baby travel cots, wheelchairs, scooters, motorbikes, bicycles, tuk tuks (try short nouns: "cot", "wheelchair", "scooter"). Use search_tours or search_stays for travel instead.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (default 1). |
| query* | string | Keyword(s) describing the product, e.g. "raksha mask", "ceylon tea", "batik", "wooden elephant". Required. |
| per_page | integer | Results to return (default 8). Keep small — these are read aloud. |
| max_price_usd | number | Optional upper price limit in US dollars. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (default 1)."
},
"query": {
"type": "string",
"description": "Keyword(s) describing the product, e.g. \"raksha mask\", \"ceylon tea\", \"batik\", \"wooden elephant\". Required."
},
"per_page": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Results to return (default 8). Keep small — these are read aloud."
},
"max_price_usd": {
"type": "number",
"description": "Optional upper price limit in US dollars."
}
}
}Search Lakpura accommodation (hotels, villas, lodges) by name or city. Returns matching stays with their public page URL, city, country and star rating. Use get_service with the returned slug for room details and price.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results (default 12). |
| query* | string | Hotel/villa name or city (e.g. "Galle", "Cinnamon", "Ella tree house"). |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 24,
"minimum": 1,
"description": "Max results (default 12)."
},
"query": {
"type": "string",
"description": "Hotel/villa name or city (e.g. \"Galle\", \"Cinnamon\", \"Ella tree house\")."
}
}
}Search Lakpura tours, day-trips and experiences by keyword. Returns each match with a slug, title, rating and its public page URL. Call get_service with a slug to see bookable options and price, then start_booking to book. Optional kind filter: "multi_day" (multi-day tours) or "single_day".
| Argument | Type | Description |
|---|---|---|
| kind | string | Filter by tour length. Default "all". |
| page | integer | Page number (default 1). |
| query | string | Keyword(s) to match against the tour title (e.g. "whale watching", "sigiriya", "safari"). Omit to browse top-rated. |
| per_page | integer | Results per page (default 20). |
{
"type": "object",
"properties": {
"kind": {
"enum": [
"all",
"multi_day",
"single_day"
],
"type": "string",
"description": "Filter by tour length. Default \"all\"."
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (default 1)."
},
"query": {
"type": "string",
"description": "Keyword(s) to match against the tour title (e.g. \"whale watching\", \"sigiriya\", \"safari\"). Omit to browse top-rated."
},
"per_page": {
"type": "integer",
"maximum": 48,
"minimum": 1,
"description": "Results per page (default 20)."
}
}
}Create a booking and get a secure Stripe checkout URL for the customer to pay. For product_type="tour": pass slug (from search_tours/get_service), selected_date (YYYY-MM-DD), pax, an optional option_id, and lead contact details. For product_type="transfer": pass from, to, optional vehicle/category/pickup_at, pax, and lead details. The price is calculated server-side and returned with the checkout_url. Payment confirms the booking.
| Argument | Type | Description |
|---|---|---|
| to | string | transfer: drop-off location. |
| pax | integer | Number of guests/passengers (default 1). |
| from | string | transfer: pickup location (airport / city / hotel). |
| slug | string | tour: service slug from search_tours/get_service. |
| notes | string | transfer: optional notes. |
| airline | string | transfer: optional airline (airport transfers). |
| vehicle | string | transfer: vehicle class (default "Standard Car"). |
| category | string | transfer: e.g. "Arrival Transfers", "Departure Transfers" (default Arrival). |
| option_id | string |
| tour: chosen option_id from get_service (optional — omit for the "from" price). |
| pickup_at | string | transfer: pickup datetime (free text or ISO). |
| lead_email* | string | Customer email (booking confirmation is sent here). |
| lead_phone | string | Customer phone (optional, E.164 preferred). |
| pickup_text | string | tour: optional pickup location / hotel. |
| lead_surname* | string | Customer surname. |
| product_type* | string | What is being booked. |
| flight_number | string | transfer: optional flight number. |
| selected_date | string | tour: travel date, YYYY-MM-DD (today or later). |
| lead_first_name* | string | Customer first name. |
| selected_start_time | string | tour: optional start time, e.g. "09:00". |
{
"type": "object",
"required": [
"product_type",
"lead_first_name",
"lead_surname",
"lead_email"
],
"properties": {
"to": {
"type": "string",
"description": "transfer: drop-off location."
},
"pax": {
"type": "integer",
"minimum": 1,
"description": "Number of guests/passengers (default 1)."
},
"from": {
"type": "string",
"description": "transfer: pickup location (airport / city / hotel)."
},
"slug": {
"type": "string",
"description": "tour: service slug from search_tours/get_service."
},
"notes": {
"type": "string",
"description": "transfer: optional notes."
},
"airline": {
"type": "string",
"description": "transfer: optional airline (airport transfers)."
},
"vehicle": {
"type": "string",
"description": "transfer: vehicle class (default \"Standard Car\")."
},
"category": {
"type": "string",
"description": "transfer: e.g. \"Arrival Transfers\", \"Departure Transfers\" (default Arrival)."
},
"option_id": {
"type": "string",
"description": "tour: chosen option_id from get_service (optional — omit for the \"from\" price)."
},
"pickup_at": {
"type": "string",
"description": "transfer: pickup datetime (free text or ISO)."
},
"lead_email": {
"type": "string",
"description": "Customer email (booking confirmation is sent here)."
},
"lead_phone": {
"type": "string",
"description": "Customer phone (optional, E.164 preferred)."
},
"pickup_text": {
"type": "string",
"description": "tour: optional pickup location / hotel."
},
"lead_surname": {
"type": "string",
"description": "Customer surname."
},
"product_type": {
"enum": [
"tour",
"transfer"
],
"type": "string",
"description": "What is being booked."
},
"flight_number": {
"type": "string",
"description": "transfer: optional flight number."
},
"selected_date": {
"type": "string",
"description": "tour: travel date, YYYY-MM-DD (today or later)."
},
"lead_first_name": {
"type": "string",
"description": "Customer first name."
},
"selected_start_time": {
"type": "string",
"description": "tour: optional start time, e.g. \"09:00\"."
}
}
}