naftiko: 1.0.0-alpha2 info: label: DNV Class Status API description: DNV's Class Status API provides programmatic access to vessel classification data. Authentication uses OAuth 2.0 with Azure AD B2C as the identity provider. Access tokens are obtained from the Microsoft identity platform and are valid for approximately 20 minutes. Access requires a separate API contract with DNV. The API supports retry logic using exponential backoff for resilience. tags: - Dnv - API created: '2026-05-06' modified: '2026-05-06' capability: consumes: - type: http namespace: dnv baseUri: https://maritime.dnv.com/api/cs-iacs-customer description: DNV Class Status API HTTP API. authentication: type: bearer token: '{{DNV_TOKEN}}' resources: - name: vessels path: /vessels operations: - name: searchvessels method: GET description: Search vessels by classification criteria inputParameters: - name: imoNumber in: query type: string description: IMO vessel identification number (7 digits) - name: vesselName in: query type: string description: Vessel name (partial match supported) - name: flagState in: query type: string description: ISO 3166-1 alpha-2 country code for flag state - name: shipType in: query type: string description: DNV ship type classification code - name: classStatus in: query type: string description: Current class status filter - name: limit in: query type: integer - name: offset in: query type: integer outputRawFormat: json outputParameters: - name: result type: object value: $. - name: vessels-imonumber path: /vessels/{imoNumber} operations: - name: getvessel method: GET description: Get vessel classification details inputParameters: - name: imoNumber in: path type: string required: true description: IMO vessel identification number (7 digits) - name: Accept in: header type: string description: Response format outputRawFormat: json outputParameters: - name: result type: object value: $. - name: vessels-imonumber-certificates path: /vessels/{imoNumber}/certificates operations: - name: getvesselcertificates method: GET description: Get vessel classification certificates inputParameters: - name: imoNumber in: path type: string required: true - name: certificateType in: query type: string description: Filter by certificate type - name: status in: query type: string description: Filter by certificate validity status outputRawFormat: json outputParameters: - name: result type: object value: $. - name: vessels-imonumber-surveys path: /vessels/{imoNumber}/surveys operations: - name: getvesselsurveys method: GET description: Get vessel survey records and schedule inputParameters: - name: imoNumber in: path type: string required: true - name: surveyType in: query type: string description: Filter by survey type outputRawFormat: json outputParameters: - name: result type: object value: $. - name: fleets path: /fleets operations: - name: getfleetstatus method: GET description: Get fleet classification status inputParameters: - name: imoNumbers in: query type: string description: Comma-separated list of IMO numbers (max 100) - name: includeExpiredCerts in: query type: boolean outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: dnv-rest description: REST adapter for DNV Class Status API. resources: - path: /vessels name: searchvessels operations: - method: GET name: searchvessels description: Search vessels by classification criteria call: dnv.searchvessels outputParameters: - type: object mapping: $. - path: /vessels/{imoNumber} name: getvessel operations: - method: GET name: getvessel description: Get vessel classification details call: dnv.getvessel with: imoNumber: rest.imoNumber outputParameters: - type: object mapping: $. - path: /vessels/{imoNumber}/certificates name: getvesselcertificates operations: - method: GET name: getvesselcertificates description: Get vessel classification certificates call: dnv.getvesselcertificates with: imoNumber: rest.imoNumber outputParameters: - type: object mapping: $. - path: /vessels/{imoNumber}/surveys name: getvesselsurveys operations: - method: GET name: getvesselsurveys description: Get vessel survey records and schedule call: dnv.getvesselsurveys with: imoNumber: rest.imoNumber outputParameters: - type: object mapping: $. - path: /fleets name: getfleetstatus operations: - method: GET name: getfleetstatus description: Get fleet classification status call: dnv.getfleetstatus outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: dnv-mcp transport: http description: MCP adapter for DNV Class Status API for AI agent use. tools: - name: searchvessels description: Search vessels by classification criteria hints: readOnly: true destructive: false idempotent: true call: dnv.searchvessels with: imoNumber: tools.imoNumber vesselName: tools.vesselName flagState: tools.flagState shipType: tools.shipType classStatus: tools.classStatus limit: tools.limit offset: tools.offset inputParameters: - name: imoNumber type: string description: IMO vessel identification number (7 digits) - name: vesselName type: string description: Vessel name (partial match supported) - name: flagState type: string description: ISO 3166-1 alpha-2 country code for flag state - name: shipType type: string description: DNV ship type classification code - name: classStatus type: string description: Current class status filter - name: limit type: integer description: limit - name: offset type: integer description: offset outputParameters: - type: object mapping: $. - name: getvessel description: Get vessel classification details hints: readOnly: true destructive: false idempotent: true call: dnv.getvessel with: imoNumber: tools.imoNumber inputParameters: - name: imoNumber type: string description: IMO vessel identification number (7 digits) required: true outputParameters: - type: object mapping: $. - name: getvesselcertificates description: Get vessel classification certificates hints: readOnly: true destructive: false idempotent: true call: dnv.getvesselcertificates with: imoNumber: tools.imoNumber certificateType: tools.certificateType status: tools.status inputParameters: - name: imoNumber type: string description: imoNumber required: true - name: certificateType type: string description: Filter by certificate type - name: status type: string description: Filter by certificate validity status outputParameters: - type: object mapping: $. - name: getvesselsurveys description: Get vessel survey records and schedule hints: readOnly: true destructive: false idempotent: true call: dnv.getvesselsurveys with: imoNumber: tools.imoNumber surveyType: tools.surveyType inputParameters: - name: imoNumber type: string description: imoNumber required: true - name: surveyType type: string description: Filter by survey type outputParameters: - type: object mapping: $. - name: getfleetstatus description: Get fleet classification status hints: readOnly: true destructive: false idempotent: true call: dnv.getfleetstatus with: imoNumbers: tools.imoNumbers includeExpiredCerts: tools.includeExpiredCerts inputParameters: - name: imoNumbers type: string description: Comma-separated list of IMO numbers (max 100) - name: includeExpiredCerts type: boolean description: includeExpiredCerts outputParameters: - type: object mapping: $. binds: - namespace: env keys: DNV_TOKEN: DNV_TOKEN