Flocon de neige Cortex AI - MCP Server sécurisé par ALMC Security 2025

Flocon de neige Cortex AI

Voir sur GitHub

Serveur Snowflake Cortex AI Model Context Protocol (MCP)

Ce serveur MCP Snowflake fournit des outils pour les fonctionnalités de Snowflake Cortex AI, apportant ces capacités à l'écosystème MCP. Lorsqu'il est connecté à un client MCP (par exemple Claude for Desktop, fast-agent, Agentic Orchestration Framework), les utilisateurs peuvent exploiter ces fonctionnalités de Cortex AI.

Le serveur MCP prend actuellement en charge les fonctionnalités de Cortex AI ci-dessous :

  • Cortex Search: Interrogation de données non structurées dans Snowflake, telle qu'elle est couramment utilisée dans les applications RAG (Retrieval Augmented Generation).
  • Cortex Analyst: Interrogation de données structurées dans Snowflake via une modélisation sémantique riche.
  • Cortex Agent:(bientôt disponible) orchestrateur agentique pour la recherche de données structurées et non structurées

Pour commencer

Configuration du service

Un simple fichier de configuration permet de créer des outils pour les différentes fonctionnalités de Cortex AI. Un exemple se trouve à services/tools_config.yaml et un modèle est présenté ci-dessous. De nombreux services Cortex Search et Cortex Analyst peuvent être ajoutés. Les descriptions idéales sont à la fois très descriptives et mutuellement exclusives. Le chemin d'accès à ce fichier de configuration sera transmis au serveur et son contenu sera utilisé pour créer les outils du serveur MCP au démarrage.

search_services : # Liste de tous les services de recherche Cortex - nom_du_service : "<nom_du_service>" description : > # Doit commencer par "Service de recherche qui ..." "<Services de recherche qui ...>" nom_de_la_base_de_données : "<nom_de_la_base_de_données>" nom_du_schéma : "<nom_du_schéma>" colonnes : [] # Facultatif : Liste des colonnes à renvoyer pour chaque résultat pertinent (par défaut : []) limit : 10 # Facultatif : Limite sur le nombre de résultats à retourner (par défaut : 10) - service_name : "<service_name>" description : > # Doit commencer par "Service de recherche qui ..." "<Service de recherche qui ...>" database_name : "<database_name>" schema_name : "<schema_name>" columns : [] # Facultatif : Liste des colonnes à renvoyer pour chaque résultat pertinent (par défaut : []) limit : 10 # Facultatif : Limite du nombre de résultats à renvoyer (par défaut : 10) analyst_services : # Liste de tous les modèles/vues sémantiques de Cortex Analyst - service_name : "<service_name>" # Créer un nom descriptif pour le service semantic_model : "<semantic_yaml_or_view>" # Qualifier complètement le modèle sémantique YAML ou la description de la vue sémantique : > # Doit commencer par "Analyst service that ..." "<Analyst service that ...>" - service_name : "<service_name>" # Créer un nom descriptif pour le service semantic_model : "<semantic_yaml_or_view>" # Qualifier complètement le modèle sémantique YAML ou la description de la vue sémantique : > # Doit commencer par "Analyst service that ..." "<Analyst service that ...>"

Connexion à Snowflake

Le serveur MCP utilise le connecteur Snowflake Python pour toutes les méthodes d'authentification et de connexion. Veuillez vous référer à la documentation officielle de Snowflake pour connaître toutes les options d'authentification et les meilleures pratiques.

Les paramètres de connexion peuvent être transmis en tant qu'arguments CLI et/ou variables d'environnement. Le serveur supporte toutes les méthodes d'authentification disponibles dans le connecteur Snowflake Python, y compris :

  • Authentification par nom d'utilisateur/mot de passe
  • Authentification par paire de clés
  • Authentification OAuth
  • L'authentification unique (SSO)
  • Authentification multi-facteurs (MFA)

Paramètres de connexion

Les paramètres de connexion peuvent être transmis en tant qu'arguments CLI et/ou variables d'environnement :

