Are US Gulf crude tankers arriving laden or in ballast?
In seven runs on 1 November 2026, Claude looked for the largest US Gulf crude tankers at and due at Corpus Christi and Galveston. None of the seven found a VLCC (very large crude carrier, about 200,000 deadweight tonnes or more) or a Suezmax (about 120,000 to 200,000). The largest tankers in every run were Aframax-size, between about 103,000 and 116,000 dwt. Every run listed the same five of them, all declaring Corpus Christi for the coming week, and none declared Galveston. The three judgement runs read most of that group as arriving in ballast.
Data from live runs on 1 November 2026. Series: Hub: What can an AI agent answer from an AIS API via an MCP server? · Part 1: Are US Gulf crude tankers arriving laden or in ballast? · Part 2: How long are ships waiting at Durban anchorage? · Part 3: Has the Rotterdam port backlog cleared after Storm Austen?
Deadweight (dwt) is the weight of cargo, fuel and stores a ship can carry. A ship in ballast is empty of cargo and carries seawater for stability. The laden and ballast readings below are the agent's inferences from AIS fields that crews enter by hand. This is not trading or chartering advice.
Two prompts, seven runs
Each run was one non-interactive call to Claude Code in an empty directory. Its only tools were the 19 from vesselapi-mcp, the MCP server for the VesselAPI AIS API. They return live positions, vessel records, port calls and the ships declaring a port as their destination. User settings and Claude Code's built-in tools were switched off. The hub has the setup and the full method.
Sonnet 5.5 ran the first prompt three times and the second twice. Haiku 5.5 ran each once. The first prompt asks for a count:
Tanker availability is tight right now. Which large crude tankers (VLCCs and Suezmaxes) are at or off Corpus Christi and Galveston at the moment, are they loading or waiting, and which others have ETAs there in the next week?
The second asks for a judgement:
Tanker availability is tight right now. Of the large crude tankers at, off, or due at Corpus Christi and Galveston in the next week, which are arriving in ballast to load and which already look loaded? Say how sure you are for each.
All seven ran one after another in the early evening UTC, within about eight minutes. The four count runs took 48 to 53 seconds each and the three judgement runs 83 to 115 seconds. Each made between 26 and 44 API requests, well under the cap of 80, and each count below is what that one run found. In Claude Code, with the key in your environment, one command adds the server:
claude mcp add vesselapi --scope user -e VESSELAPI_API_KEY="$VESSELAPI_API_KEY" -- npx -y vesselapi-mcp
Tool calls behind a US Gulf crude tanker count
No run was told which tools to use. All seven opened the same way. They looked up both ports, then asked each port for its inbound list with an ETA window running to 8 November. After that the order split. Two Sonnet count runs searched the waters around each port first and looked up ships second. The other three Sonnet runs looked up the ships on the inbound lists before searching. Both Haiku runs also read each port's recent arrivals and departures.
| Tool | What it returned | Why the agent needed it |
|---|---|---|
get_port_inbound for USCRP and USGLS |
Ships whose own destination is the port, with declared ETA and current draught | The "due in the next week" half |
get_vessels_in_area or get_vessels_in_radius |
Position reports from the last 2 hours with name, IMO, speed and navigational status | The "at or off the port" half |
get_vessel or get_vessel_position per IMO number |
Type, deadweight, length, and the ship's average and deepest draught over the last 31 days | Size class, and a baseline for the draught |
get_port_events_by_vessel or get_vessel_last_port_event |
Recent arrivals and departures for one ship | Where the ship had been |
The area searches return positions only, so size and type come from the vessel record, one call per hull. Most of each run went on these lookups. The Haiku judgement run made 44 requests, and 32 of them looked up particular ships.
Both Haiku runs had requests rejected, one for a radius over the 100 km maximum and one for a time window longer than 4 hours. The first was corrected on the next call and the second on the second retry.
Five Aframax-size tankers due at Corpus Christi
An Aframax is a crude tanker of roughly 80,000 to 120,000 dwt. LR2 (Long Range 2) is the product-tanker class of similar size, and several runs wrote "Aframax/LR2" for the group. The five inbound tankers ranged from about 112,000 to 116,000 dwt.
In six of the runs Galveston's inbound list held four ships: a cruise ship, an LPG carrier and two small tankers. No run found a large tanker due there. Several runs did see Aframax-size tankers moving through the Galveston and Houston approaches, and none of them declared Galveston.
The runs disagreed on how many Aframax-size tankers they found in total, from 6 to 10. Most of the difference came from the area searches and how far each paged; one ship came only from Haiku's earlier ETA window, described below. Thirteen distinct Aframax-size hulls appeared across the seven, from 237 to 256 m long.
Stationary tankers off Corpus Christi and the second page
Two Aframax-size tankers lay moored in the Corpus Christi area during the runs. Neither was on the inbound list. Both still declared Corpus Christi, but with ETAs that had already passed, and get_port_inbound starts its window at the current time unless told otherwise. A run could find these two only through a position search.
Four runs found both. Two Sonnet runs found one each, and the Haiku judgement run found neither. The Haiku run instead set the start of its ETA window to midnight UTC. Its Corpus Christi list held 16 entries against 12 in the other six runs. One of the four extra entries was a third Aframax-size tanker lying offshore with an older position report. That report was too old for a 2-hour position search, so no other run saw it. Haiku's earlier window also added two entries at Galveston: a cruise ship and a tug.
Paging decided the rest. Every page held 50 position reports, and every one came back with a token for a next page. The Corpus Christi first pages held 28 to 33 distinct ships, since several ships reported more than once. The Galveston pages held 44 to 49. Most were tugs and harbour craft.
Four Sonnet runs read one extra page at Corpus Christi and two of them one at Galveston as well. Neither Haiku run read a second page. No run read every page. In one Sonnet judgement run the second stationary tanker appeared only on page two. Paging did not help one Sonnet count run. It read a second page at both ports and still missed one of the two, which was on neither page it fetched.
Reading laden or ballast from a crude tanker's draught
No AIS field says "loaded" or "in ballast", and the Haiku judgement run said so in its method note:
AIS doesn't report cargo, so "loaded" and "ballast" are inferred from self-reported draught, position and port history.
Each ship sends a draught entered by its crew. The vessel record holds the deepest draught the ship reported over the last 31 days. The agent compared the two. Most of the five inbound tankers reported about 8 m, roughly 56 to 68% of their 31-day maximum. Haiku put a full load on these hulls at about 12 to 14 m.
All three judgement runs read most of the group as in ballast or likely in ballast, and none read it as laden. One Sonnet run opened its answer with "Nothing large is arriving loaded." Haiku opened with "None of the large crude-class tankers I could find look loaded."
The judgement runs also looked up recent port calls for the large tankers: six or seven ships in two of the runs and two in the third. They weighed a ship returning from a discharge port as more likely light.
Confidence was where the runs parted. One Sonnet run gave labels from medium-high to low. The other gave percentages, about 70 to 75% ballast for most of the group. Haiku ranged from medium-high to low and marked down readings that rested on old position reports. The Sonnet runs noted the age of those reports without always lowering their confidence.
Across the three runs, three or four of the five inbound tankers read as likely in ballast and one stayed undecided. The runs differed on which other ships belonged in the count, since each had found a different set of stationary and offshore tankers.
The method has a blind spot. Where a ship's reported draught equals its 31-day average and maximum, the comparison has nothing to work with. A ship that has reported the same light draught for a month shows that figure as its maximum.
The count prompt did not ask for a draught reading. One Sonnet count run offered one anyway. It took draughts of about 8 to 11 m on the inbound list as a sign that several ships were arriving part-laden. Its answer did not compare those draughts with the 31-day maximum. The judgement runs did, and none of them read the group as laden.
Limits the agent stated without being asked
Every run listed limits on its own answer. Across the seven:
- AIS has no cargo or loading flag. Zero speed fits waiting and loading alike. In Haiku's words, "I can't tell whether [the two moored tankers] are loading or waiting from AIS alone."
- "Draught is crew-entered. It is not measured, and it is often stale or wrong." (Sonnet)
- "ETAs are what each vessel declares, and they often change." (Sonnet)
- The inbound list catches only ships that declare the port. A ship declaring Houston, a terminal or "FOR ORDERS" (no destination fixed yet) will not appear.
- Three Sonnet count runs added that large crude carriers often load offshore, at deepwater terminals or by lightering, outside the area they had searched. Lightering is the transfer of crude between a large tanker and smaller ones at sea.
- Five runs said they had not read every page of the position search and could have missed ships.
For a fuller answer, a prompt can ask the agent to search positions near the port as well as the inbound list, since declared ETAs can be weeks out of date. It can also ask it to read every page of each position search and look up recent port calls for each large tanker. Several runs offered to widen the search to Houston and the offshore lightering areas.
Series: Hub: What can an AI agent answer from an AIS API via an MCP server? · Part 1: Are US Gulf crude tankers arriving laden or in ballast? · Part 2: How long are ships waiting at Durban anchorage? · Part 3: Has the Rotterdam port backlog cleared after Storm Austen?
This page shows how an AI agent reasons from AIS data in a handful of runs on one day. It is not investment, trading or chartering advice, nor a market assessment. The data is as of 1 November 2026 and is given without warranty of accuracy or completeness.
Claude, Claude Code, Sonnet, Haiku and Anthropic are trademarks of Anthropic PBC. Other names are trademarks of their respective owners.