Igloo MCP

Igloo MCP

Enables AI assistants to interact with Snowflake databases through SQL queries, table previews, and metadata operations. Features built-in safety checks that block destructive operations and intelligent error handling optimized for AI workflows.

Category
访问服务器

README

Igloo MCP - Snowflake MCP Server for Agentic Native Workflows

Igloo MCP is a standalone MCP server for Snowflake operations, designed for agentic native workflows with AI assistants. Built from the ground up with SnowCLI integration for maximum simplicity and performance.

✨ Features

  • 🛡️ SQL Safety: Blocks destructive operations (DELETE, DROP, TRUNCATE) with safe alternatives
  • 🧠 Intelligent Errors: Compact mode (default) saves 70% tokens; verbose mode for debugging
  • ⏱️ Agent-Controlled Timeouts: Configure query timeouts per-request (1-3600s)
  • MCP Protocol Compliant: Standard exception-based error handling
  • 🚀 Zero Vendoring: Imports from upstream, stays in sync

📖 See Release Notes for details.

PyPI version Python 3.12+ License: MIT

Available MCP Tools

Igloo MCP Tools

  • execute_query - Execute SQL queries with safety checks
  • preview_table - Preview table contents with LIMIT support
  • build_catalog - Build comprehensive metadata catalog from Snowflake INFORMATION_SCHEMA
  • get_catalog_summary - Get catalog overview with object counts and statistics
  • build_dependency_graph - Build dependency graph for data lineage analysis
  • test_connection - Test Snowflake connection and profile validation
  • health_check - Get system health status and configuration details

See MCP Documentation for details.


Installation

For End Users (Recommended)

Install from PyPI for stable releases:

uv pip install igloo-mcp

⚡ 5-Minute Quickstart

Get igloo-mcp running with Cursor in under 5 minutes!

Who this is for: Users new to Snowflake and MCP who want to get started quickly.

Prerequisites Check (30 seconds)

# Check Python version (need 3.12+)
python --version

# Check if Snowflake CLI is installed
snow --version

# If not installed, install it:
pip install snowflake-cli-labs

What you'll need:

  • Snowflake account with username/password (or ask your admin)
  • Cursor installed
  • Your Snowflake account identifier (looks like: mycompany-prod.us-east-1)

Step 1: Install igloo-mcp (1 minute)

# Install from PyPI
uv pip install igloo-mcp

# Verify installation
python -c "import igloo_mcp; print('igloo-mcp installed successfully')"
# Expected: igloo-mcp installed successfully

Note: igloo-mcp automatically installs snowflake-cli-labs as a dependency

Step 2: Create Snowflake Profile (2 minutes)

# Create a profile with password authentication (easiest for getting started)
snow connection add \
  --connection-name "quickstart" \
  --account "<your-account>.<region>" \
  --user "<your-username>" \
  --password \
  --warehouse "<your-warehouse>"

# Enter password when prompted
# Expected: "Connection 'quickstart' added successfully"

Finding your account identifier:

  • Your Snowflake URL: https://abc12345.us-east-1.snowflakecomputing.com
  • Your account identifier: abc12345.us-east-1 (remove .snowflakecomputing.com)

Finding your warehouse:

  • Trial accounts: Usually COMPUTE_WH (default warehouse)
  • Enterprise: Check Snowflake UI → Admin → Warehouses, or ask your admin
  • Common names: COMPUTE_WH, WH_DEV, ANALYTICS_WH

Don't have these? Ask your Snowflake admin for:

  • Account identifier
  • Username & password
  • Warehouse name

Step 3: Configure Cursor MCP (1 minute)

Edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "igloo-mcp": {
      "command": "igloo-mcp",
      "args": [
        "--profile",
        "quickstart"
      ],
      "env": {
        "SNOWFLAKE_PROFILE": "quickstart"
      }
    }
  }
}

Note: No service_config.yml needed! igloo-mcp uses Snowflake CLI profiles directly.

Restart Cursor after configuring.

Step 4: Test Your Setup (30 seconds)

Verify Snowflake Connection

# Test your profile
snow sql -q "SELECT CURRENT_VERSION()" --connection quickstart

Verify MCP Server

# Start MCP server (should show help without errors)
igloo-mcp --profile quickstart --help

Step 5: Test It! (30 seconds)

In Cursor, try these prompts:

"Test my Snowflake connection"

Expected: ✅ Connection successful message

"Show me my Snowflake databases"

Expected: List of your databases

"What tables are in my database?"

Expected: List of tables (if you have access)

Success! 🎉

You've successfully:

  • ✅ Installed igloo-mcp
  • ✅ Configured Snowflake connection
  • ✅ Connected Cursor to igloo-mcp
  • ✅ Ran your first Snowflake queries via AI

Time taken: ~5 minutes

What's Next?

