Apache Iceberg · Capability

Apache Iceberg REST Catalog API — Catalog API

Apache Iceberg REST Catalog API — Catalog API. 30 operations. Lead operation: Apache Iceberg List Namespaces, Optionally Providing a Parent Namespace to List Underneath. Self-contained Naftiko capability covering one Apache Iceberg business surface.

Run with Naftiko Apache IcebergCatalog API

What You Can Do

GET
Listnamespaces — Apache Iceberg List Namespaces, Optionally Providing a Parent Namespace to List Underneath
/v1/v1/{prefix}/namespaces
POST
Createnamespace — Apache Iceberg Create a Namespace
/v1/v1/{prefix}/namespaces
GET
Loadnamespacemetadata — Apache Iceberg Load the Metadata Properties for a Namespace
/v1/v1/{prefix}/namespaces/{namespace}
HEAD
Namespaceexists — Apache Iceberg Check if a Namespace Exists
/v1/v1/{prefix}/namespaces/{namespace}
DELETE
Dropnamespace — Apache Iceberg Drop a Namespace from the Catalog. Namespace Must Be Empty.
/v1/v1/{prefix}/namespaces/{namespace}
POST
Updateproperties — Apache Iceberg Set or Remove Properties on a Namespace
/v1/v1/{prefix}/namespaces/{namespace}/properties
POST
Registertable — Apache Iceberg Register a Table in the Given Namespace Using Given Metadata File Location
/v1/v1/{prefix}/namespaces/{namespace}/register
POST
Registerview — Apache Iceberg Register a View in the Catalog
/v1/v1/{prefix}/namespaces/{namespace}/register-view
GET
Listtables — Apache Iceberg List All Table Identifiers Underneath a Given Namespace
/v1/v1/{prefix}/namespaces/{namespace}/tables
POST
Createtable — Apache Iceberg Create a Table in the Given Namespace
/v1/v1/{prefix}/namespaces/{namespace}/tables
GET
Loadtable — Apache Iceberg Load a Table from the Catalog
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}
POST
Updatetable — Apache Iceberg Commit Updates to a Table
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}
DELETE
Droptable — Apache Iceberg Drop a Table from the Catalog
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}
HEAD
Tableexists — Apache Iceberg Check if a Table Exists
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}
GET
Loadcredentials — Apache Iceberg Load Vended Credentials for a Table from the Catalog
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/credentials
POST
Reportmetrics — Apache Iceberg Send a Metrics Report to This Endpoint to Be Processed by the Backend
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics
POST
Plantablescan — Apache Iceberg Submit a Scan for Planning
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/plan
GET
Fetchplanningresult — Apache Iceberg Fetches the Result of Scan Planning for a Plan-id
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/plan/{plan-id}
DELETE
Cancelplanning — Apache Iceberg Cancels Scan Planning for a Plan-id
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/plan/{plan-id}
POST
Signrequest — Apache Iceberg Remotely Signs Requests to Object Storage
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/sign
POST
Fetchscantasks — Apache Iceberg Fetches Result Tasks for a Plan Task
/v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/tasks
GET
Listviews — Apache Iceberg List All View Identifiers Underneath a Given Namespace
/v1/v1/{prefix}/namespaces/{namespace}/views
POST
Createview — Apache Iceberg Create a View in the Given Namespace
/v1/v1/{prefix}/namespaces/{namespace}/views
GET
Loadview — Apache Iceberg Load a View from the Catalog
/v1/v1/{prefix}/namespaces/{namespace}/views/{view}
POST
Replaceview — Apache Iceberg Replace a View
/v1/v1/{prefix}/namespaces/{namespace}/views/{view}
DELETE
Dropview — Apache Iceberg Drop a View from the Catalog
/v1/v1/{prefix}/namespaces/{namespace}/views/{view}
HEAD
Viewexists — Apache Iceberg Check if a View Exists
/v1/v1/{prefix}/namespaces/{namespace}/views/{view}
POST
Renametable — Apache Iceberg Rename a Table from its Current Name to a New Name
/v1/v1/{prefix}/tables/rename
POST
Committransaction — Apache Iceberg Commit Updates to Multiple Tables in an Atomic Operation
/v1/v1/{prefix}/transactions/commit
POST
Renameview — Apache Iceberg Rename a View from its Current Name to a New Name
/v1/v1/{prefix}/views/rename

