Cliento integration
Cliento is a booking and point-of-sale system for appointment businesses such as salons, clinics and car washes. Read a location's bookings (creating, moving or cancelling one is not in the API yet), staff, resources and services; find, create, update and delete customers (persons, companies, vehicles) and hair colour recipes; read products and stock movements and record deliveries and withdrawals; read, import and void gift cards; and manage a salon's colour bar (ranges, items, mixes). Customer records and bookings are personal data: identity numbers, contact details, staff notes and a location's own booking fields, such as allergies at a clinic. Cliento marks every operation as preview: fields, paths and answers may still change without a new API version. Checking a staff member's point-of-sale PIN is left out, and a gift card's code is returned only by import_gift_card. Authentication is a Cliento API key (cl_live_, or cl_test_ for a sandbox) sent as a bearer token; each key has scopes, and a call outside them is refused with 403.
Say what should happen.
The workflow builds itself.
What you can do with Cliento
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Colour bar item, 8 operations
add_colour_bar_item_barcodeAdd colour bar item barcodePOSTGives the item a barcode of its own, as when a delivery row was matched by its article number and its barcode is new. A barcode that another item or a product of the location has is refused with `duplicate`.create_colour_bar_itemCreate colour bar itemPOSTAdds an item to a colour bar range. It starts with no stock. Send an `Idempotency-Key` so that a repeat of the call does not add the item twice.delete_colour_bar_itemDelete colour bar itemDELETERemoves the item from the colour bar with whatever stock it holds, and frees its own barcodes.get_colour_bar_itemGet colour bar itemGETReturns one colour bar item of the location (a shade, developer strength or product in a range): barcodes, pack size, list price and its stock in unopened packs and grams left in the open pack.get_colour_bar_item_by_idGet colour bar item by idGETReads one colour bar item from its id alone, for when its location is not known: the same record as get_colour_bar_item, including its locationId. Works for any location the API key can use.list_colour_bar_itemsList colour bar itemsGETThe location's colour bar items, range by range and shade by shade, one page at a time. With `ean` or `articleNumber` it is a lookup: the item a scanned barcode or a delivery note row belongs to, at most 20 items.remove_colour_bar_item_barcodeRemove colour bar item barcodeDELETERemoves one of the item's own barcodes. Removing one of its `catalogueEans` is refused with `not_allowed`.update_colour_bar_itemUpdate colour bar itemPATCHChanges the colour bar item's fields you send; every other field keeps its value. All changes are applied or none. An item stays in its range. Emptying a field is not possible with this tool.
Colour bar mix, 6 operations
create_colour_bar_mixCreate colour bar mixPOSTRegisters what was mixed and changes the colour bar items it names. It is never refused because an item is out of stock: what was mixed has been mixed.get_colour_bar_mixGet colour bar mixGETReturns one colour bar mix: the bowls and the items and amounts that went into each, who mixed it, its list value, the recipe it was saved as, and whether it was undone.get_colour_bar_mix_by_idGet colour bar mix by idGETReads one colour bar mix from its id alone, for when its location is not known: the same record as get_colour_bar_mix, including its locationId. Works for any location the API key can use.list_colour_bar_mixesList colour bar mixesGETThe location's mixes, newest first, one page at a time, including those that were undone. With `staffId`, one staff member's.summarise_colour_bar_mixesSummarise colour bar mixesGETWhat was mixed from `from` to `to`, both days included, in the location's time zone, per staff member, at list price. Mixes that were undone are left out. The period is at most 366 days.undo_colour_bar_mixUndo colour bar mixPOSTUndoes the whole mix, once: every pack it took is put back, the grams it added to each item's `openUsed` are taken off again, and the recipe it was saved as is removed. The mix stays, with `undoneAt`.
Colour bar range, 6 operations
create_colour_bar_rangeCreate colour bar rangePOSTAdds a range to the location's colour bar. It holds no items until they are created. Send an `Idempotency-Key` so that a repeat of the call does not add the range twice.delete_colour_bar_rangeDelete colour bar rangeDELETEDeletes the colour bar range. A range that still has items is refused with not_allowed: delete its items first with delete_colour_bar_item.get_colour_bar_rangeGet colour bar rangeGETReturns one colour bar range of the location: its name, brand, series, kind (such as colour or developer), pack size and list price.get_colour_bar_range_by_idGet colour bar range by idGETReads one colour bar range from its id alone, for when its location is not known: the same record as get_colour_bar_range, including its locationId. Works for any location the API key can use.list_colour_bar_rangesList colour bar rangesGETThe location's colour bar ranges by name, one page at a time.update_colour_bar_rangeUpdate colour bar rangePATCHChanges the colour bar range's fields you send; every other field keeps its value. All changes are applied or none. Emptying a field is not possible with this tool.
Company, 6 operations
create_companyCreate companyPOSTCreates a company at the location. Send an `externalReference`, your own id for the company, to make the call safe to repeat.delete_companyDelete companyDELETEDeletes the company from the location. A company with upcoming bookings is refused: those bookings must be cancelled or deleted in Cliento first.get_companyGet companyGETReturns one company customer of the location: name, organisation number, department, address, email, phone numbers and staff notes. Contact details are personal data.get_company_by_idGet company by idGETReads one company from its id alone, for when its location is not known: the same record as get_company, including its locationId. Works for any location the API key can use.list_companiesList companiesGETLists the location's company customers, oldest first, one page at a time. Filter by organisation number or your externalReference to find one. Contact details are personal data.update_companyUpdate companyPATCHChanges the company's fields you send; every other field keeps its value. All changes are applied or none. Emptying a field is not possible with this tool.
Person, 6 operations
create_personCreate personPOSTCreates a person at the location. Send an `externalReference`, your own id for the person, to make the call safe to repeat. When a person at the location already has that reference, that person is returned unchanged with `200` and nothing is created.delete_personDelete personDELETEDeletes the person (customer) from the location. A person with upcoming bookings is refused: those bookings must be cancelled or deleted in Cliento first.get_personGet personGETReturns one person (an individual customer) of the location: name, email, phone numbers, address, date of birth, gender, identity number, consents and staff notes. This is personal data.get_person_by_idGet person by idGETReads one person from its id alone, for when its location is not known: the same record as get_person, including its locationId. Works for any location the API key can use.list_personsList personsGETLists the location's persons (individual customers), oldest first, 50 per page by default. Filter by email, mobile number, identity number or your externalReference to find one. Returns personal data.update_personUpdate personPATCHChanges the person's fields you send; every other field keeps its value. All changes are applied or none. Emptying a field is not possible with this tool.
Vehicle, 6 operations
create_vehicleCreate vehiclePOSTCreates a vehicle at the location. Send an `externalReference`, your own id for the vehicle, to make the call safe to repeat.delete_vehicleDelete vehicleDELETEDeletes the vehicle from the location. A vehicle with upcoming bookings is refused: those bookings must be cancelled or deleted in Cliento first.get_vehicleGet vehicleGETReturns one vehicle customer of the location: registration number, make, model, model year, colour, its name in Cliento and staff notes.get_vehicle_by_idGet vehicle by idGETReads one vehicle from its id alone, for when its location is not known: the same record as get_vehicle, including its locationId. Works for any location the API key can use.list_vehiclesList vehiclesGETThe location's vehicles, oldest first, one page at a time. To find one, filter on its registration number or your own reference.update_vehicleUpdate vehiclePATCHChanges the vehicle's fields you send; every other field keeps its value. All changes are applied or none. Emptying a field is not possible with this tool.
Gift card, 5 operations
get_gift_cardGet gift cardGETReturns one gift card of the location: value, remaining value, currency, status, validity, the merchant and the linked customer. The redemption code is not returned.get_gift_card_by_idGet gift card by idGETReads one gift card from its id alone, for when its location is not known: the same record as get_gift_card, including its locationId. Works for any location the API key can use.import_gift_cardImport gift cardPOSTRecords a gift card sold somewhere else, such as a web shop. The card is money the merchant owes its holder, spendable at the point of sale at once; Cliento records no sale and no receipt. The answer carries the code: give it to the buyer.list_gift_cardsList gift cardsGETThe location's gift cards, newest first, one page at a time. To read them all, repeat the call with `after` set to the `nextCursor` of the previous page until a page has none.void_gift_cardVoid gift cardPOSTCancels a card that has not been used, for example when its web shop order is refunded: its value can no longer be spent, and no tool here reverses it. A card used even in part, or already void, is refused with gift_card_already_used.
Service, 5 operations
get_resource_serviceGet resource serviceGETReturns one service as this resource offers it: the duration, price and online booking setting for this resource, and ownValues, which says whether they are the resource's own or the service's defaults.get_serviceGet serviceGETReturns one service of the location: name, type, duration, price, VAT, online booking settings and the resource services that offer it. Also answers for a deleted service, with status deleted.get_service_by_idGet service by idGETReads one service from its id alone, for when its location is not known: the same record as get_service, including its locationId. Works for any location the API key can use.list_resource_servicesList resource servicesGETLists the services the resource can be booked for, in the order the location lists its services. Each is a resource service. It has the duration, price and online booking setting that apply for this resource.list_servicesList servicesGETThe location's services in the order the location lists them, without those that are deleted.
Customer, 4 operations
get_customerGet customerGETReturns the short entry for a person, company or vehicle of the location: its type, name and identifying number. Read the full record with get_person, get_company or get_vehicle.get_customer_by_idGet customer by idGETReads the short entry (type, name, identifying number) of a person, company or vehicle from its id alone, without its location. Same answer as get_customer, with its locationId.list_customersList customersGETLists the location's persons, companies and vehicles in one list of short entries (type, name, identifying number), oldest first. Filter by type, email, mobile number, number or externalReference.list_shared_customersList shared customersGETLists the persons, companies and vehicles of every location this API key can be used on, as short entries, one page at a time. The call works only when sharing customers between locations is turned on for the organisation in Cliento.
Booking, 3 operations
get_bookingGet bookingGETReturns one booking of the location: start and end, status, resources, services, payments, sales, SMS reminders and its customers. Contact details of the customers are personal data, returned only with the customers:read scope.get_booking_by_idGet booking by idGETReads one booking from its id alone, for when its location is not known: the same record as get_booking, including its locationId. Works for any location the API key can use.list_bookingsList bookingsGETThe location's bookings that start in a period of at most 62 days, in start order, one page at a time, cancelled ones included. Bookings name their customers and carry notes and the location's own fields: personal data.
Product, 3 operations
get_productGet productGETReturns one product of the location: name, brand, barcodes, article number, sale price and VAT, stock balance, and (with the stock:cost scope) average cost and latest purchase price.get_product_by_idGet product by idGETReads one product from its id alone, for when its location is not known: the same record as get_product, including its locationId. Works for any location the API key can use.list_productsList productsGETThe location's products, one page at a time, including those that are not shown on the point-of-sale screen as products that can be sold.
Recipe, 3 operations
create_recipeCreate recipePOSTAdds a recipe to the person. It also shows in the person's log in Cliento, where staff read it. A recipe is not changed afterwards through the API: when the mix is adjusted, add a new recipe.get_recipeGet recipeGETReturns one of the person's recipes (a hair colour mixed at a visit): title, note, the bowls with their components and amounts, and your own stored data.list_recipesList recipesGETThe person's recipes, newest first, one page at a time. The first one is what was mixed the last time.
Resource, 3 operations
get_resourceGet resourceGETReturns one resource of the location (what gets booked: most often a person, sometimes a room or equipment): name, online name, type, group and status. Also answers for a deleted resource, with status deleted.get_resource_by_idGet resource by idGETReads one resource from its id alone, for when its location is not known: the same record as get_resource, including its locationId. Works for any location the API key can use.list_resourcesList resourcesGETThe location's resources, without those that are deleted.
Location, 2 operations
get_locationGet locationGETReturns one location the API key can use: its id, name, currency (ISO 4217 code) and IANA time zone.list_locationsList locationsGETThe locations this API key can be used on. Almost everything else is addressed under one of them.
Stock movement, 2 operations
list_stock_movementsList stock movementsGETEvery change of a stock balance at the location, oldest first, including sales at the point of sale. The list can be followed: keep the id of the last movement you have read and pass it as `after` to get what has happened since.record_stock_movementsRecord stock movementsPOSTRecords a document of stock changes: a delivery note, products taken from the shelf for the location's own use. Every line is applied, or none: a line that takes out more than is in stock gets the whole document refused with `insufficient_stock`.
Merchant, 1 operation
list_merchantsList merchantsGETThe merchants of a location, oldest first. Most locations have exactly one. Where a request takes a `merchantId`, it can be left out when the location has one.
Resource group, 1 operation
list_resource_groupsList resource groupsGETThe groups the location's resources are listed under, in display order.
Service group, 1 operation
list_service_groupsList service groupsGETThe groups the location's services are listed under, in display order.
Staff, 1 operation
list_staffList staffGETThe location's staff members, sorted by name. Use a staff id to say who did something, for example who took stock out. PINs are never returned; `hasPin` says whether a person has one.
Use Cliento from Claude Code, Cursor or Codex
Connect Cliento in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Cliento operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Cliento
- Create your workspace
Sign up free. Nothing to install.
- Connect Cliento once
Add your Cliento connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Cliento integration FAQ
What can you do with the Cliento integration?
LiveContext exposes 72 operations on Cliento, covering colour bar item, colour bar mix, colour bar range and company.
