mcp
Screen any vessel by IMO for sanctions, ownership opacity and vetting grade. Keyless check included.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"@arcnautical/mcp"
]
}
}
}Ausführbare Pakete
0.2.1stdioRemote-Endpunkte
https://mcp.arcnautical.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (7)
🟢check_vessel(imo)
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).
Eingabe-Schema
{
"type": "object",
"properties": {
"imo": {
"type": "string",
"pattern": "^\\d{7}$",
"description": "Seven-digit IMO number of the vessel"
}
},
"required": [
"imo"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"imo": {
"type": "string",
"description": "The seven-digit IMO number screened"
},
"sanctions": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "RED | AMBER | GREEN | INCOMPLETE"
},
"detail": {
"type": "string",
"description": "One sentence explaining the status"
},
"coverageComplete": {
"type": "boolean",
"description": "false when a supplementary list was unavailable — re-screen before relying on a GREEN"
}
},
"required": [
"status"
],
"additionalProperties": true
},
"ownership": {
"type": "object",
"properties": {
"opacity": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
},
"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"
},
"fullReport": {
"type": "string",
"description": "Human-readable report URL for this hull"
},
"rate_limit": {
"type": "object",
"properties": {
"limit": {
"type": [
"number",
"null"
]
},
"remaining": {
"type": [
"number",
"null"
]
},
"reset": {
"type": [
"string",
"null"
]
}
},
"required": [
"limit",
"remaining",
"reset"
],
"additionalProperties": false,
"description": "Keyless allowance for the caller's address"
}
},
"required": [
"imo",
"sanctions",
"checkedAt",
"rate_limit"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢find_port(query, limit)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"description": "Port name, country, or LOCODE fragment, e.g. \"rotterdam\", \"NLRTM\", \"Piraeus\""
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Maximum matches to return (default 5)"
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"locode": {
"type": "string",
"description": "UN/LOCODE, e.g. NLRTM"
},
"name": {
"type": "string"
},
"country": {
"type": "string"
}
},
"required": [
"locode",
"name"
],
"additionalProperties": true
},
"description": "Best matches first"
}
},
"required": [
"ports"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪screen_vessel(imo, vessel_name, customer_reference, include_vetting)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"imo": {
"type": "string",
"pattern": "^\\d{7}$",
"description": "Seven-digit IMO number of the vessel"
},
"vessel_name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Only when a previous screen was INCOMPLETE for identity; a name you can confirm"
},
"customer_reference": {
"type": "string",
"maxLength": 128,
"description": "Your own reference (order id, voyage id); echoed on the record"
},
"include_vetting": {
"type": "boolean",
"description": "false skips the vetting grade for a faster sanctions-only screen"
}
},
"required": [
"imo"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Screening record id, retained ten years"
},
"imo": {
"type": "string"
},
"sanctions": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "RED | AMBER | GREEN | INCOMPLETE"
},
"detail": {
"type": "string"
}
},
"additionalProperties": true
},
"ownership": {
"type": "object",
"properties": {
"opacity": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
},
"vetting": {
"type": "object",
"properties": {
"grade": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"screened_at": {
"type": "string",
"description": "ISO-8601 time the sources were read"
},
"vessel_name": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢screen_vessels(imos, include_vetting)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"imos": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{7}$",
"description": "Seven-digit IMO number of the vessel"
},
"minItems": 1,
"maxItems": 50,
"description": "Up to 50 seven-digit IMO numbers"
},
"include_vetting": {
"type": "boolean",
"description": "false skips the vetting grade for a faster sanctions-only screen"
}
},
"required": [
"imos"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"batch": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string",
"description": "queued | running | completed | partial | failed"
}
},
"additionalProperties": true,
"description": "The batch as last read"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"imo": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"screening_id": {
"type": [
"string",
"null"
]
},
"result_body": {
"anyOf": [
{
"type": "object",
"properties": {
"sanctions": {
"type": "object",
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"additionalProperties": true
},
"description": "One row per hull"
}
},
"required": [
"batch",
"items"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_screening(id)
Fetch a stored screening record by id — the audit copy, retained ten years. Needs ARCNAUTICAL_API_KEY.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Screening id returned by screen_vessel or in a batch item"
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Screening record id, retained ten years"
},
"imo": {
"type": "string"
},
"sanctions": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "RED | AMBER | GREEN | INCOMPLETE"
},
"detail": {
"type": "string"
}
},
"additionalProperties": true
},
"ownership": {
"type": "object",
"properties": {
"opacity": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
},
"vetting": {
"type": "object",
"properties": {
"grade": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"screened_at": {
"type": "string",
"description": "ISO-8601 time the sources were read"
},
"vessel_name": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢score_voyage(origin, destination, vessel_type, load_condition, speed_knots, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"origin": {
"type": "string",
"pattern": "^[A-Za-z]{5}$",
"description": "Origin UN/LOCODE, e.g. NLRTM"
},
"destination": {
"type": "string",
"pattern": "^[A-Za-z]{5}$",
"description": "Destination UN/LOCODE, e.g. CNSHA"
},
"vessel_type": {
"type": "string",
"enum": [
"container",
"bulk",
"tanker",
"lng",
"general"
],
"description": "Vessel class; changes which threat signals weigh most (default: general)"
},
"load_condition": {
"type": "string",
"enum": [
"laden",
"ballast"
],
"description": "laden or ballast; affects exposure on the transit"
},
"speed_knots": {
"type": "number",
"minimum": 8,
"maximum": 25,
"description": "Planned service speed, 8-25 knots; sets transit time through each risk area"
},
"dwt_tonnes": {
"type": "number",
"minimum": 1,
"maximum": 600000,
"description": "Deadweight in tonnes; used for chokepoint and draught constraints"
},
"customer_reference": {
"type": "string",
"maxLength": 128,
"description": "Your own reference (voyage id, fixture); echoed on the assessment"
}
},
"required": [
"origin",
"destination"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Assessment id"
},
"score": {
"type": "number",
"description": "0-100, higher is riskier"
},
"risk_level": {
"type": "string",
"description": "low | moderate | elevated | high | severe"
},
"confidence": {
"type": "number",
"description": "0-1"
},
"missing_sources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Signals that could not be read for this assessment"
},
"route": {
"type": "object",
"properties": {
"distance_nm": {
"type": "number"
}
},
"additionalProperties": true
},
"signals": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_usage
Live and test usage, remaining allowance, reset time, batch limits and monitor capacity for the configured key.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"environment": {
"type": "string",
"description": "live | test"
},
"assessments": {
"type": "object",
"properties": {},
"additionalProperties": true,
"description": "Allowance, used, remaining and reset per environment"
},
"screenings": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"limits": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis