Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Snowflake data warehouse operations -- list databases, schemas, and tables, execute SQL statements, and manage data workflows via the Composio MCP integration.
.claude/skills/bilal140202-snowflake-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 86% | 0% |
| case-17 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-09 | ✓→✓ | = Same ✓ | 35% | 0% |
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. | | Time Travel | Set history: true to include dropped objects still within the retention period. |
| Tool Slug | Description | |-----------|-------------| | SNOWFLAKE_SHOW_DATABASES | List databases with filtering and Time Travel support | | SNOWFLAKE_SHOW_SCHEMAS | List schemas within a database or account-wide | | SNOWFLAKE_SHOW_TABLES | List tables with metadata (row count, size, clustering) | | SNOWFLAKE_EXECUTE_SQL | Execute SQL: SELECT, DDL, DML with parameterized bindings |
Powered by Composio
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-09 | pass→pass | 9,067 | 5,005 | -45% | 1 | 1 | 0% | 1,545 | 2,080 | +35% | 0 | 0 | — |
case-01 | fail→fail | 7,178 | 4,066 | -43% | 1 | 1 | 0% | 1,344 | 1,573 | +17% | 0 | 0 | — |
case-02 | fail→fail | 4,702 | 4,590 | -2% | 1 | 1 | 0% | 989 | 1,524 | +54% | 0 | 0 | — |
case-03 | fail→fail | 7,413 | 8,347 | +13% | 1 | 1 | 0% | 1,618 | 1,690 | +4% | 0 | 0 | — |
case-04 | fail→pass | 8,223 | 3,261 | -60% | 1 | 1 | 0% | 1,441 | 1,842 | +28% | 0 | 0 | — |
case-14 | pass→pass | 7,062 | 3,536 | -50% | 1 | 1 | 0% | 1,294 | 1,896 | +47% | 0 | 0 | — |
case-05 | fail→pass | 13,408 | 2,806 | -79% | 1 | 1 | 0% | 2,449 | 1,833 | -25% | 0 | 0 | — |
case-06 | pass→pass | 9,798 | 3,909 | -60% | 1 | 1 | 0% | 1,514 | 1,888 | +25% | 0 | 0 | — |
case-07 | fail→pass | 5,322 | 2,503 | -53% | 1 | 1 | 0% | 953 | 1,769 | +86% | 0 | 0 | — |
case-08 | pass→pass | 10,907 | 3,591 | -67% | 1 | 1 | 0% | 1,811 | 1,887 | +4% | 0 | 0 | — |
case-10 | pass→pass | 8,199 | 4,457 | -46% | 1 | 1 | 0% | 1,290 | 2,002 | +55% | 0 | 0 | — |
case-11 | pass→pass | 8,987 | 1,789 | -80% | 1 | 1 | 0% | 1,735 | 1,566 | -10% | 0 | 0 | — |
case-12 | pass→pass | 6,050 | 2,896 | -52% | 1 | 1 | 0% | 1,088 | 1,842 | +69% | 0 | 0 | — |
case-13 | pass→pass | 8,954 | 1,718 | -81% | 1 | 1 | 0% | 1,504 | 1,567 | +4% | 0 | 0 | — |
case-15 | pass→pass | 9,954 | 1,558 | -84% | 1 | 1 | 0% | 1,836 | 1,500 | -18% | 0 | 0 | — |
case-16 | pass→pass | 8,788 | 3,138 | -64% | 1 | 1 | 0% | 1,870 | 1,861 | -0% | 0 | 0 | — |
case-17 | fail→pass | 10,090 | 2,140 | -79% | 1 | 1 | 0% | 1,870 | 1,605 | -14% | 0 | 0 | — |
case-18 | fail→fail | 7,358 | 5,148 | -30% | 1 | 1 | 0% | 1,432 | 2,444 | +71% | 0 | 0 | — |
case-19 | fail→fail | 3,673 | 6,499 | +77% | 1 | 1 | 0% | 716 | 1,747 | +144% | 0 | 0 | — |
case-20 | fail→fail | 8,739 | 7,867 | -10% | 1 | 1 | 0% | 1,692 | 2,725 | +61% | 0 | 0 | — |
case-21 | fail→fail | 9,541 | 2,702 | -72% | 1 | 1 | 0% | 1,833 | 1,761 | -4% | 0 | 0 | — |
case-22 | pass→pass | 8,233 | 2,036 | -75% | 1 | 1 | 0% | 1,599 | 1,590 | -1% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +18 percentage points is the difference between those two pass rates over the 18 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.