ParamètreArguments CLIVariable d'environnementDescription de la variable d'environnement
Compte--compteCOMPTE_FLOCON_NEIGEIdentifiant du compte (par exemple xy12345.us-east-1)
Hôte--hostSNOWFLAKE_HOSTURL de l'hôte du flocon de neige
Utilisateur--user, --usernameSNOWFLAKE_USERNom d'utilisateur pour l'authentification
Mot de passe--mot_de_passeMOT_DE_PASSE SNOWFLAKEMot de passe ou jeton d'accès programmatique
Rôle--rôleSNOWFLAKE_ROLERôle à utiliser pour la connexion
Entrepôt--entrepôtSNOWFLAKE_WAREHOUSEEntrepôt à utiliser pour les requêtes
Code d'accès dans le mot de passe--passcode-in-password-Indique si le code de passe est incorporé dans le mot de passe
Code de passe--passcodeCODE_FLOCON_DE_NEIGECode d'authentification MFA
Clé privée--Clé privéeCLÉ_PRIVÉE_DU_FLOCONClé privée pour l'authentification par paire de clés
Fichier de clé privée--Fichier de clé privéeFICHIER DE CLÉ PRIVÉE DU FLOCON DE NEIGEChemin d'accès au fichier de clé privée
Mot de passe de la clé privée--Mot de passe de la clé privéeMOT_DE_PASSE_DE_LA_CLÉ_PRIVÉE_DU_FLOCON DE NEIGEMot de passe pour la clé privée cryptée
Authentificateur--authenticator-Type d'authentification (par défaut : snowflake)
Nom de la connexion--nom-de-la-connexion-Nom de la connexion à partir du fichier connections.toml (ou config.toml)

