MCP server for executing SQL queries and exploring tables in Snowflake data warehouse
Three tools with basic schemas and minimal descriptions. execute_query lacks parameter descriptions and has no output schema documented. list_tables and describe_table have no parameter descriptions. All descriptions are under 100 chars and lack context on WHEN to use each tool or what they return. No error handling guidance. No mention of SQL injection risks for execute_query despite accepting arbitrary SQL. Missing idempotency and state-change documentation.
Describe the columns of a table.
Execute a SQL query against the Snowflake database and return results as JSON.
List all tables in the current schema.
execute_query accepts arbitrary SQL with no input validation, sanitization, or injection protection. Description does not warn about SQL injection risk or document that this is a destructive operation.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. Responses are JSON strings, not typed objects.
execute_query description (58 chars) lacks context on WHEN to use it vs list_tables/describe_table. No mention of return format, pagination, or result limits.
list_tables and describe_table have no parameter descriptions. list_tables has empty properties object, unclear if it accepts any input. describe_table's table_name param lacks format guidance (case sensitivity, schema prefix required?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Error handling returns raw exception messages ('Error: {e}') with no recovery guidance. LLM cannot distinguish retryable errors from user-fixable ones.