링크된 문서
Snowflake
Snowflake
Snowflake MCP 서버는 Snowflake 데이터베이스와 상호작용할 수 있는 Model Context Protocol 서버입니다. 이 서버는 LLM이 Snowflake 데이터베이스에서 SQL 쿼리를 실행하고 데이터 분석을 수행할 수 있도록 안전하고 효율적인 인터페이스를 제공합니다.
특징
- Snowflake 데이터베이스 연결 및 쿼리 실행
- 데이터베이스 스키마 검사 및 테이블 메타데이터 조회
- 읽기 전용 또는 읽기/쓰기 모드 지원(구성 가능)
- 데이터 인사이트 메모 기능 - 발견된 인사이트를 저장하고 추적
- 테이블별 컨텍스트 리소스 제공(옵션)
- 자연어 쿼리 지원(일부 구현에서)
- 안전한 연결 관리 및 보안 구성 옵션
API
리소스
memo://insights
발견된 데이터 인사이트를 지속적으로 업데이트하는 메모 리소스입니다. append_insight 도구를 통해 새로운 인사이트가 추가될 때마다 자동으로 업데이트됩니다.
context://table/{table_name}
(프리페치 활성화된 경우) 테이블별 스키마 요약을 제공하는 리소스입니다. 컬럼과 코멘트 등의 정보를 포함합니다.
도구
query_database
Snowflake 데이터베이스에서 SQL 쿼리를 실행합니다. - 입력: - query: 실행할 SQL 쿼리 문자열 또는 자연어 쿼리 - parameters: (선택적) 쿼리 매개변수
get_table_structure
특정 테이블의 구조 정보를 조회합니다. - 입력: - table_name: 전체 테이블 이름(database.schema.table) - 출력: - 컬럼 정의 배열(이름, 타입, NULL 허용 여부, 기본값, 코멘트 포함)
append_insight
새로운 데이터 인사이트를 메모 리소스에 추가합니다. - 입력: - insight: 발견된 데이터 인사이트 문자열 - 효과: - memo://insights 리소스 업데이트
사용 방법
Snowflake MCP 서버는 다음과 같이 구성할 수 있습니다:
-
로컬 설치 및 실행:
{ "mcpServers": { "snowflake_local": { "command": "/absolute/path/to/uv", "args": [ "--python=3.12", "--directory", "/absolute/path/to/mcp_snowflake_server", "run", "mcp_snowflake_server" // 선택적: "--allow_write" // 선택적: "--log_dir", "/absolute/path/to/logs" // 선택적: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL" ] } } } -
pip 설치를 통한 실행:
{ "mcpServers": { "snowflake_pip": { "command": "uvx", "args": [ "mcp_snowflake_server", "--account", "your_account", "--warehouse", "your_warehouse", "--user", "your_user", "--password", "your_password", "--role", "your_role", "--database", "your_database", "--schema", "your_schema" // 선택적: "--allow_write" ] } } } -
환경 변수 사용:
SNOWFLAKE_USER="xxx@your_email.com" SNOWFLAKE_ACCOUNT="xxx" SNOWFLAKE_ROLE="xxx" SNOWFLAKE_DATABASE="xxx" SNOWFLAKE_SCHEMA="xxx" SNOWFLAKE_WAREHOUSE="xxx" SNOWFLAKE_PASSWORD="xxx"
또는 외부 브라우저 인증을 사용할 수 있습니다:
SNOWFLAKE_AUTHENTICATOR="externalbrowser"
- 간단한 Claude Desktop 구성:
{ "mcpServers": { "snowflake": { "command": "uvx", "args": ["mcp_snowflake_server"], "env": { "SNOWFLAKE_WAREHOUSE": "your_warehouse", "SNOWFLAKE_DATABASE": "your_database", "SNOWFLAKE_ACCOUNT": "your_account_identifier", "SNOWFLAKE_USER": "your_username", "SNOWFLAKE_ROLE": "your_role", "SNOWFLAKE_SCHEMA": "your_schema", "SNOWFLAKE_PASSWORD": "your_password" } } } }
고급 구성
-
쓰기 작업 허용: 기본적으로 쓰기 작업은 비활성화되어 있습니다. 명시적으로
--allow-write옵션을 사용하여 활성화할 수 있습니다. -
제외 패턴: 특정 데이터베이스, 스키마 또는 테이블을 제외하기 위한 패턴을 설정할 수 있습니다.
-
테이블 컨텍스트 리소스: 프리페치를 활성화하면 테이블별 컨텍스트 리소스가 노출됩니다.
보안 고려사항
- 기본적으로 쓰기 작업은 비활성화되어 있으며, 필요한 경우에만 활성화해야 합니다.
- 최소 권한 원칙을 따라 필요한 권한만 가진 Snowflake 역할을 사용하세요.
- 민감한 데이터가 있는 환경에서는 항상 데이터 액세스 감사 및 로깅을 활성화하세요.
- 환경 변수 또는 구성 파일에 저장된 자격 증명을 안전하게 관리하세요.
연결된 구성 요소
- PostgreSQL - PostgreSQL 데이터베이스와 상호작용하기 위한 MCP 서버
- MySQL - MySQL 데이터베이스와 상호작용하기 위한 MCP 서버
- MSSQL - Microsoft SQL Server와 상호작용하기 위한 MCP 서버
- DBHub - MySQL, PostgreSQL, SQLite, DuckDB 등에 연결하는 범용 데이터베이스 MCP 서버