A Model Context Protocol (MCP) server that connects to Snowflake databases and executes SQL queries.
list_databases- Retrieve a list of accessible databaseslist_schemas- Retrieve a list of schemas from a specified databaselist_tables- Retrieve a list of tables and views from a specified database and schema (supports filtering by name or object type)describe_table- Retrieve detailed structure information for a specified tableexecute_query- Execute read-only SQL queries and return resultssample_table_data- Retrieve sample data from a specified table using Snowflake's SAMPLE ROW clauseanalyze_table_statistics- Generate comprehensive statistical analysis for table columns using approximation functionsprofile_semi_structured_columns- Profile VARIANT/ARRAY/OBJECT columns with sampled flatten-based analysissearch_columns- Search for columns across tables by name pattern and/or data type
- Python 3.13 or higher
- uv (Python package manager)
- Access to a Snowflake account
-
Clone the repository:
git clone <repository-url> cd mcp-snowflake
-
Install using uv:
uv tool install -e .
Copy the configuration file sample and edit it:
cp .mcp_snowflake.toml.example .mcp_snowflake.toml[snowflake]
account = "your-account.region"
user = "your-username"
password = "your-password"
warehouse = "your-warehouse"
role = "your-role"
authenticator = "SNOWFLAKE"Environment variables (SNOWFLAKE__ACCOUNT, SNOWFLAKE__USER, etc.) are also supported.
For full configuration reference including tool toggles, timeout tuning, secondary roles, and browser-based SSO, see docs/settings.md.
Start the MCP server:
uvx mcp-snowflake --config {your-config-path}- Verify that configuration file or environment variables are correctly set
- Check that Snowflake account and username are correct
- If
authenticator=SNOWFLAKE, verify password is set correctly - Verify network connectivity
- Ensure the specified user has permission to access the database
- Set the ROLE if necessary
See docs/development.md.
MIT License