mcp

Screen any vessel by IMO for sanctions, ownership opacity and vetting grade. Keyless check included.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
90%
이름 품질
91%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,644토큰 (도구 정의)
~3.6 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.07%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "@arcnautical/mcp"
      ]
    }
  }
}

실행 가능한 패키지

npm@arcnautical/mcp0.2.1stdio

원격 엔드포인트

https://mcp.arcnautical.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (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).

입력 스키마

{
  "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#"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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#"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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#"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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#"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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#"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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#"
}

출력 스키마

{
  "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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/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#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개