Explore MCP Tools

Try these prompts in Cursor:

"Build a catalog for MY_DATABASE"
→ Explores all tables, columns, views, functions, procedures, and metadata
→ Only includes user-defined functions (excludes built-in Snowflake functions)

"Show me lineage for USERS table"
→ Visualizes data dependencies

"Preview the CUSTOMERS table with 10 rows"
→ Shows sample data from tables

"Execute: SELECT COUNT(*) FROM orders WHERE created_at > CURRENT_DATE - 7"
→ Runs custom SQL queries

Improve Security

Replace password auth with key-pair authentication:

  1. Generate keys:
mkdir -p ~/.snowflake
openssl genrsa -out ~/.snowflake/key.pem 2048
openssl rsa -in ~/.snowflake/key.pem -pubout -out ~/.snowflake/key.pub
chmod 400 ~/.snowflake/key.pem
  1. Upload public key to Snowflake:
# Format key for Snowflake
cat ~/.snowflake/key.pub | grep -v "BEGIN\|END" | tr -d '\n'

# In Snowflake, run:
ALTER USER <your_username> SET RSA_PUBLIC_KEY='<paste_key_here>';
  1. Update your profile:
snow connection add \
  --connection-name "quickstart" \
  --account "mycompany-prod.us-east-1" \
  --user "your-username" \
  --private-key-file "~/.snowflake/key.pem" \
  --warehouse "COMPUTE_WH"

Troubleshooting

"Profile not found"

Fix:

# List profiles
snow connection list

# Use exact name from list in your MCP config

"Connection failed"

Fix:

  • Verify account format: org-account.region (not https://...)
  • Check username/password are correct
  • Ensure warehouse exists and you have access
  • Try: snow sql -q "SELECT 1" --connection quickstart

"MCP tools not showing up"

Fix:

  1. Verify igloo-mcp is installed: which igloo-mcp
  2. Check MCP config JSON syntax is valid
  3. Restart Cursor completely
  4. Check Cursor logs for errors

"Permission denied"

Fix:

  • Ensure you have USAGE on warehouse
  • Check database/schema access: SHOW GRANTS TO USER <your_username>
  • Contact your Snowflake admin for permissions

Still stuck?


Complete Setup Guide

For Cursor Users

# 1. Set up your Snowflake profile
snow connection add --connection-name "my-profile" \
  --account "your-account.region" --user "your-username" \
  --private-key-file "/path/to/key.p8" --database "DB" --warehouse "WH"

# 2. Configure Cursor MCP
# Edit ~/.cursor/mcp.json:
{
  "mcpServers": {
    "igloo-mcp": {
      "command": "igloo-mcp",
      "args": [
        "--profile",
        "my-profile"
      ],
      "env": {
        "SNOWFLAKE_PROFILE": "my-profile"
      }
    }
  }
}

# 3. Restart Cursor and test
# Ask: "Test my Snowflake connection"

See Getting Started Guide for detailed setup instructions.

MCP Server (MCP-Only Interface)

Task Command Notes
Start MCP server igloo-mcp For AI assistant integration
Start with profile igloo-mcp --profile PROF Specify profile explicitly
Configure igloo-mcp --configure Interactive setup

🐻‍❄️ MCP-Only Architecture Igloo MCP is MCP-only. All functionality is available through MCP tools.

Profile Selection Options:

  • Command flag: igloo-mcp --profile PROFILE_NAME (explicit)
  • Environment variable: export SNOWFLAKE_PROFILE=PROFILE_NAME (session)
  • Default profile: Set with snow connection set-default PROFILE_NAME (implicit)

Python API

from igloo_mcp import QueryService, CatalogService

# Execute query
query_service = QueryService(profile="my-profile")
result = query_service.execute("SELECT * FROM users LIMIT 10")

# Build catalog
catalog_service = CatalogService(profile="my-profile")
catalog = catalog_service.build_catalog(database="MY_DB")

Documentation

Examples

Query Execution via MCP

# AI assistant sends query via MCP
{
  "tool": "execute_query",
  "arguments": {
    "statement": "SELECT COUNT(*) FROM users WHERE created_at > CURRENT_DATE - 30",
    "timeout_seconds": 60
  }
}

Data Catalog Building

# Build comprehensive metadata catalog
{
  "tool": "build_catalog",
  "arguments": {
    "database": "MY_DATABASE",
    "output_dir": "./catalog",
    "account": false,
    "format": "json"
  }
}
# Returns: databases, schemas, tables, views, functions, procedures, columns, etc.
# Note: Only includes user-defined functions (excludes built-in Snowflake functions)

Data Lineage

# Query lineage for impact analysis
{
  "tool": "query_lineage",
  "arguments": {
    "object_name": "MY_TABLE",
    "direction": "both",
    "depth": 3
  }
}

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选