Paste this to your LLM
The Claude Code MCP server for the ancillary shelf
Ancilair is an MCP server for Claude Code. One command in the chat points it at the contract. Calls run at the supplier's rate, with 0% markup, and your own keys are never metered. The price is quoted on the call.
Your own supplier key is never metered. Claude Code reads the price on the call, before anything is booked.
Install in Claude Code
-
1
In Claude Code, send this in the chat: set up Ancilair — https://ancilair.com/llms.txt
-
2
It reads https://ancilair.com/llms.txt and sets itself up. If it asks for a key, give it your team token (header X-Anc-Token, or Authorization: Bearer on https://mcp.ancilair.com).
-
3
Prefer to register it yourself? curl -fsSL https://ancilair.com/install.sh | sh -s -- --token $ANC_TOKEN — then point the client at https://mcp.ancilair.com with X-Anc-Token or Authorization: Bearer. The same token works for anc catalog search, anc catalog get, and anc call.
-
4
Ask for the job. The agent searches the catalog, tells you the price quoted on the call, and does not book, bind, order, purchase, add, or apply until you say yes. You do not hold a supplier key unless you registered one.
set up Ancilair — https://ancilair.com/llms.txt
What Claude Code can do now
By job. Where several suppliers do one job, they sit side by side and the choice is yours: the routed id, or a named supplier.
- Insure a trip Quote a policy, then bind it only after an explicit yes.
- Pick an eSIM List plans, then order one only after an explicit yes.
- Find a lounge Search availability, then book a visit only after an explicit yes.
- Cover a delayed or lost bag Quote bag protection, then purchase it only after an explicit yes.
- Fast track and security Search a slot, then book it only after an explicit yes.
- Airport to address Quote a ride, then book it only after an explicit yes.
- Find a hotel Search rooms, then reserve only after an explicit yes.
- Visas and entry rules Check the rules first. File a visa only after an explicit yes.
- Disruption and delay Quote cover, then bind or open a claim only after an explicit yes.
- Seat or bag beside the ticket A seat map or a bag list on a ticket you already hold. Adding it waits for an explicit yes.
Browse the catalog Read the job guides
Sequences Claude Code can run from one prompt
Several jobs, chained. Each step is quoted on the call. Nothing is booked until there is an explicit yes.
-
Layover kit
Lounge, fast track, and an eSIM for a connection of three hours or more. Book only after an explicit yes.
-
Cover the trip
Insurance, delayed-bag protection, and disruption cover, quoted side by side. Nothing is bound until a yes.
-
Before they fly
Entry rules, a visa product only if one is required, then an eSIM. Filing waits for a yes.
-
Arrival
A transfer quote and a hotel search. Neither one reserves anything.
-
Beside the ticket
Seat map and extra bags on a ticket you already hold. Not a flight search.
Insure a trip
A quote is not a policy. This is not insurance advice. Read the supplier's exclusions in the quote before you present it.
Try: “Using Ancilair, quote trip insurance for two travellers to Japan, departing 2026-11-02 and returning 2026-11-12. Read https://ancilair.com/llms.txt. Call anc.insurance.quote on https://api.ancilair.com. Show the quoted price and who answered in X-Anc-Served-By. Do not bind a policy until I say yes.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
covergenius.insurance.quote |
Trip (destination, dates) and travellers. Returns the products and a price. | Quoted on the call |
covergenius.insurance.bind |
The offer the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
battleface.insurance.quote |
Travellers and the trip. Returns a quote to show. Not a policy. | Quoted on the call |
battleface.insurance.bind |
The quote the traveller accepted. Idempotency-Key required. Payment approval is this call, not the quote. Runs only after an explicit yes. | Quoted on the call | |
|
|
axapartners.insurance.quote |
Destination, dates, and travellers. Returns plans and a price. | Quoted on the call |
axapartners.insurance.bind |
The plan the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
hepstar.insurance.quote |
Trip and travellers. Returns the offer and a price. | Quoted on the call |
hepstar.insurance.bind |
The offer the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call |
Pick an eSIM
A plan list is not an activated eSIM. This is not telecom advice. Coverage on a plan is the supplier's description of that plan, quoted on the call.
Try: “Using Ancilair, list eSIM plans for France for 7 days. Read https://ancilair.com/llms.txt. Call anc.esim.plans on https://api.ancilair.com. Show the quoted price. Do not order until I say yes.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
airalo.esim.plans |
Destination country or region, and the stay (days, and data if the traveller named it). Returns plans and a price. | Quoted on the call |
airalo.esim.order |
The plan the traveller accepted. Returns the install material. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
esimgo.esim.plans |
Destination. Returns bundles and a price. A validate request is still this tool; it does not purchase. | Quoted on the call |
esimgo.esim.order |
The bundle, as a transaction that assigns an eSIM. Idempotency-Key required. Only after an explicit yes. Runs only after an explicit yes. | Quoted on the call | |
|
|
oneglobal.esim.plans |
Destination and the stay. Returns data plans and a price. | Quoted on the call |
oneglobal.esim.order |
The plan and the subscriber. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
nomad.esim.plans |
Destination and the stay. Returns plans and a price. | Quoted on the call |
nomad.esim.order |
The plan the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
celitech.esim.plans |
Destination and the stay (start date, end date, and data if the traveller named it). Returns packages and a price. | Quoted on the call |
celitech.esim.order |
The package the traveller accepted. Returns the activation code. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call |
Find a lounge
A search is not an entry pass. If the supplier has no slot at that terminal, the response says so and nothing is billed.
Try: “Using Ancilair, search lounges at CDG terminal 2E on 2026-10-14 for one adult. Read https://ancilair.com/llms.txt. Call anc.lounge.search on https://api.ancilair.com. Show the quoted price. Do not book until I say yes.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
dragonpass.lounge.search |
Lounge or airport resource, date, adult count, child count. | Quoted on the call |
dragonpass.lounge.book |
The prebooking token from the search. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
loungekey.lounge.search |
Airport, date, party. | Quoted on the call |
loungekey.lounge.book |
The pass the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
holidayextras.lounge.search |
Airport, arrival date, arrival time, adults, children. Returns lounge codes and a price. | Quoted on the call |
holidayextras.lounge.book |
The lounge code from that search, with the same party and time. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
gordian.lounge.search |
The flights (carrier, number, date, airports) and the passengers. | Quoted on the call |
gordian.lounge.book |
The lounge product the traveller accepted, added to that trip. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call |
Cover a delayed or lost bag
A quote is not a purchased guarantee. This is not insurance advice. This job is not an extra piece of airline baggage.
Try: “Using Ancilair, quote delayed-or-lost bag protection for this booking. Read https://ancilair.com/llms.txt. Call anc.bags.quote on https://api.ancilair.com. This is not an extra airline bag. Show the quoted price. Do not purchase until I say yes.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
blueribbonbags.bags.quote |
Currency, passengers, airline, flights, departure, and last arrival. Returns the product and a price. | Quoted on the call |
blueribbonbags.bags.purchase |
The product the traveller accepted, with those flight details. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
protectgroup.bags.quote |
The booking (dates, value, and a ticket quantity equal to the number of customers). You do not name the protection product in the request. | Quoted on the call |
protectgroup.bags.purchase |
The quoted lost-baggage product the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call |
Fast track and security
Book only where the supplier returns a slot. A search with no slot is an empty result, not a guess, and nothing is billed.
Try: “Using Ancilair, search fast track for the airport, date, and party I give you. Read https://ancilair.com/llms.txt. Call anc.fasttrack.search on https://api.ancilair.com. If there is no slot, say so. Do not book until I say yes.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
dragonpass.fasttrack.search |
Airport resource, date, adult count, child count. | Quoted on the call |
dragonpass.fasttrack.book |
The prebooking token from the search. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
holidayextras.fasttrack.search |
Airport, arrival date, arrival time, adults, children. Returns a fast-track code and a price. | Quoted on the call |
holidayextras.fasttrack.book |
That code, with the same party and time. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call |
Airport to address
A quote is not a car on the way. Private and shared rides are different products. Do not swap them after the quote.
Try: “Using Ancilair, quote an airport transfer for the pickup, drop-off, time, and party I give you. Read https://ancilair.com/llms.txt. Call anc.transfer.quote on https://api.ancilair.com. Show the quoted price. Do not book until I say yes. Do not swap a private ride for a shared one after the quote.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
mozio.transfer.quote |
Pickup, drop-off, date and time, party. One end is an airport on an airport transfer. | Quoted on the call |
mozio.transfer.book |
The quoted ride. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
blacklane.transfer.quote |
Pickup, drop-off, date and time. | Quoted on the call |
blacklane.transfer.book |
The quoted ride. Idempotency-Key required. The booked price is the one this call confirms. Runs only after an explicit yes. | Quoted on the call | |
|
|
jayride.transfer.quote |
Pickup, drop-off, date and time, party. | Quoted on the call |
jayride.transfer.book |
The quoted ride. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
talixo.transfer.quote |
Pickup, drop-off, date and time. Include the flight number when the pickup should track a flight. | Quoted on the call |
talixo.transfer.book |
The quoted ride. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
welcomepickups.transfer.quote |
Pickup, drop-off, date and time, party. | Quoted on the call |
welcomepickups.transfer.book |
The quoted ride. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call |
Find a hotel
A search is a quote. It is not a reservation. If the confirmed price differs from the search, stop and show the new price. That price still needs a yes.
Try: “Using Ancilair, search hotels for the dates, place, and guests I give you. Read https://ancilair.com/llms.txt. Call anc.hotel.search on https://api.ancilair.com. A search is not a reservation. If the confirmed price differs, stop and show it. Do not book until I say yes. Do not shop flights.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
nuitee.hotel.search |
Check-in, check-out, guest nationality, rooms and guests, and a place: hotel ids, a city, coordinates, or an airport code. | Quoted on the call |
nuitee.hotel.book |
The offer from that search, then the guest's name and email. Prebook runs first. If the confirmed price differs, the call returns that price and does not reserve the room. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
ratehawk.hotel.search |
Check-in, check-out, guests per room, residency as passport country, and a place. For one chosen hotel, pass that hotel so the rooms are the hotel-page rates. | Quoted on the call |
ratehawk.hotel.book |
The prebooked rate, the guests' names, gender when the hotel requires it, and a new order id for this yes. Idempotency-Key required. The response says where to poll. Runs only after an explicit yes. | Quoted on the call |
Visas and entry rules
A requirements result is not a visa. Eligibility is not an approval. This is not legal or immigration advice. Rules change; the supplier response is the record for that call.
Try: “Using Ancilair, check entry rules for the nationality, origin, destination, and dates I give you. Read https://ancilair.com/llms.txt. Call anc.entry.rules on https://api.ancilair.com. A requirements result is not a visa. Do not call anc.visa.apply until I say yes to a specific product. This is not legal or immigration advice.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
sherpa.entry.rules |
Nationality, origin, destination, travel dates. Returns the procedures. Not an application. | Quoted on the call |
sherpa.visa.products |
The same trip, when you need an eVisa or eTA offer and its price. Listing products does not file anything. | Quoted on the call | |
sherpa.visa.apply |
The product the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
simplevisa.requirements |
Nationality, destination, departure date. Returns the documents and whether an authorization is required. Not an application. | Quoted on the call |
simplevisa.visa.apply |
The applicant and the trip, for a destination the requirements call says SimpleVisa can file. Idempotency-Key required. Only after an explicit yes. Runs only after an explicit yes. | Quoted on the call | |
|
|
timatic.entry.check |
Nationality, travel document, destination, travel dates. Returns the compliance result Timatic publishes. Not a visa. | Quoted on the call |
|
|
cibt.visa.check |
Nationality, residency, destination, purpose of travel, entry date, exit date. Not an application. | Quoted on the call |
Disruption and delay
A quote is not cover. Compensation eligibility is not a promise that an airline or a regulator will pay. This is not legal or insurance advice.
Try: “Using Ancilair, quote disruption cover for the flight I give you. Read https://ancilair.com/llms.txt. Call anc.disruption.quote on https://api.ancilair.com. A quote is not cover, and an eligibility check is not a filed claim. Do not bind or open a claim until I say yes.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
koala.disruption.quote |
The flight and the travellers. Returns the cover and a price. | Quoted on the call |
koala.disruption.bind |
The quote the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
airhelp.protection.quote |
The flight booking. Returns the AirHelp+ offer and a price. | Quoted on the call |
airhelp.protection.bind |
That offer. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
airhelp.compensation.check |
The disrupted flight. Returns eligibility as AirHelp states it. Not a filed claim and not a payment. | Quoted on the call | |
airhelp.compensation.claim |
Open the claim the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
protectgroup.disruption.quote |
The booking (dates, value, and a ticket quantity equal to the number of customers). The response lists the configured products. | Quoted on the call |
protectgroup.disruption.purchase |
The quoted disruption product the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
collinson.smartdelay.quote |
The flight. Returns the product and a price. A quote does not register the flight. | Quoted on the call |
collinson.smartdelay.register |
The flight the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call |
Seat or bag beside the ticket
A map or a bag list is not a confirmed extra. Adding it runs only after an explicit yes, and the payment has to include the service price the supplier just returned.
Try: “Using Ancilair, show the seat map and extra bags beside this ticket. Read https://ancilair.com/llms.txt. Call anc.seat.map and anc.extrabag.list on https://api.ancilair.com. Do not search for flights. A Duffel call needs a Duffel offer or order id. Do not add a seat or bag until I say yes, and include the service price in the payment.”
| Supplier | Tool | What the call needs | Price |
|---|---|---|---|
|
|
duffel.seat.map |
A Duffel offer id. Returns the seat map. Each open seat has an available service, a price, and any disclosure Duffel returned. Seat quantity is 1. | Quoted on the call |
duffel.seat.add |
That service id, quantity 1, on the order for that offer. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
duffel.extrabag.list |
A Duffel offer id before the order, or a Duffel order id after it. Each service has a price and a maximum quantity. | Quoted on the call | |
duffel.extrabag.add |
The service id and the quantity, on create-order or on the existing Duffel order. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
|
|
gordian.seat.map |
Carrier, flight number, date, airports, passengers. | Quoted on the call |
gordian.seat.add |
The seat the traveller accepted on that trip. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call | |
gordian.extrabag.list |
The same trip. Returns cabin and checked bag products and a price. | Quoted on the call | |
gordian.extrabag.add |
The bag product the traveller accepted. Idempotency-Key required. Runs only after an explicit yes. | Quoted on the call |
Questions
Do I need a key from each supplier?
No. Ancilair makes the upstream request and relays the answer, so Claude Code does not hold a supplier credential. If your team already pays a supplier, register that key and those calls are never metered.
What does a call cost?
The supplier's own rate, with 0% markup. The price is quoted on the call, in X-Anc-Cost-Micro. This page does not publish a rate card.
Does Ancilair pick the supplier?
A routed id uses the team's own contract first, then the cheapest quote that fits, and names who answered in X-Anc-Served-By. A named id runs that supplier and no one else.
Is a quote a booking?
No. Book, bind, order, purchase, add, or apply only after an explicit yes, with an Idempotency-Key. This is not legal, immigration, telecom, or insurance advice. Flights stay with the air API.