[Avis de dépréciation: Les arguments CLI --account-identifier et --pat, ainsi que la variable d'environnement SNOWFLAKE_PAT, sont obsolètes et seront supprimés dans une prochaine version. Veuillez utiliser --account et --password (ou SNOWFLAKE_ACCOUNT et SNOWFLAKE_PASSWORD) à la place.

Utilisation avec des clients MCP

Le serveur MCP est agnostique et fonctionnera avec la plupart des clients MCP qui supportent les fonctionnalités de base des outils MCP et (optionnellement) des ressources. Voici quelques exemples.

Claude Desktop

Pour intégrer ce serveur avec Claude Desktop en tant que client MCP, ajoutez ce qui suit à la configuration du serveur de votre application. Par défaut, cette configuration se trouve à l'endroit suivant

  • macOS : ~/Bibliothèque/Application Support/Claude/claude_desktop_config.json
  • Windows : %APPDATA%\Claudeclaude_desktop_config.json

Définissez le chemin d'accès au fichier de configuration du service et configurez votre méthode de connexion.

{ "mcpServers" : { "mcp-server-snowflake" : {"command" : "uvx", "args" : ["--from", "git+https://github.com/Snowflake-Labs/mcp", "mcp-server-snowflake", "--service-config-file", "<chemin vers le fichier>/tools_config.yaml", "--connection-name", "default" ] } } }

Curseur

Enregistrez le serveur MCP dans le curseur en ouvrant le curseur et en naviguant vers Settings -> Cursor Settings -> MCP. Ajoutez les éléments suivants.

{ "mcpServers" : { "mcp-server-snowflake" : { "command" : "uvx", "args" : ["--from", "git+https://github.com/Snowflake-Labs/mcp", "mcp-server-snowflake", "--service-config-file", "<chemin vers le fichier>/tools_config.yaml", "--connection-name", "default" ] } } }

Ajoutez le serveur MCP comme contexte dans le chat.

Pour résoudre les problèmes liés au serveur Cursor, consultez les journaux en ouvrant le panneau de sortie et en sélectionnant Cursor MCP dans le menu déroulant.

fast-agent

Mettez à jour la section fastagent .config.yaml mcp server avec le chemin du fichier de configuration et le nom de la connexion.

# MCP Servers mcp : servers : mcp-server-snowflake : command : "uvx" args : ["--from", "git+https://github.com/Snowflake-Labs/mcp", "mcp-server-snowflake", "--service-config-file", "<chemin vers le fichier>/tools_config.yaml", "--connection-name", "default"]

Microsoft Visual Studio Code + GitHub Copilot

Pour les prérequis, la configuration de l'environnement, le guide étape par étape et les instructions, veuillez vous référer à ce blog.

Résolution des problèmes

Exécution de l'inspecteur MCP

L'inspecteur MCP est suggéré pour dépanner le serveur MCP. Exécutez la commande suivante pour lancer l'inspecteur.

npx @modelcontextprotocol/inspector uvx --from "git+https://github.com/Snowflake-Labs/mcp" mcp-server-snowflake --service-config-file "<path_to_file>/tools_config.yaml" --connection-name "default"

Questions fréquentes

Comment puis-je me connecter à Snowflake ?

Puis-je utiliser un jeton d'accès programmatique (PAT) au lieu d'un mot de passe ?

  • Oui. Passez-le à l'option CLI --password ou définissez-le comme variable d'environnement SNOWFLAKE_PASSWORD.

Comment puis-je essayer cela ?

  • Le serveur MCP est destiné à être utilisé comme une partie de l'écosystème MCP. Considérez-le comme un ensemble d'outils. Vous aurez besoin d'un client MCP pour agir en tant qu'orchestrateur. Voir l'introduction de MCP pour plus d'informations.

Où est-ce déployé ? Est-ce dans Snowpark Container Services ?

  • Tous les outils de ce serveur MCP sont des services gérés, accessibles via l'API REST. Aucun déploiement de service distant séparé n'est nécessaire. Au lieu de cela, la version actuelle du serveur est destinée à être démarrée par le client MCP, tel que Claude Desktop, Cursor, fast-agent, etc. En configurant ces clients MCP avec le serveur, l'application lancera le service du serveur pour vous. Les futures versions du serveur MCP pourront être déployées en tant que service distant à l'avenir.

Je reçois des erreurs de permission de mes appels d'outils.

  • Si vous utilisez des jetons d'accès programmatiques, notez qu'ils n'évaluent pas les rôles secondaires. Lorsque vous les créez, veuillez sélectionner un rôle unique qui a accès à tous les services et à leurs objets sous-jacents OU sélectionnez n'importe quel rôle. Un nouveau PAT devra être créé pour modifier cette propriété.

Combien de Cortex Search ou de Cortex Analysts puis-je ajouter ?

  • Vous pouvez ajouter plusieurs instances des deux services. Le client MCP déterminera le(s) service(s) approprié(s) à utiliser en fonction de l'invite de l'utilisateur.

A l'aide ! Je reçois une erreur SSLError ?

  • Si le nom de votre compte contient des traits de soulignement, essayez d'utiliser la version en pointillés de l'URL
    • Identifiant de compte avec traits de soulignement : acme-marketing_test_account
    • Identifiant de compte avec tirets : acme-marketing-test-account

Rapports de bogues, commentaires ou autres questions

Veuillez ajouter des problèmes au dépôt GitHub.

Liés dans Service en nuage - MCP Servers sécurisés

ServeurRésuméActions
DopplerUn serveur MCP (Model Context Protocol) simplifié pour l'accès en lecture seule à la plate-forme de...Voir
MCP ConcordiaUn serveur MCP (Model Context Protocol) avancé qui fournit des analyses complètes pour les portefeui...Voir
Gestion des PC dans le nuageMCP Server pour la gestion des PC du nuage Azure à l'aide de l'API Microsoft Graph.Voir
Serveur MCP Ubuntu sécurisé🔒 Serveur Security-First Model Context Protocol pour des opérations sûres du système UbuntuVoir
UyuniServeur de protocole de contexte de modèle pour l'API du serveur Uyuni.Voir
Gemini OCRCe projet fournit un service OCR (Reconnaissance Optique de Caractères) simple mais puissant à trave...Voir