メインコンテンツへスキップ
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 マジックコマンドなどのデータサイエンス系ライブラリを理解してる

データベース統合

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

MCP経由

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

拡張機能経由

データベースごとの拡張機能(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;
Agents を使って、遅いクエリの分析、パフォーマンス改善の提案、クエリ結果の可視化コードの生成ができる。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='地域別の収益と広告費の関係'
fig.show()

よくある質問

既存の Jupyter ノートブックは使える? うん、Cursor は .ipynb ファイルを開けて、セル実行と AI 補完にフル対応だよ。 メモリに収まらない巨大なデータセットはどう扱えばいい? Dask みたいな分散処理ライブラリを使うか、Remote-SSH で大きなマシン上の Spark クラスターに接続しよう。 Cursor は R と SQL ファイルに対応してる? うん、Cursor は R スクリプト(.R)と SQL ファイル(.sql)の AI アシストとシンタックスハイライトに対応してるよ。 開発環境を共有するおすすめの方法は? .devcontainer フォルダをバージョン管理にコミットしておこう。プロジェクトを開くときにチームメンバーが自動で環境を再構築できるよ。 データ処理パイプラインはどうやってデバッグするの? Python スクリプトでブレークポイントが使える Cursor の統合デバッガを使うか、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
# プロジェクトに必要な他の依存関係を追加する
Cursor は devcontainer を自動検出して、コンテナ内でプロジェクトを再オープンするよう促す。別の方法として、Command Palette (Ctrl+Shift+P) を使って Reopen in Container を検索し、手動でコンテナ内で再オープンできる。 Development containers にはいくつかの利点がある:
  • 依存関係の分離 により、プロジェクト間の競合を防ぐ
  • 再現可能なビルド により、開発・本番環境で一貫した動作を保証する
  • オンボーディングの簡素化 により、新しいチームメンバーが手動セットアップなしですぐに始められる

SSH を使ったリモート開発

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