PortCall

Agents can't pick up a phone. We give them one.

84% of freight forwarders still get quotes by phone and email. With PortCall, a one-person import team gets quotes from all of its truckers in about two minutes without making a call, and the agent books and pays before late fees hit.

  1. 1Ask
  2. 2Call
  3. 3Rank
  4. 4Book
Replay of a recorded run with 3 carriers, sped up

Your agent asks PortCall for drayage quotes.

AI
Your agent, over MCP
  1. Marshgrass Drayage
    Waiting to call
    $ –
  2. Ironclad Intermodal
    Waiting to call
    $ –
  3. Sweetgrass Transport
    Waiting to call
    $ –

Who it's for

The import team

Every quote in about two minutes, without a phone call.

PortCall calls every trucker that serves the lane at the same time, whether that is two or eight, ranks them by what each will really cost, and books before late fees start.

Their AI agent

A phone line to the freight world.

Five MCP tools: find containers, get quotes, book inside a spending limit, and track the box to the door.

The trucker

Booked loads with nothing new to learn.

Answer the phone like always, tap Accept in the tender email, and get paid through Stripe on delivery.

One quote run, start to finish

Timed on the demo container with recorded dispatcher answers; extraction, ranking, booking and payment ran for real. The freight world's paperwork still happens, it just happens without anyone dialing.

  1. 0:00
    Claude asks for quotes
    An agent calls request_quotes over MCP. A person can press the button, or pg_cron starts it when a box is three days out.
  2. 0:04
    Every carrier's phone rings at once
    PortCall calls each carrier that serves the lane in parallel, three in this demo, and says it is an AI in the first sentence.
  3. 0:38
    Numbers land as they are spoken
    Linehaul, fuel, chassis, extra fees and pickup date are pulled from each conversation and linked to the exact words.
  4. 1:36
    Ranked on what it will really cost
    Ironclad is $252 cheaper on paper, but its pickup lands two days after the last free day. Marshgrass wins at $847.
  5. 1:37
    Booked inside the spending limit
    Stripe holds the card, a tender email goes to the carrier, and delivery releases the payment.
PHGU 482913-7
Wando Welch Terminal to Fairburn, GA
Test run
What each quote would really cost
  1. Marshgrass Drayage
    Booked
    $847

    Picks up on time

  2. Sweetgrass Transport
    $931.80

    Picks up on time, adds a $75 pre-pull fee

  3. Ironclad Intermodal
    $945

    Quoted $595, but picks up 2 days after the last free day: +$350 in port late fees

Quoted price Port late fees (est. demurrage, $175/day)
Ironclad looked $252 cheaper, but it picks up after the last free day. PortCall booked Marshgrass for $847, $98 less than Ironclad would really have cost, and no one on your team made a call.

Built for agents

PortCall is an MCP server. Point Claude at it and say what you need in plain words. It lists containers, starts the calls, polls the quotes, books inside your spending limit and reads the timeline back.

POST /api/mcp   Authorization: Bearer <importer key>

list_containers({ status? })
request_quotes({ container_id })
get_quotes({ container_id })
book_quote({ quote_id })
get_container_status({ container_id })

Over the importer's limit, book_quote answers “needs human approval” and a person decides.

Connect your agent

“Our container that landed in Charleston this morning needs to get to our Atlanta DC by Thursday. Get quotes, pick the cheapest reliable option, and book it if it's under our limit.”

Running on Supabase

Realtime
Every transcript line, stamped field, ranking and payment status streams to the Call Wall as Postgres changes.
Postgres + RLS
Ten tables, row level security on all of them. Importers only ever see their own boxes, calls and money.
Auth
Cookie sessions for the console; the tender page runs on a one-time token; agents use a per-importer MCP key.
pg_cron + pg_net
A cron job inside the database dials carriers on its own when a container gets close to arrival.

Every call adds rate and availability data to the database. As voice models get better, agents negotiate harder and reach more of the carriers that only answer the phone.