Skip to content

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/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
  • 408actionsin one signed file
  • 135readlook, never change
  • 210writecreate and update
  • 63wait for a yesdestructive, 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_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
  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 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
  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.

ActionWhat it doesEffectSame name in
snowflake.users.listList users in the systemList users in the system.readidentity.user.list474 connectors
snowflake.databases.listList databasesList databases.readcontent.database.list12 connectors
snowflake.roles.listList rolesList roles.readidentity.role.list184 connectors
snowflake.users.createCreate a userCreate a user.writeidentity.user.create262 connectors
snowflake.databases.createCreate a databaseCreate a database.writecontent.database.create15 connectors
snowflake.roles.createCreate a roleCreate a role.writeidentity.role.create105 connectors
snowflake.users.deleteDelete a userDelete a user.destructiveidentity.user.delete253 connectors
snowflake.tables.listList tablesList tables.readcontent.table.list21 connectors
snowflake.tables.createCreate a table (clone and undrop are separate subresources)Create a table (clone and undrop are separate subresources).writecontent.table.create16 connectors
snowflake.views.listList viewsList views.readcontent.view.list6 connectors
snowflake.views.createCreate a viewCreate a view.writecontent.view.create5 connectors
snowflake.services.createCreate a serviceCreate a service.writeinfra.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.

  1. Readread

    Who has access in Snowflake? List every user and their role.

    callssnowflake.users.list

  2. Writewrite

    Create a user in Snowflake. Show me exactly what you will send before you save it.

    callssnowflake.users.create

Governance for Snowflake

Destructive actions wait for a yes.

63 Snowflake actions are destructive. The first 10:

  • Delete a usersnowflake.users.delete
  • Delete a databasesnowflake.databases.delete
  • Delete a rolesnowflake.roles.delete
  • Delete a tablesnowflake.tables.delete
  • Delete a viewsnowflake.views.delete
  • Delete a servicesnowflake.services.delete
  • Delete a secretsnowflake.secrets.delete
  • Delete an accountsnowflake.accounts.delete
  • Delete a network policysnowflake.network_policies.delete
  • Delete a tagsnowflake.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.

dosnowflake.users.deleteconfirm_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: "[email protected]" },    { match: "snowflake.databases.delete", approver: "[email protected]" },    { match: "snowflake.roles.delete", approver: "[email protected]" }  ]}
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.

  • 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

See pricing

Action index

Every Snowflake action.

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

Tables22
  • snowflake.tables.cloneClone tablewrite
  • snowflake.tables.createCreate a table (clone and undrop are separate subresources)write
  • snowflake.tables.create_as_selectCreate a table using the result of the specified select querywrite
  • snowflake.tables.create_as_select_deprecatedCreate a table using the result of the specified select querywrite
  • snowflake.tables.create_likeCreate a table like this existing onewrite
  • snowflake.tables.create_like_deprecatedCreate a table like this existing onewrite
  • snowflake.tables.create_or_alterCreate a (or alter an existing) tablewrite
  • snowflake.tables.create_using_templateCreate a table using the templates specified in staged fileswrite
  • snowflake.tables.create_using_template_deprecatedCreate a table using the templates specified in staged fileswrite
  • snowflake.tables.deleteDelete a tabledestructive
  • snowflake.tables.getFetch a tableread
  • snowflake.tables.get_tagsGet the tag assignments for a tableread
  • snowflake.tables.listList tablesread
  • snowflake.tables.resume_reclusterResume recluster of a tablewrite
  • snowflake.tables.resume_recluster_deprecatedResume recluster of a tablewrite
  • snowflake.tables.set_tagsSet tags on a tablewrite
  • snowflake.tables.suspend_reclusterSuspend recluster of a tablewrite
  • snowflake.tables.suspend_recluster_deprecatedSuspend recluster of a tablewrite
  • snowflake.tables.swapSwap with another tablewrite
  • snowflake.tables.swap_deprecatedSwap with another tablewrite
  • snowflake.tables.undropUndrop a tablewrite
  • snowflake.tables.unset_tagsUnset tags from a tablewrite
