Servicio MCP de copo de nieve
Un servidor de Protocolo de contexto de modelo (MCP) que proporciona acceso a las bases de datos de Snowflake para cualquier cliente compatible con MCP.
Este servidor implementa el Protocolo de Contexto de Modelo para permitir que cualquier cliente MCP:
Ejecutar consultas SQL en bases de datos Snowflake
Manejar automáticamente el ciclo de vida de la conexión a la base de datos (conectar, reconectar al expirar el tiempo de espera, cerrar)
Manejar resultados de consultas y errores
Realizar operaciones de base de datos de forma segura
Conéctese usando autenticación mediante contraseña o par de claves
Descripción general de la arquitectura
¿Qué es MCP (Protocolo de Contexto Modelo)?
MCP es un protocolo estándar que permite a las aplicaciones comunicarse con modelos de IA y servicios externos. Permite a los modelos de IA acceder a herramientas y fuentes de datos más allá de sus datos de entrenamiento, ampliando así sus capacidades mediante una interfaz de comunicación estandarizada. Sus principales características incluyen:
Basado en la comunicación stdio (entrada/salida estándar)
Definición y descubrimiento de herramientas estructuradas
Mecanismo de llamada de herramientas estandarizado
Transmisión estructurada de resultados
Componentes del sistema
El servidor Snowflake-MCP consta de varios componentes clave:
Servidor MCP : componente central que implementa el protocolo MCP y maneja las solicitudes de los clientes
Snowflake Connection Manager : administra las conexiones de bases de datos, incluida la creación, el mantenimiento y la limpieza.
Procesador de consultas : ejecuta consultas SQL en Snowflake y procesa los resultados.
Administrador de autenticación : maneja diferentes métodos de autenticación (contraseña o clave privada)
Flujo de comunicación
El sistema funciona mediante el siguiente flujo de comunicación:
Un cliente MCP (como Claude u otra aplicación compatible con MCP) envía una solicitud al servidor MCP
El servidor MCP se autentica con Snowflake utilizando las credenciales del archivo
.envEl servidor MCP ejecuta consultas SQL en Snowflake
Snowflake devuelve resultados al servidor MCP
El servidor MCP formatea y envía los resultados al cliente MCP
Esta arquitectura permite una integración perfecta entre las aplicaciones de IA y las bases de datos de Snowflake, manteniendo al mismo tiempo la seguridad y una gestión eficiente de la conexión.
Instalación
Clonar este repositorio
Instalar dependencias
Configuración
Ejemplo de configuración de cliente MCP
A continuación se muestra un ejemplo de configuración para Claude Desktop, pero este servidor funciona con cualquier cliente compatible con MCP. Cada cliente puede tener su propio método de configuración:
Parámetros de configuración:
command: Ruta completa de su intérprete de Python. Modifíquela según la ubicación de su instalación de Python.args: Ruta completa al script del servidor. Modifíquela según dónde clonó el repositorio.
Rutas de ejemplo para diferentes sistemas operativos:
Ventanas:
MacOS/Linux:
Configuración de copo de nieve
Cree un archivo .env en el directorio raíz del proyecto y agregue la siguiente configuración:
Opciones de autenticación
Este servidor MCP admite dos métodos de autenticación:
Autenticación de contraseña
SNOWFLAKE_PASSWORD=your_password # Your Snowflake passwordAutenticación de par de claves
SNOWFLAKE_PRIVATE_KEY_FILE=/path/to/rsa_key.p8 # Path to private key file SNOWFLAKE_PRIVATE_KEY_PASSPHRASE=your_passphrase # Optional: passphrase if key is encryptedPara la autenticación de par de claves, primero debe configurar la autenticación de par de claves con Snowflake:
Genere un par de claves y registre la clave pública con Snowflake
Guarde el archivo de clave privada de forma segura en su máquina
Proporcione la ruta completa al archivo de clave privada en la configuración
Para obtener instrucciones sobre cómo configurar la autenticación de pares de claves, consulte la documentación de Snowflake sobre autenticación de pares de claves .
Si se configuran ambos métodos de autenticación, el servidor priorizará la autenticación del par de claves.
Gestión de conexiones
El servidor proporciona funciones de gestión automática de la conexión:
Inicialización automática de la conexión
Crea una conexión cuando se recibe la primera consulta
Valida los parámetros de conexión
Mantenimiento de la conexión
Realiza un seguimiento del estado de la conexión
Maneja los tiempos de espera de conexión
Se reconecta automáticamente si se pierde la conexión
Limpieza de la conexión
Cierra correctamente las conexiones cuando el servidor se detiene
Libera recursos apropiadamente
Uso
Uso estándar
El servidor se iniciará automáticamente al configurarlo con su cliente MCP. No es necesario iniciarlo manualmente durante el funcionamiento normal. Una vez que el servidor esté en funcionamiento, su cliente MCP podrá ejecutar consultas de Snowflake.
Para realizar pruebas de desarrollo, puede iniciar el servidor manualmente usando:
Nota: El inicio manual del servidor no es necesario para el uso normal. El cliente MCP normalmente gestionará el inicio y el apagado del servidor según la configuración.
Uso de Docker
También puedes ejecutar el servidor con Docker. Este método se recomienda para entornos de producción y garantiza una ejecución consistente en diferentes plataformas.
Construya la imagen de Docker:
Configura tu cliente MCP para usar Docker. Ejemplo de configuración:
Nota: La implementación de Docker utiliza stdio para la comunicación, por lo que no es necesario exponer ningún puerto.
Si usa la autenticación de par de claves con Docker, necesitará montar su archivo de clave privada:
Y actualice su configuración según corresponda:
Características
Acceso seguro a la base de datos de Snowflake
Autenticación flexible (autenticación mediante contraseña o par de claves)
Gestión y generación de informes de errores robustos
Gestión automática de conexiones
Ejecución de consultas y procesamiento de resultados
Compatible con cualquier cliente compatible con MCP
Detalles técnicos
Componentes principales
La implementación consta de varias clases y módulos clave:
server.py : el punto de entrada principal que contiene la implementación del servidor MCP.
SnowflakeConnection : clase que maneja todas las operaciones de la base de datos Snowflake, incluidas:
Establecimiento y reconexión de la conexión
Ejecución de consultas y gestión de transacciones
Mantenimiento y limpieza de la conexión
SnowflakeMCPServer : la clase de servidor principal que implementa el protocolo MCP:
Registra las herramientas disponibles con el marco MCP
Gestiona solicitudes de llamadas a herramientas de los clientes.
Gestiona el ciclo de vida de las conexiones.
Ciclo de vida de la conexión
El ciclo de vida de la conexión se gestiona cuidadosamente para garantizar la confiabilidad:
Inicialización : las conexiones se crean de forma diferida cuando se recibe la primera consulta
Validación : los parámetros de conexión se validan antes de intentar conectarse
Monitoreo : Las conexiones se prueban periódicamente para verificar su validez.
Recuperación : reconexión automática si se pierde o se agota el tiempo de conexión
Limpieza : liberación adecuada de recursos cuando se apaga el servidor
Interfaz de la herramienta MCP
El servidor expone la siguiente herramienta a los clientes MCP:
execute_query : ejecuta una consulta SQL en Snowflake y devuelve los resultados.
Entrada: cadena de consulta SQL
Salida: Resultados de la consulta en un formato estructurado
export_to_csv : ejecuta una consulta SQL en Snowflake y devuelve los resultados
Entrada: cadena de consulta SQL
Salida: Número de filas exportadas. Ruta del archivo de salida.
Esta implementación sigue las mejores prácticas tanto para la implementación del protocolo MCP como para la interacción con la base de datos Snowflake.
Licencia
Este proyecto está licenciado bajo la Licencia MIT . Consulte el archivo de LICENCIA para más detalles.
Derechos de autor (c) 2025 David Amom
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Un servidor de protocolo de contexto de modelo que proporciona acceso a las bases de datos de Snowflake para cualquier cliente compatible con MCP, lo que permite la ejecución de consultas SQL con gestión automática de conexión.
Related MCP Servers
- -security-license-qualityA Model Context Protocol server that enables Claude to execute SQL queries on Snowflake databases with automatic connection lifecycle management.Last updated -43MIT License
- -security-license-qualityA Model Context Protocol server that provides tools for connecting to and interacting with various database systems (SQLite, PostgreSQL, MySQL/MariaDB, SQL Server) through a unified interface.Last updated -3
- Asecurity-licenseAqualityA Model Context Protocol server that enables executing SQL queries and managing connections with Microsoft SQL Server databases.Last updated -1546MIT License
- -security-license-qualityA Model Context Protocol server that provides comprehensive access to Microsoft SQL Server databases, enabling Language Models to inspect schemas, execute queries, manage database objects, and perform advanced database operations.Last updated -7