{
  "data": {
    "tool": {
      "category": "",
      "endpoint": "https://mcp.arcnautical.com/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/arcnautical-mcp.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/arcnautical-mcp.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/arcnautical-mcp.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 3005,
          "counts": {
            "error": 0,
            "note": 0,
            "warn": 0
          },
          "findings": []
        },
        "checkedAt": "2026-10-04T22:22:06Z",
        "count": 7,
        "schemaTokens": 3005,
        "status": "ok",
        "tools": [
          {
            "name": "check_vessel",
            "title": "Check a vessel (no key)",
            "description": "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).",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "imo": {
                  "description": "Seven-digit IMO number of the vessel",
                  "pattern": "^\\d{7}$",
                  "type": "string"
                }
              },
              "required": [
                "imo"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "assessed": {
                  "description": "false means ownership and vetting are defaults, not findings",
                  "type": "boolean"
                },
                "checkedAt": {
                  "description": "ISO-8601 time the sources were read; designations change daily",
                  "type": "string"
                },
                "fullReport": {
                  "description": "Human-readable report URL for this hull",
                  "type": "string"
                },
                "imo": {
                  "description": "The seven-digit IMO number screened",
                  "type": "string"
                },
                "ownership": {
                  "additionalProperties": true,
                  "properties": {
                    "opacity": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "score": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "rate_limit": {
                  "additionalProperties": false,
                  "description": "Keyless allowance for the caller's address",
                  "properties": {
                    "limit": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "remaining": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "reset": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "limit",
                    "remaining",
                    "reset"
                  ],
                  "type": "object"
                },
                "sanctions": {
                  "additionalProperties": true,
                  "properties": {
                    "coverageComplete": {
                      "description": "false when a supplementary list was unavailable — re-screen before relying on a GREEN",
                      "type": "boolean"
                    },
                    "detail": {
                      "description": "One sentence explaining the status",
                      "type": "string"
                    },
                    "status": {
                      "description": "RED | AMBER | GREEN | INCOMPLETE",
                      "type": "string"
                    }
                  },
                  "required": [
                    "status"
                  ],
                  "type": "object"
                },
                "vetting": {
                  "additionalProperties": true,
                  "properties": {
                    "grade": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "score": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "imo",
                "sanctions",
                "checkedAt",
                "rate_limit"
              ],
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true
            }
          },
          {
            "name": "find_port",
            "title": "Find a port / UN/LOCODE (no key)",
            "description": "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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "limit": {
                  "description": "Maximum matches to return (default 5)",
                  "maximum": 20,
                  "minimum": 1,
                  "type": "integer"
                },
                "query": {
                  "description": "Port name, country, or LOCODE fragment, e.g. \"rotterdam\", \"NLRTM\", \"Piraeus\"",
                  "minLength": 2,
                  "type": "string"
                }
              },
              "required": [
                "query"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "ports": {
                  "description": "Best matches first",
                  "items": {
                    "additionalProperties": true,
                    "properties": {
                      "country": {
                        "type": "string"
                      },
                      "locode": {
                        "description": "UN/LOCODE, e.g. NLRTM",
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "locode",
                      "name"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "ports"
              ],
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true
            }
          },
          {
            "name": "screen_vessel",
            "title": "Screen a vessel (full record, API key)",
            "description": "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: a new self-serve key includes 5,000 live screenings once (a one-time allowance). 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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "customer_reference": {
                  "description": "Your own reference (order id, voyage id); echoed on the record",
                  "maxLength": 128,
                  "type": "string"
                },
                "imo": {
                  "description": "Seven-digit IMO number of the vessel",
                  "pattern": "^\\d{7}$",
                  "type": "string"
                },
                "include_vetting": {
                  "description": "false skips the vetting grade for a faster sanctions-only screen",
                  "type": "boolean"
                },
                "vessel_name": {
                  "description": "Only when a previous screen was INCOMPLETE for identity; a name you can confirm",
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "imo"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "Screening record id, retained ten years",
                  "type": "string"
                },
                "imo": {
                  "type": "string"
                },
                "ownership": {
                  "additionalProperties": true,
                  "properties": {
                    "opacity": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "score": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "sanctions": {
                  "additionalProperties": true,
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "status": {
                      "description": "RED | AMBER | GREEN | INCOMPLETE",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "screened_at": {
                  "description": "ISO-8601 time the sources were read",
                  "type": "string"
                },
                "vessel_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "vetting": {
                  "additionalProperties": true,
                  "properties": {
                    "grade": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": false
            }
          },
          {
            "name": "screen_vessels",
            "title": "Screen up to 50 vessels (API key)",
            "description": "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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "imos": {
                  "description": "Up to 50 seven-digit IMO numbers",
                  "items": {
                    "description": "Seven-digit IMO number of the vessel",
                    "pattern": "^\\d{7}$",
                    "type": "string"
                  },
                  "maxItems": 50,
                  "minItems": 1,
                  "type": "array"
                },
                "include_vetting": {
                  "description": "false skips the vetting grade for a faster sanctions-only screen",
                  "type": "boolean"
                }
              },
              "required": [
                "imos"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "batch": {
                  "additionalProperties": true,
                  "description": "The batch as last read",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "description": "queued | running | completed | partial | failed",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "items": {
                  "description": "One row per hull",
                  "items": {
                    "additionalProperties": true,
                    "properties": {
                      "imo": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "result_body": {
                        "anyOf": [
                          {
                            "additionalProperties": true,
                            "properties": {
                              "sanctions": {
                                "additionalProperties": true,
                                "properties": {
                                  "status": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "screening_id": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "status": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "batch",
                "items"
              ],
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": false
            }
          },
          {
            "name": "get_screening",
            "title": "Retrieve a screening record (API key)",
            "description": "Fetch a stored screening record by id — the audit copy, retained ten years. Needs ARCNAUTICAL_API_KEY.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "Screening id returned by screen_vessel or in a batch item",
                  "format": "uuid",
                  "type": "string"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "Screening record id, retained ten years",
                  "type": "string"
                },
                "imo": {
                  "type": "string"
                },
                "ownership": {
                  "additionalProperties": true,
                  "properties": {
                    "opacity": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "score": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "sanctions": {
                  "additionalProperties": true,
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "status": {
                      "description": "RED | AMBER | GREEN | INCOMPLETE",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "screened_at": {
                  "description": "ISO-8601 time the sources were read",
                  "type": "string"
                },
                "vessel_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "vetting": {
                  "additionalProperties": true,
                  "properties": {
                    "grade": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true
            }
          },
          {
            "name": "score_voyage",
            "title": "Score a voyage route (API key)",
            "description": "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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "customer_reference": {
                  "description": "Your own reference (voyage id, fixture); echoed on the assessment",
                  "maxLength": 128,
                  "type": "string"
                },
                "destination": {
                  "description": "Destination UN/LOCODE, e.g. CNSHA",
                  "pattern": "^[A-Za-z]{5}$",
                  "type": "string"
                },
                "dwt_tonnes": {
                  "description": "Deadweight in tonnes; used for chokepoint and draught constraints",
                  "maximum": 600000,
                  "minimum": 1,
                  "type": "number"
                },
                "load_condition": {
                  "description": "laden or ballast; affects exposure on the transit",
                  "enum": [
                    "laden",
                    "ballast"
                  ],
                  "type": "string"
                },
                "origin": {
                  "description": "Origin UN/LOCODE, e.g. NLRTM",
                  "pattern": "^[A-Za-z]{5}$",
                  "type": "string"
                },
                "speed_knots": {
                  "description": "Planned service speed, 8-25 knots; sets transit time through each risk area",
                  "maximum": 25,
                  "minimum": 8,
                  "type": "number"
                },
                "vessel_type": {
                  "description": "Vessel class; changes which threat signals weigh most (default: general)",
                  "enum": [
                    "container",
                    "bulk",
                    "tanker",
                    "lng",
                    "general"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "origin",
                "destination"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "confidence": {
                  "description": "0-1",
                  "type": "number"
                },
                "id": {
                  "description": "Assessment id",
                  "type": "string"
                },
                "missing_sources": {
                  "description": "Signals that could not be read for this assessment",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "risk_level": {
                  "description": "low | moderate | elevated | high | severe",
                  "type": "string"
                },
                "route": {
                  "additionalProperties": true,
                  "properties": {
                    "distance_nm": {
                      "type": "number"
                    }
                  },
                  "type": "object"
                },
                "score": {
                  "description": "0-100, higher is riskier",
                  "type": "number"
                },
                "signals": {}
              },
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": false
            }
          },
          {
            "name": "get_usage",
            "title": "Usage and quota (API key)",
            "description": "Live and test usage, remaining allowance, reset time, batch limits and monitor capacity for the configured key.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {},
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "assessments": {
                  "additionalProperties": true,
                  "description": "Allowance, used, remaining and reset per environment",
                  "properties": {},
                  "type": "object"
                },
                "environment": {
                  "description": "live | test",
                  "type": "string"
                },
                "limits": {
                  "additionalProperties": true,
                  "properties": {},
                  "type": "object"
                },
                "screenings": {
                  "additionalProperties": true,
                  "properties": {},
                  "type": "object"
                }
              },
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true
            }
          }
        ]
      },
      "name": "arcnautical.com MCP server",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "@arcnautical/mcp",
          "version": "0.2.1",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/arcnautical-mcp.json",
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 239
      },
      "registryName": "com.arcnautical/mcp",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://mcp.arcnautical.com/mcp"
        }
      ],
      "repository": "https://github.com/arcnautical/arcnautical-mcp",
      "reviewed": false,
      "slug": "arcnautical-mcp",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.arcnautical/mcp",
      "summary": "Screen any vessel by IMO for sanctions, ownership opacity and vetting grade. Keyless check included.",
      "updatedAt": "2026-09-23T15:51:03Z",
      "url": "https://www.anchorterminal.com/tools/arcnautical-mcp",
      "vendor": "arcnautical.com",
      "vendorUrl": "https://arcnautical.com/developers/",
      "version": "0.2.1",
      "websiteUrl": "https://arcnautical.com/developers/",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/arcnautical-mcp",
    "json": "https://www.anchorterminal.com/tools/arcnautical-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/arcnautical-mcp.md",
    "slim": "https://www.anchorterminal.com/tools/arcnautical-mcp.min.md"
  },
  "markdown": "# arcnautical.com MCP server\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by arcnautical.com (https://arcnautical.com/developers/)\n- Listed because: It's published in the registry under arcnautical.com, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Screen any vessel by IMO for sanctions, ownership opacity and vetting grade. Keyless check included.\n\n## Facts\n\n- MCP registry: `com.arcnautical/mcp` 0.2.1\n- Endpoint: https://mcp.arcnautical.com/mcp (streamable HTTP)\n- Package: npm `@arcnautical/mcp` (stdio)\n- Source: https://github.com/arcnautical/arcnautical-mcp\n- Website: https://arcnautical.com/developers/\n- npm downloads a week: 239\n- GitHub stars: 0\n- Registry entry updated: 2026-09-23\n\n## Tools\n\n- Tools it lists (7, about 3,005 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-10-04 22:22 UTC):\n  - `check_vessel` (read-only): 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…\n  - `find_port` (read-only): 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…\n  - `screen_vessel` (writes): The authenticated screening record for one vessel: every sanctions match with its source list, programme and confidence class, ownership opacity, the graded…\n  - `screen_vessels` (writes): 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.…\n  - `get_screening` (read-only): Fetch a stored screening record by id — the audit copy, retained ten years. Needs ARCNAUTICAL_API_KEY.\n  - `score_voyage` (writes): 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…\n  - `get_usage` (read-only): Live and test usage, remaining allowance, reset time, batch limits and monitor capacity for the configured key.\n- How its tools read to an agent (0 errors, 0 warnings, 0 notes, about 3,005 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/arcnautical-mcp.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "arcnautical.com MCP server",
        "url": ""
      }
    ],
    "description": "arcnautical.com MCP server, an MCP server by arcnautical.com, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Screen any vessel by IMO for sanctions, ownership opacity and vetting grade. Keyless check included.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "arcnautical.com MCP server",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/arcnautical-mcp",
    "published": "",
    "section": "indexed",
    "title": "arcnautical.com MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/tools/arcnautical-mcp"
  },
  "tokens": {
    "markdown": 850,
    "slim": 780
  },
  "version": 1
}