Iceberg tables19
  • snowflake.iceberg_tables.cloneClone a snowflake managed iceberg tablewrite
  • snowflake.iceberg_tables.convert_to_managedConverts an Apache Iceberg™ table that uses an external Iceberg catalog into a table that uses Snowflake as the catalogwrite
  • snowflake.iceberg_tables.create_snowflake_managedCreate a snowflake managed iceberg table (clone and undrop are separate subresources)write
  • snowflake.iceberg_tables.create_snowflake_managed_as_selectCreate a snowflake managed iceberg table as selectwrite
  • snowflake.iceberg_tables.create_snowflake_managed_likeCreate iceberg table likewrite
  • snowflake.iceberg_tables.create_unmanaged_from_aws_glue_catalogCreate an unmanaged iceberg table from AWS Glue catalogwrite
  • snowflake.iceberg_tables.create_unmanaged_from_deltaCreate an unmanaged iceberg table from Deltawrite
  • snowflake.iceberg_tables.create_unmanaged_from_iceberg_filesCreate an unmanaged iceberg table from Iceberg fileswrite
  • snowflake.iceberg_tables.create_unmanaged_from_iceberg_restCreate an unmanaged iceberg table from Iceberg RESTwrite
  • snowflake.iceberg_tables.dropDrop iceberg tabledestructive
  • snowflake.iceberg_tables.getDescribe iceberg tableread
  • snowflake.iceberg_tables.get_tagsGet the tag assignments for an Iceberg tableread
  • snowflake.iceberg_tables.listList iceberg tablesread
  • snowflake.iceberg_tables.refreshRefreshes the metadata for an Apache Iceberg table that uses an external Iceberg catalogwrite
  • snowflake.iceberg_tables.resume_reclusterResume recluster of an iceberg tablewrite
  • snowflake.iceberg_tables.set_tagsSet tags on an Iceberg tablewrite
  • snowflake.iceberg_tables.suspend_reclusterSuspend recluster of an iceberg tablewrite
  • snowflake.iceberg_tables.undropUndrop iceberg tablewrite
  • snowflake.iceberg_tables.unset_tagsUnset tags from an Iceberg tablewrite
Databases18
  • snowflake.databases.cloneClone a databasewrite
  • snowflake.databases.createCreate a databasewrite
  • snowflake.databases.create_from_shareCreate a database from a sharewrite
  • snowflake.databases.create_from_share_deprecatedCreate a database from a sharewrite
  • snowflake.databases.create_or_alterCreate a new, or alters an existing, databasewrite
  • snowflake.databases.deleteDelete a databasedestructive
  • snowflake.databases.disable_failoverDisable database failoverwrite
  • snowflake.databases.disable_replicationDisable database replicationwrite
  • snowflake.databases.enable_failoverEnable database failoverwrite
  • snowflake.databases.enable_replicationEnable database replicationwrite
  • snowflake.databases.getfetchDatabaseread
  • snowflake.databases.get_tagsGet the tag assignments for a databaseread
  • snowflake.databases.listList databasesread
  • snowflake.databases.primary_failoverSet a primary databasewrite
  • snowflake.databases.refresh_replicationRefresh database replicationswrite
  • snowflake.databases.set_tagsSet tags on a databasewrite
  • snowflake.databases.undropUndrop a databasewrite
  • snowflake.databases.unset_tagsUnset tags from a databasewrite
Services16
  • snowflake.services.createCreate a servicewrite
  • snowflake.services.create_or_alterCreate a (or alter an existing) servicewrite
  • snowflake.services.deleteDelete a servicedestructive
  • snowflake.services.execute_jobExecute a job servicewrite
  • snowflake.services.getfetchServiceread
  • snowflake.services.get_logsfetchServiceLogsread
  • snowflake.services.get_statusfetchServiceStatusread
  • snowflake.services.listList servicesread
  • snowflake.services.list_containerslistServiceContainersread
  • snowflake.services.list_instanceslistServiceInstancesread
  • snowflake.services.list_role_grants_oflistServiceRoleGrantsOfread
  • snowflake.services.list_role_grants_tolistServiceRoleGrantsToread
  • snowflake.services.list_roleslistServiceRolesread
  • snowflake.services.resumeresumeServicewrite
  • snowflake.services.show_endpointsList the endpoints in a serviceread
  • snowflake.services.suspendsuspendServicewrite
