Arcnautical

io.github.SaltyTaro由 GitHub 帳號 SaltyTaro 發布v0.1.1更新於 Oct 27, 2026

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

發布方自己的服務:Arcnautical

概覽

AI 產生的概覽

依 IMO 編號篩查商船的制裁、所有權不透明度與審查評級,內含兩個免金鑰工具及需金鑰的批次與航程風險工具。

可以做什麼
  • 依 IMO 查詢船舶的制裁比對(OFAC SDN、EU、UN、UK OFSI、OpenSanctions)、所有權不透明度分數與 A–E 審查評級
  • 將港口名稱或國家解析為 UN/LOCODE
  • 取得完整篩查紀錄(含各來源比對、信心分類與資料新鮮度),或依 id 取回已儲存的紀錄
  • 批次篩查最多 50 個 IMO 並等待結果
  • 對兩個 LOCODE 之間的路線做風險評分,含風險驅動因素、信心度與缺少的來源
  • 查詢所設定金鑰的剩餘額度與上限
適用情境
適合航運、貿易法遵、租船或物流情境,讓助理快速掌握某艘船的制裁與審查狀況,或查看兩港之間的路線風險。偶爾查詢單一船舶時免金鑰工具已足夠;需要重複篩查與批次處理時再使用需金鑰的工具。
執行需求
以本機 stdio 程序透過 npx 執行,需要 Node 18+;另提供遠端 Streamable HTTP 端點。需金鑰的工具要求 API 金鑰:本機以 ARCNAUTICAL_API_KEY 環境變數提供,遠端端點則用 Authorization Bearer 標頭。金鑰免費自助申請。需要能連線至 ArcNautical API 的網路。
安裝前請注意
免金鑰查詢只比對船舶目前的名稱與識別碼,改名後的船舶可能顯示 GREEN,完整篩查紀錄可涵蓋此情況。GREEN 但涵蓋不完整,或未評估的紀錄,都不應視為無問題。制裁名單每日變動,回答時應註明 checked 或 screened 時間。免金鑰呼叫依呼叫端位址限流,需金鑰呼叫則依金鑰額度計費。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Arcnautical,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@arcnautical/mcp

An MCP server for the ArcNautical API: screen any commercial vessel by IMO number for sanctions, ownership opacity and a vetting grade — from Claude, ChatGPT, Cursor, VS Code, Windsurf or any MCP client.

Two tools need no API key at all. Add it, ask "is IMO 9274446 sanctioned?", get the answer.

[Smithery] [npm] [Wellknown: live]

Two ways to use it: a remote endpoint at https://mcp.arcnautical.com/mcp (nothing to install — claude.ai, ChatGPT, Claude Code, Cursor) or a local server over stdio with npx -y @arcnautical/mcp (Claude Desktop and every other stdio client).

IMO 9274446 HS STAR: sanctions RED — 4 confirmed matches on vessel identifier.Ownership opacity MEDIUM. Vetting grade E (unacceptable). Checked 2026-09-12T08:10:40Z.

Remote endpoint (no install)

https://mcp.arcnautical.com/mcp — MCP Streamable HTTP, stateless, JSON responses. No authentication is required for check_vessel and find_port; the keyed tools take your API key as an Authorization: Bearer header on the MCP request (an X-API-Key or arcnautical-api-key header is accepted too, for gateways that name the header themselves — never a query parameter).

claude.ai — Settings → Connectors → Add custom connector → URL https://mcp.arcnautical.com/mcp, no authentication. The two keyless tools are available at once.

ChatGPT — Settings → Connectors → Create (developer mode) → server URL https://mcp.arcnautical.com/mcp, no authentication.

Claude Code

claude mcp add --transport http arcnautical https://mcp.arcnautical.com/mcpclaude mcp add --transport http arcnautical https://mcp.arcnautical.com/mcp --header "Authorization: Bearer arc_live_…"

Cursor — .cursor/mcp.json:

json
{  "mcpServers": {    "arcnautical": {      "url": "https://mcp.arcnautical.com/mcp",      "headers": { "Authorization": "Bearer arc_live_…" }    }  }}

Anything with curl — the endpoint is plain JSON-RPC over POST:

curl -s https://mcp.arcnautical.com/mcp -H 'Content-Type: application/json' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_vessel","arguments":{"imo":"9274446"}}}'

The remote endpoint is a thin client of the same public API: a keyless call counts against your 100-per-hour allowance (the caller's address is forwarded), and a keyed call is metered on your key exactly as a direct API call would be. GET /mcp answers 405 — there is no server-to-client stream to hold — and GET https://mcp.arcnautical.com/health reports the endpoint's version.

Local server (stdio)

Requires Node 18+. No install step — every client below runs it with npx.

Claude Desktop — claude_desktop_config.json:

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

Claude Code

claude mcp add arcnautical -- npx -y @arcnautical/mcp

Cursor / Windsurf / VS Code — same command / args shape in the client's MCP settings.

To unlock the full record, batches and voyage scoring, add an API key to the env block:

json
{  "mcpServers": {    "arcnautical": {      "command": "npx",      "args": ["-y", "@arcnautical/mcp"],      "env": { "ARCNAUTICAL_API_KEY": "arc_live_…" }    }  }}

Keys are free and self-serve at https://arcnautical.com/get-a-key?from=mcp — no card, no approval step. A new key includes a one-time free allowance of vessel screenings and a monthly allowance of voyage assessments; get_usage reports both, and the current numbers are on arcnautical.com/developers.

Tools

ToolKey?What it does
check_vesselnoSanctions status (OFAC SDN, EU, UN, UK OFSI, OpenSanctions), ownership-opacity score, A–E vetting grade for one IMO. 100/hour per IP.
find_portnoResolve a port name or country to UN/LOCODEs — call before score_voyage.
screen_vesselyesThe full screening record: every match with its source list, programme and confidence class, the graded vetting factors, per-source freshness, a retained record id. Same hull asked again today replays free.
screen_vesselsyesBatch up to 50 IMOs and wait for the results.
get_screeningyesRetrieve a stored record by id (retained ten years).
score_voyageyesRoute risk between two LOCODEs: score, level, drivers, confidence, missing sources.
get_usageyesRemaining allowance and limits for the configured key.

Reading a verdict

  • RED — confirmed match on the vessel identifier. AMBER — possible match, review it. GREEN — no match against the sources reached. INCOMPLETE — a core source could not be read; never present it as clear.
  • coverage_complete: false on a GREEN means one supplementary list was unavailable: re-screen before relying on it.
  • assessed: false means ownership and vetting are defaults, not findings.
  • The keyless check matches the vessel's current name and identifiers only. A hull renamed after a designation can read GREEN there; screen_vessel covers that case.
  • Designations change daily. Quote the checkedAt / screened_at time with any answer.

Idempotency

Every resource-creating call sends an Idempotency-Key derived from the question — the hull and the UTC day — not from the attempt. Asking about the same vessel twice in a day returns the stored record and spends nothing. The API's docs measured 42% of one integration's monthly screenings as same-day repeats billed only because their client generated a random key per call; this server does not do that.

Environment

VariableDefaultPurpose
ARCNAUTICAL_API_KEYunsetEnables the keyed tools (stdio; the remote endpoint reads the Authorization header instead).
ARCNAUTICAL_BASE_URLhttps://arcnautical.comOverride for testing.
PORT / HOST3005 / all interfaces--http only.
MCP_TRUST_PROXYunset--http only: 1 reads the caller's address from X-Real-IP / CF-Connecting-IP set by a reverse proxy. Only when nothing but the proxy can reach the port.

Self-hosting the HTTP endpoint

npx -y @arcnautical/mcp --http serves POST /mcp on port 3005 — useful when your assistants run in a network that cannot spawn local processes but can reach one internal URL. The Dockerfile in this repository builds the same thing; it is what mcp.arcnautical.com runs.

Links

Development

npm installnpm test        # builds, then drives dist/cli.js over stdio AND createHttpServer() over Streamable HTTP                # (a local stub API asserts the forwarded caller address and Bearer key; one call hits prod keyless)npm run start:http   # the remote endpoint on http://localhost:3005/mcp

MIT © ArcNautical

來源:README.md,提交 eb254fc

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Arcnautical 整合