# Écosystème CLI Snowflake — carte synthétique
> **TL;DR** : utilise `snow` (Snowflake CLI) comme couteau suisse moderne. Évite `snowsql` (legacy). Garde `snowcd` sous la main pour les debugs réseau corpo. Les autres outils (Snowpark, dbt-snowflake, snowflake-labs-mcp) ne sont **pas** des CLI, mais s'appuient tous sur le même socle Python.
---
## Carte d'ensemble
```
┌─────────────────────────────┐
│ snowflake-connector-python │ ← socle commun moderne
# Tutorial Snowflake MCP avec GitHub Copilot — du quickstart à l'avancé
Tutorial pas-à-pas pour démarrer avec **Snowflake-Labs/mcp** (l'implémentation open-source officielle, qui tourne localement) depuis **VS Code + GitHub Copilot Agent Mode**. On part de zéro et on monte en complexité par paliers, avec des checkpoints à chaque niveau.
> **Note** : ce tutorial cible le serveur **local** (`uvx snowflake-labs-mcp`). Pour la version hébergée Snowflake-managed MCP server (GA novembre 2025), la mi# MCP Servers dans GitHub Copilot (VS Code) — guide synthétique
## Philosophie de l'outil
GitHub Copilot adopte une approche **UI-first** : la majorité des opérations passent par la **Command Palette** (`Ctrl+Shift+P`) ou par la **vue Extensions**. Les fichiers de configuration (`mcp.json`) restent éditables à la main, mais l'IDE expose toujours une action graphique équivalente.
**Deux portées (scopes) seulement :**
| Scope | Fichier | Utilité |
|---|---|---|
| **Workspace** | `.vscode/mcp.j# MCP Servers dans Claude Code — guide synthétique
## Philosophie de l'outil
Claude Code adopte une approche **CLI-first** : toute la gestion passe par la sous-commande `claude mcp`, complétée par la slash-command `/mcp` à l'intérieur d'une session. Pas d'interface graphique : tout est explicite et scriptable.
**Trois portées (scopes), à choisir explicitement à l'ajout :**
| Scope | Flag | Fichier | Utilité |
|---|---|---|---|
| **local** (défaut) | `-s local` (implicite) | `~/.claude.json`,# Snowflake MCP : `managed` vs `Snowflake-Labs/mcp`
Référence synthétique distinguant les **deux produits MCP** estampillés Snowflake. Confusion fréquente parce qu'ils partagent le nom et l'éditeur mais ciblent des usages opposés.
## En une phrase
- **Snowflake-managed MCP server** = produit Snowflake hébergé, créé comme objet SQL, exposé en HTTPS authentifié OAuth → cible **production entreprise**.
- **Snowflake-Labs/mcp** = implémentation open-source à lancer localement (`uvx`), configurée Select * from users where truesk-lm-HJPYSCyI:VZ3n8TyEq0i8ZrpJJrlf// *** CONSTANTS *** //
const dxFolderName = "— DX —";
const boomTrackName = "BOOM";
const lavTrackName = "LAV";
const lavFaderLevel = "-8.0";
// *** FUNCTIONS *** //
function activateProTools() {
sf.ui.proTools.appActivateMainWindow();
sf.ui.proTools.appWaitForActive();
}
function changeTrackHeight() {
if (sf.ui.useSfx) sf.ui.useSfx();
if (!sf.ui.proTools.isRunning) throw "Pro Tools is not running";
function setTrackHeight({ trackSize, scope = "selected" }) {
const trackOptions// ============================================================
// PT Session Prep Script — SoundFlow Compatible
//
// Workflow:
// 1. Reads VideoRef .mp4 filenames as the master name source
// 2. Loose-matches each to an AAF subfolder and renames it
// (the subfolder + the .aaf file inside) to match
// 3. Duplicates the PT template folder for each name into
// AUDIO/ProTools/<name>/<name>.ptx
// 4. Skips any session whose ProTools or VideoRef folder is green-tagged
// 5. Logif (!sf.ui.proTools.isRunning) throw "Pro Tools is not running";
if (sf.ui.useSfx) sf.ui.useSfx();
sf.ui.proTools.appActivateMainWindow();
// Ensure Clips List is open
const clipListMenuItem = sf.ui.proTools.getMenuItem(
"View",
"Other Displays",
"Clip List"
);
if (!clipListMenuItem.isMenuChecked) {
sf.ui.proTools.menuClick({
menuPath: ["View", "Other Displays", "Clip List"],
});
// Wait for window to open
sf.wait();
}
// Access the Filter button (the button whose title mig
// ***** NOTES ***** //
/* The first thing the script does is check if any tracks are solo'd, then removes the solo.
/* Maybe add functionallity if you need multiple bounces. */
/* Try to remove the "" around the bonce presets. */
/* Try to add an option for NO PRESET. */
/* Add an option for Stems. If that button is clicked, it adds STEMS as a suffix to the file name instead of -MIX_ */
/* Add IF statement - if 0 tracks are selected, select the first track in the session. */
// ***** COD/* CHECKLIST
- Make sure the Import Session Data window is visible.
- DESELECT the V1 track. Make sure the Audio tracks are all selected.
- Update any preferences and importing options.
- Use sf.app.proTools.importSessionData();
- Wait for the "Missing Files" dialogue box to appear.
- Select MAnually Find and Relink.
- Wait for the Relink window to appear.
- USE const CONFIG here.
- Toggle Preset 1.
- Find and check Client Folder.
- Click Find Links
- Click Options
- Wait for all TaSimple Linear Regression: Predict --> y = b0 + b1x
b0 = intercept b1 = slope
Fit are arrays x=[], y=[] --> (b0,b1)
Import linear_model from scikit-learn
from sklearn.linear_model import LinearRegression
Create a Linear Regression object using the constructor:
lm=LinearRegression()
Define predictor and target variables
x= df[['']]
y=[['']]
Then "fit", find, the parameters of b0 and b1
lm.fit(x,y)
Obtain prediction
Yhat=lm.predict(x)/**
* @param {string} word
* @return {number}
*/
var numberOfSpecialChars = function(word) {
// Track which lowercase and uppercase letters appear
const lower = new Set();
const upper = new Set();
for (const ch of word) {
if (ch >= 'a' && ch <= 'z') {
lower.add(ch);
} else {
upper.add(ch);
}
}
let count = 0;
// Check all 26 letters
for (let i = 0; i < 26; i++) {
const lc = String.fromCharCode(97 + i); /{%- liquid
assign rating_value = product.metafields.yotpo.reviews_average.value
assign rating_count = product.metafields.yotpo.reviews_count.value
-%}
{%- capture product_category -%}
{{- product.category.ancestors | join: ' > ' | append: ' > ' | append: product.category.name -}}
{%- endcapture -%}
{%- capture merchant_policy_json -%}
{
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
The Fruit That Fell from the Sky: Getting Hooked on Suika Game