Streamlits16
  • snowflake.streamlits.abortAbort live versiondestructive
  • snowflake.streamlits.add_live_versionAdd live versionwrite
  • snowflake.streamlits.add_versionAdd version from sourcewrite
  • snowflake.streamlits.add_version_from_gitAdd version from Gitwrite
  • snowflake.streamlits.commitCommit live versionwrite
  • snowflake.streamlits.createCreate a Streamlitwrite
  • snowflake.streamlits.deleteDelete a Streamlitdestructive
  • snowflake.streamlits.getFetch a Streamlitread
  • snowflake.streamlits.get_tagsGet the tag assignments for a Streamlitread
  • snowflake.streamlits.listList Streamlitsread
  • snowflake.streamlits.pullPull from Gitwrite
  • snowflake.streamlits.pushPush to Gitwrite
  • snowflake.streamlits.renameRename a Streamlitwrite
  • snowflake.streamlits.set_tagsSet tags on a Streamlitwrite
  • snowflake.streamlits.undropUndrop a Streamlitwrite
  • snowflake.streamlits.unset_tagsUnset tags from a Streamlitwrite
Tasks16
  • snowflake.tasks.createCreate a taskwrite
  • snowflake.tasks.create_or_alterCreate a (or alter an existing) taskwrite
  • snowflake.tasks.deleteDelete a taskdestructive
  • snowflake.tasks.executeExecute a task objectwrite
  • snowflake.tasks.getFetch a taskread
  • snowflake.tasks.get_complete_graphsGet the graph runs that are completed for the taskread
  • snowflake.tasks.get_complete_graphs_deprecatedGet the graph runs that are completed for the taskread
  • snowflake.tasks.get_current_graphsGet the graph runs that are executing or scheduled for the task for the next 8 daysread
  • snowflake.tasks.get_current_graphs_deprecatedGet the graph runs that are executing or scheduled for the task for the next 8 daysread
  • snowflake.tasks.get_dependentsFetch the dependent tasks of a taskread
  • snowflake.tasks.get_tagsGet the tag assignments for the taskread
  • snowflake.tasks.listList tasksread
  • snowflake.tasks.resumeResume a suspended taskwrite
  • snowflake.tasks.set_tagsSet tags on an existing taskwrite
  • snowflake.tasks.suspendSuspend a running taskwrite
  • snowflake.tasks.unset_tagsUnset tags from an existing taskwrite
Dynamic tables15
  • snowflake.dynamic_tables.cloneClone dynamic tablewrite
  • snowflake.dynamic_tables.createCreate a dynamic tablewrite
  • snowflake.dynamic_tables.deleteDelete a dynamic tabledestructive
  • snowflake.dynamic_tables.getFetch a dynamic tableread
  • snowflake.dynamic_tables.get_tagsGet the tag assignments for a dynamic tableread
  • snowflake.dynamic_tables.listList dynamic tablesread
  • snowflake.dynamic_tables.refreshRefresh the dynamic tablewrite
  • snowflake.dynamic_tables.resumeResume refreshes on the dynamic tablewrite
  • snowflake.dynamic_tables.resume_reclusterResume recluster of a dynamic tablewrite
  • snowflake.dynamic_tables.set_tagsSet tags on a dynamic tablewrite
  • snowflake.dynamic_tables.suspendSuspend refreshes on the dynamic tablewrite
  • snowflake.dynamic_tables.suspend_reclusterSuspend recluster of a dynamic tablewrite
  • snowflake.dynamic_tables.swapSwap with another dynamic tablewrite
  • snowflake.dynamic_tables.undropUndrop a dynamic tablewrite
  • snowflake.dynamic_tables.unset_tagsUnset tags from a dynamic tablewrite
