Trimtab AIS

Trimtab AIS

Provides real-time, machine-readable ship and port conditions for major US container gateways using AIS data, allowing AI agents to query vessel status, berthing events, and gateway conditions without API keys or signup.

Category
Visit Server

README

Trimtab AIS

Machine-readable ship & port truth for AI agents. Who is at berth, who is at anchor, at which terminal, since when — at eight US container gateways, from AIS recorded continuously by this project. Free, no key, no signup. Every response carries its method, its provenance, and its limits, so your agent can verify instead of trust.

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

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

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 instrument no. 001 in a series measuring what trade data actually says versus what actually happens.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured