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.
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/mcpdo { action: "snowflake.users.list", intent: "check which Snowflake account is connected"}# List users in the system · read · 1 upstream call- 408actionsin one signed file
- 135readlook, never change
- 210writecreate and update
- 63wait for a yesdestructive, confirmed first
Set up
Connect Snowflake in three steps.
- 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 - 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_tokenSnowflake programmatic access token (Snowsight > your profile > Settings > Authentication > Programmatic access…hostWhere your Snowflake lives: your host
account { op: "connections.requirements", service: "snowflake" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "snowflake.users.list" }# list users in the system · read · 1 upstream callcheck { 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 2026GitHubdocs.snowflake.comdocs.snowflake.com
- 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.
- 135readlook, never change
- 210writecreate and update
- 63destructivewait for a confirmation
Tables
223 read · 18 write · 1 destructive
List tables · Create a table (clone and undrop are separate subresources) · Fetch a table · Delete a table
Iceberg tables
193 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)
Databases
183 read · 14 write · 1 destructive
List databases · Create a database · fetchDatabase · Delete a database
Services
1610 read · 5 write · 1 destructive
List services · Create a service · fetchService · Delete a service
Streamlits
163 read · 11 write · 2 destructive
Create a Streamlit · List Streamlits · Fetch a Streamlit · Delete a Streamlit
Tasks
168 read · 7 write · 1 destructive
Create a task · List tasks · Fetch a task · Delete a task
Dynamic tables
153 read · 11 write · 1 destructive
Create a dynamic table · List dynamic tables · Fetch a dynamic table · Delete a dynamic table
Warehouses
153 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.listList users in the system | List users in the system. | read | identity.user.list474 connectors |
snowflake.databases.listList databases | List databases. | read | content.database.list12 connectors |
snowflake.roles.listList roles | List roles. | read | identity.role.list184 connectors |
snowflake.users.createCreate a user | Create a user. | write | identity.user.create262 connectors |
snowflake.databases.createCreate a database | Create a database. | write | content.database.create15 connectors |
snowflake.roles.createCreate a role | Create a role. | write | identity.role.create105 connectors |
snowflake.users.deleteDelete a user | Delete a user. | destructive | identity.user.delete253 connectors |
snowflake.tables.listList tables | List tables. | read | content.table.list21 connectors |
snowflake.tables.createCreate a table (clone and undrop are separate subresources) | Create a table (clone and undrop are separate subresources). | write | content.table.create16 connectors |
snowflake.views.listList views | List views. | read | content.view.list6 connectors |
snowflake.views.createCreate a view | Create a view. | write | content.view.create5 connectors |
snowflake.services.createCreate a service | Create a service. | write | infra.container_service.create8 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.
- Readread
Who has access in Snowflake? List every user and their role.
calls
snowflake.users.list - Writewrite
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.
Delete a user?
intent: the user asked me to delete a user
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: "[email protected]" }, { match: "snowflake.databases.delete", approver: "[email protected]" }, { match: "snowflake.roles.delete", approver: "[email protected]" } ]}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.
- 1upstream call per actionall 408 Snowflake actions
- 408actions pageeach page of a long list is one call
- 126reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Snowflake action.
408 actions by area: the id your agent calls, what it does, and its effect.
Tables22
snowflake.tables.cloneClone tablewritesnowflake.tables.createCreate a table (clone and undrop are separate subresources)writesnowflake.tables.create_as_selectCreate a table using the result of the specified select querywritesnowflake.tables.create_as_select_deprecatedCreate a table using the result of the specified select querywritesnowflake.tables.create_likeCreate a table like this existing onewritesnowflake.tables.create_like_deprecatedCreate a table like this existing onewritesnowflake.tables.create_or_alterCreate a (or alter an existing) tablewritesnowflake.tables.create_using_templateCreate a table using the templates specified in staged fileswritesnowflake.tables.create_using_template_deprecatedCreate a table using the templates specified in staged fileswritesnowflake.tables.deleteDelete a tabledestructivesnowflake.tables.getFetch a tablereadsnowflake.tables.get_tagsGet the tag assignments for a tablereadsnowflake.tables.listList tablesreadsnowflake.tables.resume_reclusterResume recluster of a tablewritesnowflake.tables.resume_recluster_deprecatedResume recluster of a tablewritesnowflake.tables.set_tagsSet tags on a tablewritesnowflake.tables.suspend_reclusterSuspend recluster of a tablewritesnowflake.tables.suspend_recluster_deprecatedSuspend recluster of a tablewritesnowflake.tables.swapSwap with another tablewritesnowflake.tables.swap_deprecatedSwap with another tablewritesnowflake.tables.undropUndrop a tablewritesnowflake.tables.unset_tagsUnset tags from a tablewrite
Iceberg tables19
snowflake.iceberg_tables.cloneClone a snowflake managed iceberg tablewritesnowflake.iceberg_tables.convert_to_managedConverts an Apache Iceberg™ table that uses an external Iceberg catalog into a table that uses Snowflake as the catalogwritesnowflake.iceberg_tables.create_snowflake_managedCreate a snowflake managed iceberg table (clone and undrop are separate subresources)writesnowflake.iceberg_tables.create_snowflake_managed_as_selectCreate a snowflake managed iceberg table as selectwritesnowflake.iceberg_tables.create_snowflake_managed_likeCreate iceberg table likewritesnowflake.iceberg_tables.create_unmanaged_from_aws_glue_catalogCreate an unmanaged iceberg table from AWS Glue catalogwritesnowflake.iceberg_tables.create_unmanaged_from_deltaCreate an unmanaged iceberg table from Deltawritesnowflake.iceberg_tables.create_unmanaged_from_iceberg_filesCreate an unmanaged iceberg table from Iceberg fileswritesnowflake.iceberg_tables.create_unmanaged_from_iceberg_restCreate an unmanaged iceberg table from Iceberg RESTwritesnowflake.iceberg_tables.dropDrop iceberg tabledestructivesnowflake.iceberg_tables.getDescribe iceberg tablereadsnowflake.iceberg_tables.get_tagsGet the tag assignments for an Iceberg tablereadsnowflake.iceberg_tables.listList iceberg tablesreadsnowflake.iceberg_tables.refreshRefreshes the metadata for an Apache Iceberg table that uses an external Iceberg catalogwritesnowflake.iceberg_tables.resume_reclusterResume recluster of an iceberg tablewritesnowflake.iceberg_tables.set_tagsSet tags on an Iceberg tablewritesnowflake.iceberg_tables.suspend_reclusterSuspend recluster of an iceberg tablewritesnowflake.iceberg_tables.undropUndrop iceberg tablewritesnowflake.iceberg_tables.unset_tagsUnset tags from an Iceberg tablewrite
Databases18
snowflake.databases.cloneClone a databasewritesnowflake.databases.createCreate a databasewritesnowflake.databases.create_from_shareCreate a database from a sharewritesnowflake.databases.create_from_share_deprecatedCreate a database from a sharewritesnowflake.databases.create_or_alterCreate a new, or alters an existing, databasewritesnowflake.databases.deleteDelete a databasedestructivesnowflake.databases.disable_failoverDisable database failoverwritesnowflake.databases.disable_replicationDisable database replicationwritesnowflake.databases.enable_failoverEnable database failoverwritesnowflake.databases.enable_replicationEnable database replicationwritesnowflake.databases.getfetchDatabasereadsnowflake.databases.get_tagsGet the tag assignments for a databasereadsnowflake.databases.listList databasesreadsnowflake.databases.primary_failoverSet a primary databasewritesnowflake.databases.refresh_replicationRefresh database replicationswritesnowflake.databases.set_tagsSet tags on a databasewritesnowflake.databases.undropUndrop a databasewritesnowflake.databases.unset_tagsUnset tags from a databasewrite
Services16
snowflake.services.createCreate a servicewritesnowflake.services.create_or_alterCreate a (or alter an existing) servicewritesnowflake.services.deleteDelete a servicedestructivesnowflake.services.execute_jobExecute a job servicewritesnowflake.services.getfetchServicereadsnowflake.services.get_logsfetchServiceLogsreadsnowflake.services.get_statusfetchServiceStatusreadsnowflake.services.listList servicesreadsnowflake.services.list_containerslistServiceContainersreadsnowflake.services.list_instanceslistServiceInstancesreadsnowflake.services.list_role_grants_oflistServiceRoleGrantsOfreadsnowflake.services.list_role_grants_tolistServiceRoleGrantsToreadsnowflake.services.list_roleslistServiceRolesreadsnowflake.services.resumeresumeServicewritesnowflake.services.show_endpointsList the endpoints in a servicereadsnowflake.services.suspendsuspendServicewrite
Streamlits16
snowflake.streamlits.abortAbort live versiondestructivesnowflake.streamlits.add_live_versionAdd live versionwritesnowflake.streamlits.add_versionAdd version from sourcewritesnowflake.streamlits.add_version_from_gitAdd version from Gitwritesnowflake.streamlits.commitCommit live versionwritesnowflake.streamlits.createCreate a Streamlitwritesnowflake.streamlits.deleteDelete a Streamlitdestructivesnowflake.streamlits.getFetch a Streamlitreadsnowflake.streamlits.get_tagsGet the tag assignments for a Streamlitreadsnowflake.streamlits.listList Streamlitsreadsnowflake.streamlits.pullPull from Gitwritesnowflake.streamlits.pushPush to Gitwritesnowflake.streamlits.renameRename a Streamlitwritesnowflake.streamlits.set_tagsSet tags on a Streamlitwritesnowflake.streamlits.undropUndrop a Streamlitwritesnowflake.streamlits.unset_tagsUnset tags from a Streamlitwrite
Tasks16
snowflake.tasks.createCreate a taskwritesnowflake.tasks.create_or_alterCreate a (or alter an existing) taskwritesnowflake.tasks.deleteDelete a taskdestructivesnowflake.tasks.executeExecute a task objectwritesnowflake.tasks.getFetch a taskreadsnowflake.tasks.get_complete_graphsGet the graph runs that are completed for the taskreadsnowflake.tasks.get_complete_graphs_deprecatedGet the graph runs that are completed for the taskreadsnowflake.tasks.get_current_graphsGet the graph runs that are executing or scheduled for the task for the next 8 daysreadsnowflake.tasks.get_current_graphs_deprecatedGet the graph runs that are executing or scheduled for the task for the next 8 daysreadsnowflake.tasks.get_dependentsFetch the dependent tasks of a taskreadsnowflake.tasks.get_tagsGet the tag assignments for the taskreadsnowflake.tasks.listList tasksreadsnowflake.tasks.resumeResume a suspended taskwritesnowflake.tasks.set_tagsSet tags on an existing taskwritesnowflake.tasks.suspendSuspend a running taskwritesnowflake.tasks.unset_tagsUnset tags from an existing taskwrite
Dynamic tables15
snowflake.dynamic_tables.cloneClone dynamic tablewritesnowflake.dynamic_tables.createCreate a dynamic tablewritesnowflake.dynamic_tables.deleteDelete a dynamic tabledestructivesnowflake.dynamic_tables.getFetch a dynamic tablereadsnowflake.dynamic_tables.get_tagsGet the tag assignments for a dynamic tablereadsnowflake.dynamic_tables.listList dynamic tablesreadsnowflake.dynamic_tables.refreshRefresh the dynamic tablewritesnowflake.dynamic_tables.resumeResume refreshes on the dynamic tablewritesnowflake.dynamic_tables.resume_reclusterResume recluster of a dynamic tablewritesnowflake.dynamic_tables.set_tagsSet tags on a dynamic tablewritesnowflake.dynamic_tables.suspendSuspend refreshes on the dynamic tablewritesnowflake.dynamic_tables.suspend_reclusterSuspend recluster of a dynamic tablewritesnowflake.dynamic_tables.swapSwap with another dynamic tablewritesnowflake.dynamic_tables.undropUndrop a dynamic tablewritesnowflake.dynamic_tables.unset_tagsUnset tags from a dynamic tablewrite
Warehouses15
snowflake.warehouses.abort_all_queriesAbort all queriesdestructivesnowflake.warehouses.createCreate or replace warehousewritesnowflake.warehouses.create_or_alterCreate a (or alter an existing) warehousewritesnowflake.warehouses.deleteDrop warehousedestructivesnowflake.warehouses.disabledisable adaptive warehousewritesnowflake.warehouses.enableenable adaptive warehousewritesnowflake.warehouses.getDescribe warehousereadsnowflake.warehouses.get_tagsGet the tag assignments for a warehousereadsnowflake.warehouses.listList warehousereadsnowflake.warehouses.renameUpdate and rename warehousewritesnowflake.warehouses.resumeResume warehousewritesnowflake.warehouses.set_tagsSet tags on a warehousewritesnowflake.warehouses.suspendSuspend warehousewritesnowflake.warehouses.unset_tagsUnset tags from a warehousewritesnowflake.warehouses.useUse current warehouse for sessionwrite
Roles14
snowflake.roles.createCreate a rolewritesnowflake.roles.deleteDelete a roledestructivesnowflake.roles.get_tagsGet the tag assignments for a rolereadsnowflake.roles.grant_future_privilegesGrant future privileges to the roledestructivesnowflake.roles.grant_privilegesGrant privileges to the roledestructivesnowflake.roles.listList rolesreadsnowflake.roles.list_future_grantsList all future grants to the rolereadsnowflake.roles.list_grantsList all grants to the rolereadsnowflake.roles.list_grants_ofList all grants of the rolereadsnowflake.roles.list_grants_onList all grants on the rolereadsnowflake.roles.revoke_future_grantsRevoke future grants from the roledestructivesnowflake.roles.revoke_grantsRevoke grants from the roledestructivesnowflake.roles.set_tagsSet tags on a roledestructivesnowflake.roles.unset_tagsUnset tags from a rolewrite
Compute pools13
snowflake.compute_pools.createCreates a compute poolwritesnowflake.compute_pools.create_or_alterCreate a (or alter an existing) compute poolwritesnowflake.compute_pools.deleteDeletes a compute pooldestructivesnowflake.compute_pools.getFetches a compute poolreadsnowflake.compute_pools.get_tagsGet the tag assignments for a compute poolreadsnowflake.compute_pools.listLists compute poolsreadsnowflake.compute_pools.list_instance_familiesLists available compute pool instance familiesreadsnowflake.compute_pools.resumeResumes a suspended compute poolwritesnowflake.compute_pools.set_tagsSet tags on a compute poolwritesnowflake.compute_pools.stop_all_servicesStops all services on the compute pooldestructivesnowflake.compute_pools.stop_all_services_deprecatedStops all services on the compute pooldestructivesnowflake.compute_pools.suspendSuspends an active compute poolwritesnowflake.compute_pools.unset_tagsUnset tags from a compute poolwrite
Database roles13
snowflake.database_roles.cloneCreate a new database role by cloning from the specified resourcewritesnowflake.database_roles.createCreate a database rolewritesnowflake.database_roles.deleteDelete a database roledestructivesnowflake.database_roles.get_tagsGet the tag assignments for a database rolereadsnowflake.database_roles.grant_future_privilegesGrant future privileges to the roledestructivesnowflake.database_roles.grant_privilegesGrant privileges to the roledestructivesnowflake.database_roles.listList database rolesreadsnowflake.database_roles.list_future_grantsList all future grants to the rolereadsnowflake.database_roles.list_grantsList all grants to the rolereadsnowflake.database_roles.revoke_future_grantsRevoke future grants from the roledestructivesnowflake.database_roles.revoke_grantsRevoke grants from the roledestructivesnowflake.database_roles.set_tagsSet tags on a database roledestructivesnowflake.database_roles.unset_tagsUnset tags from a database rolewrite
Notebooks11
snowflake.notebooks.add_live_versionAdds an LIVE version to the notebookwritesnowflake.notebooks.commitCommits the LIVE version of the notebookwritesnowflake.notebooks.createCreate a notebookwritesnowflake.notebooks.deleteDelete a notebookdestructivesnowflake.notebooks.executeExecute a Notebookwritesnowflake.notebooks.getFetch a notebookreadsnowflake.notebooks.get_tagsGet the tag assignments for a notebookreadsnowflake.notebooks.listList notebooksreadsnowflake.notebooks.renameChanges the name of the notebook to new namewritesnowflake.notebooks.set_tagsSet tags on a notebookwritesnowflake.notebooks.unset_tagsUnset tags from a notebookwrite
Users11
snowflake.users.createCreate a userwritesnowflake.users.create_or_alterCreate a (or alter an existing) userwritesnowflake.users.deleteDelete a userdestructivesnowflake.users.getFetch information about a userreadsnowflake.users.get_tagsGet the tag assignments for a userreadsnowflake.users.grantGrant a role to the userdestructivesnowflake.users.listList users in the systemreadsnowflake.users.list_grantsList all grants to the userreadsnowflake.users.revoke_grantsRevoke grants from the userdestructivesnowflake.users.set_tagsSet tags on a userwritesnowflake.users.unset_tagsUnset tags from a userwrite
Schemas10
snowflake.schemas.cloneClone a schemawritesnowflake.schemas.createCreate a schemawritesnowflake.schemas.create_or_alterCreate a new, or alters an existing, schemawritesnowflake.schemas.deleteDelete a schemadestructivesnowflake.schemas.getfetchSchemareadsnowflake.schemas.get_tagsGet the tag assignments for a schemareadsnowflake.schemas.listList schemasreadsnowflake.schemas.set_tagsSet tags on a schemawritesnowflake.schemas.undropUndrop a schemawritesnowflake.schemas.unset_tagsUnset tags from a schemawrite
Alerts9
snowflake.alerts.cloneCreate a new alert by cloning from the specified resourcewritesnowflake.alerts.createCreate an alertwritesnowflake.alerts.deleteDelete an alertdestructivesnowflake.alerts.executeExecute an alertwritesnowflake.alerts.getFetch an alertreadsnowflake.alerts.get_tagsGet the tag assignments for an alertreadsnowflake.alerts.listList alertsreadsnowflake.alerts.set_tagsSet tags on an alertwritesnowflake.alerts.unset_tagsUnset tags from an alertwrite
Cortex analyst9
snowflake.cortex_analyst.fast_generationRapidly generate a semantic model given source materialwritesnowflake.cortex_analyst.generate_filters_and_metrics_suggestionsGenerate filters, facts, and metrics suggestions for a semantic modelwritesnowflake.cortex_analyst.generate_verified_query_suggestionsGenerate VQ suggestions for a semantic modelwritesnowflake.cortex_analyst.get_agentic_optimizationGet the status and state of a specified agentic optimization runreadsnowflake.cortex_analyst.get_scoped_tokenInternal endpoint to exchange a Cortex Analyst Oauth tokenreadsnowflake.cortex_analyst.list_agentic_optimizationsList all agentic optimization runs for a given base modelreadsnowflake.cortex_analyst.pre_selectionRetrieve relevant table information from input data for semantic model generationwritesnowflake.cortex_analyst.send_feedbacksendFeedbackwritesnowflake.cortex_analyst.send_messageSend a data question to the Cortex Analystwrite
Cortex search services9
snowflake.cortex_search_services.createCreate a cortex search servicewritesnowflake.cortex_search_services.deleteDelete a cortex search servicedestructivesnowflake.cortex_search_services.getFetch a cortex search servicereadsnowflake.cortex_search_services.listList cortex search servicesreadsnowflake.cortex_search_services.queryQuery a Cortex Search Servicereadsnowflake.cortex_search_services.resumeResume the cortex search servicewritesnowflake.cortex_search_services.send_feedbacksendFeedbackwritesnowflake.cortex_search_services.suggestSuggest from a Cortex Search Servicereadsnowflake.cortex_search_services.suspendSuspend a cortex search servicewrite
User defined functions9
snowflake.user_defined_functions.createCreate a UDFwritesnowflake.user_defined_functions.deleteDelete a UDFdestructivesnowflake.user_defined_functions.executeExecute a UDFwritesnowflake.user_defined_functions.getFetch a UDFreadsnowflake.user_defined_functions.get_tagsGet the tag assignments for a user-defined functionreadsnowflake.user_defined_functions.listList UDFsreadsnowflake.user_defined_functions.renameRename a UDFwritesnowflake.user_defined_functions.set_tagsSet tags on a user-defined functionwritesnowflake.user_defined_functions.unset_tagsUnset tags from a user-defined functionwrite
API integrations8
snowflake.api_integrations.createCreate an API integrationwritesnowflake.api_integrations.create_or_alterCreate an (or alter an existing) API integrationwritesnowflake.api_integrations.deleteDelete an API integrationdestructivesnowflake.api_integrations.getFetch an API integrationreadsnowflake.api_integrations.get_tagsGet the tag assignments for an API integrationreadsnowflake.api_integrations.listList API integrationsreadsnowflake.api_integrations.set_tagsSet tags on an API integrationwritesnowflake.api_integrations.unset_tagsUnset tags from an API integrationwrite
Event tables8
snowflake.event_tables.createCreate an event tablewritesnowflake.event_tables.deleteDelete an event tabledestructivesnowflake.event_tables.getFetch an event tablereadsnowflake.event_tables.get_tagsGet the tag assignments for an event tablereadsnowflake.event_tables.listList event tablesreadsnowflake.event_tables.renameRename the event tablewritesnowflake.event_tables.set_tagsSet tags on an event tablewritesnowflake.event_tables.unset_tagsUnset tags from an event tablewrite
Functions8
snowflake.functions.createCreate a service functionwritesnowflake.functions.deleteDelete a service functiondestructivesnowflake.functions.executeExecute a service functionwritesnowflake.functions.getFetch a service functionreadsnowflake.functions.get_tagsGet the tag assignments for a service functionreadsnowflake.functions.listList service functionsreadsnowflake.functions.set_tagsSet tags on a service functionwritesnowflake.functions.unset_tagsUnset tags from a service functionwrite
Image repositories8
snowflake.image_repositories.createCreates an image repository in the specified database and schemawritesnowflake.image_repositories.deleteDeletes an image repositorydestructivesnowflake.image_repositories.getFetches an image repositoryreadsnowflake.image_repositories.get_tagsGet the tag assignments for an image repositoryreadsnowflake.image_repositories.listLists image repositoriesreadsnowflake.image_repositories.list_images_in_repositoryList images in the image repositoryreadsnowflake.image_repositories.set_tagsSet tags on an image repositorywritesnowflake.image_repositories.unset_tagsUnset tags from an image repositorywrite
Password policies8
snowflake.password_policies.createCreate a password policywritesnowflake.password_policies.deleteDelete a password policydestructivesnowflake.password_policies.getFetch a password policyreadsnowflake.password_policies.get_tagsGet the tag assignments for a password policyreadsnowflake.password_policies.listList password policiesreadsnowflake.password_policies.renameRename a password policy with a new identifierwritesnowflake.password_policies.set_tagsSet tags on a password policywritesnowflake.password_policies.unset_tagsUnset tags from a password policywrite
Pipes8
snowflake.pipes.createCreate a pipewritesnowflake.pipes.deleteDelete a pipedestructivesnowflake.pipes.getFetch a pipereadsnowflake.pipes.get_tagsGet the tag assignments for a pipereadsnowflake.pipes.listList pipesreadsnowflake.pipes.refreshRefresh the pipewritesnowflake.pipes.set_tagsSet tags on a pipewritesnowflake.pipes.unset_tagsUnset tags from a pipewrite
Procedures8
snowflake.procedures.callCall a procedurewritesnowflake.procedures.createCreate a procedurewritesnowflake.procedures.deleteDelete a proceduredestructivesnowflake.procedures.getFetch a procedurereadsnowflake.procedures.get_tagsGet the tag assignments for a procedurereadsnowflake.procedures.listList proceduresreadsnowflake.procedures.set_tagsSet tags on a procedurewritesnowflake.procedures.unset_tagsUnset tags from a procedurewrite
Streams8
snowflake.streams.cloneClone a streamwritesnowflake.streams.createCreate a streamwritesnowflake.streams.deleteDelete a streamdestructivesnowflake.streams.getFetch a streamreadsnowflake.streams.get_tagsGet the tag assignments for a streamreadsnowflake.streams.listList streamsreadsnowflake.streams.set_tagsSet tags on a streamwritesnowflake.streams.unset_tagsUnset tags from a streamwrite
Catalog integrations7
snowflake.catalog_integrations.createCreate a catalog integrationwritesnowflake.catalog_integrations.deleteDelete a catalog integrationdestructivesnowflake.catalog_integrations.getFetch a catalog integrationreadsnowflake.catalog_integrations.get_tagsGet the tag assignments for a catalog integrationreadsnowflake.catalog_integrations.listList catalog integrationsreadsnowflake.catalog_integrations.set_tagsSet tags on a catalog integrationwritesnowflake.catalog_integrations.unset_tagsUnset tags from a catalog integrationwrite
Grants7
snowflake.grants.grant_bulk_privilegeGrant the specified privilege(s) on all/future (as specified by bulkGrantType) securables of this type in a given scope …destructivesnowflake.grants.grant_privilegeGrant the specified privilege(s) on the named securable to the named granteedestructivesnowflake.grants.list_toList of privileges associated with this grantee type and namereadsnowflake.grants.revoke_bulk_privilegeRevoke the specified privilege on the specified all/future securable in the given scope from the named granteedestructivesnowflake.grants.revoke_bulk_privilege_grant_optionRevoke the grant option for the specified privilege on the specified all/future securable in the given scope from the na…destructivesnowflake.grants.revoke_privilegeRevoke the specified privilege on the named securable from the named granteedestructivesnowflake.grants.revoke_privilege_grant_optionRevoke the grant option for the specified privilege on the named securable from the named granteedestructive
Network policies7
snowflake.network_policies.createCreate a network policywritesnowflake.network_policies.deleteDelete a network policydestructivesnowflake.network_policies.getFetch a network policyreadsnowflake.network_policies.get_tagsGet the tag assignments for a network policyreadsnowflake.network_policies.listList network policiesreadsnowflake.network_policies.set_tagsSet tags on a network policywritesnowflake.network_policies.unset_tagsUnset tags from a network policywrite
Notification integrations7
snowflake.notification_integrations.createCreate a notification integrationwritesnowflake.notification_integrations.deleteDelete a notification integrationdestructivesnowflake.notification_integrations.getFetch a notification integrationreadsnowflake.notification_integrations.get_tagsGet the tag assignments for a notification integrationreadsnowflake.notification_integrations.listList notification integrationsreadsnowflake.notification_integrations.set_tagsSet tags on a notification integrationwritesnowflake.notification_integrations.unset_tagsUnset tags from a notification integrationwrite
Tags7
snowflake.tags.createCreate a tagwritesnowflake.tags.create_or_alterCreate or update a tagwritesnowflake.tags.deleteDelete a tagdestructivesnowflake.tags.getFetch a tagreadsnowflake.tags.listList tagsreadsnowflake.tags.renameRename a tag with a new identifierwritesnowflake.tags.undropUndrop a tagwrite
Views7
snowflake.views.createCreate a viewwritesnowflake.views.deleteDelete a viewdestructivesnowflake.views.getFetch a viewreadsnowflake.views.get_tagsGet the tag assignments for a viewreadsnowflake.views.listList viewsreadsnowflake.views.set_tagsSet tags on a viewwritesnowflake.views.unset_tagsUnset tags from a viewwrite
Artifact repositories6
snowflake.artifact_repositories.createCreate an artifact repositorywritesnowflake.artifact_repositories.create_or_alterCreate or update an artifact repositorywritesnowflake.artifact_repositories.deleteDelete an artifact repositorydestructivesnowflake.artifact_repositories.getFetch an artifact repositoryreadsnowflake.artifact_repositories.listList artifact repositoriesreadsnowflake.artifact_repositories.renameChanges the name of an artifact repositorywrite
Code bundles6
snowflake.code_bundles.add_versionAdd a version to a code bundlewritesnowflake.code_bundles.createCreate a code bundlewritesnowflake.code_bundles.deleteDelete a code bundledestructivesnowflake.code_bundles.executeExecute a code bundlewritesnowflake.code_bundles.getFetch a code bundlereadsnowflake.code_bundles.listList code bundlesread
Sequences6
snowflake.sequences.cloneCreate a new sequence by cloning from the specified resourcewritesnowflake.sequences.createCreate a sequencewritesnowflake.sequences.deleteDelete a sequencedestructivesnowflake.sequences.getFetch a sequencereadsnowflake.sequences.listList sequencesreadsnowflake.sequences.renameRename a sequence with a new identifierwrite
Stages6
snowflake.stages.createCreate a stagewritesnowflake.stages.deleteDelete a stagedestructivesnowflake.stages.getFetch a stagereadsnowflake.stages.get_presigned_urlGenerate a presigned url and optionally encryption materialswritesnowflake.stages.listList stagesreadsnowflake.stages.list_filesList files in the stageread
Cortex inference5
snowflake.cortex_inference.anthropic_messagesPerform LLM text completion inference using Cortex Messages API formatwritesnowflake.cortex_inference.completePerform LLM text completion inferencewritesnowflake.cortex_inference.embedPerform LLM embedwritesnowflake.cortex_inference.get_modelsReturns the LLMs available for the current sessionreadsnowflake.cortex_inference.openai_chat_completionsPerform LLM text completion inference using Cortex Chat Completions API formatwrite
External volumes5
snowflake.external_volumes.createCreate an external volumewritesnowflake.external_volumes.deleteDelete an external volumedestructivesnowflake.external_volumes.getFetch an external volumereadsnowflake.external_volumes.listList external volumesreadsnowflake.external_volumes.undropUndrop an external volumewrite
Accounts4
snowflake.accounts.createCreate an accountwritesnowflake.accounts.deleteDelete an accountdestructivesnowflake.accounts.listList accountsreadsnowflake.accounts.undropRestore an accountwrite
Code bundle executions4
snowflake.code_bundle_executions.cancelCancel a code bundle executiondestructivesnowflake.code_bundle_executions.executeExecute a code bundlewritesnowflake.code_bundle_executions.get_statusGet the status of a code bundle executionreadsnowflake.code_bundle_executions.listList code bundle executionsread
Network rules4
snowflake.network_rules.createCreate a network rulewritesnowflake.network_rules.deleteDelete a network ruledestructivesnowflake.network_rules.getFetch a network rulereadsnowflake.network_rules.listList network rulesread
Secrets4
snowflake.secrets.createCreate a secretwritesnowflake.secrets.deleteDelete a secretdestructivesnowflake.secrets.getFetch a secretreadsnowflake.secrets.listList secretsread
Managed accounts3
snowflake.managed_accounts.createCreate a managed accountswritesnowflake.managed_accounts.deleteDelete a managed accountdestructivesnowflake.managed_accounts.listList managed accountsread
Statements3
snowflake.statements.cancelCancels the execution of a statementdestructivesnowflake.statements.getChecks the status of the execution of a statementreadsnowflake.statements.submitSubmits a SQL statement for executionwrite
Results1
snowflake.results.getCheck result status or fetch requestread
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.
Give your agent Snowflake today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.