自动化执行 Snowflake 数据仓库查询、对象浏览与数据工作流管理。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "Snowflake Automation" 技能: 1. 下载 https://raw.githubusercontent.com/ComposioHQ/awesome-claude-skills/master/composio-skills/snowflake-automation/SKILL.md 2. 保存为 ~/.claude/skills/snowflake-automation/SKILL.md 3. 装好后重载技能,告诉我可以用了
Automate your Snowflake data warehouse workflows -- discover databases, browse schemas and tables, execute arbitrary SQL (SELECT, DDL, DML), and integrate Snowflake data operations into cross-app pipelines.
Toolkit docs: composio.dev/toolkits/snowflake
https://rube.app/mcpUse SNOWFLAKE_SHOW_DATABASES to discover available databases with optional filtering and Time Travel support.
Tool: SNOWFLAKE_SHOW_DATABASES
Inputs:
- like_pattern: string (SQL wildcard, e.g., "%test%") -- case-insensitive
- starts_with: string (e.g., "PROD") -- case-sensitive
- limit: integer (max 10000)
- history: boolean (include dropped databases within Time Travel retention)
- terse: boolean (return subset of columns: created_on, name, kind, database_name, schema_name)
- role: string (role to use for execution)
- warehouse: string (optional, not required for SHOW DATABASES)
- timeout: integer (seconds)
Use SNOWFLAKE_SHOW_SCHEMAS to list schemas within a database or across the account.
Tool: SNOWFLAKE_SHOW_SCHEMAS
Inputs:
- database: string (database context)
- in_scope: "ACCOUNT" | "DATABASE" | "<specific_database_name>"
- like_pattern: string (SQL wildcard filter)
- starts_with: string (case-sensitive prefix)
- limit: integer (max 10000)
- history: boolean (include dropped schemas)
- terse: boolean (subset columns only)
- role, warehouse, timeout: string/integer (optional)
Use SNOWFLAKE_SHOW_TABLES to discover tables with metadata including row counts, sizes, and clustering keys.
Tool: SNOWFLAKE_SHOW_TABLES
Inputs:
- database: string (database context)
- schema: string (schema context)
- in_scope: "ACCOUNT" | "DATABASE" | "SCHEMA" | "<specific_name>"
- like_pattern: string (e.g., "%customer%")
- starts_with: string (e.g., "FACT", "DIM", "TEMP")
- limit: integer (max 10000)
- history: boolean (include dropped tables)
- terse: boolean (subset columns only)
- role, warehouse, timeout: string/integer (optional)
Use SNOWFLAKE_EXECUTE_SQL for SELECT queries, DDL (CREATE/ALTER/DROP), and DML (INSERT/UPDATE/DELETE) with parameterized bindings.
Tool: SNOWFLAKE_EXECUTE_SQL
Inputs:
- statement: string (required) -- SQL statement(s), semicolon-separated for multi-statement
- database: string (case-sensitive, falls back to DEFAULT_NAMESPACE)
- schema_name: string (case-sensitive)
- warehouse: string (case-sensitive, required for compute-bound queries)
- role: string (case-sensitive, falls back to DEFAULT_ROLE)
- bindings: object (parameterized query values to prevent SQL injection)
- parameters: object (Snowflake session-level parameters)
- timeout: integer (seconds; 0 = max 604800s)
Examples:
"SELECT * FROM my_table LIMIT 100;""CREATE TABLE test (id INT, name STRING);""ALTER SESSION SET QUERY_TAG='mytag'; SELECT COUNT(*) FROM my_table;"| Pitfall | Detail |
|---|---|
| Case sensitivity | Database, schema, warehouse, and role names are case-sensitive in SNOWFLAKE_EXECUTE_SQL. |
| Warehouse required for compute | SELECT and DML queries require a running warehouse. SHOW commands do not. |
| Multi-statement execution | Multiple statements separated by semicolons execute in sequence automatically. |
| SQL injection prevention | Always use the bindings parameter for user-supplied values to prevent injection attacks. |
| Pagination with LIMIT | SHOW commands support limit (max 10000) and from_name for cursor-based pagination. |
…
通过 Claude 只读查询 Snowflake 数据库并执行常见 SQL 检索操作。