Maritime Shipping Intelligence MCP Server
Maritime shipping intelligence for freight forwarders, marine insurers, and trade compliance teams who need vessel sanctions screening, port disruption forecasting, and trade route risk assessment without subscribing to expensive maritime data platforms. This MCP server aggregates 8 live data sources — OFAC, OpenSanctions, UN COMTRADE, NOAA, GDACS, OpenCorporates, GLEIF, and weather forecast services — into a single tool-calling interface that runs inside Claude, Cursor, or any MCP-compatible AI
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| vessel_fleet_risk_report | Full 8-source maritime risk: sanctions + weather + trade + counterparty + flag state. | $0.30 |
| vessel_sanctions_screening | OFAC SDN + OpenSanctions + corporate registry sanctions check. | $0.08 |
| port_disruption_forecast | NOAA + GDACS + weather forecast for port disruption risk. | $0.06 |
| trade_route_compliance | COMTRADE trade flow + sanctions route detection + HHI concentration. | $0.08 |
| flag_state_risk_check | Flags of convenience + high-risk jurisdiction detection. | $0.05 |
| shipping_counterparty_screen | LEI + corporate + sanctions counterparty verification. | $0.08 |
| maritime_weather_risk | Storm tracking, visibility, wind risk for shipping routes. | $0.05 |
| cargo_origin_verification | Trade flow + sanctions origin + transshipment risk. | $0.08 |
Example: 100 events = $30.00 · 1,000 events = $300.00
Connect to your AI agent
Add this MCP server to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.
https://ryanclinton--maritime-shipping-intelligence-mcp.apify.actor/mcp{
"mcpServers": {
"maritime-shipping-intelligence-mcp": {
"url": "https://ryanclinton--maritime-shipping-intelligence-mcp.apify.actor/mcp"
}
}
}Documentation
Maritime shipping intelligence for freight forwarders, marine insurers, and trade compliance teams who need vessel sanctions screening, port disruption forecasting, and trade route risk assessment without subscribing to expensive maritime data platforms. This MCP server aggregates 8 live data sources — OFAC, OpenSanctions, UN COMTRADE, NOAA, GDACS, OpenCorporates, GLEIF, and weather forecast services — into a single tool-calling interface that runs inside Claude, Cursor, or any MCP-compatible AI client. Every query returns a scored risk assessment backed by primary-source data, not stale aggregated feeds.
Connect your AI assistant to port weather alerts, vessel sanctions lists, corporate registries, and international trade flow databases in one step. Queries run in parallel across all sources so a full composite maritime risk report returns in a single tool call with a weighted Composite Maritime Risk Score from 0 to 100.
What data can you access?
| Data Point | Source | Example |
|---|---|---|
| 📋 US sanctions listings | OFAC SDN List | Vessels, operators, beneficial owners on OFAC Specially Designated Nationals register |
| 🔎 Multi-jurisdiction watchlists | OpenSanctions | 40+ consolidated programs: EU, UN, UK, OFAC, Interpol — cross-matched by entity |
| 🚢 International trade flows | UN COMTRADE | Bilateral commodity flows for 200+ countries — used for HHI concentration scoring |
| 🌀 Severe maritime weather | NOAA | Hurricane, gale, tropical storm, surge, and tsunami alerts affecting port operations |
| 🌍 Natural disaster monitoring | GDACS | Red/orange cyclone, earthquake, flood, and tsunami events near shipping lanes |
| 🏢 Corporate registry records | OpenCorporates | Vessel owner incorporation, jurisdiction, filing count, dissolution status |
| 🔗 Legal entity identifiers | GLEIF LEI | LEI issuance status, registration currency, entity relationship chains |
| 🌤 Route weather forecasting | Weather Forecast | Wind speed, visibility, storm conditions for named shipping routes and regions |
| ⚖️ Flag state classification | Scoring model | 23 flags of convenience flagged; 13 high-risk jurisdictions tracked |
| 📊 Composite risk score | All sources | Weighted 0-100 score with verdict: CLEAR_TO_PROCEED through DO_NOT_ENGAGE |
Why use Maritime Shipping Intelligence MCP?
A compliance analyst screening a single vessel the manual way — cross-checking OFAC, pulling GLEIF, searching OpenCorporates, checking NOAA marine forecasts, pulling GDACS, and running trade flow queries — will spend 2-4 hours per counterparty. For a fleet of 20 vessels before a charter, that is an entire work week of data gathering before any analysis begins.
This MCP server automates the entire data-gathering layer. An AI client running inside Claude or Cursor can screen a vessel, verify its counterparty, check its operating region for weather disruption, assess its trade routes for sanctions exposure, and return a scored verdict in under 3 minutes per query.
Beyond speed, MCP integration means your AI assistant can reason over results — asking follow-up questions, writing compliance memos, flagging escalations — rather than just returning raw data.
- Scheduling — run daily port disruption forecasts or weekly fleet sanctions screens on a timer to keep risk data current
- API access — trigger screening from Python, JavaScript, or any HTTP client using the Apify API
- Proxy rotation — all underlying actor queries run with Apify's proxy infrastructure, avoiding rate limits on public data sources
- Monitoring — configure Slack or email alerts when a tool call returns a HIGH or CRITICAL verdict
- Integrations — connect results to Zapier, Make, Google Sheets, or compliance workflow tools via webhooks
Features
- 8 MCP tools covering every dimension of maritime risk: sanctions, weather, trade compliance, counterparty, flag state, cargo origin, route weather, and fleet-wide reporting
- Composite Maritime Risk Score (0-100) with weighted contributions: vessel sanctions 30%, trade route compliance 25%, counterparty risk 20%, port disruption 15%, flag state risk 10%
- 5-tier verdict system — CLEAR_TO_PROCEED, PROCEED_WITH_CAUTION, ENHANCED_REVIEW, HIGH_RISK, DO_NOT_ENGAGE — aligned with standard compliance escalation workflows
- OFAC SDN screening with match confidence scoring; SDN matches at 80%+ confidence trigger automatic CRITICAL classification
- OpenSanctions cross-matching across 40+ international watchlists; entities appearing on 2 or more lists receive elevated scoring
- Herfindahl-Hirschman Index (HHI) trade concentration scoring — HHI above 2500 flags highly concentrated routes with single-jurisdiction dependency risk
- 23 flags of convenience tracked — Panama, Liberia, Marshall Islands, Bahamas, Malta, Bermuda, and 17 others — with regulatory oversight quality weighting
- 13 high-risk jurisdictions for sanctions evasion detection — North Korea, Iran, Russia, Syria, Venezuela, Myanmar, Belarus, and others — applied across corporate chain analysis
- NOAA maritime threat classification — filters for hurricane, tropical storm, gale, tsunami, surge, cyclone, typhoon, fog, and ice events; extreme/severe severity doubles the alert score weight
- GDACS red/orange disaster proximity scoring — red and orange alerts near shipping lanes score 10 points each in the disruption model
- GLEIF LEI verification with active/lapsed/absent status distinction — absent LEI adds 25 points to counterparty risk; lapsed adds 10
- Corporate opacity scoring — dissolved entities, zero-filing companies, LLP/trust/nominee structures, and flag-of-convenience incorporation each increment the opacity score
- Parallel actor execution — all underlying data sources are queried simultaneously using
Promise.all, minimizing total latency - Spend limit enforcement — each tool checks against Apify's event charge limit before executing, preventing runaway costs
- Stateless per-request architecture — a new MCP server instance is created per POST request, enabling horizontal scaling in standby mode
Use cases for maritime shipping intelligence
Vessel pre-booking sanctions compliance
Freight forwarders and cargo owners must screen vessels and their beneficial owners before booking. The vessel_sanctions_screening tool queries OFAC SDN, OpenSanctions, OpenCorporates, and GLEIF in one call, then scores the corporate chain for flag-of-convenience registrations and high-risk jurisdictions. A booking workflow running in Claude can reject flagged vessels automatically and generate a compliance memo for audit.
Port operations and scheduling disruption risk
Port agents, terminal operators, and vessel operators planning arrivals in weather-exposed regions use the port_disruption_forecast tool to pull live NOAA marine alerts and GDACS disaster events for a named port or coastal region. The tool scores hurricane, gale, surge, cyclone, and tsunami events by severity and returns a 5-tier disruption level from CALM to EXTREME, enabling proactive departure timing or rerouting decisions.
Marine insurance underwriting and P&I assessment
Marine insurers and P&I clubs assessing premium levels use the flag_state_risk_check and shipping_counterparty_screen tools to quantify regulatory oversight quality and beneficial ownership transparency. A vessel registered in the Marshall Islands under an LLP with no LEI and no corporate filings receives a high opacity score that maps directly to elevated premium justification.
Trade route compliance and cargo origin verification
Trade compliance teams at commodity traders and freight brokers use trade_route_compliance and cargo_origin_verification to detect transshipment through sanctioned jurisdictions. UN COMTRADE bilateral flows are checked against OFAC and OpenSanctions results; routes touching North Korea, Iran, Russia, or Syria trigger sanctioned route flags with HHI-adjusted concentration scores.
Fleet-wide risk monitoring for shipping operators
Ship managers and fleet owners running 10-100 vessels use the vessel_fleet_risk_report tool to generate a Composite Maritime Risk Score for each vessel or counterparty. The single tool call orchestrates all 8 data sources in parallel, returning scores across all five risk dimensions plus a structured verdict and recommendation list. Integrate with a daily Apify schedule to maintain current risk profiles across the entire fleet.
AI-assisted maritime due diligence
Legal teams and compliance consultants use this MCP server inside Claude to conduct structured due diligence on charter counterparties, flag states, and cargo origins. Because the tools return structured JSON, an AI assistant can synthesize findings across multiple tool calls into a formatted due diligence report, flag issues requiring legal escalation, and draft remediation recommendations — all within a single conversation.
How to use maritime shipping intelligence with an AI client
- Connect the MCP server — Add the server URL
https://maritime-shipping-intelligence-mcp.apify.actor/mcpto your MCP client configuration. For Claude Desktop, add it toclaude_desktop_config.json. No code required. - Ask a natural language question — Ask your AI: "Screen the vessel Pacific Carrier for sanctions risk" or "What is the port disruption risk at Rotterdam this week?" The AI selects the right tool automatically.
- Review the scored result — The tool returns a risk score, verdict, and specific signals (e.g., "2 SDN matches — OFAC blocked entity", "HHI 3200 — highly concentrated trade routes"). Ask the AI to summarize or draft a compliance memo.
- Export or escalate — Copy results to your compliance system, trigger a webhook to your case management tool, or ask the AI to generate a formatted report ready for a compliance officer.
MCP tools
| Tool | Price | Parameters | Description |
|---|---|---|---|
vessel_sanctions_screening | $0.045 | entity, port (optional) | Screen vessel or shipping company against OFAC SDN, OpenSanctions, and corporate registries |
port_disruption_forecast | $0.045 | port, timeframe (optional) | Forecast port disruption from severe weather, disasters, and maritime hazards |
trade_route_compliance | $0.045 | commodity, country (optional) | Assess trade route compliance: HHI concentration, sanctioned route detection, trade flow risk |
flag_state_risk_check | $0.045 | entity | Check flag state risk: flags of convenience, high-risk jurisdictions, regulatory oversight quality |
shipping_counterparty_screen | $0.045 | company | Screen shipping counterparty: LEI verification, corporate transparency, sanctions exposure |
maritime_weather_risk | $0.045 | route | Maritime weather risk for shipping routes: storm tracking, visibility, wind, sea state |
cargo_origin_verification | $0.045 | commodity, origin | Verify cargo origin: trade flow analysis, transshipment risk, sanctions-origin detection |
vessel_fleet_risk_report | $0.045 | entity, region (optional) | Complete maritime risk report with Composite Maritime Risk Score across all five dimensions |
Tool input tips
- Use vessel IMO numbers when available — an IMO number like "IMO 9321483" produces more precise OFAC and OpenSanctions matches than a vessel name alone
- Include the operating region in fleet reports — passing
region: "Persian Gulf"alongside the entity name improves weather and disaster data relevance significantly - Use commodity HS codes for trade compliance —
commodity: "2709 crude oil"gives more precise COMTRADE results than a plain text description
Output example
The vessel_fleet_risk_report tool returns this structure for a full composite assessment:
{
"entity": "Pacific Meridian Shipping Ltd",
"compositeScore": 67,
"verdict": "HIGH_RISK",
"vesselSanctions": {
"score": 72,
"sanctionHits": 3,
"flagRisk": 20,
"jurisdictionRisk": 16,
"riskLevel": "HIGH",
"signals": [
"2 SDN matches — OFAC blocked entity",
"1 OpenSanctions hits across multiple watchlists",
"Flag-of-convenience / high-risk jurisdiction detected"
]
},
"portDisruption": {
"score": 28,
"severeAlerts": 2,
"disasterCount": 1,
"weatherRisk": 12,
"riskLevel": "WATCH",
"signals": [
"2 maritime weather alerts active"
]
},
"tradeRoute": {
"score": 55,
"tradePartners": 3,
"concentrationHHI": 3180,
"sanctionedRoutes": 1,
"complianceLevel": "REVIEW_NEEDED",
"signals": [
"HHI 3180 — highly concentrated trade routes",
"1 trade routes involve sanctioned jurisdictions",
"Only 3 trade partners — high route dependency"
]
},
"counterparty": {
"score": 58,
"corporateOpacity": 22,
"leiVerified": false,
"sanctionFlags": 2,
"riskLevel": "SUSPICIOUS",
"signals": [
"No LEI found — counterparty not globally identified",
"2 sanctions/watchlist matches",
"No corporate registry records found — unverifiable entity"
]
},
"flagState": {
"score": 65,
"flagOfConvenience": true,
"highRiskJurisdiction": false,
"riskLevel": "HIGH",
"signals": [
"Flag-of-convenience registration — weak regulatory oversight",
"Multiple flag-of-convenience/high-risk jurisdictions in corporate chain"
]
},
"allSignals": [
"2 SDN matches — OFAC blocked entity",
"1 OpenSanctions hits across multiple watchlists",
"Flag-of-convenience / high-risk jurisdiction detected",
"2 maritime weather alerts active",
"HHI 3180 — highly concentrated trade routes",
"1 trade routes involve sanctioned jurisdictions",
"Only 3 trade partners — high route dependency",
"No LEI found — counterparty not globally identified",
"2 sanctions/watchlist matches",
"Flag-of-convenience registration — weak regulatory oversight"
],
"recommendations": [
"Immediate sanctions compliance review required — potential OFAC violation",
"Counterparty verification failed — enhanced due diligence required",
"Flag-of-convenience vessel — verify insurance coverage and regulatory compliance",
"Trade routes involve sanctioned jurisdictions — ensure proper licensing"
]
}
Output fields
| Field | Type | Description |
|---|---|---|
entity | string | The vessel, company, or fleet name queried |
compositeScore | number | Weighted composite risk score 0-100 (sanctions 30%, trade 25%, counterparty 20%, weather 15%, flag 10%) |
verdict | string | CLEAR_TO_PROCEED / PROCEED_WITH_CAUTION / ENHANCED_REVIEW / HIGH_RISK / DO_NOT_ENGAGE |
vesselSanctions.score | number | Sanctions sub-score 0-100 |
vesselSanctions.sanctionHits | number | Total OFAC + OpenSanctions match count |
vesselSanctions.flagRisk | number | Flag-of-convenience sub-score (max 25) |
vesselSanctions.jurisdictionRisk | number | High-risk jurisdiction sub-score (max 20) |
vesselSanctions.riskLevel | string | CLEAR / LOW / MEDIUM / HIGH / CRITICAL |
portDisruption.score | number | Weather/disaster disruption score 0-100 |
portDisruption.severeAlerts | number | Count of maritime-relevant NOAA alerts |
portDisruption.disasterCount | number | Count of GDACS events near the port |
portDisruption.riskLevel | string | CALM / WATCH / ADVISORY / WARNING / EXTREME |
tradeRoute.score | number | Trade compliance score 0-100 |
tradeRoute.tradePartners | number | Number of distinct trade partner countries |
tradeRoute.concentrationHHI | number | Herfindahl-Hirschman Index (0-10000; >2500 = high concentration) |
tradeRoute.sanctionedRoutes | number | Number of trade routes touching sanctioned jurisdictions |
tradeRoute.complianceLevel | string | COMPLIANT / LOW_RISK / REVIEW_NEEDED / HIGH_RISK / NON_COMPLIANT |
counterparty.score | number | Counterparty fraud risk score 0-100 |
counterparty.corporateOpacity | number | Opacity sub-score: dissolved entities, zero-filings, shell structures |
counterparty.leiVerified | boolean | Whether an active GLEIF LEI was found |
counterparty.sanctionFlags | number | Sanctions/watchlist match count for the counterparty |
counterparty.riskLevel | string | VERIFIED / LOW_RISK / REVIEW / SUSPICIOUS / BLOCK |
flagState.score | number | Flag state risk score 0-100 |
flagState.flagOfConvenience | boolean | True if any jurisdiction matches 23 known flags of convenience |
flagState.highRiskJurisdiction | boolean | True if any jurisdiction matches 13 high-risk sanctions-evasion countries |
flagState.riskLevel | string | LOW / MODERATE / ELEVATED / HIGH / CRITICAL |
allSignals | string[] | Flat list of all risk signals across all five dimensions |
recommendations | string[] | Actionable remediation steps based on the highest-scoring risk factors |
How much does maritime shipping intelligence cost?
This MCP uses pay-per-event pricing — each tool call costs $0.045. Platform compute costs are included. Apify's free tier provides $5 of monthly credits, covering approximately 111 maritime intelligence queries.
| Scenario | Queries | Cost per query | Total cost |
|---|---|---|---|
| Quick sanctions check | 1 | $0.045 | $0.045 |
| Pre-booking screen (5 vessels) | 5 | $0.045 | $0.23 |
| Weekly fleet report (20 vessels) | 20 | $0.045 | $0.90 |
| Monthly compliance cycle (100 queries) | 100 | $0.045 | $4.50 |
| Enterprise daily monitoring (500 queries) | 500 | $0.045 | $22.50 |
You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached.
Compare this to dedicated maritime compliance platforms like Dataloy, Q88, or CODA which charge $500-2,000/month. For teams doing periodic vessel screening — not continuous fleet operations — most users spend $5-25/month with no subscription commitment.
How to connect this MCP server
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"maritime-shipping-intelligence": {
"url": "https://maritime-shipping-intelligence-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Python (via Apify Standby)
import httpx
import json
token = "YOUR_APIFY_TOKEN"
base_url = "https://maritime-shipping-intelligence-mcp.apify.actor/mcp"
payload = {
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "vessel_fleet_risk_report",
"arguments": {
"entity": "Pacific Meridian Shipping Ltd",
"region": "Persian Gulf"
}
},
"id": 1
}
response = httpx.post(
base_url,
json=payload,
headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
)
result = response.json()
report = json.loads(result["result"]["content"][0]["text"])
print(f"Verdict: {report['verdict']} | Score: {report['compositeScore']}/100")
for rec in report["recommendations"]:
print(f" - {rec}")
JavaScript
const token = "YOUR_APIFY_TOKEN";
const baseUrl = "https://maritime-shipping-intelligence-mcp.apify.actor/mcp";
const response = await fetch(baseUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "vessel_sanctions_screening",
arguments: { entity: "Evergreen Marine Corp" }
},
id: 1
})
});
const data = await response.json();
const result = JSON.parse(data.result.content[0].text);
console.log(`Risk level: ${result.vesselSanctions.riskLevel}`);
console.log(`Sanction hits: ${result.vesselSanctions.sanctionHits}`);
for (const signal of result.vesselSanctions.signals) {
console.log(` Signal: ${signal}`);
}
cURL
# Screen a vessel for sanctions risk
curl -X POST "https://maritime-shipping-intelligence-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "vessel_sanctions_screening",
"arguments": {
"entity": "Pegas Shipping Ltd"
}
},
"id": 1
}'
# Forecast port disruption risk
curl -X POST "https://maritime-shipping-intelligence-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "port_disruption_forecast",
"arguments": {
"port": "Port of Houston"
}
},
"id": 2
}'
How Maritime Shipping Intelligence MCP works
Phase 1: Parallel data source orchestration
When a tool is called, the server passes the query to runActorsParallel(), which builds an array of actor call descriptors and executes them concurrently using Promise.all. Each actor runs in a 512 MB memory allocation with a 120-second timeout. The ACTOR_MAP resolves logical source names (e.g., ofac-sanctions-search) to specific Apify actor IDs, keeping the routing layer decoupled from scoring logic. Failed actor calls return empty arrays, so one unreachable source never blocks the entire assessment.
Phase 2: Specialized scoring models
Five independent scoring functions process the aggregated data:
scoreVesselSanctions() weights SDN matches at 15 points each (capped at 40), OFAC partial matches at 8, and OpenSanctions multi-list hits at 2-5 points. Flag-of-convenience jurisdictions from OpenCorporates add up to 25 points; high-risk jurisdictions add up to 20. Corporate opacity (dissolved status, zero filings, shell structures) adds up to 15 points. The resulting 0-100 score maps to CLEAR / LOW / MEDIUM / HIGH / CRITICAL.
scorePortDisruption() classifies NOAA events by matching keywords — hurricane, tropical, storm, tsunami, surge, gale, wind, flood, cyclone, typhoon, fog, ice — against the event description and severity field. Extreme/severe alerts score 10 each (capped at 35). GDACS red/orange events near shipping lanes score 10 each (capped at 30). Forecast wind speeds above 50 knots or storm/gale descriptions score 5 each. The 5-tier output runs CALM through EXTREME.
scoreTradeRouteCompliance() computes HHI from UN COMTRADE primaryValue fields, normalizing partner shares and summing squared shares multiplied by 10,000. HHI above 2,500 triggers the highly-concentrated signal. Sanctioned country detection cross-references OFAC program fields and OpenSanctions countries arrays against the 13 high-risk jurisdiction list. Each sanctioned route adds 12 points (capped at 35).
scoreCounterpartyRisk() starts with LEI absence (25 points), lapsed status (10 points), or verified active (0 points). OpenCorporates data adds opacity points for dissolved entities (8 each), zero filings (5), nominee/trust/LLP structures (5), and flag-of-convenience incorporation (4). OFAC matches above 70% confidence and OpenSanctions dataset membership each add 10 points (capped at 30).
scoreFlagState() scans all jurisdictions across OpenCorporates and GLEIF records. A high-risk jurisdiction hit adds 40 points; flag-of-convenience registration adds 25; three or more combined hits adds 15. Missing jurisdiction data adds 20.
Phase 3: Composite score assembly
generateMaritimeIntel() applies fixed weights to the five sub-scores: vessel sanctions (0.30), trade route (0.25), counterparty (0.20), port disruption (0.15), flag state (0.10). The composite is rounded to an integer and mapped to the 5-tier verdict. Signals from all models are merged into a flat allSignals array. The recommendations engine applies threshold rules — CRITICAL sanctions verdict triggers an OFAC escalation recommendation; HHI above 2,500 triggers a route diversification recommendation; SUSPICIOUS counterparty triggers an enhanced due diligence recommendation.
Standby mode architecture
The server runs as an Apify standby actor, exposing a persistent HTTP endpoint at /mcp. Each POST creates a fresh McpServer instance with a StreamableHTTPServerTransport, handles the request, and closes the transport on connection end. This stateless per-request model means the server can handle concurrent queries from multiple MCP clients simultaneously. When run outside standby mode (direct actor execution), the server starts briefly, logs a health check confirmation, and exits after 1 second.
Tips for best results
-
Use the full fleet report for high-value counterparties. The
vessel_fleet_risk_reporttool orchestrates all 8 data sources in a single call. For counterparties above a materiality threshold, the extra breadth is worth the single $0.045 charge versus calling individual tools separately. -
IMO numbers improve sanctions matching precision. OFAC SDN entries for vessels frequently include IMO numbers. Passing "IMO 9321483" instead of a vessel name reduces false positive matches from name variations and transliteration differences.
-
Combine with cargo origin verification for dual-use goods. For commodities with sanctions sensitivity — crude oil, refined petroleum, metals, semiconductors — pair
trade_route_compliancewithcargo_origin_verificationto detect both direct route exposure and transshipment through intermediary countries. -
Set a spending limit for automated screening pipelines. If you connect this MCP to an automated workflow that screens incoming voyage orders, configure Apify's per-run spending limit to cap daily exposure at a fixed dollar amount.
-
Interpret HHI alongside sanctioned route count. A high HHI (concentrated routes) combined with zero sanctioned route hits means dependency risk but not compliance risk. The combination of HHI > 2,500 and sanctioned routes > 0 is the signal requiring immediate compliance review.
-
Re-screen after any ownership change. Corporate registry data through OpenCorporates reflects state at query time. Screen again after a vessel changes owner, operator, or flag state — particularly after a sale between related entities.
-
Use port disruption forecast before departure, not arrival. NOAA and GDACS events are live at query time. Query 24-48 hours before planned departure from the origin port and again 24 hours before the estimated arrival port window.
Combine with other Apify actors
| Actor | How to combine |
|---|---|
| OFAC Sanctions Search | Run standalone deep OFAC searches on flagged entities identified by vessel screening, with more result pages than the MCP tool returns |
| OpenSanctions Search | Pull full OpenSanctions entity profiles with all dataset memberships for entities that triggered multi-list matches in the MCP |
| OpenCorporates Search | Extract complete beneficial ownership chains for corporate structures flagged as opaque by the counterparty screener |
| GLEIF LEI Lookup | Retrieve full LEI relationship trees for shipping groups — parent entities, subsidiaries, and fund structures — beyond what the MCP returns |
| UN COMTRADE Search | Run deep commodity-level trade flow analysis for specific HS codes and country pairs flagged in trade route compliance results |
| NOAA Weather Alerts | Pull full NOAA alert text and affected zone geometry for marine weather events returned by the port disruption forecast |
| GDACS Disaster Alerts | Retrieve complete GDACS event details — affected population, intensity, and geographic extent — for disasters flagged near shipping lanes |
Limitations
- No real-time AIS vessel tracking. This server does not access live vessel position data. For actual vessel location, heading, and port arrival/departure events, specialized AIS services such as MarineTraffic, VesselFinder, or Spire Maritime are required.
- Sanctions data reflects the query moment. OFAC SDN and OpenSanctions are queried live, but there is no continuous monitoring. A vessel cleared today may be added to the SDN list tomorrow. For continuous coverage, schedule daily screening runs.
- Corporate registry coverage varies by jurisdiction. OpenCorporates has strong coverage in the US, UK, EU, and Commonwealth countries. Coverage in secretive jurisdictions — where shells used for sanctions evasion are often incorporated — is intentionally limited by those jurisdictions.
- GLEIF LEI coverage is voluntary. LEI registration is not mandatory for all shipping entities. Absence of an LEI does not confirm that a company is illegitimate; it means GLEIF cannot independently verify it.
- Trade flow data has a publication lag. UN COMTRADE data for the most recent 6-12 months may not yet be published for all country pairs. Detection of very recent route shifts may underperform on short-lag commodities.
- NOAA and GDACS coverage is strongest for regions with active monitoring infrastructure. Storm tracking and disaster alerts in remote ocean areas or regions without dense meteorological station networks may have less granular coverage than major port regions.
- HHI concentration scores require sufficient COMTRADE data. For minor commodities or small bilateral trade pairs, COMTRADE may return few or no records, making HHI calculation unreliable. A zero HHI from empty data is not the same as a zero HHI from diversified trade.
- Match confidence for vessel names is approximate. Vessel names are frequently transliterated, abbreviated, or changed after ownership transfers. Always supplement name-based screening with IMO number queries where available.
Integrations
- Apify API — Call the MCP endpoint programmatically from compliance automation pipelines, trigger vessel screening from ERP/TMS systems
- Zapier — Trigger screening when new voyage orders enter your system; push HIGH/CRITICAL verdicts to a Slack compliance channel
- Make — Build multi-step workflows that screen vessels, enrich results with corporate data, and file compliance records
- Webhooks — Fire alerts when
vessel_fleet_risk_reportreturns DO_NOT_ENGAGE or when sanctions hit counts exceed a threshold - Google Sheets — Log screening results in a compliance tracker with composite scores, verdicts, and timestamps
- LangChain / LlamaIndex — Integrate as a tool in agentic compliance workflows; use maritime intelligence outputs as grounding context for LLM-generated due diligence reports
Troubleshooting
- Tool returns empty signals despite expecting risk flags — The underlying data sources may have returned no results for the query term. Try reformatting the entity name, adding the country or region as context, or using the IMO number instead of the vessel name. Check that your Apify API token has sufficient credits.
vessel_fleet_risk_reporttakes longer than other tools — This tool calls all 8 data sources in parallel. On slow network conditions or when underlying actor queues are busy, it may take 30-90 seconds. The 120-second per-actor timeout ensures it will not hang indefinitely.- Composite score seems low despite known sanctions exposure — The composite score weights vessel sanctions at 30% of the total. If OFAC and OpenSanctions searches return no hits because the entity is listed under a variant name, the score will not reflect the actual risk. Always verify with IMO number and try variant spellings.
- Port disruption forecast returns CALM for an active hurricane region — NOAA alert zones are matched by keyword against the port name you provide. If the name doesn't match NOAA zone names, try the broader region (e.g., "Gulf of Mexico" instead of "Port of Veracruz").
- Spending limit reached error on first call — Your Apify account may have a very low per-run spending limit configured. Check Settings > Monetization in the Apify Console and adjust the spending limit before retrying.
Responsible use
- This MCP server queries publicly available data from official government sources (OFAC, NOAA, GDACS, UN COMTRADE) and open corporate registry data.
- Risk scores are indicators, not legal determinations. A HIGH or CRITICAL verdict requires human compliance review before any adverse action is taken against a counterparty.
- OFAC sanctions compliance is a legal obligation in the United States. Always obtain qualified legal counsel for sanctions compliance decisions — do not rely solely on algorithmic scoring.
- Respect the terms of service for each underlying data source. Do not use query volumes that place unreasonable load on public APIs.
- For guidance on web scraping legality, see Apify's guide.
FAQ
How does maritime shipping intelligence screening differ from dedicated sanctions screening platforms like Dow Jones or Accuity? This MCP queries live primary-source data directly from OFAC and OpenSanctions rather than aggregating into a proprietary database. Primary-source queries are always current as of query time. The trade-off is that dedicated platforms include proprietary entity resolution, adverse media, and ownership graph databases not available here. This MCP is best suited for teams wanting primary-source screening with AI-assistant integration at a fraction of enterprise platform costs.
How many vessels can I screen in one run?
Each tool call screens one entity per invocation. For fleet screening, call vessel_fleet_risk_report once per vessel. There is no hard limit on the number of calls per session; spending limits control maximum cost. A fleet of 20 vessels costs $0.90 in tool call charges.
Does maritime shipping intelligence work for shipping companies as well as vessels?
Yes. All tools accept company names, operator names, and beneficial owner names in addition to vessel names. The shipping_counterparty_screen tool is specifically designed for counterparty companies; vessel_sanctions_screening works for both individual vessels and their operating companies.
How accurate is the flag-of-convenience detection? The model tracks 23 flag-of-convenience registries and 13 high-risk jurisdictions. Detection is based on jurisdiction fields from OpenCorporates and GLEIF records. Accuracy depends on the completeness of corporate registry data for the specific entity. For well-documented shipping companies with full registry filings, detection accuracy is high. For newly-formed or minimally-documented entities, jurisdiction data may be absent.
Can I use this MCP server with Cursor, Windsurf, or other AI coding tools?
Yes. Any MCP-compatible client that supports the StreamableHTTP transport can connect to https://maritime-shipping-intelligence-mcp.apify.actor/mcp. Cursor, Windsurf, Cline, and similar tools all support this standard. Add the URL to your MCP client configuration alongside your Apify API token.
How current is the OFAC SDN data queried by this server? The OFAC Sanctions Search actor queries the live OFAC SDN feed at query time. OFAC updates the SDN list on irregular schedules; major additions are published the same business day. There is no caching layer between the MCP tool call and the live source.
Is it legal to screen vessels and companies using this data? OFAC screening is not only legal but legally required for US persons and entities doing business in international shipping. All data sources used — OFAC, OpenSanctions, UN COMTRADE, NOAA, GDACS, OpenCorporates, GLEIF — are public government or intergovernmental databases. See Apify's guide on web scraping legality.
What does the HHI score measure and when should I be concerned? The Herfindahl-Hirschman Index measures trade route concentration. An HHI of 0 means trade is spread across many partners equally; 10,000 means all trade flows through a single partner. The US Department of Justice considers markets with HHI above 2,500 highly concentrated. In trade route terms, HHI above 2,500 signals single-partner dependency risk — if that partner faces sanctions or disruption, the entire route is affected.
Can I schedule this MCP for automated daily fleet monitoring? Yes. Use the Apify scheduling feature to trigger a monitoring workflow daily. Pair this with webhooks to receive notifications when the composite score for any vessel exceeds a threshold, or use the Apify API to poll results and push them to your compliance management system.
What happens when a data source is temporarily unavailable? Each actor call is wrapped in a try/catch block. If a source fails, it returns an empty array rather than throwing an error. The scoring models handle empty arrays gracefully, producing lower sub-scores for the affected dimension. The composite score will reflect the degraded data by being conservatively lower for that dimension — missing data does not produce false negatives for risk dimensions with other active sources.
How is this different from running OFAC searches manually on the OFAC website? Manual OFAC searches are single-entity, single-source, and return raw SDN data with no scoring. This MCP cross-references 8 sources simultaneously, applies match confidence weighting, scores the corporate chain for beneficial ownership risk, correlates with weather and trade route data, and returns a structured verdict with recommendations — all in one tool call from inside your AI assistant.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise integrations, reach out through the Apify platform.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Maritime Shipping Intelligence MCP Server?
Start for free on Apify. No credit card required.
Open on Apify Store