MCP 서버

mcp

com.arcnautical/mcp
법률 및 컴플라이언스 보안 공개 · 연결 가능 MCP 2025-11-25

이 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 AM
변경됨
score_voyage
2026년 9월 21일 2:49 AM
변경됨
get_screening
2026년 9월 21일 2:49 AM
변경됨
screen_vessels
2026년 9월 21일 2:49 AM
변경됨
screen_vessel
2026년 9월 21일 2:49 AM
추가됨
get_usage
2026년 9월 19일 2:40 AM
추가됨
score_voyage
2026년 9월 19일 2:40 AM
추가됨
get_screening
2026년 9월 19일 2:40 AM
추가됨
screen_vessels
2026년 9월 19일 2:40 AM
추가됨
screen_vessel
2026년 9월 19일 2:40 AM
추가됨
find_port
2026년 9월 19일 2:40 AM
추가됨
check_vessel
2026년 9월 19일 2:40 AM