MCP Tools

apache-iceberg-list-namespaces-optionally

Apache Iceberg List Namespaces, Optionally Providing a Parent Namespace to List Underneath

read-only idempotent
apache-iceberg-create-namespace

Apache Iceberg Create a Namespace

apache-iceberg-load-metadata-properties

Apache Iceberg Load the Metadata Properties for a Namespace

read-only idempotent
apache-iceberg-check-if-namespace

Apache Iceberg Check if a Namespace Exists

apache-iceberg-drop-namespace-catalog

Apache Iceberg Drop a Namespace from the Catalog. Namespace Must Be Empty.

idempotent
apache-iceberg-set-remove-properties

Apache Iceberg Set or Remove Properties on a Namespace

apache-iceberg-register-table-given

Apache Iceberg Register a Table in the Given Namespace Using Given Metadata File Location

apache-iceberg-register-view-catalog

Apache Iceberg Register a View in the Catalog

apache-iceberg-list-all-table

Apache Iceberg List All Table Identifiers Underneath a Given Namespace

read-only idempotent
apache-iceberg-create-table-given

Apache Iceberg Create a Table in the Given Namespace

apache-iceberg-load-table-catalog

Apache Iceberg Load a Table from the Catalog

read-only idempotent
apache-iceberg-commit-updates-table

Apache Iceberg Commit Updates to a Table

apache-iceberg-drop-table-catalog

Apache Iceberg Drop a Table from the Catalog

idempotent
apache-iceberg-check-if-table

Apache Iceberg Check if a Table Exists

apache-iceberg-load-vended-credentials

Apache Iceberg Load Vended Credentials for a Table from the Catalog

read-only idempotent
apache-iceberg-send-metrics-report

Apache Iceberg Send a Metrics Report to This Endpoint to Be Processed by the Backend

apache-iceberg-submit-scan-planning

Apache Iceberg Submit a Scan for Planning

apache-iceberg-fetches-result-scan

Apache Iceberg Fetches the Result of Scan Planning for a Plan-id

read-only idempotent
apache-iceberg-cancels-scan-planning

Apache Iceberg Cancels Scan Planning for a Plan-id

idempotent
apache-iceberg-remotely-signs-requests

Apache Iceberg Remotely Signs Requests to Object Storage

apache-iceberg-fetches-result-tasks

Apache Iceberg Fetches Result Tasks for a Plan Task

read-only
apache-iceberg-list-all-view

Apache Iceberg List All View Identifiers Underneath a Given Namespace

read-only idempotent
apache-iceberg-create-view-given

Apache Iceberg Create a View in the Given Namespace

apache-iceberg-load-view-catalog

Apache Iceberg Load a View from the Catalog

read-only idempotent
apache-iceberg-replace-view

Apache Iceberg Replace a View

apache-iceberg-drop-view-catalog

Apache Iceberg Drop a View from the Catalog

idempotent
apache-iceberg-check-if-view

Apache Iceberg Check if a View Exists

apache-iceberg-rename-table-its

Apache Iceberg Rename a Table from its Current Name to a New Name

apache-iceberg-commit-updates-multiple

Apache Iceberg Commit Updates to Multiple Tables in an Atomic Operation

apache-iceberg-rename-view-its

Apache Iceberg Rename a View from its Current Name to a New Name

Capability Spec

