Port Community Systems · Capability

Portbase Port Community System API

Portbase is the Dutch Port Community System providing APIs for customs declarations, cargo manifests, vessel call notifications, berth planning, and port logistics coordination at the Port of Rotterdam and Amsterdam, connecting shipping lines, freight forwarders, customs authorities, and terminal operators.

Run with Naftiko PortCommunitySystemsAPI

What You Can Do

GET
Listvesselcalls — List vessel calls
/vessel-calls
POST
Createvesselcall — Submit vessel call notification
/vessel-calls
GET
Getvesselcall — Get vessel call
/vessel-calls/{vesselCallId}
PUT
Updatevesselcall — Update vessel call
/vessel-calls/{vesselCallId}
POST
Submitcargomanifest — Submit cargo manifest
/cargo-manifests
GET
Getcargomanifest — Get cargo manifest
/cargo-manifests/{manifestId}
POST
Submitimportdeclaration — Submit import customs declaration
/customs/import-declarations
GET
Getcontainer — Get container status
/containers/{containerId}
POST
Submithazardouscargodeclaration — Submit hazardous goods notification
/hazardous-cargo

MCP Tools

listvesselcalls

List vessel calls

read-only idempotent
createvesselcall

Submit vessel call notification

getvesselcall

Get vessel call

read-only idempotent
updatevesselcall

Update vessel call

idempotent
submitcargomanifest

Submit cargo manifest

getcargomanifest

Get cargo manifest

read-only idempotent
submitimportdeclaration

Submit import customs declaration

getcontainer

Get container status

read-only idempotent
submithazardouscargodeclaration

Submit hazardous goods notification

Capability Spec

