Clinics order from many suppliers: through web shops, PDF order forms, e-mail and phone. Every supplier has its own system. Today, clinic software and AI assistants cannot order anywhere directly – comparing prices and checking availability is still manual work.
An open standard. Each supplier runs a small MCP server (Model Context Protocol) with four uniform functions. Any clinic software and any AI assistant – Viali, Claude, ChatGPT – can then search, get an offer and order directly at the supplier. With the clinic's customer account and its own terms.
The four functions
1.Search products
By GTIN, Pharmacode, manufacturer reference (REF) or name.
Example: “nitrile disposable gloves, size M”
2.Offer for this clinic
Price after discount, pack size, availability, delivery time.
Example: “ECG electrodes, 50 per bag, €7.55, in stock”
3.Place an order
Lines, delivery address, the clinic's customer number.
4.Order status
Confirmed, shipped, delivered, back order.
The rules
- Open and free: Anyone may use and implement the standard.
- Unique products: Identification by GTIN or Pharmacode.
- Own customer account: The clinic signs in with its account at the supplier (OAuth). Its prices and terms apply.
- Never patient data: Orders contain only products, quantities and the clinic's addresses.
- The supplier keeps control of its data: Prices, terms and the customer relationship stay with the supplier. No middleman, no commission.
Why it pays off for suppliers
- Orders come straight from the clinic's software and its AI assistant.
- No extra portal to maintain.
- No middleman, no commission, no lock-in.
- Works with Viali, Claude, ChatGPT and any software that implements the standard.
Draft 0.1. Viali is the first client: clinics on Viali can reach OCP suppliers directly from their inventory. We are looking for suppliers for a first pilot in Switzerland.
For developers
MCP tools (draft 0.1), responses as JSON.
search_products
- Input
query(text) orgtin/pharmacode/manufacturerRef;limit- Response
- List with
productId,name,gtin,pharmacode,manufacturer,manufacturerRef,packSize,unit
get_offer
- Input
productId,quantity- Response
price(amount, currency),listPrice,discountPercent,packSize,available(yes/no/later),deliveryDays,validUntil
place_order
- Input
lines(productId,quantity),deliveryAddressId,customerReference- Response
orderId,status,confirmedLines
get_order_status
- Input
orderId- Response
status(confirmed, shipped, delivered, back order),lineswith delivered quantities,trackingUrl
Authentication: OAuth 2.1 with the clinic's customer account at the supplier. No patient data in inputs or outputs.