Warehouses15
  • snowflake.warehouses.abort_all_queriesAbort all queriesdestructive
  • snowflake.warehouses.createCreate or replace warehousewrite
  • snowflake.warehouses.create_or_alterCreate a (or alter an existing) warehousewrite
  • snowflake.warehouses.deleteDrop warehousedestructive
  • snowflake.warehouses.disabledisable adaptive warehousewrite
  • snowflake.warehouses.enableenable adaptive warehousewrite
  • snowflake.warehouses.getDescribe warehouseread
  • snowflake.warehouses.get_tagsGet the tag assignments for a warehouseread
  • snowflake.warehouses.listList warehouseread
  • snowflake.warehouses.renameUpdate and rename warehousewrite
  • snowflake.warehouses.resumeResume warehousewrite
  • snowflake.warehouses.set_tagsSet tags on a warehousewrite
  • snowflake.warehouses.suspendSuspend warehousewrite
  • snowflake.warehouses.unset_tagsUnset tags from a warehousewrite
  • snowflake.warehouses.useUse current warehouse for sessionwrite
Roles14
  • snowflake.roles.createCreate a rolewrite
  • snowflake.roles.deleteDelete a roledestructive
  • snowflake.roles.get_tagsGet the tag assignments for a roleread
  • snowflake.roles.grant_future_privilegesGrant future privileges to the roledestructive
  • snowflake.roles.grant_privilegesGrant privileges to the roledestructive
  • snowflake.roles.listList rolesread
  • snowflake.roles.list_future_grantsList all future grants to the roleread
  • snowflake.roles.list_grantsList all grants to the roleread
  • snowflake.roles.list_grants_ofList all grants of the roleread
  • snowflake.roles.list_grants_onList all grants on the roleread
  • snowflake.roles.revoke_future_grantsRevoke future grants from the roledestructive
  • snowflake.roles.revoke_grantsRevoke grants from the roledestructive
  • snowflake.roles.set_tagsSet tags on a roledestructive
  • snowflake.roles.unset_tagsUnset tags from a rolewrite
Compute pools13
  • snowflake.compute_pools.createCreates a compute poolwrite
  • snowflake.compute_pools.create_or_alterCreate a (or alter an existing) compute poolwrite
  • snowflake.compute_pools.deleteDeletes a compute pooldestructive
  • snowflake.compute_pools.getFetches a compute poolread
  • snowflake.compute_pools.get_tagsGet the tag assignments for a compute poolread
  • snowflake.compute_pools.listLists compute poolsread
  • snowflake.compute_pools.list_instance_familiesLists available compute pool instance familiesread
  • snowflake.compute_pools.resumeResumes a suspended compute poolwrite
  • snowflake.compute_pools.set_tagsSet tags on a compute poolwrite
  • snowflake.compute_pools.stop_all_servicesStops all services on the compute pooldestructive
  • snowflake.compute_pools.stop_all_services_deprecatedStops all services on the compute pooldestructive
  • snowflake.compute_pools.suspendSuspends an active compute poolwrite
  • snowflake.compute_pools.unset_tagsUnset tags from a compute poolwrite
Database roles13
  • snowflake.database_roles.cloneCreate a new database role by cloning from the specified resourcewrite
  • snowflake.database_roles.createCreate a database rolewrite
  • snowflake.database_roles.deleteDelete a database roledestructive
  • snowflake.database_roles.get_tagsGet the tag assignments for a database roleread
  • snowflake.database_roles.grant_future_privilegesGrant future privileges to the roledestructive
  • snowflake.database_roles.grant_privilegesGrant privileges to the roledestructive
  • snowflake.database_roles.listList database rolesread
  • snowflake.database_roles.list_future_grantsList all future grants to the roleread
  • snowflake.database_roles.list_grantsList all grants to the roleread
  • snowflake.database_roles.revoke_future_grantsRevoke future grants from the roledestructive
  • snowflake.database_roles.revoke_grantsRevoke grants from the roledestructive
  • snowflake.database_roles.set_tagsSet tags on a database roledestructive
  • snowflake.database_roles.unset_tagsUnset tags from a database rolewrite
