Snowflake · Capability

Snowflake Database API — database

Snowflake Database API — database. 15 operations. Lead operation: List Databases.. Self-contained Naftiko capability covering one Snowflake business surface.

Run with Naftiko Snowflakedatabase

What You Can Do

GET
Listdatabases — List Databases.
/v1/api/v2/databases
POST
Createdatabase — Create a Database.
/v1/api/v2/databases
GET
Fetchdatabase — Fetches a database.
/v1/api/v2/databases/{name}
PUT
Createoralterdatabase — Create a New, or Alters an Existing, Database.
/v1/api/v2/databases/{name}
DELETE
Deletedatabase — Delete a Database.
/v1/api/v2/databases/{name}
POST
Disabledatabasefailover — Disable Database Failover.
/v1/api/v2/databases/{name}/failover-disable
POST
Enabledatabasefailover — Enable Database Failover.
/v1/api/v2/databases/{name}/failover-enable
POST
Primarydatabasefailover — Set a Primary Database.
/v1/api/v2/databases/{name}/failover-primary
POST
Disabledatabasereplication — Disable Database Replication.
/v1/api/v2/databases/{name}/replication-disable
POST
Enabledatabasereplication — Enable Database Replication.
/v1/api/v2/databases/{name}/replication-enable
POST
Refreshdatabasereplication — Refresh Database Replications.
/v1/api/v2/databases/{name}/replication-refresh
POST
Clonedatabase — Clone a Database.
/v1/api/v2/databases/name-clone
POST
Createdatabasefromsharedeprecated — Create a Database From a Share.
/v1/api/v2/databases/name-from-share
POST
Undropdatabase — Undrop a Database.
/v1/api/v2/databases/name-undrop
POST
Createdatabasefromshare — Create a Database From a Share.
/v1/api/v2/databases-from-share

MCP Tools

list-databases

List Databases.

read-only idempotent
create-database

Create a Database.

fetches-database

Fetches a database.

read-only idempotent
create-new-alters-existing-database

Create a New, or Alters an Existing, Database.

idempotent
delete-database

Delete a Database.

idempotent
disable-database-failover

Disable Database Failover.

enable-database-failover

Enable Database Failover.

set-primary-database

Set a Primary Database.

disable-database-replication

Disable Database Replication.

enable-database-replication

Enable Database Replication.

refresh-database-replications

Refresh Database Replications.

clone-database

Clone a Database.

create-database-share

Create a Database From a Share.

undrop-database

Undrop a Database.

create-database-share-2

Create a Database From a Share.

Capability Spec

