Cursor は、再現可能な環境、ノートブックのサポート、AI を活用したコード支援を備え、データサイエンス開発向けの統合ツールを提供するよ。このガイドでは、Python、R、SQL のワークフローにおける必須のセットアップパターンをカバーする。

ノートブック開発

ノートブックをフルで使うには、ms-toolsai が公開してる Jupyter(id: ms-toolsai.jupyter)拡張機能をダウンロードしてね。
Cursor は、セルの一体型実行に対応した .ipynb.py の両方に対応してる。Tab、Inline Edit、Agents は、 ほかのコードファイルと同じようにノートブック内でも動くよ。 主な機能:
  • インラインでのセル実行 により、エディター内でそのままコードを実行できる
  • Tab、Inline Edit、Agent は、pandas、NumPy、scikit-learn、SQL マジックコマンドなどのデータサイエンス系ライブラリを理解してる

データベース統合

データベースは、MCP サーバーと拡張機能(Extensions)の2つの主要な仕組みで Cursor と統合できるよ。
  • MCP Servers はエージェントがデータベースに接続できるようにする
  • Extensions は IDE 全体をデータベースと統合する

MCP 経由

MCP サーバーを使うと、エージェントがデータベースに対して直接クエリを実行できる。これにより、進行中のタスクの一部として、エージェントがデータベースにクエリするかを判断し、適切なクエリを書いてコマンドを実行し、出力を分析できる。 たとえば、次の MCP 設定 を Cursor に追加して、Cursor インスタンスに Postgres データベースを接続できる:
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/mydb"
      ]
    }
  }
}
MCP の詳細は MCP ドキュメント を見てね。

Extensions 経由

データベース固有の拡張機能(PostgreSQL、BigQuery、SQLite、Snowflake)をインストールして、エディタから直接クエリを実行しよう。これでツール間のコンテキスト切り替えが不要になり、クエリ最適化に対する AI アシストも使える。
-- Cursor はインデックス、ウィンドウ関数、クエリ最適化の提案をしてくれる
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;
エージェントを使って遅いクエリを分析したり、パフォーマンス改善を提案したり、クエリ結果の可視化コードを生成したりできる。Cursor は SQL コンテキストを理解していて、データ構造に基づいて適切なチャートタイプを提案できる。
Snowflake Extension

データ可視化

Cursor の AI アシストは、Matplotlib、Plotly、Seaborn などのデータ可視化ライブラリにも対応してるよ。エージェントは可視化コードを生成して、データを手早く簡単に探索できるようにしつつ、再現性があって共有しやすい成果物を作ってくれる。
import plotly.express as px
import pandas as pd

# AI がデータの列に基づいて適切なプロット種別を提案する
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()

よくある質問

既存の Jupyter ノートブックは使える? うん、Cursor は .ipynb ファイルを開いて、セルの実行と AI 補完をフルサポートしてるよ。 メモリに収まらない大規模データセットはどう扱えばいい? Dask みたいな分散処理ライブラリを使うか、Remote-SSH でより大きいマシン上の Spark クラスターに接続してね。 Cursor は R と SQL ファイルに対応してる? うん、Cursor は R スクリプト(.R)と SQL ファイル(.sql)に対して、AI アシストとシンタックスハイライトを提供してるよ。 開発環境を共有するおすすめの方法は? .devcontainer フォルダをバージョン管理にコミットして。プロジェクトを開いたときに、チームメンバーが自動で環境を再構築できるよ。 データ処理パイプラインはどうやってデバッグするの? Cursor の統合デバッガで Python スクリプトにブレークポイントを置くか、Agent を使って複雑なデータ変換をステップごとに解析・解説してもらおう。

環境の再現性

開発コンテナ

開発コンテナを使うと、チーム内やデプロイ環境間でランタイムや依存関係を一貫させられる。環境依存のバグを減らせるし、新メンバーのオンボーディングも短縮できるよ。 使い始めるには、まずリポジトリのルートに .devcontainer フォルダを作成しよう。次に devcontainer.jsonDockerfilerequirements.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
# add other dependencies you need for your project
Cursor は devcontainer を自動検出して、プロジェクトをコンテナ内で再オープンするよう促してくれる。あるいは Command Palette (Ctrl+Shift+P) で Reopen in Container を検索して、手動でコンテナ内に再オープンしてもOK。 開発コンテナの主なメリット:
  • 依存関係の分離 により、プロジェクト間の競合を防ぐ
  • 再現可能なビルド で、開発・本番を問わず一貫した動作を保証
  • オンボーディングの簡素化 により、新メンバーが手動セットアップなしですぐに始められる

SSH を使ったリモート開発

追加の計算リソースや GPU、プライベートデータセットへのアクセスが必要なときは、ローカルの開発環境は維持したままリモートマシンに接続しよう。
  1. 必要なリソースを備えたクラウドインスタンスを用意するか、オンプレミスのサーバーにアクセスする
  2. .devcontainer 設定を含めて、リポジトリをリモートマシンにクローンする
  3. Cursor から接続: Ctrl+Shift+P → “Remote-SSH: Connect to Host”
このアプローチなら、必要に応じて計算リソースをスケールしつつ、ツールチェーンの一貫性を保てる。同じ開発コンテナ設定がローカル環境とリモート環境の両方でそのまま使えるよ。