Back to Discover

trimtab-ais

connector

mrsingh86

Live ships at 8 US gateways + Census port trade by country & commodity. Free, no API key.

View on GitHub
0 starsSynced Aug 5, 2026

Install to Claude Code

/plugin marketplace add mrsingh86/trimtab-ais

README

Trimtab AIS — MCP server for shipping and US trade data

Live ship tracking + US port trade data for AI agents. Free, no API key, no signup. Who is at berth or at anchor right now at the eight major US container gateways — from AIS recorded continuously by this project — plus monthly US port-level trade (imports and exports by partner country and commodity, mirrored from the US Census Bureau, revision-aware). Every response carries its method, its provenance, and its limits, so your agent can verify instead of trust.

Part of the Trimtab US Trade Ledger — every US container gateway, every partner country, every month. Census-recorded, AIS-verified.

https://ais.trimtabist.com/mcp

Why

Carrier tracking data doesn't mean what it says. The same event label can mean "alongside the dock" for one carrier and "waiting at anchor" for another — a difference of hours to days, which is exactly the difference that decides a demurrage clock, a drayage appointment, or a customer promise. Meanwhile the carriers have been closing their doors to automated readers: several now block AI crawlers by name in robots.txt, and not one of the top ten runs a public developer portal.

So the software now making shipping decisions is arguing from paperwork it cannot check. This instrument offers the other half: physics. A ship is either moving or it isn't; it is either alongside a container terminal or it isn't. AIS says so, we record it continuously, and we publish what we see — including what we can't.

Add it to your agent

Claude Code:

claude mcp add --transport http trimtab-ais https://ais.trimtabist.com/mcp

Claude Desktop or any MCP client (HTTP transport):

{ "mcpServers": { "trimtab-ais": { "url": "https://ais.trimtabist.com/mcp" } } }

Clients that require stdio:

{ "mcpServers": { "trimtab-ais": { "command": "npx", "args": ["-y", "trimtab-ais"] } } }

Use it from code

npm i trimtab-ais
import { gatewayConditions, vesselStatus, hasVesselBerthed } from 'trimtab-ais';

const la = await gatewayConditions('us_la_longbeach');
// → { gateways: [{ at_berth: { by_class: { container: 8, tanker: 3, ... } },
//                  at_anchor: { ... }, container_terminals: { "LA Pier 400 (APM)": [...] } }],
//     as_of, method, coverage, source, attribution }

await vesselStatus('MSC DARLENE');
// → moored, container, 366 m, LA Terminal Island (Fenix/Everport), since 2026-07-26T14:47Z

await hasVesselBerthed('EVER MEGA', 72);
// → { berthed: true, events: [{ at, gateway, terminal, queue_wait_min }] }

Or from the shell, with no install:

npx trimtab-ais gateway us_savannah
npx trimtab-ais vessel "ONE ORPHEUS"
npx trimtab-ais berthed "MSC DARLENE" 48

Or straight over HTTPS — it is plain JSON-RPC:

curl -X POST https://ais.trimtabist.com/mcp -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"gateway_conditions","arguments":{"gateway":"us_ny_nj"}}}'

The tools

ToolAnswers
gateway_conditionsWhat's happening at a gateway now — vessels at berth and at anchor, classified (container / bulk-general / tanker / service), with container terminals named
vessel_statusWhere a vessel is, what it's physically doing, which terminal, since when, declared destination
has_vessel_berthedWhether a vessel berthed within a lookback window — timestamp, terminal, anchorage wait if it queued
recent_eventsThe event stream: arrivals, anchorings, berthings, departures, and semantic notes

US Trade Ledger series tools (Census-recorded port trade + cross-checks):

ToolAnswers
list_instrumentsEvery instrument and data series, with provenance grade and trust state — start here
describe_seriesWhat one series measures: unit, source, method, citation, coverage
query_seriesThe data: monthly US port trade by country & commodity, vessel events, ETA reliability
check_agreementCensus customs records vs live AIS observation — where independent instruments disagree, one is wrong
search_seriesFind series by plain language: "imports from india", "houston", "vessel arrivals"

Gateways: us_la_longbeach us_ny_nj us_savannah us_houston us_charleston us_norfolk us_oakland us_seattle_tacoma

What it covers — and what it doesn't

An instrument that hides its blind spots isn't an instrument.

  • Covered: the eight US container gateways above.
  • Recorded but thin: Chennai/Ennore/Kattupalli; JNPT, Mundra, Pipavav, Hazira, Vizhinjam, Colombo — terrestrial receivers are sparse there, so coverage is partial to absent. Published, not papered over.
  • Not covered: mid-ocean (terrestrial AIS only, no satellite), cargo (AIS sees ships, never boxes), rates, schedules, or anything a carrier declares rather than does.
  • Archive begins 26 July 2026, with one disclosed gap (2026-07-26 17:20Z → 2026-07-27 12:16Z) from the instrument's first day. Durations that began before recording started are lower bounds, and say so.

Read the method → — sources, state-machine thresholds, how container ships are distinguished from bulkers (AIS type codes can't), known limits, and the correction policy. Written so a stranger can reproduce the numbers, or prove them wrong.

Licence and citation

Data CC BY 4.0, code Apache 2.0. Use it commercially, build on it, redistribute it — with attribution:

Trimtab AIS (ais.trimtabist.com), built by Mrigank Singh

Not for regulatory or safety-of-life reliance; no warranty. If you find it wrong, tell me — corrections are published, with the size of the error quantified.


Built and maintained by Mrigank Singh, who moves containers for a living — co-founder & COO of Intoglo, an India→US freight forwarder. This is the live-observation layer of the Trimtab US Trade Ledger, which measures what trade data actually says versus what actually happens.

Rendered live from mrsingh86/trimtab-ais's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
streamable-http remoteHosted streamable-http endpointmcp-serverhttps://ais.trimtabist.com/mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.