Snowflake MCP Server
Un servidor de solo lectura para interactuar con bases de datos Snowflake, que permite consultas SELECT y acceso al contexto del esquema.
Documentación
Servidor MCP de Snowflake
Ligeramente modificado de https://github.com/isaacwasserman/mcp-snowflake-server
Resumen
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. No incluye la capacidad de ejecutar operaciones de escritura e incluye un mensaje de sistema.
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
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 la adición de la perspectiva
Efecto: Activa la actualización del recursomemo://insights
Uso con Claude Desktop
Instalación mediante 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}"]
]
}
}
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"
# 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:
"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
- 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