rest-catalog-open-catalog-api.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Apache Iceberg REST Catalog API — Catalog API
  description: 'Apache Iceberg REST Catalog API — Catalog API. 30 operations. Lead operation: Apache Iceberg List Namespaces,
    Optionally Providing a Parent Namespace to List Underneath. Self-contained Naftiko capability covering one Apache Iceberg
    business surface.'
  tags:
  - Apache Iceberg
  - Catalog API
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    APACHE_ICEBERG_API_KEY: APACHE_ICEBERG_API_KEY
capability:
  consumes:
  - type: http
    namespace: rest-catalog-open-catalog-api
    baseUri: ''
    description: Apache Iceberg REST Catalog API — Catalog API business capability. Self-contained, no shared references.
    resources:
    - name: v1-prefix-namespaces
      path: /v1/{prefix}/namespaces
      operations:
      - name: listnamespaces
        method: GET
        description: Apache Iceberg List Namespaces, Optionally Providing a Parent Namespace to List Underneath
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: query
          type: string
          description: An optional namespace, underneath which to list namespaces. If not provided, all top-level namespaces
            should be listed. For backward compatibility, empty string
      - name: createnamespace
        method: POST
        description: Apache Iceberg Create a Namespace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-namespaces-namespace
      path: /v1/{prefix}/namespaces/{namespace}
      operations:
      - name: loadnamespacemetadata
        method: GET
        description: Apache Iceberg Load the Metadata Properties for a Namespace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: namespaceexists
        method: HEAD
        description: Apache Iceberg Check if a Namespace Exists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: dropnamespace
        method: DELETE
        description: Apache Iceberg Drop a Namespace from the Catalog. Namespace Must Be Empty.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-prefix-namespaces-namespace-properties
      path: /v1/{prefix}/namespaces/{namespace}/properties
      operations:
      - name: updateproperties
        method: POST
        description: Apache Iceberg Set or Remove Properties on a Namespace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-namespaces-namespace-register
      path: /v1/{prefix}/namespaces/{namespace}/register
      operations:
      - name: registertable
        method: POST
        description: Apache Iceberg Register a Table in the Given Namespace Using Given Metadata File Location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-namespaces-namespace-register-view
      path: /v1/{prefix}/namespaces/{namespace}/register-view
      operations:
      - name: registerview
        method: POST
        description: Apache Iceberg Register a View in the Catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-namespaces-namespace-tables
      path: /v1/{prefix}/namespaces/{namespace}/tables
      operations:
      - name: listtables
        method: GET
        description: Apache Iceberg List All Table Identifiers Underneath a Given Namespace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createtable
        method: POST
        description: Apache Iceberg Create a Table in the Given Namespace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-namespaces-namespace-tables-table
      path: /v1/{prefix}/namespaces/{namespace}/tables/{table}
      operations:
      - name: loadtable
        method: GET
        description: Apache Iceberg Load a Table from the Catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: If-None-Match
          in: header
          type: string
          description: An optional header that allows the server to return 304 (Not Modified) if the metadata is current.
            The content is the value of the ETag received in a CreateTabl
        - name: snapshots
          in: query
          type: string
          description: The snapshots to return in the body of the metadata. Setting the value to `all` would return the full
            set of snapshots currently valid for the table. Setting th
      - name: updatetable
        method: POST
        description: Apache Iceberg Commit Updates to a Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: droptable
        method: DELETE
        description: Apache Iceberg Drop a Table from the Catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: purgeRequested
          in: query
          type: boolean
          description: Whether the user requested to purge the underlying table's data and metadata
      - name: tableexists
        method: HEAD
        description: Apache Iceberg Check if a Table Exists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-prefix-namespaces-namespace-tables-table-credentials
      path: /v1/{prefix}/namespaces/{namespace}/tables/{table}/credentials
      operations:
      - name: loadcredentials
        method: GET
        description: Apache Iceberg Load Vended Credentials for a Table from the Catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: planId
          in: query
          type: string
          description: The plan ID that has been used for server-side scan planning
    - name: v1-prefix-namespaces-namespace-tables-table-metrics
      path: /v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics
      operations:
      - name: reportmetrics
        method: POST
        description: Apache Iceberg Send a Metrics Report to This Endpoint to Be Processed by the Backend
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-namespaces-namespace-tables-table-plan
      path: /v1/{prefix}/namespaces/{namespace}/tables/{table}/plan
      operations:
      - name: plantablescan
        method: POST
        description: Apache Iceberg Submit a Scan for Planning
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-prefix-namespaces-namespace-tables-table-plan-plan-id
      path: /v1/{prefix}/namespaces/{namespace}/tables/{table}/plan/{plan-id}
      operations:
      - name: fetchplanningresult
        method: GET
        description: Apache Iceberg Fetches the Result of Scan Planning for a Plan-id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: cancelplanning
        method: DELETE
        description: Apache Iceberg Cancels Scan Planning for a Plan-id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-prefix-namespaces-namespace-tables-table-sign
      path: /v1/{prefix}/namespaces/{namespace}/tables/{table}/sign
      operations:
      - name: signrequest
        method: POST
        description: Apache Iceberg Remotely Signs Requests to Object Storage
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-namespaces-namespace-tables-table-tasks
      path: /v1/{prefix}/namespaces/{namespace}/tables/{table}/tasks
      operations:
      - name: fetchscantasks
        method: POST
        description: Apache Iceberg Fetches Result Tasks for a Plan Task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-prefix-namespaces-namespace-views
      path: /v1/{prefix}/namespaces/{namespace}/views
      operations:
      - name: listviews
        method: GET
        description: Apache Iceberg List All View Identifiers Underneath a Given Namespace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createview
        method: POST
        description: Apache Iceberg Create a View in the Given Namespace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-namespaces-namespace-views-view
      path: /v1/{prefix}/namespaces/{namespace}/views/{view}
      operations:
      - name: loadview
        method: GET
        description: Apache Iceberg Load a View from the Catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: replaceview
        method: POST
        description: Apache Iceberg Replace a View
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: dropview
        method: DELETE
        description: Apache Iceberg Drop a View from the Catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: viewexists
        method: HEAD
        description: Apache Iceberg Check if a View Exists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-prefix-tables-rename
      path: /v1/{prefix}/tables/rename
      operations:
      - name: renametable
        method: POST
        description: Apache Iceberg Rename a Table from its Current Name to a New Name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-transactions-commit
      path: /v1/{prefix}/transactions/commit
      operations:
      - name: committransaction
        method: POST
        description: Apache Iceberg Commit Updates to Multiple Tables in an Atomic Operation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-prefix-views-rename
      path: /v1/{prefix}/views/rename
      operations:
      - name: renameview
        method: POST
        description: Apache Iceberg Rename a View from its Current Name to a New Name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.APACHE_ICEBERG_API_KEY}}'
  exposes:
  - type: rest
    namespace: rest-catalog-open-catalog-api-rest
    port: 8080
    description: REST adapter for Apache Iceberg REST Catalog API — Catalog API. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/v1/{prefix}/namespaces
      name: v1-prefix-namespaces
      description: REST surface for v1-prefix-namespaces.
      operations:
      - method: GET
        name: listnamespaces
        description: Apache Iceberg List Namespaces, Optionally Providing a Parent Namespace to List Underneath
        call: rest-catalog-open-catalog-api.listnamespaces
        with:
          parent: rest.parent
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createnamespace
        description: Apache Iceberg Create a Namespace
        call: rest-catalog-open-catalog-api.createnamespace
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}
      name: v1-prefix-namespaces-namespace
      description: REST surface for v1-prefix-namespaces-namespace.
      operations:
      - method: GET
        name: loadnamespacemetadata
        description: Apache Iceberg Load the Metadata Properties for a Namespace
        call: rest-catalog-open-catalog-api.loadnamespacemetadata
        outputParameters:
        - type: object
          mapping: $.
      - method: HEAD
        name: namespaceexists
        description: Apache Iceberg Check if a Namespace Exists
        call: rest-catalog-open-catalog-api.namespaceexists
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: dropnamespace
        description: Apache Iceberg Drop a Namespace from the Catalog. Namespace Must Be Empty.
        call: rest-catalog-open-catalog-api.dropnamespace
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/properties
      name: v1-prefix-namespaces-namespace-properties
      description: REST surface for v1-prefix-namespaces-namespace-properties.
      operations:
      - method: POST
        name: updateproperties
        description: Apache Iceberg Set or Remove Properties on a Namespace
        call: rest-catalog-open-catalog-api.updateproperties
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/register
      name: v1-prefix-namespaces-namespace-register
      description: REST surface for v1-prefix-namespaces-namespace-register.
      operations:
      - method: POST
        name: registertable
        description: Apache Iceberg Register a Table in the Given Namespace Using Given Metadata File Location
        call: rest-catalog-open-catalog-api.registertable
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/register-view
      name: v1-prefix-namespaces-namespace-register-view
      description: REST surface for v1-prefix-namespaces-namespace-register-view.
      operations:
      - method: POST
        name: registerview
        description: Apache Iceberg Register a View in the Catalog
        call: rest-catalog-open-catalog-api.registerview
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/tables
      name: v1-prefix-namespaces-namespace-tables
      description: REST surface for v1-prefix-namespaces-namespace-tables.
      operations:
      - method: GET
        name: listtables
        description: Apache Iceberg List All Table Identifiers Underneath a Given Namespace
        call: rest-catalog-open-catalog-api.listtables
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createtable
        description: Apache Iceberg Create a Table in the Given Namespace
        call: rest-catalog-open-catalog-api.createtable
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/tables/{table}
      name: v1-prefix-namespaces-namespace-tables-table
      description: REST surface for v1-prefix-namespaces-namespace-tables-table.
      operations:
      - method: GET
        name: loadtable
        description: Apache Iceberg Load a Table from the Catalog
        call: rest-catalog-open-catalog-api.loadtable
        with:
          If-None-Match: rest.If-None-Match
          snapshots: rest.snapshots
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updatetable
        description: Apache Iceberg Commit Updates to a Table
        call: rest-catalog-open-catalog-api.updatetable
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: droptable
        description: Apache Iceberg Drop a Table from the Catalog
        call: rest-catalog-open-catalog-api.droptable
        with:
          purgeRequested: rest.purgeRequested
        outputParameters:
        - type: object
          mapping: $.
      - method: HEAD
        name: tableexists
        description: Apache Iceberg Check if a Table Exists
        call: rest-catalog-open-catalog-api.tableexists
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/credentials
      name: v1-prefix-namespaces-namespace-tables-table-credentials
      description: REST surface for v1-prefix-namespaces-namespace-tables-table-credentials.
      operations:
      - method: GET
        name: loadcredentials
        description: Apache Iceberg Load Vended Credentials for a Table from the Catalog
        call: rest-catalog-open-catalog-api.loadcredentials
        with:
          planId: rest.planId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics
      name: v1-prefix-namespaces-namespace-tables-table-metrics
      description: REST surface for v1-prefix-namespaces-namespace-tables-table-metrics.
      operations:
      - method: POST
        name: reportmetrics
        description: Apache Iceberg Send a Metrics Report to This Endpoint to Be Processed by the Backend
        call: rest-catalog-open-catalog-api.reportmetrics
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/plan
      name: v1-prefix-namespaces-namespace-tables-table-plan
      description: REST surface for v1-prefix-namespaces-namespace-tables-table-plan.
      operations:
      - method: POST
        name: plantablescan
        description: Apache Iceberg Submit a Scan for Planning
        call: rest-catalog-open-catalog-api.plantablescan
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/plan/{plan-id}
      name: v1-prefix-namespaces-namespace-tables-table-plan-plan-id
      description: REST surface for v1-prefix-namespaces-namespace-tables-table-plan-plan-id.
      operations:
      - method: GET
        name: fetchplanningresult
        description: Apache Iceberg Fetches the Result of Scan Planning for a Plan-id
        call: rest-catalog-open-catalog-api.fetchplanningresult
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: cancelplanning
        description: Apache Iceberg Cancels Scan Planning for a Plan-id
        call: rest-catalog-open-catalog-api.cancelplanning
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/sign
      name: v1-prefix-namespaces-namespace-tables-table-sign
      description: REST surface for v1-prefix-namespaces-namespace-tables-table-sign.
      operations:
      - method: POST
        name: signrequest
        description: Apache Iceberg Remotely Signs Requests to Object Storage
        call: rest-catalog-open-catalog-api.signrequest
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/tables/{table}/tasks
      name: v1-prefix-namespaces-namespace-tables-table-tasks
      description: REST surface for v1-prefix-namespaces-namespace-tables-table-tasks.
      operations:
      - method: POST
        name: fetchscantasks
        description: Apache Iceberg Fetches Result Tasks for a Plan Task
        call: rest-catalog-open-catalog-api.fetchscantasks
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/views
      name: v1-prefix-namespaces-namespace-views
      description: REST surface for v1-prefix-namespaces-namespace-views.
      operations:
      - method: GET
        name: listviews
        description: Apache Iceberg List All View Identifiers Underneath a Given Namespace
        call: rest-catalog-open-catalog-api.listviews
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createview
        description: Apache Iceberg Create a View in the Given Namespace
        call: rest-catalog-open-catalog-api.createview
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/namespaces/{namespace}/views/{view}
      name: v1-prefix-namespaces-namespace-views-view
      description: REST surface for v1-prefix-namespaces-namespace-views-view.
      operations:
      - method: GET
        name: loadview
        description: Apache Iceberg Load a View from the Catalog
        call: rest-catalog-open-catalog-api.loadview
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: replaceview
        description: Apache Iceberg Replace a View
        call: rest-catalog-open-catalog-api.replaceview
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: dropview
        description: Apache Iceberg Drop a View from the Catalog
        call: rest-catalog-open-catalog-api.dropview
        outputParameters:
        - type: object
          mapping: $.
      - method: HEAD
        name: viewexists
        description: Apache Iceberg Check if a View Exists
        call: rest-catalog-open-catalog-api.viewexists
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/tables/rename
      name: v1-prefix-tables-rename
      description: REST surface for v1-prefix-tables-rename.
      operations:
      - method: POST
        name: renametable
        description: Apache Iceberg Rename a Table from its Current Name to a New Name
        call: rest-catalog-open-catalog-api.renametable
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/transactions/commit
      name: v1-prefix-transactions-commit
      description: REST surface for v1-prefix-transactions-commit.
      operations:
      - method: POST
        name: committransaction
        description: Apache Iceberg Commit Updates to Multiple Tables in an Atomic Operation
        call: rest-catalog-open-catalog-api.committransaction
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/{prefix}/views/rename
      name: v1-prefix-views-rename
      description: REST surface for v1-prefix-views-rename.
      operations:
      - method: POST
        name: renameview
        description: Apache Iceberg Rename a View from its Current Name to a New Name
        call: rest-catalog-open-catalog-api.renameview
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: rest-catalog-open-catalog-api-mcp
    port: 9090
    transport: http
    description: MCP adapter for Apache Iceberg REST Catalog API — Catalog API. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: apache-iceberg-list-namespaces-optionally
      description: Apache Iceberg List Namespaces, Optionally Providing a Parent Namespace to List Underneath
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-catalog-open-catalog-api.listnamespaces
      with:
        parent: tools.parent
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-create-namespace
      description: Apache Iceberg Create a Namespace
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-catalog-open-catalog-api.createnamespace
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-load-metadata-properties
      description: Apache Iceberg Load the Metadata Properties for a Namespace
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-catalog-open-catalog-api.loadnamespacemetadata
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-check-if-namespace
      description: Apache Iceberg Check if a Namespace Exists
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-catalog-open-catalog-api.namespaceexists
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-drop-namespace-catalog
      description: Apache Iceberg Drop a Namespace from the Catalog. Namespace Must Be Empty.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: rest-catalog-open-catalog-api.dropnamespace
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-set-remove-properties
      description: Apache Iceberg Set or Remove Properties on a Namespace
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-catalog-open-catalog-api.updateproperties
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-register-table-given
      description: Apache Iceberg Register a Table in the Given Namespace Using Given Metadata File Location
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-catalog-open-catalog-api.registertable
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-register-view-catalog
      description: Apache Iceberg Register a View in the Catalog
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-catalog-open-catalog-api.registerview
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-list-all-table
      description: Apache Iceberg List All Table Identifiers Underneath a Given Namespace
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-catalog-open-catalog-api.listtables
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-create-table-given
      description: Apache Iceberg Create a Table in the Given Namespace
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-catalog-open-catalog-api.createtable
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-load-table-catalog
      description: Apache Iceberg Load a Table from the Catalog
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-catalog-open-catalog-api.loadtable
      with:
        If-None-Match: tools.If-None-Match
        snapshots: tools.snapshots
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-commit-updates-table
      description: Apache Iceberg Commit Updates to a Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-catalog-open-catalog-api.updatetable
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-drop-table-catalog
      description: Apache Iceberg Drop a Table from the Catalog
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: rest-catalog-open-catalog-api.droptable
      with:
        purgeRequested: tools.purgeRequested
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-check-if-table
      description: Apache Iceberg Check if a Table Exists
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-catalog-open-catalog-api.tableexists
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-load-vended-credentials
      description: Apache Iceberg Load Vended Credentials for a Table from the Catalog
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-catalog-open-catalog-api.loadcredentials
      with:
        planId: tools.planId
      outputParameters:
      - type: object
        mapping: $.
    - name: apache-iceberg-send-metrics-report
      description: Apache Iceberg Send a Metrics Report to This Endpoint to Be Processed by the Backend
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: rest-catalog-open-catalog-api.reportmetrics
      with:
        body: tools.body
 

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/apache-iceberg/refs/heads/main/capabilities/rest-catalog-open-catalog-api.yaml