trimtab-ais
Machine-readable ship & port truth for AI agents — free MCP server over continuously own-recorded AIS at 8 US container gateways. Method published, no key, no signup.
Documentation
Trimtab US Trade Ledger — MCP server for US tariff & trade data
What US importers actually paid at the border — free, no API key, no signup.
Official duty receipts by product and origin, monthly since 2017, reconciled monthly against the
US Treasury's own customs receipts (both books: assessed at entry and kept after refunds — May and
June 2026 ran negative). Plus the current HTS rulebook with Federal Register citations, CBP
classification rulings, HS code search, US containerised imports by origin × commodity × gateway
(revision-tracked), and a frozen 2026 archive of own-recorded AIS ship movements. Every response
carries its method, its provenance, and its limits, so your agent can verify instead of trust.
Published by **Trimtabist** — the independent observatory for US trade.
20 pre-registered ruled studies (nulls published), a public corrections log, and the whole
collection pipeline open at trimtab-pipeline.
Endpoint (streamable HTTP, no auth):
https://trimtabist.com/mcpOfficial MCP registry: `com.trimtabist/us-tariff-ledger` · 13 tools + an archive router ·
docs for agents: trimtabist.com/llms.txt ·
connect guides: trimtabist.com/connect
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/mcpClaude 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-aisimport { 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" 48Or 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
| Tool | Answers |
|---|---|
| `gateway_conditions` | What's happening at a gateway now — vessels at berth and at anchor, classified (container / bulk-general / tanker / service), with container terminals named |
| `vessel_status` | Where a vessel is, what it's physically doing, which terminal, since when, declared destination |
| `has_vessel_berthed` | Whether a vessel berthed within a lookback window — timestamp, terminal, anchorage wait if it queued |
| `recent_events` | The event stream: arrivals, anchorings, berthings, departures, and semantic notes |
US Trade Ledger series tools (Census-recorded port trade + cross-checks):
| Tool | Answers |
|---|---|
| `list_instruments` | Every instrument and data series, with provenance grade and trust state — start here |
| `describe_series` | What one series measures: unit, source, method, citation, coverage |
| `query_series` | The data: monthly US port trade by country & commodity, vessel events, ETA reliability |
| `check_agreement` | Census customs records vs live AIS observation — where independent instruments disagree, one is wrong |
| `search_series` | Find 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.
Frequently asked questions
What is trimtab-ais?
trimtab-ais is Machine-readable ship & port truth for AI agents — free MCP server over continuously own-recorded AIS at 8 US container gateways. Method published, no key, no signup.
How do I install trimtab-ais?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is trimtab-ais open source?
Yes — it is hosted on GitHub at https://github.com/mrsingh86/trimtab-ais.
Related MCP tools
Official remote MCP server for Atlassian. Securely connect Jira, Confluence, Jira Service Management, Bitbucket, and Compass to Claude, ChatGPT, Cursor, VS Code, and other AI tools using OAuth 2.1 or API tokens.
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
CTTF: MCP integration between Cursor and Figma, allowing Cursor Agentic AI to communicate with Figma for reading designs and modifying them programmatically.
The missing open-source Kubernetes UI with a built-in MCP server for AI agents. See what's broken, why, and what changed. Issues, Topology, event timeline, Helm, GitOps, live service traffic, and cluster audits - all in one Go binary.
👾 Open Computer Use – Open-Source Alternative to Codex Computer Use
🔌 Plug-and-play library to enable agents to call MCP and UTCP tools via code execution.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP