Snowflake
Integración con base de datos Snowflake con capacidades de lectura/escritura y seguimiento de información.
Documentación
Servidor MCP de Snowflake
Descripción general
Una implementación de servidor de Protocolo de Contexto de Modelo (MCP) que proporciona interacción con bases de datos Snowflake. Este servidor permite ejecutar consultas SQL mediante herramientas y expone información de datos y contexto de esquema como recursos.
Componentes
Recursos
-
memo://insights
Un memo actualizado continuamente que agrega información de datos descubierta.
Se actualiza automáticamente cuando se añaden nuevas perspectivas mediante la herramientaappend_insight. -
context://table/{table_name}
(Si la precarga está habilitada) Resúmenes de esquema por tabla, incluyendo columnas y comentarios, expuestos como recursos individuales.
Herramientas
El servidor expone las siguientes herramientas:
Herramientas de consulta
-
read_query
Ejecuta consultasSELECTpara leer datos de la base de datos.
Entrada:query(cadena): La consulta SQLSELECTa ejecutar
Devuelve: Resultados de la consulta como un array de objetos
-
write_query(habilitada solo con--allow-write)
Ejecuta consultasINSERT,UPDATEoDELETE.
Entrada:query(cadena): La consulta de modificación SQL
Devuelve: Número de filas afectadas o confirmación
-
create_table(habilitada solo con--allow-write)
Crea nuevas tablas en la base de datos.
Entrada:query(cadena): Sentencia SQLCREATE TABLE
Devuelve: Confirmación de creación de la tabla
Herramientas de esquema
-
list_databases
Lista todas las bases de datos en la instancia de Snowflake.
Devuelve: Array de nombres de bases de datos -
list_schemas
Lista todos los esquemas dentro de una base de datos específica.
Entrada:database(cadena): Nombre de la base de datos
Devuelve: Array de nombres de esquemas
-
list_tables
Lista todas las tablas dentro de una base de datos y esquema específicos.
Entrada:database(cadena): Nombre de la base de datosschema(cadena): Nombre del esquema
Devuelve: Array de metadatos de tablas
-
describe_table
Muestra información de columnas para una tabla específica.
Entrada:table_name(cadena): Nombre de tabla completamente calificado (database.schema.table)
Devuelve: Array de definiciones de columnas con nombres, tipos, nulabilidad, valores predeterminados y comentarios
Herramientas de análisis
append_insight
Añade nuevas perspectivas de datos al recurso de memo.
Entrada:insight(cadena): Perspectiva de datos descubierta a partir del análisis
Devuelve: Confirmación de adición de la perspectiva
Efecto: Activa la actualización del recursomemo://insights
Uso con Claude Desktop
Instalación mediante Smithery
Para instalar Snowflake Server para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install mcp_snowflake_server --client claude
Instalación mediante UVX
Configuración tradicional (parámetros individuales)
"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}"]
]
}
}
Configuración 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"
]
}
}
Instalación local
-
Instala Claude AI Desktop App
-
Instala
uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Crea un archivo
.envcon tus credenciales de 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] Modifica
runtime_config.jsonpara establecer patrones de exclusión para bases de datos, esquemas o tablas. -
Prueba localmente:
uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server
- Añade el servidor a tu
claude_desktop_config.json:
Configuración tradicional (usando variables de entorno)
"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}"]
]
}
}
Configuración 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
- De forma predeterminada, las operaciones de escritura están deshabilitadas. Habilítalas explícitamente con
--allow-write. - El servidor admite el filtrado de bases de datos, esquemas o tablas específicas mediante patrones de exclusión.
- El servidor expone recursos de contexto adicionales por tabla si la precarga está habilitada.
- La herramienta
append_insightactualiza dinámicamente el recursomemo://insights.
Licencia
MIT
