MCP Server for Snowflake Data Warehouse Connection & Admin Use Cases
Single tool with minimal definition quality. Tool name 'run_snowflake_query' is generic and does not follow verb_noun pattern clearly (should be 'execute_query' or 'query_snowflake'). Description is adequate (58 chars) but lacks critical context: does not state that this tool modifies state (WRITE risk), has no error recovery guidance, and no output schema documentation. Input schema present but minimal, only 'query' string with basic description. No parameter validation, no pagination, no structured output format specified. Tool accepts raw SQL without sanitization, creating SQL injection risk. No mention of permissions, rate limits, or audit logging.
Execute a SQL query against the Snowflake database.
No input validation or SQL injection protection. Tool accepts raw query string without sanitization, allowing prompt-injection attacks to execute arbitrary SQL.
Output schema not documented. Tool returns str(result) with no structure, LLM cannot parse result fields, extract IDs for chaining, or handle pagination.
No error classification or recovery guidance. Generic 'Error executing query: {str(e)}' response gives LLM no actionable next step (retry? ask user? fatal?).
Tool description does not declare WRITE risk or state that it modifies state. LLM cannot determine if tool is safe to retry or has irreversible consequences.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
No permission gates or audit logging. Tool executes queries with full Snowflake credentials; no per-user authorization, no call tracing, no compliance audit trail.