---
title: "Snowflake Data Warehouse MCP"
type: "MCP Server"
slug: "snowflake"
icon: "ac_unit"
category: "Data & Analytics"
tags: ["Snowflake", "SQL", "Data Warehouse", "Analytics", "Database"]
installs: "0"
author: "Medisolv Platform Team"
authorInitial: "M"
lastUpdated: "2026-04-03"
popularity: "5.0/5"
reviewCount: "New"
platformTags: ["v1.0", "Internal"]
securityBadges:
  - label: "Auth"
    status: "Snowflake Credentials"
  - label: "Scope"
    status: "Internal Use Only"
installLabel: "mcp.json"
authModes:
  - id: sso
    label: "SSO (Browser)"
    template: '{"mcpServers":{"snowflake":{"command":"python","args":["-m","snowflake_mcp.server"],"env":{"SNOWFLAKE_ACCOUNT":"<SNOWFLAKE_ACCOUNT>","SNOWFLAKE_AUTH_METHOD":"externalbrowser","SNOWFLAKE_USERNAME_SSO":"<SNOWFLAKE_USERNAME_SSO>","SNOWFLAKE_DATABASE":"<SNOWFLAKE_DATABASE>","SNOWFLAKE_WAREHOUSE":"<SNOWFLAKE_WAREHOUSE>","SNOWFLAKE_ROLE":"<SNOWFLAKE_ROLE>"}}}}'
  - id: password
    label: "Username & Password"
    template: '{"mcpServers":{"snowflake":{"command":"python","args":["-m","snowflake_mcp.server"],"env":{"SNOWFLAKE_ACCOUNT":"<SNOWFLAKE_ACCOUNT>","SNOWFLAKE_USERNAME":"<SNOWFLAKE_USERNAME>","SNOWFLAKE_PASSWORD":"<SNOWFLAKE_PASSWORD>","SNOWFLAKE_DATABASE":"<SNOWFLAKE_DATABASE>","SNOWFLAKE_WAREHOUSE":"<SNOWFLAKE_WAREHOUSE>","SNOWFLAKE_ROLE":"<SNOWFLAKE_ROLE>"}}}}'
installCredentials:
  - key: SNOWFLAKE_ACCOUNT
    label: "Snowflake Account"
    placeholder: "<SNOWFLAKE_ACCOUNT>"
    description: "Your Snowflake account identifier, e.g. yndojcv-hxa44906"
    secret: false
  - key: SNOWFLAKE_USERNAME_SSO
    label: "Snowflake SSO Username"
    placeholder: "<SNOWFLAKE_USERNAME_SSO>"
    description: "Your Snowflake username for browser SSO login (e.g. WFAWTHROP). Uses externalbrowser auth."
    secret: false
    authMode: sso
  - key: SNOWFLAKE_USERNAME
    label: "Snowflake Username"
    placeholder: "<SNOWFLAKE_USERNAME>"
    description: "Snowflake username for password auth."
    secret: false
    authMode: password
  - key: SNOWFLAKE_PASSWORD
    label: "Snowflake Password"
    placeholder: "<SNOWFLAKE_PASSWORD>"
    description: "Snowflake password."
    secret: true
    authMode: password
  - key: SNOWFLAKE_DATABASE
    label: "Default Database"
    placeholder: "<SNOWFLAKE_DATABASE>"
    description: "Default database to use, e.g. SNOWFLAKE_SAMPLE_DATA"
    secret: false
  - key: SNOWFLAKE_WAREHOUSE
    label: "Default Warehouse"
    placeholder: "<SNOWFLAKE_WAREHOUSE>"
    description: "Default compute warehouse, e.g. COMPUTE_WH"
    secret: false
  - key: SNOWFLAKE_ROLE
    label: "Snowflake Role"
    placeholder: "<SNOWFLAKE_ROLE>"
    description: "Default Snowflake role, e.g. SYSADMIN. Optional but recommended."
    secret: false
---

Direct SQL access to Medisolv's Snowflake data warehouse — query tables, explore schemas, describe columns, and sample data without leaving your AI coding environment.

## What is Snowflake MCP?

This MCP server connects AI agents to Medisolv's Snowflake data warehouse. It wraps the Snowflake Connector for Python and exposes common data exploration and querying operations as MCP tools.

## When to Use

Use this MCP when your agent needs to:

- Run SQL queries against Snowflake and inspect results
- Explore available databases, schemas, and tables
- Describe table columns and data types
- Sample rows from a table to understand its structure
- Answer data questions like "what columns does the ENCOUNTERS table have?"

## Prerequisites

- **Python 3.11+** installed

If Python is not installed, run this in PowerShell:

```powershell
winget install Python.Python.3.12 --accept-package-agreements --accept-source-agreements
```

Upgrade `pip` and install the Azure Artifacts keyring helpers from public PyPI:

```powershell
pip install keyring artifacts-keyring
```

Then install the MCP package locally before configuring Augment. This avoids first-run timeouts caused by downloading packages during MCP startup:

```powershell
pip install snowflake-mcp --index-url https://pypi.org/simple --extra-index-url "https://medisolv.pkgs.visualstudio.com/ai-discovery-portal/_packaging/ai-discovery/pypi/simple/"
```

The first install may open an Azure DevOps sign-in flow through `artifacts-keyring`. Sign in with an account that has access to the `ai-discovery` feed.

## Installation

Click **"Install in Auggie"** on the portal page — it will prompt for your Snowflake credentials and generate the ready-to-use config.

#### Browser SSO auth (recommended)

```json
{
  "mcpServers": {
    "snowflake": {
      "command": "python",
      "args": ["-m", "snowflake_mcp.server"],
      "env": {
        "SNOWFLAKE_ACCOUNT": "<SNOWFLAKE_ACCOUNT>",
        "SNOWFLAKE_AUTH_METHOD": "externalbrowser",
        "SNOWFLAKE_USERNAME_SSO": "<SNOWFLAKE_USERNAME_SSO>",
        "SNOWFLAKE_DATABASE": "<SNOWFLAKE_DATABASE>",
        "SNOWFLAKE_WAREHOUSE": "<SNOWFLAKE_WAREHOUSE>",
        "SNOWFLAKE_ROLE": "<SNOWFLAKE_ROLE>"
      }
    }
  }
}
```

This configuration assumes the same `python` on your `PATH` is the one where you ran `pip install snowflake-mcp ...`. If you use multiple Python installations, replace `"python"` with the full path to the correct interpreter.

#### Password auth (fallback)

```json
{
  "mcpServers": {
    "snowflake": {
      "command": "python",
      "args": ["-m", "snowflake_mcp.server"],
      "env": {
        "SNOWFLAKE_ACCOUNT": "<SNOWFLAKE_ACCOUNT>",
        "SNOWFLAKE_USERNAME": "<SNOWFLAKE_USERNAME>",
        "SNOWFLAKE_PASSWORD": "<SNOWFLAKE_PASSWORD>",
        "SNOWFLAKE_DATABASE": "<SNOWFLAKE_DATABASE>",
        "SNOWFLAKE_WAREHOUSE": "<SNOWFLAKE_WAREHOUSE>",
        "SNOWFLAKE_ROLE": "<SNOWFLAKE_ROLE>"
      }
    }
  }
}
```

## Available Tools

| Tool | Description |
|------|-------------|
| `snowflake_execute_query` | Execute a SQL query and return results (with row limit) |
| `snowflake_list_databases` | List all databases accessible to the current user |
| `snowflake_list_schemas` | List all schemas in a database |
| `snowflake_list_tables` | List all tables in a schema |
| `snowflake_describe_table` | Get column names, types, and metadata for a table |
| `snowflake_get_sample_data` | Get sample rows from a table |
| `snowflake_get_current_context` | Show current database, schema, warehouse, role, and user |

## Example Prompts

Once installed, you can ask your AI:

> "List all databases in Snowflake."

> "What tables are in the MAPLE schema?"

> "Describe the columns in the ENCOUNTERS table."

> "Show me 5 sample rows from SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS."

> "Run a query to count rows in each table in the PUBLIC schema."

## Security Notes

- This MCP has **full SQL access** scoped to the Snowflake role configured in your MCP config.
- Never commit your `.env` file. It is already listed in `.gitignore`.
- Use a role with minimum required permissions (read-only recommended).
- Snowflake passwords should be stored securely — consider using Snowflake key-pair authentication in future versions.

## Troubleshooting

| Error | Likely Cause | Fix |
|-------|-------------|-----|
| `No module named snowflake_mcp` | Package not installed in the Python interpreter Augment is using | Run `pip install snowflake-mcp ...` with the same Python you reference in MCP config, or point `command` to that interpreter explicitly |
| `401 Unauthorized` while installing | `artifacts-keyring` is missing or your Azure DevOps session does not have feed access | Run `pip install keyring artifacts-keyring` and sign in to Azure DevOps with access to the `ai-discovery` feed |
| `SNOWFLAKE_ACCOUNT is required` | Env var not set | Ensure `SNOWFLAKE_ACCOUNT` is in your MCP config's `"env"` block |
| `SNOWFLAKE_USER is required` | Env var not set | Ensure `SNOWFLAKE_USER` is in your MCP config's `"env"` block |
| `250001: Could not connect` | Wrong account identifier | Check your account identifier format (e.g. `xy12345.east-us-2.azure`) |
| `Incorrect username or password` | Bad credentials | Verify your Snowflake username and password |
| `Object does not exist` | Wrong database/schema/table | Check spelling and ensure your role has access |