Notebooks11
  • snowflake.notebooks.add_live_versionAdds an LIVE version to the notebookwrite
  • snowflake.notebooks.commitCommits the LIVE version of the notebookwrite
  • snowflake.notebooks.createCreate a notebookwrite
  • snowflake.notebooks.deleteDelete a notebookdestructive
  • snowflake.notebooks.executeExecute a Notebookwrite
  • snowflake.notebooks.getFetch a notebookread
  • snowflake.notebooks.get_tagsGet the tag assignments for a notebookread
  • snowflake.notebooks.listList notebooksread
  • snowflake.notebooks.renameChanges the name of the notebook to new namewrite
  • snowflake.notebooks.set_tagsSet tags on a notebookwrite
  • snowflake.notebooks.unset_tagsUnset tags from a notebookwrite
Users11
  • snowflake.users.createCreate a userwrite
  • snowflake.users.create_or_alterCreate a (or alter an existing) userwrite
  • snowflake.users.deleteDelete a userdestructive
  • snowflake.users.getFetch information about a userread
  • snowflake.users.get_tagsGet the tag assignments for a userread
  • snowflake.users.grantGrant a role to the userdestructive
  • snowflake.users.listList users in the systemread
  • snowflake.users.list_grantsList all grants to the userread
  • snowflake.users.revoke_grantsRevoke grants from the userdestructive
  • snowflake.users.set_tagsSet tags on a userwrite
  • snowflake.users.unset_tagsUnset tags from a userwrite
Schemas10
  • snowflake.schemas.cloneClone a schemawrite
  • snowflake.schemas.createCreate a schemawrite
  • snowflake.schemas.create_or_alterCreate a new, or alters an existing, schemawrite
  • snowflake.schemas.deleteDelete a schemadestructive
  • snowflake.schemas.getfetchSchemaread
  • snowflake.schemas.get_tagsGet the tag assignments for a schemaread
  • snowflake.schemas.listList schemasread
  • snowflake.schemas.set_tagsSet tags on a schemawrite
  • snowflake.schemas.undropUndrop a schemawrite
  • snowflake.schemas.unset_tagsUnset tags from a schemawrite
Alerts9
  • snowflake.alerts.cloneCreate a new alert by cloning from the specified resourcewrite
  • snowflake.alerts.createCreate an alertwrite
  • snowflake.alerts.deleteDelete an alertdestructive
  • snowflake.alerts.executeExecute an alertwrite
  • snowflake.alerts.getFetch an alertread
  • snowflake.alerts.get_tagsGet the tag assignments for an alertread
  • snowflake.alerts.listList alertsread
  • snowflake.alerts.set_tagsSet tags on an alertwrite
  • snowflake.alerts.unset_tagsUnset tags from an alertwrite
Cortex analyst9
  • snowflake.cortex_analyst.fast_generationRapidly generate a semantic model given source materialwrite
  • snowflake.cortex_analyst.generate_filters_and_metrics_suggestionsGenerate filters, facts, and metrics suggestions for a semantic modelwrite
  • snowflake.cortex_analyst.generate_verified_query_suggestionsGenerate VQ suggestions for a semantic modelwrite
  • snowflake.cortex_analyst.get_agentic_optimizationGet the status and state of a specified agentic optimization runread
  • snowflake.cortex_analyst.get_scoped_tokenInternal endpoint to exchange a Cortex Analyst Oauth tokenread
  • snowflake.cortex_analyst.list_agentic_optimizationsList all agentic optimization runs for a given base modelread
  • snowflake.cortex_analyst.pre_selectionRetrieve relevant table information from input data for semantic model generationwrite
  • snowflake.cortex_analyst.send_feedbacksendFeedbackwrite
  • snowflake.cortex_analyst.send_messageSend a data question to the Cortex Analystwrite
Cortex search services9
  • snowflake.cortex_search_services.createCreate a cortex search servicewrite
  • snowflake.cortex_search_services.deleteDelete a cortex search servicedestructive
  • snowflake.cortex_search_services.getFetch a cortex search serviceread
  • snowflake.cortex_search_services.listList cortex search servicesread
  • snowflake.cortex_search_services.queryQuery a Cortex Search Serviceread
  • snowflake.cortex_search_services.resumeResume the cortex search servicewrite
  • snowflake.cortex_search_services.send_feedbacksendFeedbackwrite
  • snowflake.cortex_search_services.suggestSuggest from a Cortex Search Serviceread
  • snowflake.cortex_search_services.suspendSuspend a cortex search servicewrite
