Pelikán group · Codeblocks · Henry's team

Tripdesk 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.

WhenThursday 1 October 2026
one day, 09:00 to 17:30
WherePelikan office and home office
huddle in #mcp-hackathon-q3-2026
Teams1–2 people per product, claimed in the Slack thread
Ends withDemos, then keep or fold per product
Runs attripdesk.help (live)

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. It searches and quotes, and sends an enquiry to a desk once the traveller confirms it. Nothing books or pays. 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. Seven rows are taken. Four desks are free: lounges, eSIM, travel watchdog and Farenox, each half-day work. Row 13 is different: it lists the gateway in Claude's connector directory, where people using claude.ai can find it, and separate connectors for products that stand on their own brand. Reply in the thread with a row number and your name.

Try it now. The dev deployment is live. No key needed:

claude mcp add --transport http tripdesk https://mcp.tripdesk.help/mcp

Then ask it for a group quote for twenty-two people from Bratislava to Paris. You should get a WhatsApp handoff with a reference in the message. Portal, tool reference and keys: tripdesk.help · quickstart · tools · status · get a key · receipts

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 13 rows · 7 claimed · 5 free · S < ½ day · M ≈ 1 day
#ProductTeamModeBackendHandoffSizeNeeds before start
01EasyGroupFlightsalready shippingdoneone product: two tools forwarded to mcp.easygroupflights.com, plus prepare and send. Send files through the site's own group-quote request after the traveller confirms; test mode until the desk agreessent enquiry, or WhatsApp deskSdesk's yes to go live
02LastminutePatrik + Michal N.liveDeal Breaker /api/v1/offers, /offers/{id}, /external/deals · public mock for devweb deep link per departureMDeal Breaker read-only token
03SmartBus offer toolMartin K. + David Ch.livealready an MCP server · proxy it like EGF, republish get_offer + lookups, withhold create/select/resendnone (info)Sconnector access · scope is project 1 "Public"
04Flight compensationLiborliveEC261 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 FlightsPatrik + Michal N.deskadvice tool exists · sosflights.help 24/7 deskWhatsApp / phoneShotline number, hours
06Group hotelsMartin K. + David Ch.desknone yet · HotelHops price-checker laterWhatsApp / emailSdesk contact · fields
07GolfDenisadeskGabriel TOUR deskWhatsApp / emailScontact · consent to list
08LoungesfreedeskPelikán Premium desk · Pelikán Lounge storeWhatsApp / emailSdesk contact · is Premium the product
09eSIMfreedeskno provider API todayWhatsApp / emailSdesk contact · standalone product coming?
10Travel watchdogfreedesknone yet · HotelHops ingest laterWhatsApp / emailSwhat it watches · desk contact
11TurnagoDenisadeskesports travel desk · partner tool is login-onlyWhatsApp / emailSdesk contact · confirm "toll" = tool
12Farenoxfreedeskbusiness-class desk, UKemail / phoneSdesk email · hours
13Claude connectorsfreelistinglist the whole gateway in Claude's connector directory, plus separate connectors for products with their own brand (EasyGroupFlights, SOS Flights, flight compensation, Turnago, Farenox) · authless, no OAuth · reword descriptions that instruct the model · privacy policy—Mproduct name, listing slugs are permanent · a paid Claude account · brand domains for per-product hosts
live calls a backend desk enquiry to a person done already shipping listing distribution, not a product

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

Typed, with a reference on every quote. Nothing books or pays. A tool that sends something is marked as a write and sends only what the traveller confirmed.

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. The live one.

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

One day. Thursday 1 October, 09:00 to 17:30. Proposed times, confirm them in the thread.

  1. 09:00Kick-off in the huddle: the gateway in ten minutes, the board, claims confirmed
  2. 12:00First tool calls from every team, however rough
  3. 15:30Everything on the staging host, status page populated
  4. 16:30Demos: one install, one question, one handoff per product
  5. 17:30Keep or fold per product, and what ships to the domain

Preparation

  • Install the gateway and make one call before you arrive: claude mcp add --transport http tripdesk https://mcp.tripdesk.help/mcp. Ten minutes, and you will know what a handoff looks like.
  • 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 Michal by Tuesday 29 September.
  • Desk owners: your questions are below. Answers by Tuesday 29 September, so your product's team does not start blind. This is the tightest thing on the page.
  • 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: enquiries sent by agents arrive through the site's own group-quote request, with the Tripdesk reference in the note. May we switch sending from test mode to live, and at what hourly cap? For WhatsApp enquiries: may the desk copy the reference into the group booking record?
  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?

Still open

Date, place and channel are fixed. These are the last unknowns, and the first two are the ones that bite.

OpenWhoBy when
Desk answers for the four free rows and the claimed desksdesk ownersTuesday 29 September
Deal Breaker read-only token, without it lastminute cannot startopsTuesday 29 September
Four free rows: lounges, eSIM, travel watchdog, Farenoxwhoever has not pickedkick-off at the latest