Snowflake
Integração com banco de dados Snowflake com capacidades de leitura/escrita e rastreamento de insights
Documentação
Servidor MCP Snowflake
Visão Geral
Uma implementação de servidor Model Context Protocol (MCP) que fornece interação com banco de dados Snowflake. Este servidor permite executar consultas SQL por meio de ferramentas e expõe insights de dados e contexto de esquema como recursos.
Componentes
Recursos
-
memo://insights
Um memorando continuamente atualizado que agrega insights de dados descobertos.
Atualizado automaticamente quando novos insights são adicionados por meio da ferramentaappend_insight. -
context://table/{table_name}
(Se a pré-busca estiver habilitada) Resumos de esquema por tabela, incluindo colunas e comentários, expostos como recursos individuais.
Ferramentas
O servidor expõe as seguintes ferramentas:
Ferramentas de Consulta
-
read_query
Executa consultasSELECTpara ler dados do banco de dados.
Entrada:query(string): A consulta SQLSELECTa ser executada
Retorna: Resultados da consulta como array de objetos
-
write_query(habilitada apenas com--allow-write)
Executa consultasINSERT,UPDATEouDELETE.
Entrada:query(string): A consulta de modificação SQL
Retorna: Número de linhas afetadas ou confirmação
-
create_table(habilitada apenas com--allow-write)
Cria novas tabelas no banco de dados.
Entrada:query(string): Instrução SQLCREATE TABLE
Retorna: Confirmação da criação da tabela
Ferramentas de Esquema
-
list_databases
Lista todos os bancos de dados na instância Snowflake.
Retorna: Array de nomes de bancos de dados -
list_schemas
Lista todos os esquemas dentro de um banco de dados específico.
Entrada:database(string): Nome do banco de dados
Retorna: Array de nomes de esquemas
-
list_tables
Lista todas as tabelas dentro de um banco de dados e esquema específicos.
Entrada:database(string): Nome do banco de dadosschema(string): Nome do esquema
Retorna: Array de metadados de tabelas
-
describe_table
Visualiza informações de colunas para uma tabela específica.
Entrada:table_name(string): Nome totalmente qualificado da tabela (database.schema.table)
Retorna: Array de definições de colunas com nomes, tipos, nulidade, padrões e comentários
Ferramentas de Análise
append_insight
Adiciona novos insights de dados ao recurso de memorando.
Entrada:insight(string): Insight de dados descoberto a partir da análise
Retorna: Confirmação da adição do insight
Efeito: Aciona a atualização do recursomemo://insights
Uso com Claude Desktop
Instalação via Smithery
Para instalar o Snowflake Server para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install mcp_snowflake_server --client claude
Instalação via UVX
Configuração Tradicional (Parâmetros Individuais)
"mcpServers": {
"snowflake_pip": {
"command": "uvx",
"args": [
"--python=3.12", // Optional: specify Python version <=3.12
"mcp_snowflake_server",
"--account", "your_account",
"--warehouse", "your_warehouse",
"--user", "your_user",
"--password", "your_password",
"--role", "your_role",
"--database", "your_database",
"--schema", "your_schema"
// Optionally: "--private_key_path", "your_private_key_absolute_path"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}
Configuração TOML (Recomendada)
"mcpServers": {
"snowflake_production": {
"command": "uvx",
"args": [
"--python=3.12",
"mcp_snowflake_server",
"--connections-file", "/path/to/snowflake_connections.toml",
"--connection-name", "production"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
},
"snowflake_staging": {
"command": "uvx",
"args": [
"--python=3.12",
"mcp_snowflake_server",
"--connections-file", "/path/to/snowflake_connections.toml",
"--connection-name", "staging"
]
}
}
Instalação Local
-
Instale o Claude AI Desktop App
-
Instale o
uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Crie um arquivo
.envcom suas credenciais do Snowflake:
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_PASSWORD="xxx"
SNOWFLAKE_PRIVATE_KEY_PATH=/absolute/path/key.p8
# Alternatively, use external browser authentication:
# SNOWFLAKE_AUTHENTICATOR="externalbrowser"
-
[Opcional] Modifique o
runtime_config.jsonpara definir padrões de exclusão para bancos de dados, esquemas ou tabelas. -
Teste localmente:
uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server
- Adicione o servidor ao seu
claude_desktop_config.json:
Configuração Tradicional (Usando Variáveis de Ambiente)
"mcpServers": {
"snowflake_local": {
"command": "/absolute/path/to/uv",
"args": [
"--python=3.12", // Optional
"--directory", "/absolute/path/to/mcp_snowflake_server",
"run", "mcp_snowflake_server"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}
Configuração TOML (Recomendada)
"mcpServers": {
"snowflake_local": {
"command": "/absolute/path/to/uv",
"args": [
"--python=3.12",
"--directory", "/absolute/path/to/mcp_snowflake_server",
"run", "mcp_snowflake_server",
"--connections-file", "/absolute/path/to/snowflake_connections.toml",
"--connection-name", "development"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}
Notas
- Por padrão, operações de escrita estão desabilitadas. Habilite-as explicitamente com
--allow-write. - O servidor suporta filtragem de bancos de dados, esquemas ou tabelas específicos via padrões de exclusão.
- O servidor expõe recursos adicionais de contexto por tabela se a pré-busca estiver habilitada.
- A ferramenta
append_insightatualiza o recursomemo://insightsdinamicamente.
Licença
MIT
