# Imf Portwatch (npm · @pipeworx/mcp-imf-portwatch)

IMF PortWatch MCP — global maritime trade & chokepoint signals (free, no auth)

- Trust score: 82/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `gateway.pipeworx.io`: 77/100, [markdown](https://verifymcp.io/servers/pipeworx-io-imf-portwatch/imf-portwatch-mcp.md), [page](https://verifymcp.io/servers/pipeworx-io-imf-portwatch/imf-portwatch-mcp)
- npm · `@pipeworx/mcp-imf-portwatch`: 82/100 (this document), [markdown](https://verifymcp.io/servers/pipeworx-io-imf-portwatch/pipeworx-mcp-imf-portwatch.md), [page](https://verifymcp.io/servers/pipeworx-io-imf-portwatch/pipeworx-mcp-imf-portwatch)

## Channel facts

- Registry: `npm`
- Package: `@pipeworx/mcp-imf-portwatch`
- Version: `0.2.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-imf-portwatch).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 3 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1632 tokens (~272/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Imf Portwatch MCP server?

Imf Portwatch runs locally as an npm package, launched with npx -y @pipeworx/mcp-imf-portwatch. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add pipeworx-io-imf-portwatch -- npx -y @pipeworx/mcp-imf-portwatch
```

### Cursor

```json
{
  "mcpServers": {
    "pipeworx-io-imf-portwatch": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-imf-portwatch"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pipeworx-io-imf-portwatch": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-imf-portwatch"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add pipeworx-io-imf-portwatch -- npx -y @pipeworx/mcp-imf-portwatch
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pipeworx-io-imf-portwatch": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@pipeworx/mcp-imf-portwatch"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pipeworx-io-imf-portwatch --command npx --arg -y --arg @pipeworx/mcp-imf-portwatch
```

### Hermes

```yaml
mcp_servers:
  pipeworx-io-imf-portwatch:
    command: "npx"
    args: ["-y", "@pipeworx/mcp-imf-portwatch"]
```

### Netclaw

```json
{
  "McpServers": {
    "pipeworx-io-imf-portwatch": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@pipeworx/mcp-imf-portwatch"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add pipeworx-io-imf-portwatch -t stdio -c npx -a -y @pipeworx/mcp-imf-portwatch
```

### Other

```json
{
  "mcpServers": {
    "pipeworx-io-imf-portwatch": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-imf-portwatch"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 82, +1)

- [functional regression] Security disclosure: fail → unverified

### 2026-11-03 (score 81, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-11-02 (score 66, −14)

- [security regression] Malware scan: pass → unverified
- [functional] Package version: 0.2.1 → 0.2.2

### 2026-10-31 (score 80, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-30 (score 64, −15)

- [security regression] Malware scan: pass → unverified
- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 0.2.0 → 0.2.1

### 2026-10-29 (score 79)

First indexed and scored.

## MCP tools (6)

### `chokepoints_list` (~146 tokens)

List the 8 major maritime chokepoints PortWatch tracks (Suez, Panama, Bosphorus, Gibraltar, Dover, Malacca, Hormuz, Bab-el-Mandeb) with annual vessel counts, traffic mix by cargo type (container / dry bulk / tanker / RoRo / general), and top industries by volume. Use to discover what a chokepoint normally carries — for live daily throughput call chokepoint_daily_traffic. The response carries served_from: "primary" or "fallback"; when IMF's reference layer is down it is built from the daily transit layer and omits annual totals, lat/lon and top industries (see missing_vs_primary).

### `chokepoint_daily_traffic` (~195 tokens)

Daily vessel counts and aggregate capacity (deadweight tonnage) transiting a specific chokepoint. Returns time series ordered most-recent-first, with per-cargo-type breakdown (container / dry bulk / general cargo / RoRo / tanker). Use for "is Suez traffic back to normal after the Houthi attacks", "Hormuz throughput vs 30d average", or any bet predicated on a chokepoint disruption persisting. Accepts friendly names (suez / panama / hormuz / bab-el-mandeb / etc.) or PortWatch portid (chokepoint1..8).

Input parameters:

- `chokepoint` (string, required): Friendly name (e.g. "Hormuz", "Suez Canal") or portid ("chokepoint7")
- `days` (number): Lookback window in days (default 30, max 365). Data is daily.

### `port_search` (~157 tokens)

Search the PortWatch port database (1,500+ ports globally) by name, country, or ISO3. Returns matching ports with country, continent, latitude/longitude, annual vessel counts by cargo type, top industries, and the port's share of the country's maritime imports/exports. Useful for identifying which ports would be affected by a country-level disruption, or finding the LOCODE / portid for a named port.

Input parameters:

- `country` (string): Country filter — full name ("Netherlands") or ISO3 ("NLD")
- `limit` (number): Max results (default 20, max 100)
- `query` (string): Free-text portname match (e.g. "Rotterdam", "Houston", "Singapore")

### `recent_disruptions` (~173 tokens)

Port-affecting disruption events tracked by PortWatch — tropical cyclones, floods, earthquakes, conflict events — with start/end dates, alert level (GREEN/ORANGE/RED), severity, affected port count, and impacted population. Filter by country, alert level, or year. Use for "what disrupted shipping in the last month", "which port closures hit our supply chain", or to validate a bet on whether a current disruption is escalating.

Input parameters:

- `alert_level` (string): RED | ORANGE | GREEN — minimum alert level to include
- `country` (string): Filter to a single country name (e.g. "Mozambique")
- `limit` (number): Max events to return (default 25, max 100)
- `year` (number): Filter to events from this calendar year

### `chokepoint_status` (~477 tokens)

Chokepoint traffic status for one maritime chokepoint: the most recent settled day of vessel transits scored against a trailing baseline, so an agent can tell at a glance whether shipping through that strait or canal is above, below, or at its normal run rate. Answers "is shipping through the Strait of Hormuz down", "Suez Canal transit volume this week", "Panama Canal ship counts vs normal", "maritime chokepoint disruption check", "tanker traffic anomaly at Bab el-Mandeb". Returns the latest day (total vessels, per-vessel-type counts, aggregate capacity in deadweight tonnage), data_lag_days plus a freshness_note, the baseline mean with delta / percent deviation / direction (above, below, normal), 7-day and 30-day means, the same percent deviation per vessel type (tanker, container, dry_bulk, general_cargo, roro — a tanker-only drop at Hormuz is the tradeable signal), and the min and max daily total in the window with their dates. Source is IMF PortWatch daily AIS-derived transit counts, published with a multi-day lag, so the "latest" day is the most recent settled day rather than a live count. Accepts forgiving names — "Hormuz", "Strait of Hormuz", "hormuz", "Suez", "Panama", "Bab el-Mandeb", "Malacca", "Taiwan", "Bosphorus", "Gibraltar", "Dover" — or a PortWatch portid like "chokepoint6". Examples: chokepoint_status({chokepoint: "Hormuz"}); chokepoint_status({chokepoint: "Suez Canal", baseline_days: 30}); chokepoint_status({chokepoint: "Panama"}).

Input parameters:

- `baseline_days` (number): Length of the trailing baseline window in days, measured backward from the day before the latest settled day (default 90, min 7, max 364).
- `chokepoint` (string, required): Chokepoint name, alias, or portid — e.g. "Hormuz", "Strait of Hormuz", "Suez Canal", "Bab el-Mandeb", "chokepoint6"

### `chokepoint_compare` (~428 tokens)

Compare chokepoint traffic status across 2 to 6 maritime chokepoints side by side and rank them by how far each one has deviated from its own trailing baseline, so an agent can spot which strait or canal is the anomalous one. Answers "which maritime chokepoint is disrupted right now", "Suez Canal transit volume vs Bab el-Mandeb", "compare Panama Canal ship counts to Hormuz", "tanker traffic anomaly across chokepoints". For each chokepoint returns the latest settled day and its total, the baseline mean over the window, the delta, the percent deviation, the direction (above, below, normal), and the per-vessel-type percent deviation; results are sorted with the largest absolute deviation first. Reports data_lag_days and a freshness_note for the whole comparison. Source is IMF PortWatch daily AIS-derived transit counts, published with a multi-day lag, so every "latest" figure is the most recent settled day rather than a live count. Names are matched forgivingly ("Hormuz", "Strait of Hormuz", "Suez", "Panama", "Bab el-Mandeb", "Malacca", "Taiwan", "Bosphorus", "Gibraltar", "Dover") or accept a portid. Examples: chokepoint_compare({chokepoints: ["Hormuz", "Suez", "Bab el-Mandeb"]}); chokepoint_compare({chokepoints: ["Suez", "Cape of Good Hope"], days: 90}); chokepoint_compare({chokepoints: ["Panama", "Suez", "Malacca", "Hormuz"], days: 14}).

Input parameters:

- `chokepoints` (array, required): Two to six chokepoint names, aliases, or portids — e.g. ["Hormuz", "Suez", "Bab el-Mandeb"]
- `days` (number): Length of the trailing baseline window in days for every chokepoint (default 30, min 7, max 364).

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/pipeworx-io-imf-portwatch/pipeworx-mcp-imf-portwatch#diagnostics

## Score history

- 2026-11-05: 82
- 2026-11-04: 82
- 2026-11-03: 81
- 2026-11-02: 66
- 2026-11-01: 80
- 2026-10-31: 80
- 2026-10-30: 64
- 2026-10-29: 79

## Common questions

### What is the Imf Portwatch MCP server?

Imf Portwatch is an MCP server listed in the public MCP registry as io.github.pipeworx-io/imf-portwatch. IMF PortWatch MCP, global maritime trade & chokepoint signals (free, no auth). This page covers its npm package (@pipeworx/mcp-imf-portwatch).

### Is the Imf Portwatch MCP server safe to use?

Imf Portwatch scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Imf Portwatch MCP server expose?

Imf Portwatch exposes 6 tools: chokepoints_list, chokepoint_daily_traffic, port_search, recent_disruptions, chokepoint_status, chokepoint_compare. Their descriptions and schemas cost roughly 1,576 tokens of context every time the server is loaded.

### Is the Imf Portwatch MCP server still maintained?

Imf Portwatch is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Imf Portwatch MCP server under?

Imf Portwatch declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

### What did VerifyMCP test on the Imf Portwatch MCP server?

VerifyMCP ran 15 checks on Imf Portwatch, covering Malware scan, Known CVEs, Install scripts, Dependency health and 11 more. One item could not be completed, a gap on our side rather than a finding about Imf Portwatch: Security disclosure. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- npm package: https://www.npmjs.com/package/@pipeworx/mcp-imf-portwatch
- Socket report: https://socket.dev/npm/package/@pipeworx/mcp-imf-portwatch
- Repository: https://github.com/pipeworx-io/mcp-imf-portwatch
- Website: https://pipeworx.io/packs/imf-portwatch
- Changelog RSS feed: https://verifymcp.io/servers/pipeworx-io-imf-portwatch/pipeworx-mcp-imf-portwatch.xml
- Changelog JSON feed: https://verifymcp.io/servers/pipeworx-io-imf-portwatch/pipeworx-mcp-imf-portwatch/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/pipeworx-io-imf-portwatch/pipeworx-mcp-imf-portwatch.json
- HTML version of this page: https://verifymcp.io/servers/pipeworx-io-imf-portwatch/pipeworx-mcp-imf-portwatch
