Pelikán group · Codeblocks · Henry's team

Travel Gateway Hackathon

One MCP endpoint that hands any AI agent our travel desks as tools. Two products and the whole platform already run. Over the hackathon we add the next ten, put it on its real domain, and decide product by product what ships and what folds.

Whenworkdays, dates pending
FormatHybrid. A room in Bratislava, a call for everyone else
Teams1–2 people per product, claimed in the Slack thread
Ends withDemos, then keep or fold per product

The brief

We are building one MCP endpoint that gives any AI agent our travel desks as tools: group airfare, last-minute deals, disruption help, golf, business class, esports trips. Everything searches and quotes. Nothing books. Every quote carries a reference that comes back with the booking, so we can finally see which agents bring us business instead of guessing.

The gateway, the developer portal, the deploy setup and two products already exist and pass 152 tests. The hackathon adds the next ten products and puts the whole thing on its real domain.

Teams of one or two claim a product from the board and finish it: tools on the gateway, a page on the portal, a row on the status page, one live call from Claude Code in the demo. Most of what we sell has no price until a person has looked at it, so most products are a desk: a tool that turns a conversation into a complete enquiry for that person. A generator turns a short spec into a working desk, so a desk is a config file and an afternoon, not a project. Two products call real APIs and are the meatier claims. Less glamorous, the desks. Also where the money is. I build the platform pieces before the day, so every team starts on something that runs.

Claiming. Reply in the announcement thread with the row number and your names. The organiser keeps the board current. Unclaimed rows are assigned at kick-off.

Product board

Twelve first-batch products. Live calls a real backend. Desk prepares a complete enquiry with a reference and hands it to a person, which is how that product sells today and probably for a while yet. Anything without an API is a desk, and every desk also gets an info tool that says what it does and when not to send someone there. The last column is what a team needs in hand before it can start. Start without it and the first half-day goes on chasing.

Departures 12 rows · 1–2 people each · claim in thread · S < ½ day · M ≈ 1 day
#ProductModeBackendHandoffSizeNeeds before start
01EasyGroupFlightsdonemcp.easygroupflights.com, proxied: two read-only tools + composerWhatsApp deskSpolish only
02LastminuteliveDeal Breaker /api/v1/offers, /offers/{id}, /external/deals · public mock for devweb deep link per departureMDeal Breaker read-only token
03SmartBus offer toolliveponuky.pelikan.sk/api · login → GET offer, projects, lookups · write routes withheld · internal scopenone (info)MSmartBus login · which projects
04Flight compensationliveEC261 pre-check already in gateway · APRA claim form apra.sk/formular/ (script-rendered)web, ref in URL · phone / email fallbackS/Mform stores ?ref · APRA fee wording
05SOS Flightsdeskadvice tool exists · sosflights.help 24/7 deskWhatsApp / phoneShotline number, hours
06Group hotelsdesknone yet · HotelHops price-checker laterWhatsApp / emailSdesk contact · fields
07GolfdeskGabriel TOUR deskWhatsApp / emailScontact · consent to list
08LoungesdeskPelikán Premium desk · Pelikán Lounge storeWhatsApp / emailSdesk contact · is Premium the product
09eSIMdeskno provider API todayWhatsApp / emailSdesk contact · standalone product coming?
10Travel watchdogdesknone yet · HotelHops ingest laterWhatsApp / emailSwhat it watches · desk contact
11Turnagodeskesports travel desk · partner tool is login-onlyWhatsApp / emailSdesk contact · confirm "toll" = tool
12Farenoxdeskbusiness-class desk, UKemail / phoneSdesk email · hours
live calls a backend desk enquiry to a person done already shipping

Twelve rows of S and M, one or two people each, is a comfortable two workdays. It is a tight single day if we cut the board to the two live products plus four desks, and I would rather cut than rush. Each product ends with one of three verdicts: ships to the domain, stays on staging for another week, or folds back into the backlog. The four criteria below decide it, not how good the demo felt.

Before the day

These are not on the board. I build them with Claude before the hackathon, so every team starts on something deployed and documented, with keys ready to issue. Rows X1 and X4 wait on other people. The rest does not.

RowWhatNeeds
X1Deploy on the real domain: Portainer stack, proxy hosts, certificatesdomain decision, VPS access, a free port
X2Anonymous tier: keyless calls at a low rate limit with a generic referencenothing
X3Portal product pages generated from desk specs; fact pages models can cite, with FAQ databrand name and tone
X4Booking-side reference capture: group desk record field, Pelikan ?ref cookieowners of those systems
X5Registry submission: DNS record, publisher tool, Glama claim, awesome-mcp pull requestX1 done, a GitHub account

Done means

Tools on the gateway

Read-only, typed, with a reference on every quote. Nothing books, pays or files.

A page on the portal

Generated from the product's own spec, so the docs cannot drift from the tools.

A row on the status page

Probed by the evals job. A product that stops answering says so.

One live call in the demo

Install from Claude Code, ask one question, get one handoff with a reference.

Install in one command, first useful answer in under thirty seconds. Three of the four is not done. It is a demo.

Schedule

Times follow from the start and end once the dates are fixed. The shape stays.

  1. STARTKick-off: the gateway in ten minutes, the board, claims settled
  2. CHECKPOINT 1First tool calls from every team, however rough
  3. CHECKPOINT 2Everything on the staging host, status page populated
  4. DEMOOne install, one question, one handoff per product
  5. ENDKeep or fold per product, and what ships to the domain

