mcpField
H
hullcheck

hullcheck

本地服务
github.com/CloudCorpRecords法律与政务01 周前更新

关于 hullcheck

hullcheck 是 ArcNautical 船舶筛查 API 的客户端,面向海事筛查和航线评估。它既支持免密快速检查,也支持完整、批量筛查及航线风险评分。

主要功能

  1. 01检查制裁状态、所有权不透明度和审查等级
  2. 02将港口名称或国家解析为 UN/LOCODE
  3. 03创建详细和批量船舶筛查
  4. 04读取已存筛查记录及 API 用量
  5. 05评估两港之间的航线风险

适用场景

  1. 01在租船或纳入供应链前筛查船舶
  2. 02查看制裁匹配项和船舶审查信息
  3. 03批量筛查 IMO 编号
  4. 04评估两港之间航程的路线风险

MCP 相关

将 ArcNautical 的七项筛查 API 操作作为 MCP 工具提供,包括免密检查以及需 API 密钥的筛查和航线评分。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-hullcheck": {
"command": "npx",
"args": [
"-y",
"@reneturcios/hullcheck"
]
}
}
}
启动命令npx -y @reneturcios/hullcheck

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/hullcheck0.1.0
ocighcr.io/cloudcorprecords/hullcheck:0.1.0

工具

7

收录的工具列表 · 更新于 1 周前

参数类型必填说明
imostring是此调用的 imo。

详细介绍

hullcheck

在维修船舶、租用船舶或让其进入供应链之前,先对其进行筛查。hullcheck 是 ArcNautical 船舶筛查 API 的轻量客户端,以 IMO 编号为键: 这艘船是否在制裁名单上?它的实际所有者是谁?它的审查评级如何?它即将执行的航程风险有多高?七种工具涵盖查询、深度筛查、批量运行和航线评分。

其中两种工具完全无需密钥——可快速检查单艘船的制裁和审查情况,以及将港口名称或国家转换为 UN/LOCODE 的港口解析器。其余五种工具需要使用你的 API 密钥:获取已保存的完整筛查记录、一次批量筛查最多五十艘船、检索你已付费获取的记录、计算两个港口之间的航程风险评分,以及查看用量,以了解剩余额度。

成功调用会原样返回上游 JSON,不会对其进行任何重塑或摘要处理;批量工具除外,它会等待批次处理完成,然后返回最终批次对象及其项目。

配置

  • ARCNAUTICAL_API_KEY(密钥工具必需)— 作为 Authorization: Bearer <key> 发送。无需密钥的工具 (check_vessel、find_port)会忽略此项,完全不发送身份验证 标头。若未设置该项,所有需要密钥的工具都会失败并返回 ARCNAUTICAL_API_KEY is not set,且不会发起请求。
  • ARCNAUTICAL_BASE_URL(可选)— API 基础 URL。 默认值为 https://arcnautical.com。

重复创建记录不应导致重复收费。每次创建资源的调用(screen_vessel、 screen_vessels、score_voyage)都会发送一个 Idempotency-Key 标头,其值根据请求内容生成——船舶(或航线、或批次)和 UTC 日期——因此,在同一天重复进行相同的筛查会返回已保存的 记录,且不会产生任何费用。这种生成方式是服务文档中说明的行为;具体的键字符串格式是此客户端对其的呈现方式:

  • screen_vessel:hullcheck:<imo>:<yyyy-mm-dd>
  • screen_vessels:hullcheck:batch:<first imo>:<count>:<yyyy-mm-dd>
  • score_voyage:hullcheck:voyage:<origin locode>:<destination locode>:<yyyy-mm-dd>

工具

  • check_vessel — 查询某个 imo 在主要名单中的制裁状态、所有权不透明度评分以及 A–E 级审查等级。无需密钥。
  • find_port — 将 query(港口名称或国家)解析为 UN/LOCODE,可选提供 limit。无需密钥。
  • screen_vessel — 获取某个 imo 的完整筛查记录:每项匹配及其来源名单、计划和置信度类别、分级审查因素、各来源数据的新鲜度,以及保留的记录 ID。可选参数:customer_reference、vessel_name 和 include_vetting。
  • screen_vessels — 对包含 1 至 50 个 IMO 字符串的 imos 数组进行批量筛查并等待结果。可选批次级参数 include_vetting。客户端创建批次,每隔 250 ms 轮询其状态(最多轮询 10 次;间隔和上限由此客户端设定),直到读取到 completed 或 failed,然后获取批次条目并返回 {"batch": ..., "items": ...}。如果创建响应已处于终止状态,则跳过轮询。
  • get_screening — 根据 id 检索已存储的筛查记录。
  • score_voyage — 评估 origin_locode 和 destination_locode 之间航线的风险:提供评分、等级、风险因素、置信度以及任何缺失的数据源。可选航线输入参数 vessel_type(container、bulk、tanker、lng、general)、load_condition(laden、ballast)、speed_knots(8–25)、dwt_tonnes(1–600000)、fuel_type(hfo、vlsfo、mgo、lng)和 bunker_price_usd_per_tonne(非负值)会放在请求的 route 对象中,该对象的端点为 {locode} 对象;customer_reference 和 include_geometry 则放在顶层。
  • get_usage — 查询已配置密钥的剩余额度和限制。

任何请求发出前都会执行验证,并在验证失败时返回特定提示,包括 imo must be a non-empty string、query must be a non-empty string、id must be a non-empty string、imos must be an array of 1 to 50 IMO strings、origin_locode must be a non-empty string、destination_locode must be a non-empty string、limit must be a positive integer,以及针对每个航程枚举值或范围的提示(例如 speed_knots must be a number between 8 and 25)。上游返回非 2xx 响应时会报错 arcnautical error: HTTP <status>;API 无法访问时会报错 arcnautical unreachable。

命令行工具

每个工具都是一个子命令,接受一个 JSON 参数字符串:

npx @reneturcios/hullcheck check_vessel '{"imo":"9074729"}'
npx @reneturcios/hullcheck find_port '{"query":"rotterdam","limit":5}'
export ARCNAUTICAL_API_KEY="<your key>"
npx @reneturcios/hullcheck screen_vessel '{"imo":"9074729","vessel_name":"Example"}'
npx @reneturcios/hullcheck screen_vessels '{"imos":["9074729","8814275"]}'
npx @reneturcios/hullcheck get_screening '{"id":"scr_123"}'
npx @reneturcios/hullcheck score_voyage '{"origin_locode":"NLRTM","destination_locode":"SGSIN","vessel_type":"container"}'
npx @reneturcios/hullcheck get_usage '{}'
npx @reneturcios/hullcheck --version

输出为工具的结果文本(成功时为上游 JSON)。退出代码:成功时为 0,运行时错误(包括验证失败、缺少密钥或上游错误)时为 1,用法错误时为 2。

MCP 服务

npx -y @reneturcios/hullcheck mcp

MCP 客户端配置(通过客户端环境提供密钥;两个无需密钥的工具可在没有密钥的情况下使用):

{
  "mcpServers": {
    "hullcheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/hullcheck", "mcp"],
      "env": {
        "ARCNAUTICAL_API_KEY": "<your key>"
      }
    }
  }
}

Docker

docker run -i -e ARCNAUTICAL_API_KEY="<your key>" ghcr.io/cloudcorprecords/hullcheck
docker run --rm ghcr.io/cloudcorprecords/hullcheck check_vessel '{"imo":"9074729"}'

开发

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev     # run the CLI from source

许可证

MIT — 版权所有 (c) 2026 Rene Turcios

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。