Model Context Protocol (MCP) server for Snowflake database connectivity and SQL query execution
Mixed quality across 9 tools. All tools have descriptions (above median length at 70-120 chars), and most have basic parameter schemas with types. However, several critical gaps limit effectiveness: (1) list_databases lacks any visible description or input schema, cannot verify its behavior; (2) parameter descriptions are minimal (6 - 15 chars for most), providing almost no context for LLM selection or usage; (3) no output schemas are documented, LLMs cannot predict return structure; (4) execute_query (a dangerous WRITE tool) lacks error guidance and timeout enforcement details; (5) complex tools like analyze_table_statistics and profile_semi_structured_columns have poorly described array parameters and nested objects, forcing LLMs to guess structure. Naming is clear (action verbs + nouns), but descriptions read like API docs rather than LLM-optimized prompts. Parameter constraints are loose, no enums, min/max bounds, or validation hints.
Execute statistics query and return parsed result
Get table structure information
Execute a SQL query and return results
Get list of accessible databases
Get list of objects (tables and views) in a database schema
Get list of schemas in a database
Execute profiling queries and return parsed result for semi-structured (JSON/VARIANT) columns
list_databases has no visible description or input schema, cannot verify tool behavior or parameters
All tools lack documented output schemas, LLMs cannot predict return structure or chain calls effectively
Parameter descriptions are minimal (6 - 15 chars), e.g. 'Database name' for database param provides no context on format, constraints, or when to use
execute_query (WRITE tool) lacks error guidance, dry-run option, or explicit timeout enforcement, dangerous for agents to invoke without recovery hints
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 13 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Retrieve sample data from a Snowflake table using SAMPLE ROW clause
Search columns in a database
analyze_table_statistics and profile_semi_structured_columns have poorly described array parameters (columns_to_analyze, columns_to_profile), no guidance on expected object structure
No parameter constraints, no enums for known values, no min/max for numeric ranges, no regex patterns or length limits
execute_query accepts query_timeout as string (timedelta format) but does not specify valid format, range, or parsing rules