See what your AI can do for a travel agency, and what it can't.
Everything here is invented: a make-believe travel agency and its make-believe guests. Pick a question, read what happens, then run it live. No AI answers on this page: each button sends the demo the same kind of request an AI app would send, and shows what came back.
Archstone tells your AI which actions can't be undone. Your AI decides whether to ask you first.
Approval before paying is written down, but not yet enforced. That is coming.
The demo key is public. Anyone can use it. Everything it reaches is invented: no real hotels, people, bookings or payments.
When the agency itself refuses a request, your AI gets only a bare error number, without the reason. Better messages are planned. planned · NousVigil/archstone#175
The invented agency's own system is public on purpose, so anyone can see what Archstone sits in front of. If you come across it, it is not a leak: there is nothing real behind it.
Your own AI
Connect your own AI.
Add the demo to an AI app that takes a remote address, then ask the questions below in your own words.
The demo address
https://demo.archstone.dev/mcp
Claude
Copy the address.
Paste it in Claude: Settings → Connectors → Add custom connector.
Claude Code lets you send a key with the connection. Without one, your own AI is refused when it books, pays or cancels. Copy this command, run it in a terminal, then paste a question from below.
ChatGPT
Copy the address.
Paste it in ChatGPT: Settings → Apps & Connectors, turn on developer mode, then create a connector.
One photo from an unknown website is left out and the rest still show; a note says which one it was in the agency's own list and that the list is now shorter. Archstone never downloads any photo.
A link to the hotel's own page on the agency's own site.
What Archstone refuses or withholds
A second link, to a partner site the agency never declared, is left out and never opened; a note says exactly which link, and that the official page is fine. You still get the official page.
Check whether Casa Alfama is free on every weekend in June 2027.
What happens
The first few checks answer, then a polite refusal.
What Archstone refuses or withholds
Too many requests too fast are refused. On the live demo the limit is approximate.
Every press of the button is one check. The first three presses answer; the fourth is refused. The limit on this live demo is approximate, so it may allow a few more.
The rooms the agency could answer, and a clear marker for the one it could not because its system was busy.
What Archstone refuses or withholds
A price in the wrong format is flagged as broken, not passed on as fine: the same question about another stay, whose price arrives in the wrong format, is reported as an invalid field.
Booking needs a key. Who holds it decides what is allowed.
Book it
You ask
Quote Casa Alfama for two adults, 12-15 May 2027, then book that quote for Ana Pop.
If you paste this into your own AI: Your own AI app connects without a key unless it lets you set an Authorization header, so this booking is refused for lack of a key, before the agency is asked. The page's "Run it live" button sends the published demo key instead, and the booking goes through.
What happens
A booking number, at the price that was quoted.
What Archstone refuses or withholds
Without the key, or with one nobody listed, Archstone's rules refuse the call before the agency is asked. Archstone does not check keys itself; once its rules let a call through, the agency checks the key and the quote.
This button books with the public demo key and shows the booked total. That this total is the price that was quoted is not shown by this button. The refusal without a key is not triggered here: it is a recorded exchange, shown in “See how this works”.
Quote Casa Alfama for two adults, 12-15 May 2027, then book that quote for Ana Pop. Use the second public demo key, the blocked one.
If you paste this into your own AI: This scenario is about the second published demo key, which the rules name as blocked. Your own AI app connected without a key is refused for lack of a key, before the agency is asked. Connected with the first key, the booking goes through instead. Connected with the second key, it is refused exactly as here. "Run it live" sends the second key.
What happens
Refused by Archstone's rules before the agency is asked: this caller is not allowed to book.
What Archstone refuses or withholds
The blocked key is refused for paying and cancelling too. A caller nobody listed is refused the same way, and a rule that cannot be checked refuses rather than guesses.
This button shows the blocked key being refused for booking. The same refusal for paying and cancelling, and for a caller nobody listed, is recorded, not run here.
Cancel booking B-0000cafe (Casa Alfama, 12-15 May 2027). I am sure, go ahead.
If you paste this into your own AI: Your own AI app connects without a key unless it lets you set an Authorization header, so the cancellation is refused for lack of a key. "Run it live" sends the published demo key instead.
What happens
The cancellation goes through, and the refund is the booking's own total.
What Archstone refuses or withholds
It needs the agency key and an allowed caller, like booking: Archstone's rules refuse a missing key before the agency is asked. Archstone does not pause it. Its written setup says a person should approve it, but this version does not enforce that; any confirmation comes from your AI app, not from Archstone.
This button cancels with the public demo key and shows the refund. That the refund is the booking's own total is not shown by this button; “See how this works” states it. The refusal without a key is recorded, not run here.
Book Casa Alfama for Ana Pop, two adults, 12-15 May 2027, and pay for it with the demo card.
If you paste this into your own AI: Your own AI app connects without a key unless it lets you set an Authorization header, so the booking, and with it the payment, is refused for lack of a key. "Run it live" sends the published demo key instead.
What happens
The payment goes through for a booking the agency quoted a moment ago.
What Archstone refuses or withholds
A payment needs the agency key and an allowed caller (Archstone's rules refuse otherwise), and a price the agency quoted a moment ago, and the agency checks that, not Archstone. Archstone's checks flag a payment action declared without safeguards; they warn and do not block.
This button pays with the public demo key. The refusal of a payment without its quote is recorded, not run here.
Search with a place that is not a place, the dates as the word 'tomorrow' and a negative number of travellers.
What happens
Refused before the agency is asked: the three arguments that do not fit are named, and the agency gets no request at all.
What Archstone refuses or withholds
Archstone checks every argument against the shape its written setup declares before it calls the agency. The values that were sent are not echoed back.