Cursor は、再現可能な環境、ノートブック対応、AI を活用したコードアシストを通じて、データサイエンス開発のための統合ツールを提供してる。このガイドでは、Python、R、SQL のワークフローにおける基本的なセットアップパターンを紹介するよ。

Notebook開発

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

データベース統合

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

MCP経由

MCPサーバーを使うと、Agentがデータベースに対して直接クエリを実行できる。これにより、Agentは進行中のタスクの一部として、データベースにクエリするかを判断し、適切なクエリを書いて実行し、結果を解析できる。 たとえば、次の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 suggests relevant plot types based on data columns
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 フォルダをバージョン管理にコミットしておこう。プロジェクトを開いたときに、チームメンバーは自動で環境を再現できるよ。 データ処理パイプラインはどうデバッグするの? Python スクリプトにブレークポイントを置いて Cursor の統合デバッガを使うか、Agent を使って複雑なデータ変換をステップごとに解析・解説してもらおう。

環境の再現性

Development containers

Development containers は、チーム内やデプロイ環境間でランタイムと依存関係を一貫させるのに役立つよ。環境依存のバグを潰して、新メンバーのオンボーディング時間も短縮できる。 Development container を使うには、まずリポジトリのルートに .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 の設定がローカルとリモートの両方でそのまま使えるよ。