---
title: "Snowflake MCP server for AI agents - actionlake"
description: "Give Claude 408 Snowflake actions through one MCP server: tables, iceberg tables, databases. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/snowflake
updated: 2026-10-22
---

Connectors · AI

# Snowflake MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Snowflake and the rest of your systems. It gives your agent 408 Snowflake actions (135 reads, 210 writes and 63 that wait for a confirmation) and holds the Snowflake credential itself, so the agent never does. It paces Snowflake's limits and records every call.

[Connect Snowflake free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "snowflake.users.list",
  intent: "check which Snowflake account is connected"
}
# List users in the system · read · 1 upstream call
```

- 408 actions in one signed file
- 135 read look, never change
- 210 write create and update
- 63 wait for a yes destructive, confirmed first

Set up

## Connect Snowflake in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Snowflake.
   Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `access_token` Snowflake programmatic access token (Snowsight > your profile > Settings > Authentication > Programmatic access…
   - `host` Where your Snowflake lives: your host
   ```
   account { op: "connections.requirements", service: "snowflake" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "snowflake.users.list" }
   # list users in the system · read · 1 upstream call
   check { action: "snowflake.users.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Snowflake at a glance

**Sign-in**

Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.

**You provide**

`access_token`

**Setup fields**

`host`

**Limits we pace to**

600 calls a minute, per connection

**API covered**

Snowflake REST API v2 (snowflake-rest-api-specs, OpenAPI 3.0), at your Snowflake instance's API base URL, which you enter when connecting

**Built from**

Snowflake's documentation, read 22 October 2026[GitHub](https://github.com/snowflakedb/snowflake-rest-api-specs/tree/main/specifications) [docs.snowflake.com](https://docs.snowflake.com/en/developer-guide/snowflake-rest-api/snowflake-rest-api) [docs.snowflake.com](https://docs.snowflake.com/en/developer-guide/sql-api/index)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

126 of 135 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

3, so ask can line Snowflake up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Snowflake.

408 actions in 45 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **135** read look, never change
- **210** write create and update
- **63** destructive wait for a confirmation

1. ### Tables
   22
   3 read · 18 write · 1 destructive
   List tables · Create a table (clone and undrop are separate subresources) · Fetch a table · Delete a table
2. ### Iceberg tables
   19
   3 read · 15 write · 1 destructive
   List iceberg tables · Describe iceberg table · Clone a snowflake managed iceberg table · Create a snowflake managed iceberg table (clone and undrop are separate subresources)
3. ### Databases
   18
   3 read · 14 write · 1 destructive
   List databases · Create a database · fetchDatabase · Delete a database
4. ### Services
   16
   10 read · 5 write · 1 destructive
   List services · Create a service · fetchService · Delete a service
5. ### Streamlits
   16
   3 read · 11 write · 2 destructive
   Create a Streamlit · List Streamlits · Fetch a Streamlit · Delete a Streamlit
6. ### Tasks
   16
   8 read · 7 write · 1 destructive
   Create a task · List tasks · Fetch a task · Delete a task
7. ### Dynamic tables
   15
   3 read · 11 write · 1 destructive
   Create a dynamic table · List dynamic tables · Fetch a dynamic table · Delete a dynamic table
8. ### Warehouses
   15
   3 read · 10 write · 2 destructive
   Create or replace warehouse · List warehouse · Describe warehouse · Drop warehouse

**37 more areas · 271 actions**

- Roles **14**
- Compute pools **13**
- Database roles **13**
- Notebooks **11**
- Users **11**
- Schemas **10**
- Alerts **9**
- Cortex analyst **9**
- Cortex search services **9**
- User defined functions **9**
- API integrations **8**
- Event tables **8**
- Functions **8**
- Image repositories **8**
- Password policies **8**
- Pipes **8**
- Procedures **8**
- Streams **8**
- Catalog integrations **7**
- Grants **7**
- Network policies **7**
- Notification integrations **7**
- Tags **7**
- Views **7**
- Artifact repositories **6**
- Code bundles **6**
- Sequences **6**
- Stages **6**
- Cortex inference **5**
- External volumes **5**
- Accounts **4**
- Code bundle executions **4**
- Network rules **4**
- Secrets **4**
- Managed accounts **3**
- Statements **3**
- Results **1**

Top actions

## The Snowflake API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 42 of Snowflake's 46 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `snowflake.users.list` List users in the system | List users in the system. | read | `identity.user.list` 474 connectors |
| `snowflake.databases.list` List databases | List databases. | read | `content.database.list` 12 connectors |
| `snowflake.roles.list` List roles | List roles. | read | `identity.role.list` 184 connectors |
| `snowflake.users.create` Create a user | Create a user. | write | `identity.user.create` 262 connectors |
| `snowflake.databases.create` Create a database | Create a database. | write | `content.database.create` 15 connectors |
| `snowflake.roles.create` Create a role | Create a role. | write | `identity.role.create` 105 connectors |
| `snowflake.users.delete` Delete a user | Delete a user. | destructive | `identity.user.delete` 253 connectors |
| `snowflake.tables.list` List tables | List tables. | read | `content.table.list` 21 connectors |
| `snowflake.tables.create` Create a table (clone and undrop are separate subresources) | Create a table (clone and undrop are separate subresources). | write | `content.table.create` 16 connectors |
| `snowflake.views.list` List views | List views. | read | `content.view.list` 6 connectors |
| `snowflake.views.create` Create a view | Create a view. | write | `content.view.create` 5 connectors |
| `snowflake.services.create` Create a service | Create a service. | write | `infra.container_service.create` 8 connectors |

Try it

## Prompts to paste into Claude.

Each one names the Snowflake actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Who has access in Snowflake? List every user and their role.
   calls `snowflake.users.list`
2. Write write
   Create a user in Snowflake. Show me exactly what you will send before you save it.
   calls `snowflake.users.create`

Governance for Snowflake

## Destructive actions wait for a yes.

63 Snowflake actions are destructive. The first 10:

- Delete a user `snowflake.users.delete`
- Delete a database `snowflake.databases.delete`
- Delete a role `snowflake.roles.delete`
- Delete a table `snowflake.tables.delete`
- Delete a view `snowflake.views.delete`
- Delete a service `snowflake.services.delete`
- Delete a secret `snowflake.secrets.delete`
- Delete an account `snowflake.accounts.delete`
- Delete a network policy `snowflake.network_policies.delete`
- Delete a tag `snowflake.tags.delete`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do snowflake.users.delete confirm_policy: **human**

Delete a user?

**intent:** the user asked me to delete a user

run suspended · waiting for a named person · key _snowflake-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "snowflake-agent",
  allowed_actions: ["snowflake.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "snowflake.users.delete", approver: "lead@example.com" },
    { match: "snowflake.databases.delete", approver: "lead@example.com" },
    { match: "snowflake.roles.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Snowflake only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Snowflake costs on actionlake.

Every Snowflake action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Snowflake refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 408 Snowflake actions
- 408 actions page each page of a long list is one call
- 126 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Snowflake action.

408 actions by area: the id your agent calls, what it does, and its effect.

**Tables 22**

- `snowflake.tables.clone` Clone table write
- `snowflake.tables.create` Create a table (clone and undrop are separate subresources) write
- `snowflake.tables.create_as_select` Create a table using the result of the specified select query write
- `snowflake.tables.create_as_select_deprecated` Create a table using the result of the specified select query write
- `snowflake.tables.create_like` Create a table like this existing one write
- `snowflake.tables.create_like_deprecated` Create a table like this existing one write
- `snowflake.tables.create_or_alter` Create a (or alter an existing) table write
- `snowflake.tables.create_using_template` Create a table using the templates specified in staged files write
- `snowflake.tables.create_using_template_deprecated` Create a table using the templates specified in staged files write
- `snowflake.tables.delete` Delete a table destructive
- `snowflake.tables.get` Fetch a table read
- `snowflake.tables.get_tags` Get the tag assignments for a table read
- `snowflake.tables.list` List tables read
- `snowflake.tables.resume_recluster` Resume recluster of a table write
- `snowflake.tables.resume_recluster_deprecated` Resume recluster of a table write
- `snowflake.tables.set_tags` Set tags on a table write
- `snowflake.tables.suspend_recluster` Suspend recluster of a table write
- `snowflake.tables.suspend_recluster_deprecated` Suspend recluster of a table write
- `snowflake.tables.swap` Swap with another table write
- `snowflake.tables.swap_deprecated` Swap with another table write
- `snowflake.tables.undrop` Undrop a table write
- `snowflake.tables.unset_tags` Unset tags from a table write

**Iceberg tables 19**

- `snowflake.iceberg_tables.clone` Clone a snowflake managed iceberg table write
- `snowflake.iceberg_tables.convert_to_managed` Converts an Apache Iceberg™ table that uses an external Iceberg catalog into a table that uses Snowflake as the catalog write
- `snowflake.iceberg_tables.create_snowflake_managed` Create a snowflake managed iceberg table (clone and undrop are separate subresources) write
- `snowflake.iceberg_tables.create_snowflake_managed_as_select` Create a snowflake managed iceberg table as select write
- `snowflake.iceberg_tables.create_snowflake_managed_like` Create iceberg table like write
- `snowflake.iceberg_tables.create_unmanaged_from_aws_glue_catalog` Create an unmanaged iceberg table from AWS Glue catalog write
- `snowflake.iceberg_tables.create_unmanaged_from_delta` Create an unmanaged iceberg table from Delta write
- `snowflake.iceberg_tables.create_unmanaged_from_iceberg_files` Create an unmanaged iceberg table from Iceberg files write
- `snowflake.iceberg_tables.create_unmanaged_from_iceberg_rest` Create an unmanaged iceberg table from Iceberg REST write
- `snowflake.iceberg_tables.drop` Drop iceberg table destructive
- `snowflake.iceberg_tables.get` Describe iceberg table read
- `snowflake.iceberg_tables.get_tags` Get the tag assignments for an Iceberg table read
- `snowflake.iceberg_tables.list` List iceberg tables read
- `snowflake.iceberg_tables.refresh` Refreshes the metadata for an Apache Iceberg table that uses an external Iceberg catalog write
- `snowflake.iceberg_tables.resume_recluster` Resume recluster of an iceberg table write
- `snowflake.iceberg_tables.set_tags` Set tags on an Iceberg table write
- `snowflake.iceberg_tables.suspend_recluster` Suspend recluster of an iceberg table write
- `snowflake.iceberg_tables.undrop` Undrop iceberg table write
- `snowflake.iceberg_tables.unset_tags` Unset tags from an Iceberg table write

**Databases 18**

- `snowflake.databases.clone` Clone a database write
- `snowflake.databases.create` Create a database write
- `snowflake.databases.create_from_share` Create a database from a share write
- `snowflake.databases.create_from_share_deprecated` Create a database from a share write
- `snowflake.databases.create_or_alter` Create a new, or alters an existing, database write
- `snowflake.databases.delete` Delete a database destructive
- `snowflake.databases.disable_failover` Disable database failover write
- `snowflake.databases.disable_replication` Disable database replication write
- `snowflake.databases.enable_failover` Enable database failover write
- `snowflake.databases.enable_replication` Enable database replication write
- `snowflake.databases.get` fetchDatabase read
- `snowflake.databases.get_tags` Get the tag assignments for a database read
- `snowflake.databases.list` List databases read
- `snowflake.databases.primary_failover` Set a primary database write
- `snowflake.databases.refresh_replication` Refresh database replications write
- `snowflake.databases.set_tags` Set tags on a database write
- `snowflake.databases.undrop` Undrop a database write
- `snowflake.databases.unset_tags` Unset tags from a database write

**Services 16**

- `snowflake.services.create` Create a service write
- `snowflake.services.create_or_alter` Create a (or alter an existing) service write
- `snowflake.services.delete` Delete a service destructive
- `snowflake.services.execute_job` Execute a job service write
- `snowflake.services.get` fetchService read
- `snowflake.services.get_logs` fetchServiceLogs read
- `snowflake.services.get_status` fetchServiceStatus read
- `snowflake.services.list` List services read
- `snowflake.services.list_containers` listServiceContainers read
- `snowflake.services.list_instances` listServiceInstances read
- `snowflake.services.list_role_grants_of` listServiceRoleGrantsOf read
- `snowflake.services.list_role_grants_to` listServiceRoleGrantsTo read
- `snowflake.services.list_roles` listServiceRoles read
- `snowflake.services.resume` resumeService write
- `snowflake.services.show_endpoints` List the endpoints in a service read
- `snowflake.services.suspend` suspendService write

**Streamlits 16**

- `snowflake.streamlits.abort` Abort live version destructive
- `snowflake.streamlits.add_live_version` Add live version write
- `snowflake.streamlits.add_version` Add version from source write
- `snowflake.streamlits.add_version_from_git` Add version from Git write
- `snowflake.streamlits.commit` Commit live version write
- `snowflake.streamlits.create` Create a Streamlit write
- `snowflake.streamlits.delete` Delete a Streamlit destructive
- `snowflake.streamlits.get` Fetch a Streamlit read
- `snowflake.streamlits.get_tags` Get the tag assignments for a Streamlit read
- `snowflake.streamlits.list` List Streamlits read
- `snowflake.streamlits.pull` Pull from Git write
- `snowflake.streamlits.push` Push to Git write
- `snowflake.streamlits.rename` Rename a Streamlit write
- `snowflake.streamlits.set_tags` Set tags on a Streamlit write
- `snowflake.streamlits.undrop` Undrop a Streamlit write
- `snowflake.streamlits.unset_tags` Unset tags from a Streamlit write

**Tasks 16**

- `snowflake.tasks.create` Create a task write
- `snowflake.tasks.create_or_alter` Create a (or alter an existing) task write
- `snowflake.tasks.delete` Delete a task destructive
- `snowflake.tasks.execute` Execute a task object write
- `snowflake.tasks.get` Fetch a task read
- `snowflake.tasks.get_complete_graphs` Get the graph runs that are completed for the task read
- `snowflake.tasks.get_complete_graphs_deprecated` Get the graph runs that are completed for the task read
- `snowflake.tasks.get_current_graphs` Get the graph runs that are executing or scheduled for the task for the next 8 days read
- `snowflake.tasks.get_current_graphs_deprecated` Get the graph runs that are executing or scheduled for the task for the next 8 days read
- `snowflake.tasks.get_dependents` Fetch the dependent tasks of a task read
- `snowflake.tasks.get_tags` Get the tag assignments for the task read
- `snowflake.tasks.list` List tasks read
- `snowflake.tasks.resume` Resume a suspended task write
- `snowflake.tasks.set_tags` Set tags on an existing task write
- `snowflake.tasks.suspend` Suspend a running task write
- `snowflake.tasks.unset_tags` Unset tags from an existing task write

**Dynamic tables 15**

- `snowflake.dynamic_tables.clone` Clone dynamic table write
- `snowflake.dynamic_tables.create` Create a dynamic table write
- `snowflake.dynamic_tables.delete` Delete a dynamic table destructive
- `snowflake.dynamic_tables.get` Fetch a dynamic table read
- `snowflake.dynamic_tables.get_tags` Get the tag assignments for a dynamic table read
- `snowflake.dynamic_tables.list` List dynamic tables read
- `snowflake.dynamic_tables.refresh` Refresh the dynamic table write
- `snowflake.dynamic_tables.resume` Resume refreshes on the dynamic table write
- `snowflake.dynamic_tables.resume_recluster` Resume recluster of a dynamic table write
- `snowflake.dynamic_tables.set_tags` Set tags on a dynamic table write
- `snowflake.dynamic_tables.suspend` Suspend refreshes on the dynamic table write
- `snowflake.dynamic_tables.suspend_recluster` Suspend recluster of a dynamic table write
- `snowflake.dynamic_tables.swap` Swap with another dynamic table write
- `snowflake.dynamic_tables.undrop` Undrop a dynamic table write
- `snowflake.dynamic_tables.unset_tags` Unset tags from a dynamic table write

**Warehouses 15**

- `snowflake.warehouses.abort_all_queries` Abort all queries destructive
- `snowflake.warehouses.create` Create or replace warehouse write
- `snowflake.warehouses.create_or_alter` Create a (or alter an existing) warehouse write
- `snowflake.warehouses.delete` Drop warehouse destructive
- `snowflake.warehouses.disable` disable adaptive warehouse write
- `snowflake.warehouses.enable` enable adaptive warehouse write
- `snowflake.warehouses.get` Describe warehouse read
- `snowflake.warehouses.get_tags` Get the tag assignments for a warehouse read
- `snowflake.warehouses.list` List warehouse read
- `snowflake.warehouses.rename` Update and rename warehouse write
- `snowflake.warehouses.resume` Resume warehouse write
- `snowflake.warehouses.set_tags` Set tags on a warehouse write
- `snowflake.warehouses.suspend` Suspend warehouse write
- `snowflake.warehouses.unset_tags` Unset tags from a warehouse write
- `snowflake.warehouses.use` Use current warehouse for session write

**Roles 14**

- `snowflake.roles.create` Create a role write
- `snowflake.roles.delete` Delete a role destructive
- `snowflake.roles.get_tags` Get the tag assignments for a role read
- `snowflake.roles.grant_future_privileges` Grant future privileges to the role destructive
- `snowflake.roles.grant_privileges` Grant privileges to the role destructive
- `snowflake.roles.list` List roles read
- `snowflake.roles.list_future_grants` List all future grants to the role read
- `snowflake.roles.list_grants` List all grants to the role read
- `snowflake.roles.list_grants_of` List all grants of the role read
- `snowflake.roles.list_grants_on` List all grants on the role read
- `snowflake.roles.revoke_future_grants` Revoke future grants from the role destructive
- `snowflake.roles.revoke_grants` Revoke grants from the role destructive
- `snowflake.roles.set_tags` Set tags on a role destructive
- `snowflake.roles.unset_tags` Unset tags from a role write

**Compute pools 13**

- `snowflake.compute_pools.create` Creates a compute pool write
- `snowflake.compute_pools.create_or_alter` Create a (or alter an existing) compute pool write
- `snowflake.compute_pools.delete` Deletes a compute pool destructive
- `snowflake.compute_pools.get` Fetches a compute pool read
- `snowflake.compute_pools.get_tags` Get the tag assignments for a compute pool read
- `snowflake.compute_pools.list` Lists compute pools read
- `snowflake.compute_pools.list_instance_families` Lists available compute pool instance families read
- `snowflake.compute_pools.resume` Resumes a suspended compute pool write
- `snowflake.compute_pools.set_tags` Set tags on a compute pool write
- `snowflake.compute_pools.stop_all_services` Stops all services on the compute pool destructive
- `snowflake.compute_pools.stop_all_services_deprecated` Stops all services on the compute pool destructive
- `snowflake.compute_pools.suspend` Suspends an active compute pool write
- `snowflake.compute_pools.unset_tags` Unset tags from a compute pool write

**Database roles 13**

- `snowflake.database_roles.clone` Create a new database role by cloning from the specified resource write
- `snowflake.database_roles.create` Create a database role write
- `snowflake.database_roles.delete` Delete a database role destructive
- `snowflake.database_roles.get_tags` Get the tag assignments for a database role read
- `snowflake.database_roles.grant_future_privileges` Grant future privileges to the role destructive
- `snowflake.database_roles.grant_privileges` Grant privileges to the role destructive
- `snowflake.database_roles.list` List database roles read
- `snowflake.database_roles.list_future_grants` List all future grants to the role read
- `snowflake.database_roles.list_grants` List all grants to the role read
- `snowflake.database_roles.revoke_future_grants` Revoke future grants from the role destructive
- `snowflake.database_roles.revoke_grants` Revoke grants from the role destructive
- `snowflake.database_roles.set_tags` Set tags on a database role destructive
- `snowflake.database_roles.unset_tags` Unset tags from a database role write

**Notebooks 11**

- `snowflake.notebooks.add_live_version` Adds an LIVE version to the notebook write
- `snowflake.notebooks.commit` Commits the LIVE version of the notebook write
- `snowflake.notebooks.create` Create a notebook write
- `snowflake.notebooks.delete` Delete a notebook destructive
- `snowflake.notebooks.execute` Execute a Notebook write
- `snowflake.notebooks.get` Fetch a notebook read
- `snowflake.notebooks.get_tags` Get the tag assignments for a notebook read
- `snowflake.notebooks.list` List notebooks read
- `snowflake.notebooks.rename` Changes the name of the notebook to new name write
- `snowflake.notebooks.set_tags` Set tags on a notebook write
- `snowflake.notebooks.unset_tags` Unset tags from a notebook write

**Users 11**

- `snowflake.users.create` Create a user write
- `snowflake.users.create_or_alter` Create a (or alter an existing) user write
- `snowflake.users.delete` Delete a user destructive
- `snowflake.users.get` Fetch information about a user read
- `snowflake.users.get_tags` Get the tag assignments for a user read
- `snowflake.users.grant` Grant a role to the user destructive
- `snowflake.users.list` List users in the system read
- `snowflake.users.list_grants` List all grants to the user read
- `snowflake.users.revoke_grants` Revoke grants from the user destructive
- `snowflake.users.set_tags` Set tags on a user write
- `snowflake.users.unset_tags` Unset tags from a user write

**Schemas 10**

- `snowflake.schemas.clone` Clone a schema write
- `snowflake.schemas.create` Create a schema write
- `snowflake.schemas.create_or_alter` Create a new, or alters an existing, schema write
- `snowflake.schemas.delete` Delete a schema destructive
- `snowflake.schemas.get` fetchSchema read
- `snowflake.schemas.get_tags` Get the tag assignments for a schema read
- `snowflake.schemas.list` List schemas read
- `snowflake.schemas.set_tags` Set tags on a schema write
- `snowflake.schemas.undrop` Undrop a schema write
- `snowflake.schemas.unset_tags` Unset tags from a schema write

**Alerts 9**

- `snowflake.alerts.clone` Create a new alert by cloning from the specified resource write
- `snowflake.alerts.create` Create an alert write
- `snowflake.alerts.delete` Delete an alert destructive
- `snowflake.alerts.execute` Execute an alert write
- `snowflake.alerts.get` Fetch an alert read
- `snowflake.alerts.get_tags` Get the tag assignments for an alert read
- `snowflake.alerts.list` List alerts read
- `snowflake.alerts.set_tags` Set tags on an alert write
- `snowflake.alerts.unset_tags` Unset tags from an alert write

**Cortex analyst 9**

- `snowflake.cortex_analyst.fast_generation` Rapidly generate a semantic model given source material write
- `snowflake.cortex_analyst.generate_filters_and_metrics_suggestions` Generate filters, facts, and metrics suggestions for a semantic model write
- `snowflake.cortex_analyst.generate_verified_query_suggestions` Generate VQ suggestions for a semantic model write
- `snowflake.cortex_analyst.get_agentic_optimization` Get the status and state of a specified agentic optimization run read
- `snowflake.cortex_analyst.get_scoped_token` Internal endpoint to exchange a Cortex Analyst Oauth token read
- `snowflake.cortex_analyst.list_agentic_optimizations` List all agentic optimization runs for a given base model read
- `snowflake.cortex_analyst.pre_selection` Retrieve relevant table information from input data for semantic model generation write
- `snowflake.cortex_analyst.send_feedback` sendFeedback write
- `snowflake.cortex_analyst.send_message` Send a data question to the Cortex Analyst write

**Cortex search services 9**

- `snowflake.cortex_search_services.create` Create a cortex search service write
- `snowflake.cortex_search_services.delete` Delete a cortex search service destructive
- `snowflake.cortex_search_services.get` Fetch a cortex search service read
- `snowflake.cortex_search_services.list` List cortex search services read
- `snowflake.cortex_search_services.query` Query a Cortex Search Service read
- `snowflake.cortex_search_services.resume` Resume the cortex search service write
- `snowflake.cortex_search_services.send_feedback` sendFeedback write
- `snowflake.cortex_search_services.suggest` Suggest from a Cortex Search Service read
- `snowflake.cortex_search_services.suspend` Suspend a cortex search service write

**User defined functions 9**

- `snowflake.user_defined_functions.create` Create a UDF write
- `snowflake.user_defined_functions.delete` Delete a UDF destructive
- `snowflake.user_defined_functions.execute` Execute a UDF write
- `snowflake.user_defined_functions.get` Fetch a UDF read
- `snowflake.user_defined_functions.get_tags` Get the tag assignments for a user-defined function read
- `snowflake.user_defined_functions.list` List UDFs read
- `snowflake.user_defined_functions.rename` Rename a UDF write
- `snowflake.user_defined_functions.set_tags` Set tags on a user-defined function write
- `snowflake.user_defined_functions.unset_tags` Unset tags from a user-defined function write

**API integrations 8**

- `snowflake.api_integrations.create` Create an API integration write
- `snowflake.api_integrations.create_or_alter` Create an (or alter an existing) API integration write
- `snowflake.api_integrations.delete` Delete an API integration destructive
- `snowflake.api_integrations.get` Fetch an API integration read
- `snowflake.api_integrations.get_tags` Get the tag assignments for an API integration read
- `snowflake.api_integrations.list` List API integrations read
- `snowflake.api_integrations.set_tags` Set tags on an API integration write
- `snowflake.api_integrations.unset_tags` Unset tags from an API integration write

**Event tables 8**

- `snowflake.event_tables.create` Create an event table write
- `snowflake.event_tables.delete` Delete an event table destructive
- `snowflake.event_tables.get` Fetch an event table read
- `snowflake.event_tables.get_tags` Get the tag assignments for an event table read
- `snowflake.event_tables.list` List event tables read
- `snowflake.event_tables.rename` Rename the event table write
- `snowflake.event_tables.set_tags` Set tags on an event table write
- `snowflake.event_tables.unset_tags` Unset tags from an event table write

**Functions 8**

- `snowflake.functions.create` Create a service function write
- `snowflake.functions.delete` Delete a service function destructive
- `snowflake.functions.execute` Execute a service function write
- `snowflake.functions.get` Fetch a service function read
- `snowflake.functions.get_tags` Get the tag assignments for a service function read
- `snowflake.functions.list` List service functions read
- `snowflake.functions.set_tags` Set tags on a service function write
- `snowflake.functions.unset_tags` Unset tags from a service function write

**Image repositories 8**

- `snowflake.image_repositories.create` Creates an image repository in the specified database and schema write
- `snowflake.image_repositories.delete` Deletes an image repository destructive
- `snowflake.image_repositories.get` Fetches an image repository read
- `snowflake.image_repositories.get_tags` Get the tag assignments for an image repository read
- `snowflake.image_repositories.list` Lists image repositories read
- `snowflake.image_repositories.list_images_in_repository` List images in the image repository read
- `snowflake.image_repositories.set_tags` Set tags on an image repository write
- `snowflake.image_repositories.unset_tags` Unset tags from an image repository write

**Password policies 8**

- `snowflake.password_policies.create` Create a password policy write
- `snowflake.password_policies.delete` Delete a password policy destructive
- `snowflake.password_policies.get` Fetch a password policy read
- `snowflake.password_policies.get_tags` Get the tag assignments for a password policy read
- `snowflake.password_policies.list` List password policies read
- `snowflake.password_policies.rename` Rename a password policy with a new identifier write
- `snowflake.password_policies.set_tags` Set tags on a password policy write
- `snowflake.password_policies.unset_tags` Unset tags from a password policy write

**Pipes 8**

- `snowflake.pipes.create` Create a pipe write
- `snowflake.pipes.delete` Delete a pipe destructive
- `snowflake.pipes.get` Fetch a pipe read
- `snowflake.pipes.get_tags` Get the tag assignments for a pipe read
- `snowflake.pipes.list` List pipes read
- `snowflake.pipes.refresh` Refresh the pipe write
- `snowflake.pipes.set_tags` Set tags on a pipe write
- `snowflake.pipes.unset_tags` Unset tags from a pipe write

**Procedures 8**

- `snowflake.procedures.call` Call a procedure write
- `snowflake.procedures.create` Create a procedure write
- `snowflake.procedures.delete` Delete a procedure destructive
- `snowflake.procedures.get` Fetch a procedure read
- `snowflake.procedures.get_tags` Get the tag assignments for a procedure read
- `snowflake.procedures.list` List procedures read
- `snowflake.procedures.set_tags` Set tags on a procedure write
- `snowflake.procedures.unset_tags` Unset tags from a procedure write

**Streams 8**

- `snowflake.streams.clone` Clone a stream write
- `snowflake.streams.create` Create a stream write
- `snowflake.streams.delete` Delete a stream destructive
- `snowflake.streams.get` Fetch a stream read
- `snowflake.streams.get_tags` Get the tag assignments for a stream read
- `snowflake.streams.list` List streams read
- `snowflake.streams.set_tags` Set tags on a stream write
- `snowflake.streams.unset_tags` Unset tags from a stream write

**Catalog integrations 7**

- `snowflake.catalog_integrations.create` Create a catalog integration write
- `snowflake.catalog_integrations.delete` Delete a catalog integration destructive
- `snowflake.catalog_integrations.get` Fetch a catalog integration read
- `snowflake.catalog_integrations.get_tags` Get the tag assignments for a catalog integration read
- `snowflake.catalog_integrations.list` List catalog integrations read
- `snowflake.catalog_integrations.set_tags` Set tags on a catalog integration write
- `snowflake.catalog_integrations.unset_tags` Unset tags from a catalog integration write

**Grants 7**

- `snowflake.grants.grant_bulk_privilege` Grant the specified privilege(s) on all/future (as specified by bulkGrantType) securables of this type in a given scope … destructive
- `snowflake.grants.grant_privilege` Grant the specified privilege(s) on the named securable to the named grantee destructive
- `snowflake.grants.list_to` List of privileges associated with this grantee type and name read
- `snowflake.grants.revoke_bulk_privilege` Revoke the specified privilege on the specified all/future securable in the given scope from the named grantee destructive
- `snowflake.grants.revoke_bulk_privilege_grant_option` Revoke the grant option for the specified privilege on the specified all/future securable in the given scope from the na… destructive
- `snowflake.grants.revoke_privilege` Revoke the specified privilege on the named securable from the named grantee destructive
- `snowflake.grants.revoke_privilege_grant_option` Revoke the grant option for the specified privilege on the named securable from the named grantee destructive

**Network policies 7**

- `snowflake.network_policies.create` Create a network policy write
- `snowflake.network_policies.delete` Delete a network policy destructive
- `snowflake.network_policies.get` Fetch a network policy read
- `snowflake.network_policies.get_tags` Get the tag assignments for a network policy read
- `snowflake.network_policies.list` List network policies read
- `snowflake.network_policies.set_tags` Set tags on a network policy write
- `snowflake.network_policies.unset_tags` Unset tags from a network policy write

**Notification integrations 7**

- `snowflake.notification_integrations.create` Create a notification integration write
- `snowflake.notification_integrations.delete` Delete a notification integration destructive
- `snowflake.notification_integrations.get` Fetch a notification integration read
- `snowflake.notification_integrations.get_tags` Get the tag assignments for a notification integration read
- `snowflake.notification_integrations.list` List notification integrations read
- `snowflake.notification_integrations.set_tags` Set tags on a notification integration write
- `snowflake.notification_integrations.unset_tags` Unset tags from a notification integration write

**Tags 7**

- `snowflake.tags.create` Create a tag write
- `snowflake.tags.create_or_alter` Create or update a tag write
- `snowflake.tags.delete` Delete a tag destructive
- `snowflake.tags.get` Fetch a tag read
- `snowflake.tags.list` List tags read
- `snowflake.tags.rename` Rename a tag with a new identifier write
- `snowflake.tags.undrop` Undrop a tag write

**Views 7**

- `snowflake.views.create` Create a view write
- `snowflake.views.delete` Delete a view destructive
- `snowflake.views.get` Fetch a view read
- `snowflake.views.get_tags` Get the tag assignments for a view read
- `snowflake.views.list` List views read
- `snowflake.views.set_tags` Set tags on a view write
- `snowflake.views.unset_tags` Unset tags from a view write

**Artifact repositories 6**

- `snowflake.artifact_repositories.create` Create an artifact repository write
- `snowflake.artifact_repositories.create_or_alter` Create or update an artifact repository write
- `snowflake.artifact_repositories.delete` Delete an artifact repository destructive
- `snowflake.artifact_repositories.get` Fetch an artifact repository read
- `snowflake.artifact_repositories.list` List artifact repositories read
- `snowflake.artifact_repositories.rename` Changes the name of an artifact repository write

**Code bundles 6**

- `snowflake.code_bundles.add_version` Add a version to a code bundle write
- `snowflake.code_bundles.create` Create a code bundle write
- `snowflake.code_bundles.delete` Delete a code bundle destructive
- `snowflake.code_bundles.execute` Execute a code bundle write
- `snowflake.code_bundles.get` Fetch a code bundle read
- `snowflake.code_bundles.list` List code bundles read

**Sequences 6**

- `snowflake.sequences.clone` Create a new sequence by cloning from the specified resource write
- `snowflake.sequences.create` Create a sequence write
- `snowflake.sequences.delete` Delete a sequence destructive
- `snowflake.sequences.get` Fetch a sequence read
- `snowflake.sequences.list` List sequences read
- `snowflake.sequences.rename` Rename a sequence with a new identifier write

**Stages 6**

- `snowflake.stages.create` Create a stage write
- `snowflake.stages.delete` Delete a stage destructive
- `snowflake.stages.get` Fetch a stage read
- `snowflake.stages.get_presigned_url` Generate a presigned url and optionally encryption materials write
- `snowflake.stages.list` List stages read
- `snowflake.stages.list_files` List files in the stage read

**Cortex inference 5**

- `snowflake.cortex_inference.anthropic_messages` Perform LLM text completion inference using Cortex Messages API format write
- `snowflake.cortex_inference.complete` Perform LLM text completion inference write
- `snowflake.cortex_inference.embed` Perform LLM embed write
- `snowflake.cortex_inference.get_models` Returns the LLMs available for the current session read
- `snowflake.cortex_inference.openai_chat_completions` Perform LLM text completion inference using Cortex Chat Completions API format write

**External volumes 5**

- `snowflake.external_volumes.create` Create an external volume write
- `snowflake.external_volumes.delete` Delete an external volume destructive
- `snowflake.external_volumes.get` Fetch an external volume read
- `snowflake.external_volumes.list` List external volumes read
- `snowflake.external_volumes.undrop` Undrop an external volume write

**Accounts 4**

- `snowflake.accounts.create` Create an account write
- `snowflake.accounts.delete` Delete an account destructive
- `snowflake.accounts.list` List accounts read
- `snowflake.accounts.undrop` Restore an account write

**Code bundle executions 4**

- `snowflake.code_bundle_executions.cancel` Cancel a code bundle execution destructive
- `snowflake.code_bundle_executions.execute` Execute a code bundle write
- `snowflake.code_bundle_executions.get_status` Get the status of a code bundle execution read
- `snowflake.code_bundle_executions.list` List code bundle executions read

**Network rules 4**

- `snowflake.network_rules.create` Create a network rule write
- `snowflake.network_rules.delete` Delete a network rule destructive
- `snowflake.network_rules.get` Fetch a network rule read
- `snowflake.network_rules.list` List network rules read

**Secrets 4**

- `snowflake.secrets.create` Create a secret write
- `snowflake.secrets.delete` Delete a secret destructive
- `snowflake.secrets.get` Fetch a secret read
- `snowflake.secrets.list` List secrets read

**Managed accounts 3**

- `snowflake.managed_accounts.create` Create a managed accounts write
- `snowflake.managed_accounts.delete` Delete a managed account destructive
- `snowflake.managed_accounts.list` List managed accounts read

**Statements 3**

- `snowflake.statements.cancel` Cancels the execution of a statement destructive
- `snowflake.statements.get` Checks the status of the execution of a statement read
- `snowflake.statements.submit` Submits a SQL statement for execution write

**Results 1**

- `snowflake.results.get` Check result status or fetch request read

Questions

## The Snowflake MCP server, answered.

**Is there a Snowflake MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 408 Snowflake actions across tables, iceberg tables, databases and services, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Snowflake.

**What do I need to connect Snowflake?**

Snowflake programmatic access token (Snowsight > your profile > Settings > Authentication > Programmatic access…. Plus your host. The free call account { op: "connections.requirements", service: "snowflake" } lists exactly what to paste.

**Can an AI agent delete or change things in Snowflake?**

Only if its key allows it, and only with an explicit confirmation. 63 Snowflake actions are destructive, including delete a user, delete a database and delete a role. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Snowflake API limit?**

actionlake paces every call to the limits in the Snowflake service file: 600 calls a minute per connection. Repeated reads are answered from cache (126 Snowflake actions can be), which never reaches Snowflake.

**What does a Snowflake action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (408 Snowflake actions page). Cache hits, searches, dry runs and calls Snowflake refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Snowflake API does it cover?**

The Snowflake REST API v2 (snowflake-rest-api-specs, OpenAPI 3.0) at your Snowflake instance's API base URL, which you enter when connecting. It is built from Snowflake's documentation as read on 22 October 2026. 408 actions in 45 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my Snowflake data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Snowflake credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Snowflake

Shares the most action names with

- [Fireworks AI 8](https://actionlake.com/connectors/fireworks-ai)
- [Weaviate Cloud 7](https://actionlake.com/connectors/weaviate-cloud)
- [Hugging Face 7](https://actionlake.com/connectors/hugging-face)
- [Mistral AI 6](https://actionlake.com/connectors/mistral-ai)
- [OpenRouter 6](https://actionlake.com/connectors/openrouter)
- [Langfuse 4](https://actionlake.com/connectors/langfuse)

Joins with, on shared entities

- [Starburst Galaxy 3](https://actionlake.com/connectors/starburst-galaxy)
- [HaloPSA 2](https://actionlake.com/connectors/halopsa)
- [Microsoft 365 Users 2](https://actionlake.com/connectors/microsoft-365-users)
- [Fortinet FortiGate 2](https://actionlake.com/connectors/fortinet-fortigate)
- [Genesys Cloud CX 2](https://actionlake.com/connectors/genesys-cloud-cx)
- [Rubrik Security Cloud 2](https://actionlake.com/connectors/rubrik-security-cloud)

Browse

- [All AI connectors](https://actionlake.com/connectors/category/ai)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Snowflake; the name is the vendor's own. Counts are from the Snowflake service file, version 1.0.0.

## Give your agent Snowflake today.

[Connect Snowflake free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/snowflake
More: https://actionlake.com/llms.txt