Preparation

  • Read the repository README.md and this board. Twenty minutes.
  • Have GitLab access to the codeblocks group and Docker on your machine. If you do not, tell the organiser by PREREQ_DEADLINE.
  • Desk owners: your questions are below. Answers by ANSWERS_DEADLINE, so your product's team does not start blind.
  • Credentials go to the organiser privately. Never into the repository, never into a channel.

Stakeholder questions

Desk owners will not be in the room, so everything below has to be answered in writing beforehand. "We don't have this" is a valid answer and better than silence, because silence gets read as "ask again on the day". These do not wait for the dates.

A. Decisions that block everything

Henry · Michal
  1. Domain and brand. What hostname does the gateway live at, and what brand name do developers see? This fixes the certificate hostnames, the registry namespace, which a DNS record on that domain has to prove, the reference namespace, and the canonical URL for every fact page. Nothing can be published before this is answered, and every week it waits, the preview host earns citations we will have to walk away from.
  2. Dates and hours. Which workdays, how many, start and end times, and where the in-person part is.
  3. Who owns mcp.pelikan.sk, which redirects to a dead host, and can its DNS and TLS be fixed during the hackathon? If not, Pelikan flights stay labelled down and Pelikan deals go live through Deal Breaker instead.

B. Access and credentials

ops · owners of each system · sent privately
#SystemWhat we needWhy
4Deal Breakera read-only bearer token for the offers and external deals routeslastminute and Pelikan deals go live
5SmartBusa login scoped to reading offers; which project ids may be readSmartBus offer tool, read-only
6HotelHopsthe project identifier header and permission to call the price checkergroup hotels live, later
7Windmilla token for the suggested-flights jobPelikan flights search, later
8Work VPSPortainer access, a free loopback port, confirmation the proxy runs on the host networkdeploy
9GitLaba codeblocks/travel-gateway repository and a read deploy tokendeploy
10Maila Postmark server token and a sending addresskey signup without showing links on screen
11Open-Meteoapproval to buy the commercial plan, or a substitute sourcethe free tier is non-commercial only

C. Per desk

one block each: group hotels · golf · lounges · eSIM · travel watchdog · Turnago · Farenox · SOS Flights · flight compensation (APRA)
  1. Where does an enquiry go? WhatsApp number, email address, phone, or a web form URL. If a form, does it accept a ref query parameter?
  2. Who answers and when? Desk name, hours, typical reply time, languages.
  3. What must an enquiry contain before you can quote? List the fields in order of importance. This becomes the tool's schema.
  4. What should the tool say the product is, in two sentences, and when should an agent not send someone to you? Your words. We will not invent them.
  5. Which name and homepage should appear on the portal and in registries?
  6. Anything that must not happen. Second enquiries for the same party, quoting a price, promising availability, naming a supplier.
  7. Will you record the reference we put in each enquiry when the booking is made, and where? Without this the enquiry cannot be credited.

D. Product-specific

  1. Turnago: is "turnago toll" the partner booking tool at partner.turnago.com? Should the gateway prepare event-trip enquiries, or read partner allocations, which would need a login?
  2. Travel watchdog: what is it meant to watch: a fare on a route, a hotel price after booking, or both? Is there a backend, or is this a hand-off to HotelHops for now?
  3. eSIM and lounges: both are desks for now. Which desk answers, Premium klub, the Eurovea store, or someone else, and on which channel? Is a standalone product with its own checkout coming?
  4. Flight compensation (APRA): the form is apra.sk/formular/, rendered by script. Does it store a ref query parameter, or can a hidden field be added for it? Which fee wording must the tool show before sending someone there? Phone and email as fallback: confirm which to publish.
  5. SOS Flights: the site is script-only and shows no contact. What is the 24/7 channel, and may it be published in a tool description?
  6. Farenox: the desk appears UK-based with phone and chat. Is there an email for written enquiries, and which hours?
  7. EasyGroupFlights: may the desk add a reference field to the group booking record and copy it from incoming WhatsApp and email enquiries?
  8. Pelikan web: who owns the booking flow, and can it store a ref query parameter in a first-party cookie and write it to the booking? Estimate?

E. For Henry's team

  1. Which of your pages move to the new domain first, and who rewrites the install lines and FAQ to the typed tool names?
  2. The citation test: which six prompt families, and who runs the baseline before launch so there is a before number?
  3. /desk retirement: agreed to serve a "moved" tool for thirty days, then 410?

F. For developers joining from other teams

  1. Which stack are you comfortable in? The gateway is Python; the portal is Python and Jinja; the GEO pages are HTML. Nothing needs a build step.
  2. Do you have GitLab access to the codeblocks group and a machine with Docker? If not, who provisions it, and by when?

Open blanks

Only these are missing from the announcement. Everything else on this page is settled.

BlankWho decides
DATES · START · ENDMichal with Henry. Workdays only.
PLACE · CALL_LINKMichal
ORGANISER · CONTACTMichal
SLACK_CHANNELMichal
PREREQ_DEADLINE · ANSWERS_DEADLINETwo workdays before START
CHECKPOINT 1 · 2 · DEMODerived from START and END