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 assistance au code propulsée par l’IA. Ce guide couvre les configurations essentielles pour les 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, exactement comme dans les autres fichiers de code. Fonctionnalités clés :
  • Exécution de cellules en ligne qui exécute le 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 intègrent ton IDE au sens large avec 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 choisir d’interroger la base, écrire la requête appropriée, exécuter 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 de données 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 active l’assistance IA pour l’optimisation des requêtes.
-- Cursor suggère des index, des fonctions fenêtrées et des optimisations de 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 des Agents pour analyser des requêtes lentes, proposer 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 de 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, t’aidant à explorer tes données rapidement et facilement, 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 en fonction des colonnes
df = pd.read_csv('sales_data.csv')
fig = px.scatter(df, x='advertising_spend', y='revenue',
                 color='region', size='customer_count',
                 title='Revenue vs Advertising Spend by Region')
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 l’autocomplétion par 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. Est-ce que Cursor prend en charge les fichiers R et SQL ? Oui, Cursor fournit 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 ? Ajoute le dossier .devcontainer au 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 sers-toi 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 éliminent les bugs liés à l’environnement et réduisent le temps d’onboarding des nouveaux membres. Pour utiliser un conteneur de développement, commence par créer un dossier .devcontainer à la racine de ton dépôt. Ensuite, crée un fichier devcontainer.json, un Dockerfile et un fichier 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 d'autres dépendances dont tu as besoin pour ton projet
Cursor détecte automatiquement le devcontainer et te propose de rouvrir ton projet dans un conteneur. Sinon, tu peux rouvrir manuellement dans un conteneur via la palette de commandes (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é pour permettre aux nouveaux membres de commencer 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-premise avec les ressources nécessaires
  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 des outils cohérents 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.