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 ".". - 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 ".". - 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: $.