User defined functions9
  • snowflake.user_defined_functions.createCreate a UDFwrite
  • snowflake.user_defined_functions.deleteDelete a UDFdestructive
  • snowflake.user_defined_functions.executeExecute a UDFwrite
  • snowflake.user_defined_functions.getFetch a UDFread
  • snowflake.user_defined_functions.get_tagsGet the tag assignments for a user-defined functionread
  • snowflake.user_defined_functions.listList UDFsread
  • snowflake.user_defined_functions.renameRename a UDFwrite
  • snowflake.user_defined_functions.set_tagsSet tags on a user-defined functionwrite
  • snowflake.user_defined_functions.unset_tagsUnset tags from a user-defined functionwrite
API integrations8
  • snowflake.api_integrations.createCreate an API integrationwrite
  • snowflake.api_integrations.create_or_alterCreate an (or alter an existing) API integrationwrite
  • snowflake.api_integrations.deleteDelete an API integrationdestructive
  • snowflake.api_integrations.getFetch an API integrationread
  • snowflake.api_integrations.get_tagsGet the tag assignments for an API integrationread
  • snowflake.api_integrations.listList API integrationsread
  • snowflake.api_integrations.set_tagsSet tags on an API integrationwrite
  • snowflake.api_integrations.unset_tagsUnset tags from an API integrationwrite
Event tables8
  • snowflake.event_tables.createCreate an event tablewrite
  • snowflake.event_tables.deleteDelete an event tabledestructive
  • snowflake.event_tables.getFetch an event tableread
  • snowflake.event_tables.get_tagsGet the tag assignments for an event tableread
  • snowflake.event_tables.listList event tablesread
  • snowflake.event_tables.renameRename the event tablewrite
  • snowflake.event_tables.set_tagsSet tags on an event tablewrite
  • snowflake.event_tables.unset_tagsUnset tags from an event tablewrite
Functions8
  • snowflake.functions.createCreate a service functionwrite
  • snowflake.functions.deleteDelete a service functiondestructive
  • snowflake.functions.executeExecute a service functionwrite
  • snowflake.functions.getFetch a service functionread
  • snowflake.functions.get_tagsGet the tag assignments for a service functionread
  • snowflake.functions.listList service functionsread
  • snowflake.functions.set_tagsSet tags on a service functionwrite
  • snowflake.functions.unset_tagsUnset tags from a service functionwrite
Image repositories8
  • snowflake.image_repositories.createCreates an image repository in the specified database and schemawrite
  • snowflake.image_repositories.deleteDeletes an image repositorydestructive
  • snowflake.image_repositories.getFetches an image repositoryread
  • snowflake.image_repositories.get_tagsGet the tag assignments for an image repositoryread
  • snowflake.image_repositories.listLists image repositoriesread
  • snowflake.image_repositories.list_images_in_repositoryList images in the image repositoryread
  • snowflake.image_repositories.set_tagsSet tags on an image repositorywrite
  • snowflake.image_repositories.unset_tagsUnset tags from an image repositorywrite
Password policies8
  • snowflake.password_policies.createCreate a password policywrite
  • snowflake.password_policies.deleteDelete a password policydestructive
  • snowflake.password_policies.getFetch a password policyread
  • snowflake.password_policies.get_tagsGet the tag assignments for a password policyread
  • snowflake.password_policies.listList password policiesread
  • snowflake.password_policies.renameRename a password policy with a new identifierwrite
  • snowflake.password_policies.set_tagsSet tags on a password policywrite
  • snowflake.password_policies.unset_tagsUnset tags from a password policywrite
