Skip to content

MCP Server: Snowflake ​

De Snowflake MCP Server geeft je AI-Agent direct read-only toegang tot Snowflake databases. Verken schema's, voer queries uit en vraag data op zonder handmatig in te loggen.

Standaard read-only: Agent kan SELECT queries uitvoeren, maar geen data wijzigen of verwijderen.

Zonneplan-specifiek

Deze MCP server is geconfigureerd voor intern gebruik bij Zonneplan en vereist toegang tot Zonneplan's Snowflake omgeving via 1Password.

Prerequisites ​

Installeer deze tools:

  1. 1Password CLI - Veilig credential management
  2. direnv - Automatisch laden van environment variabelen
  3. uv - Python package manager en tool runner
  4. Repository toegang - Clone https://github.com/zonneplan/snowflake-mcp

Installatie ​

Stap 1: Repository setup ​

Clone de repository:

bash
git clone https://github.com/zonneplan/snowflake-mcp.git
cd snowflake-mcp

Stap 2: Direnv toestaan ​

Sta het .envrc bestand toe om credentials automatisch te laden:

bash
direnv allow

Stap 3: MCP server starten ​

Start de server met 1Password CLI:

bash
op run -- ./run.sh

Server draait op: http://localhost:9001/snowflake-mcp
Credentials: Geladen via 1Password
Configuratie: Gebruikt config.yaml

Stap 4: Configureer je AI-Agent ​

Voeg de Snowflake MCP server toe aan je AI-Agent configuratie:

jsonc
# Schrijf dit naar ~/.claude/mcp-configs/snowflake.json
{
  "mcpServers": {
    "snowflake": {
      "type": "http",
      "url": "http://localhost:9001/snowflake-mcp"
    }
  }
}
json
{
  "mcpServers": {
    "snowflake": {
      "url": "http://localhost:9001/snowflake-mcp"
    }
  }
}
bash
claude mcp add --transport http snowflake http://localhost:9001/snowflake-mcp

Claude Code alias

Voor Claude Code kun je een handige alias toevoegen aan je .zshrc. Zo laad je Snowflake alleen in wanneer je het nodig hebt:

bash
echo 'alias claudes="claude --mcp-config ~/.claude/mcp-configs/snowflake.json"' >> ~/.zshrc

Dan start je Claude Code met Snowflake MCP via:

bash
claudes

Gebruik ​

Stel database-gerelateerde vragen direct aan je agent. Deze herkent automatisch wanneer Snowflake nodig is.

Schema's en tabellen verkennen ​

Welke schemas zijn er beschikbaar in de TRADING_AND_OPTIMIZATION database?
Laat me de structuur zien van de tabel IMBALANCE_PRICE_FORECAST.DATASET_IMBALANCE_FORECASTS

Data opvragen ​

Hoeveel records zitten er in TRADING_AND_OPTIMIZATION.IMBALANCE_PRICE_FORECAST.DATASET_IMBALANCE_FORECASTS?
Geef me de laatste 10 forecasts uit de DATASET_IMBALANCE_FORECASTS tabel

Voorbeeld

Wanneer je vraagt: "Hoeveel records zijn er in de imbalance forecasts tabel?"

De agent zal:

  1. De Snowflake MCP gebruiken om de query uit te voeren
  2. Het resultaat formatteren en presenteren
  3. Eventueel follow-up vragen stellen voor meer context

Expliciet Snowflake gebruiken ​

Forceer Snowflake gebruik door het expliciet te noemen:

Query Snowflake to find all tables in the RAW schema that contain 'price' in their name

Veiligheid en Permissies ​

Standaard read-only om onbedoelde wijzigingen te voorkomen.

Toegestaan: ​

SELECT, DESCRIBE, COMMAND, COMMENT, USE

Geblokkeerd: ​

  • Write operaties: INSERT, UPDATE, DELETE, TRUNCATE
  • Schema wijzigingen: CREATE, DROP, ALTER
  • Transacties: COMMIT, ROLLBACK, TRANSACTION

Troubleshooting ​

MCP server start niet ​

Controleer:

  • 1Password CLI geΓ―nstalleerd en ingelogd
  • direnv allow uitgevoerd
  • Poort 9001 vrij

Credentials niet gevonden ​

Verifieer:

  • Snowflake credentials correct opgeslagen in 1Password (setup guide)
  • Credential namen kloppen
  • direnv allow uitgevoerd

Agent bereikt Snowflake niet ​

Check:

  • MCP server draait: op run -- ./run.sh
  • Agent configuratie correct (URL en poort)
  • Netwerk/VPN/firewall issues