Portage

Setup & documentation

Portage prices a trip from your doorstep rather than from an airport. It answers the one question no travel site will: which airport should I actually fly from?

Why the answer needs you. The cheapest fare is not the cheapest trip. A $200 saving at an airport two hours away is not a saving once the drive, the parking, the border and the exchange rate are in it — and nobody can work that out without knowing what your car costs per kilometre and what an hour of your time is worth. No booking form has ever asked. A conversation can.

Connecting

Portage is a remote MCP server over Streamable HTTP with OAuth 2.1 and PKCE. It works in any client that speaks MCP.

  1. Open your assistant's connector settings in a desktop browser.
  2. Choose to add a custom connector.
  3. Name it Portage.
  4. Server URL: https://flyportage.com/mcp
  5. Click connect. A consent page opens asking for your passphrase; enter it and authorise.

Once added on a computer it appears on your phone automatically. There is nothing to install.

Authentication

OAuth 2.1 authorization code flow with PKCE (S256 only). Dynamic client registration is supported at /oauth/register, and discovery is published at /.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource. Access tokens are signed rather than stored.

The lingo

“Portage” is a verb. It means to carry — and in ChatGPT, Claude, or any assistant with the connector added, it is the word that tells the AI you are talking to Portage and nobody else. Put it in front of the trip and everything after it goes to the engine:

Portage Nashville, the 28th to the 30th, nonstop, four of us.
Portage it — same trip, but leaving from Chicago.
Portage what am I entitled to as a veteran?

In ChatGPT you can also write @Portage. Either way the assistant uses the real tools and real numbers — never its own guesses — and if you just talk about a trip naturally without the word, a connected assistant will still recognise it. The lingo is the guarantee, not the only door.

One decision at a time

Portage staggers the trip, on purpose. First where are you starting from — which is not always where you live. Then flights: the airports you can actually reach, compared door to door, and you pick one. Checkpoint. Then wheels. Checkpoint. Then where you sleep. It will not dump flights, cars and hotels on you in one wall, because a wall of everything decides nothing. (Cars and hotels are not priced by Portage yet — the assistant can help by hand and will say plainly when a number is its own rather than Portage’s.)

Where your results land

Everything you price in a conversation is kept. Sign in at flyportage.com and Your Trips holds every search as a card — each airport’s option side by side, cheapest first, with the date it was priced. From there you can compare airports line by line, arm a watch, or re-price. Fired watches land at the top of the same page. Say it in the assistant; nudge it from the site; same engine, same memory.

What to say to it

Say the trip the way you would say it out loud. These all work:

Where should I fly from to get to Nashville on 1 October, back on the 12th?
Is it worth driving to Buffalo for this, or should I just fly out of Toronto?
We are going somewhere warm for a week in December, two couples, paying separately.
I would pay eighty bucks not to take a redeye.
Tell me if this drops before I book.

That fourth one is worth pointing out: it is a rate, not a filter. Portage prices the redeye eighty dollars higher and lets it lose fairly, rather than hiding it. Only a conversation can take an input like that.

The first four questions

On first use Portage asks four things and will not price anything until it has them: where you leave from, what your car costs per kilometre, what an hour of your time is worth, and which airports you would actually drive to. Each one can say what it buys. Nothing is assumed on your behalf.

The tools

ToolWhat it doesWrites?
find_flightsThe product. Ranked landed costs from every airport you can reach, with the comparable an ordinary search would have given you.writes
price_tripOne origin, one destination, one pair of dates, itemised.read only
worth_itIs the far airport worth it, given what this one costs.read only
plan_tripTurns a described trip into a scenario — who is coming, who pays separately, what matters most.writes
booking_planThe exact set of bookings a trip needs, in order, and what is unprotected between them.read only
itineraryThe finished plan, with what was found beside what it cost.read only
watchKeep watching after the conversation ends; also list, check and cancel.writes / cancels
heads_upWhat is worth knowing before you commit — border hours, closures, timing.read only
what_do_you_holdMemberships and entitlements, deduplicated into one packing list.read only
savings_receiptWhat was saved, where, and what we charged — both, always.read only
my_profile / set_profileYour rates and currency.read / writes
my_catchment / set_catchmentYour airports and what each costs to reach.read / writes
rememberA constraint said once and applied from then on.writes
first_runThe four opening questions and what is still unknown.writes
field_reportWhat a border wait or a car park was actually like.writes
exportEverything you have, as JSON or CSV, in one call.read only
search / fetchThe read-only discovery pair ChatGPT’s ordinary chats use: search what is stored, fetch one record. They read; they never price.read only

Every tool carries a safety annotation. Nothing deletes anything except cancelling a watch you created.

What it refuses to do

These are deliberate, and they are the reason the answers can be trusted.

Support

Email laszlobrianczako@gmail.com. Source at github.com/lczako-eng/Portage.