port-community-systems-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Portbase Port Community System API
  description: Portbase is the Dutch Port Community System providing APIs for customs declarations, cargo manifests, vessel
    call notifications, berth planning, and port logistics coordination at the Port of Rotterdam and Amsterdam, connecting
    shipping lines, freight forwarders, customs authorities, and terminal operators.
  tags:
  - Port
  - Community
  - Systems
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: port-community-systems
    baseUri: https://api.portbase.com/v1
    description: Portbase Port Community System API HTTP API.
    authentication:
      type: bearer
      token: '{{PORT_COMMUNITY_SYSTEMS_TOKEN}}'
    resources:
    - name: vessel-calls
      path: /vessel-calls
      operations:
      - name: listvesselcalls
        method: GET
        description: List vessel calls
        inputParameters:
        - name: portCode
          in: query
          type: string
          description: UN/LOCODE of the port (e.g., NLRTM for Rotterdam)
        - name: status
          in: query
          type: string
          description: Filter by vessel call status
        - name: fromDate
          in: query
          type: string
          description: Earliest expected arrival date
        - name: toDate
          in: query
          type: string
        - name: offset
          in: query
          type: integer
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createvesselcall
        method: POST
        description: Submit vessel call notification
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vessel-calls-vesselcallid
      path: /vessel-calls/{vesselCallId}
      operations:
      - name: getvesselcall
        method: GET
        description: Get vessel call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatevesselcall
        method: PUT
        description: Update vessel call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: cargo-manifests
      path: /cargo-manifests
      operations:
      - name: submitcargomanifest
        method: POST
        description: Submit cargo manifest
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: cargo-manifests-manifestid
      path: /cargo-manifests/{manifestId}
      operations:
      - name: getcargomanifest
        method: GET
        description: Get cargo manifest
        inputParameters:
        - name: manifestId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: customs-import-declarations
      path: /customs/import-declarations
      operations:
      - name: submitimportdeclaration
        method: POST
        description: Submit import customs declaration
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: containers-containerid
      path: /containers/{containerId}
      operations:
      - name: getcontainer
        method: GET
        description: Get container status
        inputParameters:
        - name: containerId
          in: path
          type: string
          required: true
          description: Container number (ISO 6346 format, e.g. MSCU1234567)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: hazardous-cargo
      path: /hazardous-cargo
      operations:
      - name: submithazardouscargodeclaration
        method: POST
        description: Submit hazardous goods notification
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: port-community-systems-rest
    description: REST adapter for Portbase Port Community System API.
    resources:
    - path: /vessel-calls
      name: listvesselcalls
      operations:
      - method: GET
        name: listvesselcalls
        description: List vessel calls
        call: port-community-systems.listvesselcalls
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessel-calls
      name: createvesselcall
      operations:
      - method: POST
        name: createvesselcall
        description: Submit vessel call notification
        call: port-community-systems.createvesselcall
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessel-calls/{vesselCallId}
      name: getvesselcall
      operations:
      - method: GET
        name: getvesselcall
        description: Get vessel call
        call: port-community-systems.getvesselcall
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessel-calls/{vesselCallId}
      name: updatevesselcall
      operations:
      - method: PUT
        name: updatevesselcall
        description: Update vessel call
        call: port-community-systems.updatevesselcall
        outputParameters:
        - type: object
          mapping: $.
    - path: /cargo-manifests
      name: submitcargomanifest
      operations:
      - method: POST
        name: submitcargomanifest
        description: Submit cargo manifest
        call: port-community-systems.submitcargomanifest
        outputParameters:
        - type: object
          mapping: $.
    - path: /cargo-manifests/{manifestId}
      name: getcargomanifest
      operations:
      - method: GET
        name: getcargomanifest
        description: Get cargo manifest
        call: port-community-systems.getcargomanifest
        with:
          manifestId: rest.manifestId
        outputParameters:
        - type: object
          mapping: $.
    - path: /customs/import-declarations
      name: submitimportdeclaration
      operations:
      - method: POST
        name: submitimportdeclaration
        description: Submit import customs declaration
        call: port-community-systems.submitimportdeclaration
        outputParameters:
        - type: object
          mapping: $.
    - path: /containers/{containerId}
      name: getcontainer
      operations:
      - method: GET
        name: getcontainer
        description: Get container status
        call: port-community-systems.getcontainer
        with:
          containerId: rest.containerId
        outputParameters:
        - type: object
          mapping: $.
    - path: /hazardous-cargo
      name: submithazardouscargodeclaration
      operations:
      - method: POST
        name: submithazardouscargodeclaration
        description: Submit hazardous goods notification
        call: port-community-systems.submithazardouscargodeclaration
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: port-community-systems-mcp
    transport: http
    description: MCP adapter for Portbase Port Community System API for AI agent use.
    tools:
    - name: listvesselcalls
      description: List vessel calls
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: port-community-systems.listvesselcalls
      with:
        portCode: tools.portCode
        status: tools.status
        fromDate: tools.fromDate
        toDate: tools.toDate
        offset: tools.offset
        limit: tools.limit
      inputParameters:
      - name: portCode
        type: string
        description: UN/LOCODE of the port (e.g., NLRTM for Rotterdam)
      - name: status
        type: string
        description: Filter by vessel call status
      - name: fromDate
        type: string
        description: Earliest expected arrival date
      - name: toDate
        type: string
        description: toDate
      - name: offset
        type: integer
        description: offset
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: createvesselcall
      description: Submit vessel call notification
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: port-community-systems.createvesselcall
      outputParameters:
      - type: object
        mapping: $.
    - name: getvesselcall
      description: Get vessel call
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: port-community-systems.getvesselcall
      outputParameters:
      - type: object
        mapping: $.
    - name: updatevesselcall
      description: Update vessel call
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: port-community-systems.updatevesselcall
      outputParameters:
      - type: object
        mapping: $.
    - name: submitcargomanifest
      description: Submit cargo manifest
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: port-community-systems.submitcargomanifest
      outputParameters:
      - type: object
        mapping: $.
    - name: getcargomanifest
      description: Get cargo manifest
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: port-community-systems.getcargomanifest
      with:
        manifestId: tools.manifestId
      inputParameters:
      - name: manifestId
        type: string
        description: manifestId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: submitimportdeclaration
      description: Submit import customs declaration
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: port-community-systems.submitimportdeclaration
      outputParameters:
      - type: object
        mapping: $.
    - name: getcontainer
      description: Get container status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: port-community-systems.getcontainer
      with:
        containerId: tools.containerId
      inputParameters:
      - name: containerId
        type: string
        description: Container number (ISO 6346 format, e.g. MSCU1234567)
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: submithazardouscargodeclaration
      description: Submit hazardous goods notification
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: port-community-systems.submithazardouscargodeclaration
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    PORT_COMMUNITY_SYSTEMS_TOKEN: PORT_COMMUNITY_SYSTEMS_TOKEN