Snowflake MCP Server
Um servidor somente leitura para interagir com bancos de dados Snowflake, permitindo consultas SELECT e acesso ao contexto do esquema.
Documentação
Snowflake MCP Server
Ligeiramente alterado de https://github.com/isaacwasserman/mcp-snowflake-server
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. Não inclui a capacidade de executar operações de escrita e inclui um prompt de sistema.
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
Execute consultasSELECTpara ler dados do banco de dados.
Entrada:query(string): A consulta SQLSELECTa ser executada
Retorna: Resultados da consulta como array de objetos
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 tabela
-
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 UVX
"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: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}
Instalação Local
-
Instale o Claude AI Desktop App
-
Instale
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"
# Alternatively, use external browser authentication:
# SNOWFLAKE_AUTHENTICATOR="externalbrowser"
-
[Opcional] Modifique
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:
"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: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}
Notas
- O servidor suporta a filtragem de bancos de dados, esquemas ou tabelas específicos por meio de padrões de exclusão.
- O servidor expõe recursos de contexto adicionais por tabela se a pré-busca estiver habilitada.
- A ferramenta
append_insightatualiza o recursomemo://insightsdinamicamente.
Licença
MIT