Snowflake · Capability

Snowflake Dynamic Table API — dynamic-table

Snowflake Dynamic Table API — dynamic-table. 12 operations. Lead operation: List Dynamic Tables. Self-contained Naftiko capability covering one Snowflake business surface.

Run with Naftiko Snowflakedynamic-table

What You Can Do

GET
Listdynamictables — List Dynamic Tables
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables
POST
Createdynamictable — Create a Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables
GET
Fetchdynamictable — Fetch a Dynamic Table.
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}
DELETE
Deletedynamictable — Delete a Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}
POST
Clonedynamictable — Clone Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-clone
POST
Refreshdynamictable — Refresh the Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-refresh
POST
Resumedynamictable — Resume Refreshes on the Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-resume
POST
Resumereclusterdynamictable — Resume Recluster of a Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-resume-recluster
POST
Suspenddynamictable — Suspend Refreshes on the Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-suspend
POST
Suspendreclusterdynamictable — Suspend Recluster of a Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-suspend-recluster
POST
Swapwithdynamictable — Swap With Another Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-swap-with
POST
Undropdynamictable — Undrop a Dynamic Table
/v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-undrop

MCP Tools

list-dynamic-tables

List Dynamic Tables

read-only idempotent
create-dynamic-table

Create a Dynamic Table

fetch-dynamic-table

Fetch a Dynamic Table.

read-only idempotent
delete-dynamic-table

Delete a Dynamic Table

idempotent
clone-dynamic-table

Clone Dynamic Table

refresh-dynamic-table

Refresh the Dynamic Table

resume-refreshes-dynamic-table

Resume Refreshes on the Dynamic Table

resume-recluster-dynamic-table

Resume Recluster of a Dynamic Table

suspend-refreshes-dynamic-table

Suspend Refreshes on the Dynamic Table

suspend-recluster-dynamic-table

Suspend Recluster of a Dynamic Table

swap-another-dynamic-table

Swap With Another Dynamic Table

undrop-dynamic-table

Undrop a Dynamic Table

Capability Spec

