Cursor fournit des outils intégrés pour le développement en data science grâce à des environnements reproductibles, la prise en charge des notebooks et une aide au code alimentée par l’IA. Ce guide couvre les configurations essentielles pour des workflows Python, R et SQL.

Développement de notebooks

Pour une prise en charge complète des notebooks, télécharge l’extension Jupyter (id : ms-toolsai.jupyter), publiée par ms-toolsai.
Cursor prend en charge les fichiers .ipynb et .py avec exécution de cellules intégrée. Tab, Inline Edit et Agents fonctionnent dans les notebooks, comme dans les autres fichiers de code. Fonctionnalités clés :
  • Exécution de cellules en ligne pour exécuter du code directement dans l’interface de l’éditeur
  • Tab, Inline Edit et Agent comprennent les bibliothèques de data science, notamment pandas, NumPy, scikit-learn, ainsi que les commandes magiques SQL

Intégration de bases de données

Tu peux intégrer des bases de données à Cursor via deux mécanismes principaux : les serveurs MCP et les extensions.
  • Les serveurs MCP permettent à tes agents de se connecter à tes bases de données
  • Les extensions connectent ton IDE au sens large à tes bases de données

Via MCP

Les serveurs MCP permettent à ton agent d’exécuter des requêtes directement sur ta base de données. Ton agent peut ainsi décider d’interroger ta base, écrire la requête adéquate, lancer la commande et analyser les résultats, le tout dans le cadre d’une tâche en cours. Par exemple, tu peux connecter une base Postgres à ton instance Cursor en ajoutant la config MCP suivante à Cursor :
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/mydb"
      ]
    }
  }
}
Pour en savoir plus sur MCP, consulte notre documentation MCP.

Via extensions

Installe des extensions spécifiques (PostgreSQL, BigQuery, SQLite, Snowflake) pour exécuter des requêtes directement depuis l’éditeur. Ça évite de changer d’outil et permet à l’IA d’aider à optimiser tes requêtes.
-- Cursor propose des suggestions pour les index, les fonctions de fenêtrage et l’optimisation des requêtes
SELECT
    user_id,
    event_type,
    COUNT(*) as event_count,
    RANK() OVER (PARTITION BY user_id ORDER BY COUNT(*) DESC) as frequency_rank
FROM events
WHERE created_at >= NOW() - INTERVAL '7 days'
GROUP BY user_id, event_type;
Utilise les agents pour analyser les requêtes lentes, suggérer des améliorations de performance ou générer du code de visualisation pour les résultats. Cursor comprend le contexte SQL et peut recommander des types de graphiques adaptés à la structure de tes données.
Extension Snowflake

Visualisation des données

L’assistance IA de Cursor couvre aussi les bibliothèques de visualisation de données comme Matplotlib, Plotly et Seaborn. L’agent peut générer du code de visualisation pour t’aider à explorer rapidement et facilement tes données, tout en créant un artefact reproductible et partageable.
import plotly.express as px
import pandas as pd

# L’IA suggère des types de graphiques pertinents selon les colonnes
df = pd.read_csv('sales_data.csv')
fig = px.scatter(df, x='advertising_spend', y='revenue',
                 color='region', size='customer_count',
                 title='Revenu vs dépenses publicitaires par région')
fig.show()

Foire aux questions

Puis-je utiliser des notebooks Jupyter existants ? Oui, Cursor ouvre les fichiers .ipynb avec exécution complète des cellules et prise en charge de la complétion IA. Comment gérer de gros jeux de données qui ne tiennent pas en mémoire ? Utilise des bibliothèques de calcul distribué comme Dask, ou connecte-toi à des clusters Spark via des connexions Remote-SSH vers des machines plus puissantes. Cursor prend-il en charge les fichiers R et SQL ? Oui, Cursor propose une assistance IA et la coloration syntaxique pour les scripts R (.R) et les fichiers SQL (.sql). Quelle est la manière recommandée de partager des environnements de développement ? Valide le dossier .devcontainer dans le système de contrôle de version. Les membres de l’équipe peuvent reconstruire l’environnement automatiquement à l’ouverture du projet. Comment déboguer des pipelines de traitement de données ? Utilise le débogueur intégré de Cursor avec des points d’arrêt dans les scripts Python, ou profite d’Agent pour analyser et expliquer pas à pas des transformations de données complexes.

Reproductibilité de l’environnement

Conteneurs de développement

Les conteneurs de développement t’aident à garantir des environnements d’exécution et des dépendances cohérents entre les membres de l’équipe et les environnements de déploiement. Ils peuvent éliminer les bugs liés à l’environnement et réduire le temps d’onboarding des nouveaux membres de l’équipe. Pour utiliser un conteneur de développement, commence par créer un dossier .devcontainer à la racine de ton dépôt. Ensuite, crée les fichiers devcontainer.json, Dockerfile et requirements.txt.
// .devcontainer/devcontainer.json
{
  "name": "ds-env",
  "build": { "dockerfile": "Dockerfile" },
  "features": {
    "ghcr.io/devcontainers/features/python:1": { "version": "3.11" }
  },
  "postCreateCommand": "pip install -r requirements.txt"
}
# .devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/python:3.11
COPY requirements.txt .
RUN pip install --upgrade pip && \
    pip install -r requirements.txt
# requirements.txt
pandas==2.3.0
numpy
# ajoute les autres dépendances dont tu as besoin pour ton projet
Cursor détectera automatiquement le devcontainer et te proposera de rouvrir ton projet dans un conteneur. Sinon, tu peux rouvrir manuellement dans un conteneur via la Command Palette (Ctrl+Shift+P) et en recherchant Reopen in Container. Les conteneurs de développement offrent plusieurs avantages :
  • Isolation des dépendances pour éviter les conflits entre projets
  • Builds reproductibles pour garantir un comportement cohérent entre les environnements de développement et de production
  • Onboarding simplifié permettant aux nouveaux membres de démarrer immédiatement sans configuration manuelle

Développement à distance avec SSH

Quand ton analyse nécessite des ressources de calcul supplémentaires, des GPU ou l’accès à des jeux de données privés, connecte-toi à des machines distantes tout en conservant ton environnement de développement local.
  1. Provisionne une instance cloud ou accède à un serveur on-prem avec les ressources requises
  2. Clone ton dépôt sur la machine distante, y compris la configuration .devcontainer
  3. Connecte-toi via Cursor : Ctrl+Shift+P → “Remote-SSH: Connect to Host”
Cette approche maintient un outillage cohérent tout en faisant évoluer les ressources de calcul selon les besoins. La même configuration de conteneur de développement fonctionne sur les environnements locaux et distants.