================== /// MCP /// /// MCP /// ================== [server:online] [protocol:ready]
mcp-snowflake-server
by isaacwasserman
Model Context Protocol (MCP) server that enables Snowflake database interaction (read/write queries, schema discovery, insights memo).
142
61
Open Source01
read_query
Execute SELECT queries to read data from the database
02
write_query
Execute INSERT, UPDATE, or DELETE queries in the database
03
create_table
Create new tables in the database with a CREATE TABLE statement
04
list_databases
List all databases in the Snowflake instance
05
list_schemas
List all schemas within a specified database
06
list_tables
List all tables within a specified database and schema
07
describe_table
View column information for a specified table
08
append_insight
Add new data insights to the memo resource
Installation
1. Prerequisites
• Python 3.9 or newer installed
• Access credentials for a Snowflake account (account, role, user, password or private-key)
• OPENAI_API_KEY (or other LLM key) for MCP model execution
2. Get the source
git clone https://github.com/isaacwasserman/mcp-snowflake-server.git
cd mcp-snowflake-server
3. Create an isolated Python environment (recommended)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
4. Install dependencies
pip install -r requirements.txt
5. Configure runtime secrets
Create a `.env` file (read automatically by the server) or export environment variables:
# Snowflake
export SNOWFLAKE_ACCOUNT="<your-account>"
export SNOWFLAKE_USER="<service-user>"
export SNOWFLAKE_PASSWORD="<password>" # or SNOWFLAKE_PRIVATE_KEY_PATH
export SNOWFLAKE_ROLE="ANALYST_ROLE"
export SNOWFLAKE_WAREHOUSE="ANALYST_WH"
# LLM / MCP keys
export OPENAI_API_KEY="sk-…"
6. (Optional) Initialise database objects
python scripts/bootstrap_snowflake.py # or run provided SQL in snowflake/ folder
7. Run the server
python -m mcp_snowflake_server --host 0.0.0.0 --port 8000
# or, if using Uvicorn / FastAPI entrypoint
uvicorn mcp_snowflake_server.app:app --host 0.0.0.0 --port 8000 --reload
8. Verify
Visit http://localhost:8000/docs to open the interactive Swagger UI and test endpoints.
Documentation
License: GNU General Public License v3.0
Updated 7/30/2025