database-database.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Snowflake Database API — database
  description: 'Snowflake Database API — database. 15 operations. Lead operation: List Databases.. Self-contained Naftiko
    capability covering one Snowflake business surface.'
  tags:
  - Snowflake
  - database
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SNOWFLAKE_API_KEY: SNOWFLAKE_API_KEY
capability:
  consumes:
  - type: http
    namespace: database-database
    baseUri: https://org-account.snowflakecomputing.com
    description: Snowflake Database API — database business capability. Self-contained, no shared references.
    resources:
    - name: api-v2-databases
      path: /api/v2/databases
      operations:
      - name: listdatabases
        method: GET
        description: List Databases.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: history
          in: query
          type: boolean
          description: Optionally includes dropped databases that have not yet been purged.
      - name: createdatabase
        method: POST
        description: Create a Database.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: kind
          in: query
          type: string
          description: Type of database to create. Currently, Snowflake supports only `transient` and `permanent` (also represented
            by the empty string).
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v2-databases-name
      path: /api/v2/databases/{name}
      operations:
      - name: fetchdatabase
        method: GET
        description: Fetches a database.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createoralterdatabase
        method: PUT
        description: Create a New, or Alters an Existing, Database.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletedatabase
        method: DELETE
        description: Delete a Database.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: restrict
          in: query
          type: boolean
          description: Whether to drop the database if foreign keys exist that reference any tables in the database.
    - name: api-v2-databases-name-failover:disable
      path: /api/v2/databases/{name}/failover:disable
      operations:
      - name: disabledatabasefailover
        method: POST
        description: Disable Database Failover.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-v2-databases-name-failover:enable
      path: /api/v2/databases/{name}/failover:enable
      operations:
      - name: enabledatabasefailover
        method: POST
        description: Enable Database Failover.
        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-name-failover:primary
      path: /api/v2/databases/{name}/failover:primary
      operations:
      - name: primarydatabasefailover
        method: POST
        description: Set a Primary Database.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v2-databases-name-replication:disable
      path: /api/v2/databases/{name}/replication:disable
      operations:
      - name: disabledatabasereplication
        method: POST
        description: Disable Database Replication.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-v2-databases-name-replication:enable
      path: /api/v2/databases/{name}/replication:enable
      operations:
      - name: enabledatabasereplication
        method: POST
        description: Enable Database Replication.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ignore_edition_check
          in: query
          type: boolean
          description: 'Whether to allow replicating data to accounts on lower editions. Default: `true`.'
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v2-databases-name-replication:refresh
      path: /api/v2/databases/{name}/replication:refresh
      operations:
      - name: refreshdatabasereplication
        method: POST
        description: Refresh Database Replications.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v2-databases-name}:clone
      path: /api/v2/databases/{name}:clone
      operations:
      - name: clonedatabase
        method: POST
        description: Clone a Database.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: kind
          in: query
          type: string
          description: Type of database to create. Currently, Snowflake supports only `transient` and `permanent` (also represented
            by the empty string).
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v2-databases-name}:from_share
      path: /api/v2/databases/{name}:from_share
      operations:
      - name: createdatabasefromsharedeprecated
        method: POST
        description: Create a Database From a Share.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: share
          in: query
          type: string
          description: ID of the share from which to create the database, in the form "<provider_account>.<share_name>".
    - name: api-v2-databases-name}:undrop
      path: /api/v2/databases/{name}:undrop
      operations:
      - name: undropdatabase
        method: POST
        description: Undrop a Database.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v2-databases:from-share
      path: /api/v2/databases:from-share
      operations:
      - name: createdatabasefromshare
        method: POST
        description: Create a Database From a Share.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: share
          in: query
          type: string
          description: ID of the share from which to create the database, in the form "<provider_account>.<share_name>".
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
  exposes:
  - type: rest
    namespace: database-database-rest
    port: 8080
    description: REST adapter for Snowflake Database API — database. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/api/v2/databases
      name: api-v2-databases
      description: REST surface for api-v2-databases.
      operations:
      - method: GET
        name: listdatabases
        description: List Databases.
        call: database-database.listdatabases
        with:
          history: rest.history
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createdatabase
        description: Create a Database.
        call: database-database.createdatabase
        with:
          kind: rest.kind
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{name}
      name: api-v2-databases-name
      description: REST surface for api-v2-databases-name.
      operations:
      - method: GET
        name: fetchdatabase
        description: Fetches a database.
        call: database-database.fetchdatabase
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: createoralterdatabase
        description: Create a New, or Alters an Existing, Database.
        call: database-database.createoralterdatabase
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletedatabase
        description: Delete a Database.
        call: database-database.deletedatabase
        with:
          restrict: rest.restrict
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{name}/failover-disable
      name: api-v2-databases-name-failover-disable
      description: REST surface for api-v2-databases-name-failover:disable.
      operations:
      - method: POST
        name: disabledatabasefailover
        description: Disable Database Failover.
        call: database-database.disabledatabasefailover
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{name}/failover-enable
      name: api-v2-databases-name-failover-enable
      description: REST surface for api-v2-databases-name-failover:enable.
      operations:
      - method: POST
        name: enabledatabasefailover
        description: Enable Database Failover.
        call: database-database.enabledatabasefailover
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{name}/failover-primary
      name: api-v2-databases-name-failover-primary
      description: REST surface for api-v2-databases-name-failover:primary.
      operations:
      - method: POST
        name: primarydatabasefailover
        description: Set a Primary Database.
        call: database-database.primarydatabasefailover
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{name}/replication-disable
      name: api-v2-databases-name-replication-disable
      description: REST surface for api-v2-databases-name-replication:disable.
      operations:
      - method: POST
        name: disabledatabasereplication
        description: Disable Database Replication.
        call: database-database.disabledatabasereplication
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{name}/replication-enable
      name: api-v2-databases-name-replication-enable
      description: REST surface for api-v2-databases-name-replication:enable.
      operations:
      - method: POST
        name: enabledatabasereplication
        description: Enable Database Replication.
        call: database-database.enabledatabasereplication
        with:
          ignore_edition_check: rest.ignore_edition_check
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/{name}/replication-refresh
      name: api-v2-databases-name-replication-refresh
      description: REST surface for api-v2-databases-name-replication:refresh.
      operations:
      - method: POST
        name: refreshdatabasereplication
        description: Refresh Database Replications.
        call: database-database.refreshdatabasereplication
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/name-clone
      name: api-v2-databases-name-clone
      description: REST surface for api-v2-databases-name}:clone.
      operations:
      - method: POST
        name: clonedatabase
        description: Clone a Database.
        call: database-database.clonedatabase
        with:
          kind: rest.kind
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/name-from-share
      name: api-v2-databases-name-from-share
      description: REST surface for api-v2-databases-name}:from_share.
      operations:
      - method: POST
        name: createdatabasefromsharedeprecated
        description: Create a Database From a Share.
        call: database-database.createdatabasefromsharedeprecated
        with:
          share: rest.share
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases/name-undrop
      name: api-v2-databases-name-undrop
      description: REST surface for api-v2-databases-name}:undrop.
      operations:
      - method: POST
        name: undropdatabase
        description: Undrop a Database.
        call: database-database.undropdatabase
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/databases-from-share
      name: api-v2-databases-from-share
      description: REST surface for api-v2-databases:from-share.
      operations:
      - method: POST
        name: createdatabasefromshare
        description: Create a Database From a Share.
        call: database-database.createdatabasefromshare
        with:
          share: rest.share
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: database-database-mcp
    port: 9090
    transport: http
    description: MCP adapter for Snowflake Database API — database. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-databases
      description: List Databases.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: database-database.listdatabases
      with:
        history: tools.history
      outputParameters:
      - type: object
        mapping: $.
    - name: create-database
      description: Create a Database.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.createdatabase
      with:
        kind: tools.kind
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: fetches-database
      description: Fetches a database.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: database-database.fetchdatabase
      outputParameters:
      - type: object
        mapping: $.
    - name: create-new-alters-existing-database
      description: Create a New, or Alters an Existing, Database.
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: database-database.createoralterdatabase
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-database
      description: Delete a Database.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: database-database.deletedatabase
      with:
        restrict: tools.restrict
      outputParameters:
      - type: object
        mapping: $.
    - name: disable-database-failover
      description: Disable Database Failover.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.disabledatabasefailover
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: enable-database-failover
      description: Enable Database Failover.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.enabledatabasefailover
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: set-primary-database
      description: Set a Primary Database.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.primarydatabasefailover
      outputParameters:
      - type: object
        mapping: $.
    - name: disable-database-replication
      description: Disable Database Replication.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.disabledatabasereplication
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: enable-database-replication
      description: Enable Database Replication.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.enabledatabasereplication
      with:
        ignore_edition_check: tools.ignore_edition_check
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: refresh-database-replications
      description: Refresh Database Replications.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.refreshdatabasereplication
      outputParameters:
      - type: object
        mapping: $.
    - name: clone-database
      description: Clone a Database.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.clonedatabase
      with:
        kind: tools.kind
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-database-share
      description: Create a Database From a Share.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.createdatabasefromsharedeprecated
      with:
        share: tools.share
      outputParameters:
      - type: object
        mapping: $.
    - name: undrop-database
      description: Undrop a Database.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.undropdatabase
      outputParameters:
      - type: object
        mapping: $.
    - name: create-database-share-2
      description: Create a Database From a Share.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: database-database.createdatabasefromshare
      with:
        share: tools.share
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.