Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions mcp_server_snowflake/object_manager/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,8 +310,7 @@ def validate_object_tool(
# User has not added any permissions, so we default to disallowing all object actions
if len(sql_allow_list) == 0 and len(sql_disallow_list) == 0:
valid = False

if func_type in sql_allow_list:
elif func_type in sql_allow_list:
valid = True
elif func_type in sql_disallow_list:
valid = False
Expand Down
3 changes: 1 addition & 2 deletions mcp_server_snowflake/semantic_manager/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,6 @@ def write_semantic_view_query(

statement += ")" # Close out the semantic sub-select

# Add optional clauses
if where_clause:
statement += f" WHERE {where_clause}"

Expand Down Expand Up @@ -278,7 +277,7 @@ def validate_semantic_view_tool(
# User has not added any permissions, so we default to disallowing all object actions
if len(sql_allow_list) == 0 and len(sql_disallow_list) == 0:
valid = False
if func_type in sql_allow_list:
elif func_type in sql_allow_list:
valid = True
elif func_type in sql_disallow_list:
valid = False
Expand Down
6 changes: 6 additions & 0 deletions mcp_server_snowflake/server_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

from mcp_server_snowflake.object_manager.tools import validate_object_tool
from mcp_server_snowflake.query_manager.tools import validate_sql_type
from mcp_server_snowflake.semantic_manager.tools import validate_semantic_view_tool


class CheckQueryType(Middleware):
Expand Down Expand Up @@ -34,6 +35,11 @@ async def on_call_tool(self, context: MiddlewareContext, call_next):
tool_name, self.sql_allow_list, self.sql_disallow_list
)

elif "semantic" in tool_name.lower():
statement_type, valid = validate_semantic_view_tool(
tool_name, self.sql_allow_list, self.sql_disallow_list
)

# Allow other tools to proceed
else:
valid = True
Expand Down