Snowflake MCP Server for Cloudflare Workers
14 tools available in the Snowflake MCP server. Each tool can be called by AI assistants to perform specific actions.
snowflake_suspend_warehouseSuspend an active warehouse.
Stops a running warehouse to conserve credits. Any running queries will complete before the warehouse suspends.
Args:
Returns: Confirmation of warehouse suspension.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Warehouse name to suspend"
}
}
}snowflake_list_databasesList all databases accessible to the current user.
Returns information about each database including name, owner, creation date, and other metadata.
Args:
Returns: List of databases with their metadata.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
}
}
}snowflake_list_schemasList all schemas in a database.
Returns information about each schema including name, owner, and creation date.
Args:
Returns: List of schemas in the specified database.
{
"type": "object",
"required": [
"database"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"database": {
"type": "string",
"description": "Database name"
}
}
}snowflake_list_tablesList all tables in a schema.
Returns information about each table including name, row count, size, owner, and other metadata.
Args:
Returns: List of tables in the specified schema.
{
"type": "object",
"required": [
"database",
"schema"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"schema": {
"type": "string",
"description": "Schema name"
},
"database": {
"type": "string",
"description": "Database name"
}
}
}snowflake_list_viewsList all views in a schema.
Returns information about each view including name, whether it's secure, materialized, and other metadata.
Args:
Returns: List of views in the specified schema.
{
"type": "object",
"required": [
"database",
"schema"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"schema": {
"type": "string",
"description": "Schema name"
},
"database": {
"type": "string",
"description": "Database name"
}
}
}snowflake_describe_tableGet detailed column information for a table or view.
Returns information about each column including name, data type, nullability, default value, and constraints.
Args:
Returns: List of columns with their definitions.
{
"type": "object",
"required": [
"database",
"schema",
"table"
],
"properties": {
"table": {
"type": "string",
"description": "Table or view name"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"schema": {
"type": "string",
"description": "Schema name"
},
"database": {
"type": "string",
"description": "Database name"
}
}
}snowflake_executeExecute a SQL statement synchronously in Snowflake.
This tool executes a SQL query and waits for the result. Use this for queries that complete quickly (under 45 seconds). For long-running queries, use snowflake_execute_async instead.
Args:
Returns: Query results including columns, data, and execution statistics.
Example: statement: "SELECT * FROM my_table LIMIT 10" database: "MY_DB" schema: "PUBLIC"
{
"type": "object",
"required": [
"statement"
],
"properties": {
"role": {
"type": "string",
"description": "Role to use"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"schema": {
"type": "string",
"description": "Schema context"
},
"timeout": {
"type": "integer",
"default": 60,
"maximum": 3600,
"minimum": 1,
"description": "Timeout in seconds"
},
"database": {
"type": "string",
"description": "Database context"
},
"statement": {
"type": "string",
"description": "SQL statement to execute"
},
"warehouse": {
"type": "string",
"description": "Warehouse to use"
}
}
}snowflake_execute_asyncExecute a SQL statement asynchronously in Snowflake.
This tool submits a SQL query for asynchronous execution and returns immediately with a statement handle. Use snowflake_get_status to check execution progress and snowflake_get_result to retrieve results when ready.
Args:
Returns: Statement handle and status URL for polling.
Example: statement: "SELECT * FROM large_table"
{
"type": "object",
"required": [
"statement"
],
"properties": {
"role": {
"type": "string",
"description": "Role to use"
},
"schema": {
"type": "string",
"description": "Schema context"
},
"timeout": {
"type": "integer",
"default": 3600,
"maximum": 86400,
"minimum": 1,
"description": "Timeout in seconds"
},
"database": {
"type": "string",
"description": "Database context"
},
"statement": {
"type": "string",
"description": "SQL statement to execute"
},
"warehouse": {
"type": "string",
"description": "Warehouse to use"
}
}
}snowflake_get_statusCheck the execution status of an async SQL statement.
Use this tool to poll for completion of statements submitted with snowflake_execute_async.
Args:
Returns: Current execution status (running, queued, success, failed_with_error, etc.)
{
"type": "object",
"required": [
"statementHandle"
],
"properties": {
"statementHandle": {
"type": "string",
"description": "Statement handle from async execution"
}
}
}snowflake_get_resultRetrieve results from a completed SQL statement.
Use this tool to fetch results after a statement has completed execution. For large result sets, use the partition parameter to fetch additional data.
Args:
Returns: Query results including columns, data, and partition information.
{
"type": "object",
"required": [
"statementHandle"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"partition": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Partition number"
},
"statementHandle": {
"type": "string",
"description": "Statement handle"
}
}
}snowflake_cancelCancel a running SQL statement.
Use this tool to terminate execution of a statement that is still running.
Args:
Returns: Confirmation of cancellation.
{
"type": "object",
"required": [
"statementHandle"
],
"properties": {
"statementHandle": {
"type": "string",
"description": "Statement handle to cancel"
}
}
}snowflake_list_warehousesList all warehouses accessible to the current user.
Returns information about each warehouse including name, state (STARTED/SUSPENDED), size, running queries, queued queries, and configuration.
Args:
Returns: List of warehouses with their status and configuration.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
}
}
}snowflake_get_warehouseGet detailed status of a specific warehouse.
Returns comprehensive information about the warehouse including state, size, cluster count, running/queued queries, and all configuration settings.
Args:
Returns: Warehouse details and current status.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Warehouse name"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
}
}
}snowflake_resume_warehouseResume a suspended warehouse.
Starts a suspended warehouse so it can execute queries. The warehouse will begin consuming credits once resumed.
Args:
Returns: Confirmation of warehouse resumption.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Warehouse name to resume"
}
}
}