dynamic-table-dynamic-table.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Snowflake Dynamic Table API — dynamic-table
  description: 'Snowflake Dynamic Table API — dynamic-table. 12 operations. Lead operation: List Dynamic Tables. Self-contained
    Naftiko capability covering one Snowflake business surface.'
  tags:
  - Snowflake
  - dynamic-table
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SNOWFLAKE_API_KEY: SNOWFLAKE_API_KEY
capability:
  consumes:
  - type: http
    namespace: dynamic-table-dynamic-table
    baseUri: https://org-account.snowflakecomputing.com
    description: Snowflake Dynamic Table API — dynamic-table business capability. Self-contained, no shared references.
    resources:
    - name: api-v2-databases-database-schemas-schema-dynamic-tables
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables
      operations:
      - name: listdynamictables
        method: GET
        description: List Dynamic Tables
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: deep
          in: query
          type: boolean
          description: Optionally includes dependency information of the dynamic table.
      - name: createdynamictable
        method: POST
        description: Create a Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v2-databases-database-schemas-schema-dynamic-tables-name
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}
      operations:
      - name: fetchdynamictable
        method: GET
        description: Fetch a Dynamic Table.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletedynamictable
        method: DELETE
        description: Delete a Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:clone
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:clone
      operations:
      - name: clonedynamictable
        method: POST
        description: Clone Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: targetDatabase
          in: query
          type: string
          description: Database of the newly created dynamic table. Defaults to the source table's database.
        - name: targetSchema
          in: query
          type: string
          description: Schema of the newly created dynamic table. Defaults to the source table's schema.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:refresh
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:refresh
      operations:
      - name: refreshdynamictable
        method: POST
        description: Refresh the Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:resume
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:resume
      operations:
      - name: resumedynamictable
        method: POST
        description: Resume Refreshes on the Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:resume-recluster
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:resume-recluster
      operations:
      - name: resumereclusterdynamictable
        method: POST
        description: Resume Recluster of a Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:suspend
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:suspend
      operations:
      - name: suspenddynamictable
        method: POST
        description: Suspend Refreshes on the Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:suspend-recluster
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:suspend-recluster
      operations:
      - name: suspendreclusterdynamictable
        method: POST
        description: Suspend Recluster of a Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:swap-with
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:swap-with
      operations:
      - name: swapwithdynamictable
        method: POST
        description: Swap With Another Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: targetName
          in: query
          type: string
          description: The name of the target dynamic table to be swapped with.
          required: true
        - name: targetDatabase
          in: query
          type: string
          description: Database of the target dynamic table. Defaults to the source table's database.
        - name: targetSchema
          in: query
          type: string
          description: Schema of the target dynamic table. Defaults to the source table's schema.
    - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:undrop
      path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:undrop
      operations:
      - name: undropdynamictable
        method: POST
        description: Undrop a Dynamic Table
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    namespace: dynamic-table-dynamic-table-rest
    port: 8080
    description: REST adapter for Snowflake Dynamic Table API — dynamic-table. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables
      name: api-v2-databases-database-schemas-schema-dynamic-tables
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables.
      operations:
      - method: GET
        name: listdynamictables
        description: List Dynamic Tables
        call: dynamic-table-dynamic-table.listdynamictables
        with:
          deep: rest.deep
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createdynamictable
        description: Create a Dynamic Table
        call: dynamic-table-dynamic-table.createdynamictable
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}
      name: api-v2-databases-database-schemas-schema-dynamic-tables-name
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name.
      operations:
      - method: GET
        name: fetchdynamictable
        description: Fetch a Dynamic Table.
        call: dynamic-table-dynamic-table.fetchdynamictable
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletedynamictable
        description: Delete a Dynamic Table
        call: dynamic-table-dynamic-table.deletedynamictable
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-clone
      name: api-v2-databases-database-schemas-schema-dynamic-tables-name-clone
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:clone.
      operations:
      - method: POST
        name: clonedynamictable
        description: Clone Dynamic Table
        call: dynamic-table-dynamic-table.clonedynamictable
        with:
          targetDatabase: rest.targetDatabase
          targetSchema: rest.targetSchema
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-refresh
      name: api-v2-databases-database-schemas-schema-dynamic-tables-name-refresh
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:refresh.
      operations:
      - method: POST
        name: refreshdynamictable
        description: Refresh the Dynamic Table
        call: dynamic-table-dynamic-table.refreshdynamictable
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-resume
      name: api-v2-databases-database-schemas-schema-dynamic-tables-name-resume
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:resume.
      operations:
      - method: POST
        name: resumedynamictable
        description: Resume Refreshes on the Dynamic Table
        call: dynamic-table-dynamic-table.resumedynamictable
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-resume-recluster
      name: api-v2-databases-database-schemas-schema-dynamic-tables-name-resume-recluster
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:resume-recluster.
      operations:
      - method: POST
        name: resumereclusterdynamictable
        description: Resume Recluster of a Dynamic Table
        call: dynamic-table-dynamic-table.resumereclusterdynamictable
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-suspend
      name: api-v2-databases-database-schemas-schema-dynamic-tables-name-suspend
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:suspend.
      operations:
      - method: POST
        name: suspenddynamictable
        description: Suspend Refreshes on the Dynamic Table
        call: dynamic-table-dynamic-table.suspenddynamictable
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-suspend-recluster
      name: api-v2-databases-database-schemas-schema-dynamic-tables-name-suspend-recluster
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:suspend-recluster.
      operations:
      - method: POST
        name: suspendreclusterdynamictable
        description: Suspend Recluster of a Dynamic Table
        call: dynamic-table-dynamic-table.suspendreclusterdynamictable
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-swap-with
      name: api-v2-databases-database-schemas-schema-dynamic-tables-name-swap-with
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:swap-with.
      operations:
      - method: POST
        name: swapwithdynamictable
        description: Swap With Another Dynamic Table
        call: dynamic-table-dynamic-table.swapwithdynamictable
        with:
          targetName: rest.targetName
          targetDatabase: rest.targetDatabase
          targetSchema: rest.targetSchema
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-undrop
      name: api-v2-databases-database-schemas-schema-dynamic-tables-name-undrop
      description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:undrop.
      operations:
      - method: POST
        name: undropdynamictable
        description: Undrop a Dynamic Table
        call: dynamic-table-dynamic-table.undropdynamictable
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: dynamic-table-dynamic-table-mcp
    port: 9090
    transport: http
    description: MCP adapter for Snowflake Dynamic Table API — dynamic-table. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: list-dynamic-tables
      description: List Dynamic Tables
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dynamic-table-dynamic-table.listdynamictables
      with:
        deep: tools.deep
      outputParameters:
      - type: object
        mapping: $.
    - name: create-dynamic-table
      description: Create a Dynamic Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: dynamic-table-dynamic-table.createdynamictable
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: fetch-dynamic-table
      description: Fetch a Dynamic Table.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dynamic-table-dynamic-table.fetchdynamictable
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-dynamic-table
      description: Delete a Dynamic Table
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: dynamic-table-dynamic-table.deletedynamictable
      outputParameters:
      - type: object
        mapping: $.
    - name: clone-dynamic-table
      description: Clone Dynamic Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: dynamic-table-dynamic-table.clonedynamictable
      with:
        targetDatabase: tools.targetDatabase
        targetSchema: tools.targetSchema
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: refresh-dynamic-table
      description: Refresh the Dynamic Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: dynamic-table-dynamic-table.refreshdynamictable
      outputParameters:
      - type: object
        mapping: $.
    - name: resume-refreshes-dynamic-table
      description: Resume Refreshes on the Dynamic Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: dynamic-table-dynamic-table.resumedynamictable
      outputParameters:
      - type: object
        mapping: $.
    - name: resume-recluster-dynamic-table
      description: Resume Recluster of a Dynamic Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: dynamic-table-dynamic-table.resumereclusterdynamictable
      outputParameters:
      - type: object
        mapping: $.
    - name: suspend-refreshes-dynamic-table
      description: Suspend Refreshes on the Dynamic Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: dynamic-table-dynamic-table.suspenddynamictable
      outputParameters:
      - type: object
        mapping: $.
    - name: suspend-recluster-dynamic-table
      description: Suspend Recluster of a Dynamic Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: dynamic-table-dynamic-table.suspendreclusterdynamictable
      outputParameters:
      - type: object
        mapping: $.
    - name: swap-another-dynamic-table
      description: Swap With Another Dynamic Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: dynamic-table-dynamic-table.swapwithdynamictable
      with:
        targetName: tools.targetName
        targetDatabase: tools.targetDatabase
        targetSchema: tools.targetSchema
      outputParameters:
      - type: object
        mapping: $.
    - name: undrop-dynamic-table
      description: Undrop a Dynamic Table
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: dynamic-table-dynamic-table.undropdynamictable
      outputParameters:
      - type: object
        mapping: $.