An independent cinema’s booking problem is a restaurant’s with the seats numbered: a room, a schedule of showings, and a hold that has to survive two people clicking the same seat in the same second. We build it on the foundations already running live in Thezi: availability computed from the schedule and the seating rather than a table of pre-made slots, a hold that expires on its own, a card or deposit leg only if you want one, confirmation email, and a door-side admin your staff run from a tablet.
The Model Context Protocol is how it is driven, not a feature bolted to the side. Finding a showing, picking seats, holding them, confirming and cancelling are API operations with stable typed refusals before they are screens, so the MCP server we build alongside hands exactly those to an assistant as tools. Your customers’ agents can hold three seats for Friday; your own can answer “what is unsold tonight” without anyone opening a dashboard. We have built and run hosted remote MCP servers in production: Cloudflare Workers, streamable HTTP, keys you issue, scoped so a caller reaches only what its key names, and no tool takes a venue id because the key already says which cinema it is.
Seats are not a spreadsheet of rows and letters, either. The auditorium beside this is a real Skopia layout: eighty seats on a pitch either side of the aisle, thirty sold, placed by one call to the engine rather than drawn for this page, so the plan your box office looks at and the seat the booking system holds are the same object.
Safe to hand an agent, for the same reasons everything here is: every write records whether a person or a machine made it, proved by the credential rather than claimed in the request, and money stays human-gated: an agent prepares a refund, a person commits it. Cinema seat booking is by enquiry, scoped and quoted per project. There is no off-the-shelf cinema product to sign up for today, and we would rather say so than sell you a waiting list. Tell us the screens, the seats and how you sell tickets now.