Pipes8
  • snowflake.pipes.createCreate a pipewrite
  • snowflake.pipes.deleteDelete a pipedestructive
  • snowflake.pipes.getFetch a piperead
  • snowflake.pipes.get_tagsGet the tag assignments for a piperead
  • snowflake.pipes.listList pipesread
  • snowflake.pipes.refreshRefresh the pipewrite
  • snowflake.pipes.set_tagsSet tags on a pipewrite
  • snowflake.pipes.unset_tagsUnset tags from a pipewrite
Procedures8
  • snowflake.procedures.callCall a procedurewrite
  • snowflake.procedures.createCreate a procedurewrite
  • snowflake.procedures.deleteDelete a proceduredestructive
  • snowflake.procedures.getFetch a procedureread
  • snowflake.procedures.get_tagsGet the tag assignments for a procedureread
  • snowflake.procedures.listList proceduresread
  • snowflake.procedures.set_tagsSet tags on a procedurewrite
  • snowflake.procedures.unset_tagsUnset tags from a procedurewrite
Streams8
  • snowflake.streams.cloneClone a streamwrite
  • snowflake.streams.createCreate a streamwrite
  • snowflake.streams.deleteDelete a streamdestructive
  • snowflake.streams.getFetch a streamread
  • snowflake.streams.get_tagsGet the tag assignments for a streamread
  • snowflake.streams.listList streamsread
  • snowflake.streams.set_tagsSet tags on a streamwrite
  • snowflake.streams.unset_tagsUnset tags from a streamwrite
Catalog integrations7
  • snowflake.catalog_integrations.createCreate a catalog integrationwrite
  • snowflake.catalog_integrations.deleteDelete a catalog integrationdestructive
  • snowflake.catalog_integrations.getFetch a catalog integrationread
  • snowflake.catalog_integrations.get_tagsGet the tag assignments for a catalog integrationread
  • snowflake.catalog_integrations.listList catalog integrationsread
  • snowflake.catalog_integrations.set_tagsSet tags on a catalog integrationwrite
  • snowflake.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 …destructive
  • snowflake.grants.grant_privilegeGrant the specified privilege(s) on the named securable to the named granteedestructive
  • snowflake.grants.list_toList of privileges associated with this grantee type and nameread
  • snowflake.grants.revoke_bulk_privilegeRevoke the specified privilege on the specified all/future securable in the given scope from the named granteedestructive
  • snowflake.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…destructive
  • snowflake.grants.revoke_privilegeRevoke the specified privilege on the named securable from the named granteedestructive
  • snowflake.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 policywrite
  • snowflake.network_policies.deleteDelete a network policydestructive
  • snowflake.network_policies.getFetch a network policyread
  • snowflake.network_policies.get_tagsGet the tag assignments for a network policyread
  • snowflake.network_policies.listList network policiesread
  • snowflake.network_policies.set_tagsSet tags on a network policywrite
  • snowflake.network_policies.unset_tagsUnset tags from a network policywrite
Notification integrations7
  • snowflake.notification_integrations.createCreate a notification integrationwrite
  • snowflake.notification_integrations.deleteDelete a notification integrationdestructive
  • snowflake.notification_integrations.getFetch a notification integrationread
  • snowflake.notification_integrations.get_tagsGet the tag assignments for a notification integrationread
  • snowflake.notification_integrations.listList notification integrationsread
  • snowflake.notification_integrations.set_tagsSet tags on a notification integrationwrite
  • snowflake.notification_integrations.unset_tagsUnset tags from a notification integrationwrite
Tags7
  • snowflake.tags.createCreate a tagwrite
  • snowflake.tags.create_or_alterCreate or update a tagwrite
  • snowflake.tags.deleteDelete a tagdestructive
  • snowflake.tags.getFetch a tagread
  • snowflake.tags.listList tagsread
  • snowflake.tags.renameRename a tag with a new identifierwrite
  • snowflake.tags.undropUndrop a tagwrite
Views7
  • snowflake.views.createCreate a viewwrite
  • snowflake.views.deleteDelete a viewdestructive
  • snowflake.views.getFetch a viewread
  • snowflake.views.get_tagsGet the tag assignments for a viewread
  • snowflake.views.listList viewsread
  • snowflake.views.set_tagsSet tags on a viewwrite
  • snowflake.views.unset_tagsUnset tags from a viewwrite
