snowflake-cost-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SNOWFLAKE_ROLE | Yes | Snowflake role to use (e.g., MCP_COST_MONITOR) | |
| SNOWFLAKE_USER | Yes | Snowflake user name | |
| SNOWFLAKE_ACCOUNT | Yes | Snowflake account identifier | |
| SNOWFLAKE_PASSWORD | No | Password for username/password authentication (fallback) | |
| SNOWFLAKE_PRIVATE_KEY_PATH | No | Path to the private key file for key-pair authentication |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_warehousesA | List all warehouses visible to the connected role, with size, auto-suspend, and auto-resume settings, and current running/queued query counts. |
| get_warehouse_credit_usageA | Total Snowflake credits consumed per warehouse over the lookback window, split into compute vs. cloud services credits. Use this to see where spend is concentrated before drilling into individual warehouses or queries. Args: lookback_days: How many days back to look (default from server config, typically 7). |
| find_expensive_queriesA | Find the slowest / most expensive successful queries in the lookback window, ranked by elapsed time. Each result includes a truncated query text preview, warehouse, user, elapsed seconds, and GB scanned. Args: lookback_days: How many days back to look (default from server config). limit: Max number of queries to return (default from server config, typically 50). |
| get_query_detailA | Get full detail for a single query by its Snowflake QUERY_ID, including warehouse size, database/schema, elapsed time, bytes scanned, rows produced, and any error message. Args: query_id: The Snowflake QUERY_ID (as shown in QUERY_HISTORY or the Snowsight UI). |
| get_warehouse_right_sizing_recommendationsA | Heuristic right-sizing recommendations per warehouse, combining credit usage with query queueing behavior:
This is a heuristic starting point for investigation, not a guaranteed cost-saving recommendation -- always sanity-check against actual workload requirements before resizing a production warehouse. Args: lookback_days: How many days back to look (default from server config). |
| run_readonly_queryA | Run an arbitrary read-only SELECT query against Snowflake, for cost or performance investigation beyond the built-in tools. Disabled by default -- must be explicitly enabled via SNOWFLAKE_MCP_ALLOW_ARBITRARY_QUERIES=true in the server environment. Only SELECT / WITH...SELECT statements are accepted; the connected Snowflake role should also be read-only as the primary security boundary. Args: sql: A single read-only SELECT statement. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct aspect of Snowflake cost and performance: queries (expensive vs detail), warehouses (credit usage, sizing recommendations, listing), and a fallback for arbitrary queries. No overlap in purpose.
All tool names follow a consistent verb_noun pattern using snake_case (find_expensive_queries, get_query_detail, list_warehouses, etc.). Predictable and readable.
With 6 tools, the surface is well-scoped for Snowflake cost management—covering query and warehouse analysis without bloat. Each tool earns its place.
Covers core cost investigation (expensive queries, warehouse usage, sizing) and includes a generic run tool for gaps. Missing finer breakdowns (e.g., by user/database) but no critical dead ends.