MCPサーバー

mcp

com.arcnautical/mcp

このMCPでできること

Screens vessels by IMO for sanctions exposure, ownership opacity, vetting history, and voyage risks involving ports, routes, and maritime security signals.

check_vessel
Check a vessel (no key)
Screen one vessel by IMO number against OFAC SDN, EU, UN, UK OFSI and OpenSanctions, with an ownership-opacity score and an A–E vetting grade from port-state-control history. Works with no API key. Rate-limited to 100 requests per hour per IP. Returns the VERDICT SUMMARY only; for every sanctions match with its source list and confidence class use screen_vessel (needs a key).
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['imo'], 'properties': {'imo': {'type': 'string', 'pattern': '^\\d{7}$', 'description': 'Seven-digit IMO number of the vessel'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['imo', 'sanctions', 'checkedAt', 'rate_limit'], 'properties': {'imo': {'type': 'string', 'description': 'The seven-digit IMO number screened'}, 'vetting': {'type': 'object', 'properties': {'grade': {'type': ['string', 'null']}, 'score': {'type': ['number', 'null']}, 'status': {'type': 'string'}}, 'additionalProperties': True}, 'assessed': {'type': 'boolean', 'description': 'false means ownership and vetting are defaults, not findings'}, 'checkedAt': {'type': 'string', 'description': 'ISO-8601 time the sources were read; designations change daily'}, 'ownership': {'type': 'object', 'properties': {'score': {'type': ['number', 'null']}, 'opacity': {'type': ['string', 'null']}}, 'additionalProperties': True}, 'sanctions': {'type': 'object', 'required': ['status'], 'properties': {'detail': {'type': 'string', 'description': 'One sentence explaining the status'}, 'status': {'type': 'string', 'description': 'RED | AMBER | GREEN | INCOMPLETE'}, 'coverageComplete': {'type': 'boolean', 'description': 'false when a supplementary list was unavailable — re-screen before relying on a GREEN'}}, 'additionalProperties': True}, 'fullReport': {'type': 'string', 'description': 'Human-readable report URL for this hull'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset'], 'properties': {'limit': {'type': ['number', 'null']}, 'reset': {'type': ['string', 'null']}, 'remaining': {'type': ['number', 'null']}}, 'description': "Keyless allowance for the caller's address", 'additionalProperties': False}}, 'additionalProperties': False}
find_port
Find a port / UN/LOCODE (no key)
Resolve a port name, country or partial UN/LOCODE to the LOCODEs the routing engine knows. Routes are addressed by LOCODE, so call this before score_voyage rather than guessing a code. Works with no API key.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': 'Maximum matches to return (default 5)'}, 'query': {'type': 'string', 'minLength': 2, 'description': 'Port name, country, or LOCODE fragment, e.g. "rotterdam", "NLRTM", "Piraeus"'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ports'], 'properties': {'ports': {'type': 'array', 'items': {'type': 'object', 'required': ['locode', 'name'], 'properties': {'name': {'type': 'string'}, 'locode': {'type': 'string', 'description': 'UN/LOCODE, e.g. NLRTM'}, 'country': {'type': 'string'}}, 'additionalProperties': True}, 'description': 'Best matches first'}}, 'additionalProperties': False}
get_screening
Retrieve a screening record (API key)
Fetch a stored screening record by id — the audit copy, retained ten years. Needs ARCNAUTICAL_API_KEY.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Screening id returned by screen_vessel or in a batch item'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'id': {'type': 'string', 'description': 'Screening record id, retained ten years'}, 'imo': {'type': 'string'}, 'vetting': {'type': 'object', 'properties': {'grade': {'type': ['string', 'null']}, 'status': {'type': 'string'}}, 'additionalProperties': True}, 'ownership': {'type': 'object', 'properties': {'score': {'type': ['number', 'null']}, 'opacity': {'type': ['string', 'null']}}, 'additionalProperties': True}, 'sanctions': {'type': 'object', 'properties': {'detail': {'type': 'string'}, 'status': {'type': 'string', 'description': 'RED | AMBER | GREEN | INCOMPLETE'}}, 'additionalProperties': True}, 'screened_at': {'type': 'string', 'description': 'ISO-8601 time the sources were read'}, 'vessel_name': {'type': ['string', 'null']}}, 'additionalProperties': False}
get_usage
Usage and quota (API key)
Live and test usage, remaining allowance, reset time, batch limits and monitor capacity for the configured key.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limits': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'screenings': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'assessments': {'type': 'object', 'properties': {}, 'description': 'Allowance, used, remaining and reset per environment', 'additionalProperties': True}, 'environment': {'type': 'string', 'description': 'live | test'}}, 'additionalProperties': False}
score_voyage
Score a voyage route (API key)
Route risk between two ports (UN/LOCODEs): a 0–100 score, risk level, the signals driving it (war-risk areas, piracy, chokepoints, weather, sanctions exposure of transited EEZs), confidence and any missing sources. Resolve port names with find_port first. Needs ARCNAUTICAL_API_KEY; 10,000 assessments a month are included with a self-serve key.
外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['origin', 'destination'], 'properties': {'origin': {'type': 'string', 'pattern': '^[A-Za-z]{5}$', 'description': 'Origin UN/LOCODE, e.g. NLRTM'}, 'dwt_tonnes': {'type': 'number', 'maximum': 600000, 'minimum': 1, 'description': 'Deadweight in tonnes; used for chokepoint and draught constraints'}, 'destination': {'type': 'string', 'pattern': '^[A-Za-z]{5}$', 'description': 'Destination UN/LOCODE, e.g. CNSHA'}, 'speed_knots': {'type': 'number', 'maximum': 25, 'minimum': 8, 'description': 'Planned service speed, 8-25 knots; sets transit time through each risk area'}, 'vessel_type': {'enum': ['container', 'bulk', 'tanker', 'lng', 'general'], 'type': 'string', 'description': 'Vessel class; changes which threat signals weigh most (default: general)'}, 'load_condition': {'enum': ['laden', 'ballast'], 'type': 'string', 'description': 'laden or ballast; affects exposure on the transit'}, 'customer_reference': {'type': 'string', 'maxLength': 128, 'description': 'Your own reference (voyage id, fixture); echoed on the assessment'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'id': {'type': 'string', 'description': 'Assessment id'}, 'route': {'type': 'object', 'properties': {'distance_nm': {'type': 'number'}}, 'additionalProperties': True}, 'score': {'type': 'number', 'description': '0-100, higher is riskier'}, 'signals': {}, 'confidence': {'type': 'number', 'description': '0-1'}, 'risk_level': {'type': 'string', 'description': 'low | moderate | elevated | high | severe'}, 'missing_sources': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Signals that could not be read for this assessment'}}, 'additionalProperties': False}
screen_vessel
Screen a vessel (full record, API key)
The authenticated screening record for one vessel: every sanctions match with its source list, programme and confidence class, ownership opacity, the graded vetting factors, per-source freshness, and a retained record id. Needs ARCNAUTICAL_API_KEY. Metered: 5,000 live screenings a month are included with a self-serve key. The same vessel asked again on the same day replays the stored record free. If the result is INCOMPLETE for identity, call again with vessel_name.
外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['imo'], 'properties': {'imo': {'type': 'string', 'pattern': '^\\d{7}$', 'description': 'Seven-digit IMO number of the vessel'}, 'vessel_name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Only when a previous screen was INCOMPLETE for identity; a name you can confirm'}, 'include_vetting': {'type': 'boolean', 'description': 'false skips the vetting grade for a faster sanctions-only screen'}, 'customer_reference': {'type': 'string', 'maxLength': 128, 'description': 'Your own reference (order id, voyage id); echoed on the record'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'id': {'type': 'string', 'description': 'Screening record id, retained ten years'}, 'imo': {'type': 'string'}, 'vetting': {'type': 'object', 'properties': {'grade': {'type': ['string', 'null']}, 'status': {'type': 'string'}}, 'additionalProperties': True}, 'ownership': {'type': 'object', 'properties': {'score': {'type': ['number', 'null']}, 'opacity': {'type': ['string', 'null']}}, 'additionalProperties': True}, 'sanctions': {'type': 'object', 'properties': {'detail': {'type': 'string'}, 'status': {'type': 'string', 'description': 'RED | AMBER | GREEN | INCOMPLETE'}}, 'additionalProperties': True}, 'screened_at': {'type': 'string', 'description': 'ISO-8601 time the sources were read'}, 'vessel_name': {'type': ['string', 'null']}}, 'additionalProperties': False}
screen_vessels
Screen up to 50 vessels (API key)
Batch-screen a list of IMO numbers and wait for the results (up to two minutes). Returns one verdict per hull plus the batch status. Needs ARCNAUTICAL_API_KEY. Each hull spends one screening unit unless it was already screened today.
外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['imos'], 'properties': {'imos': {'type': 'array', 'items': {'type': 'string', 'pattern': '^\\d{7}$', 'description': 'Seven-digit IMO number of the vessel'}, 'maxItems': 50, 'minItems': 1, 'description': 'Up to 50 seven-digit IMO numbers'}, 'include_vetting': {'type': 'boolean', 'description': 'false skips the vetting grade for a faster sanctions-only screen'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['batch', 'items'], 'properties': {'batch': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string', 'description': 'queued | running | completed | partial | failed'}}, 'description': 'The batch as last read', 'additionalProperties': True}, 'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'imo': {'type': ['string', 'null']}, 'status': {'type': 'string'}, 'result_body': {'anyOf': [{'type': 'object', 'properties': {'sanctions': {'type': 'object', 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}}, 'additionalProperties': True}, {'type': 'null'}]}, 'screening_id': {'type': ['string', 'null']}}, 'additionalProperties': True}, 'description': 'One row per hull'}}, 'additionalProperties': False}
変更
get_usage
2026年9月21日2:49
変更
score_voyage
2026年9月21日2:49
変更
get_screening
2026年9月21日2:49
変更
screen_vessels
2026年9月21日2:49
変更
screen_vessel
2026年9月21日2:49
追加
get_usage
2026年9月19日2:40
追加
score_voyage
2026年9月19日2:40
追加
get_screening
2026年9月19日2:40
追加
screen_vessels
2026年9月19日2:40
追加
screen_vessel
2026年9月19日2:40
追加
find_port
2026年9月19日2:40
追加
check_vessel
2026年9月19日2:40