Artifact repositories6
  • snowflake.artifact_repositories.createCreate an artifact repositorywrite
  • snowflake.artifact_repositories.create_or_alterCreate or update an artifact repositorywrite
  • snowflake.artifact_repositories.deleteDelete an artifact repositorydestructive
  • snowflake.artifact_repositories.getFetch an artifact repositoryread
  • snowflake.artifact_repositories.listList artifact repositoriesread
  • snowflake.artifact_repositories.renameChanges the name of an artifact repositorywrite
Code bundles6
  • snowflake.code_bundles.add_versionAdd a version to a code bundlewrite
  • snowflake.code_bundles.createCreate a code bundlewrite
  • snowflake.code_bundles.deleteDelete a code bundledestructive
  • snowflake.code_bundles.executeExecute a code bundlewrite
  • snowflake.code_bundles.getFetch a code bundleread
  • snowflake.code_bundles.listList code bundlesread
Sequences6
  • snowflake.sequences.cloneCreate a new sequence by cloning from the specified resourcewrite
  • snowflake.sequences.createCreate a sequencewrite
  • snowflake.sequences.deleteDelete a sequencedestructive
  • snowflake.sequences.getFetch a sequenceread
  • snowflake.sequences.listList sequencesread
  • snowflake.sequences.renameRename a sequence with a new identifierwrite
Stages6
  • snowflake.stages.createCreate a stagewrite
  • snowflake.stages.deleteDelete a stagedestructive
  • snowflake.stages.getFetch a stageread
  • snowflake.stages.get_presigned_urlGenerate a presigned url and optionally encryption materialswrite
  • snowflake.stages.listList stagesread
  • snowflake.stages.list_filesList files in the stageread
Cortex inference5
  • snowflake.cortex_inference.anthropic_messagesPerform LLM text completion inference using Cortex Messages API formatwrite
  • snowflake.cortex_inference.completePerform LLM text completion inferencewrite
  • snowflake.cortex_inference.embedPerform LLM embedwrite
  • snowflake.cortex_inference.get_modelsReturns the LLMs available for the current sessionread
  • snowflake.cortex_inference.openai_chat_completionsPerform LLM text completion inference using Cortex Chat Completions API formatwrite
External volumes5
  • snowflake.external_volumes.createCreate an external volumewrite
  • snowflake.external_volumes.deleteDelete an external volumedestructive
  • snowflake.external_volumes.getFetch an external volumeread
  • snowflake.external_volumes.listList external volumesread
  • snowflake.external_volumes.undropUndrop an external volumewrite
Accounts4
  • snowflake.accounts.createCreate an accountwrite
  • snowflake.accounts.deleteDelete an accountdestructive
  • snowflake.accounts.listList accountsread
  • snowflake.accounts.undropRestore an accountwrite
Code bundle executions4
  • snowflake.code_bundle_executions.cancelCancel a code bundle executiondestructive
  • snowflake.code_bundle_executions.executeExecute a code bundlewrite
  • snowflake.code_bundle_executions.get_statusGet the status of a code bundle executionread
  • snowflake.code_bundle_executions.listList code bundle executionsread
Network rules4
  • snowflake.network_rules.createCreate a network rulewrite
  • snowflake.network_rules.deleteDelete a network ruledestructive
  • snowflake.network_rules.getFetch a network ruleread
  • snowflake.network_rules.listList network rulesread
Secrets4
  • snowflake.secrets.createCreate a secretwrite
  • snowflake.secrets.deleteDelete a secretdestructive
  • snowflake.secrets.getFetch a secretread
  • snowflake.secrets.listList secretsread
Managed accounts3
  • snowflake.managed_accounts.createCreate a managed accountswrite
  • snowflake.managed_accounts.deleteDelete a managed accountdestructive
  • snowflake.managed_accounts.listList managed accountsread
Statements3
  • snowflake.statements.cancelCancels the execution of a statementdestructive
  • snowflake.statements.getChecks the status of the execution of a statementread
  • snowflake.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.