Cursor nyediain tooling terintegrasi buat pengembangan data science lewat environment yang bisa direproduksi, dukungan notebook, dan bantuan kode bertenaga AI. Panduan ini ngebahas pola setup penting buat alur kerja Python, R, dan SQL.

Pengembangan notebook

Untuk dukungan notebook lengkap, unduh ekstensi Jupyter (id: ms-toolsai.jupyter) yang dirilis oleh ms-toolsai.
Cursor mendukung file .ipynb dan .py dengan eksekusi sel terintegrasi. Tab, Inline Edit, dan Agent berfungsi di dalam notebook, sama seperti di file kode lainnya. Kemampuan utama:
  • Eksekusi sel inline menjalankan kode langsung di antarmuka editor
  • Tab, Inline Edit, dan Agent semuanya memahami library data science termasuk pandas, NumPy, scikit-learn, dan perintah magic SQL

Integrasi database

Database bisa diintegrasikan dengan Cursor lewat dua mekanisme utama: server MCP dan Extensions.
  • MCP Servers bikin Agents kamu bisa terhubung ke database kamu
  • Extensions ngeintegrasiin IDE kamu secara keseluruhan dengan database kamu

Via MCP

Server MCP memungkinkan agent kamu menjalankan query langsung ke database kamu. Ini bikin agent kamu bisa milih buat nge-query database, nulis query yang sesuai, jalanin perintah, dan menganalisis output, semuanya sebagai bagian dari task yang lagi berjalan. Misalnya, kamu bisa nyambungin database Postgres ke instance Cursor kamu dengan nambahin MCP config berikut ke Cursor:
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/mydb"
      ]
    }
  }
}
Untuk info lebih lanjut tentang MCP, cek dokumentasi MCP kami.

Via Extensions

Install ekstensi khusus database (PostgreSQL, BigQuery, SQLite, Snowflake) buat menjalankan query langsung dari editor. Ini ngilangin context switching antar tool dan ngaktifin bantuan AI buat optimasi query.
-- Cursor ngasih saran buat index, window functions, dan optimasi query
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;
Pakai Agents buat menganalisis query lambat, ngasih saran peningkatan performa, atau ngegenerasi kode visualisasi buat hasil query. Cursor paham konteks SQL dan bisa ngerekomendasiin tipe chart yang sesuai berdasarkan struktur datamu.
Snowflake Extension

Visualisasi data

Bantuan AI Cursor mencakup library visualisasi data seperti Matplotlib, Plotly, dan Seaborn. Agent bisa menghasilkan kode untuk visualisasi data, ngebantu kamu mengeksplorasi data dengan cepat dan mudah, sambil bikin artefak yang bisa direplikasi dan dibagikan.
import plotly.express as px
import pandas as pd

# AI menyarankan jenis plot yang relevan berdasarkan kolom data
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()

Pertanyaan yang sering diajukan

Bisa pakai Jupyter notebook yang sudah ada? Bisa, Cursor membuka file .ipynb dengan eksekusi sel penuh dan dukungan AI completion. Gimana cara menangani dataset besar yang nggak muat di memori? Pakai pustaka komputasi terdistribusi seperti Dask atau sambungkan ke klaster Spark lewat koneksi Remote-SSH ke mesin yang lebih besar. Apakah Cursor mendukung file R dan SQL? Ya, Cursor menyediakan bantuan AI dan penyorotan sintaks untuk skrip R (.R) dan file SQL (.sql). Cara yang direkomendasikan buat berbagi environment pengembangan gimana? Commit folder .devcontainer ke version control. Anggota tim bisa membangun ulang environment secara otomatis saat membuka proyek. Gimana cara debug pipeline pemrosesan data? Gunakan debugger terintegrasi Cursor dengan breakpoint di skrip Python, atau manfaatkan Agent untuk menganalisis dan menjelaskan transformasi data yang kompleks langkah demi langkah.

Reproducibilitas environment

Development container

Development container bantu kamu memastikan runtime dan dependency yang konsisten di seluruh anggota tim dan environment deployment. Ini bisa menghilangkan bug spesifik environment dan mengurangi waktu onboarding anggota tim baru. Untuk pakai development container, mulai dengan bikin folder .devcontainer di root repositori kamu. Selanjutnya, bikin file devcontainer.json, Dockerfile, dan 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
# tambahkan dependency lain yang kamu butuhkan untuk proyekmu
Cursor bakal otomatis mendeteksi devcontainer dan nge-prompt kamu buat buka ulang proyek di dalam container. Atau, kamu bisa manual buka ulang di container lewat Command Palette (Ctrl+Shift+P) dan cari Reopen in Container. Development container ngasih beberapa keuntungan:
  • Isolasi dependency mencegah konflik antarproyek
  • Build yang reproducible memastikan perilaku konsisten di environment development dan production
  • Onboarding yang disederhanakan bikin anggota tim baru bisa langsung mulai tanpa setup manual

Pengembangan jarak jauh dengan SSH

Saat analisismu butuh resource komputasi tambahan, GPU, atau akses ke dataset privat, sambungkan ke mesin remote sambil tetap mempertahankan environment development lokal kamu.
  1. Sediakan instance cloud atau akses server on-premises dengan resource yang dibutuhkan
  2. Clone repositori kamu ke mesin remote, termasuk konfigurasi .devcontainer
  3. Terhubung lewat Cursor: Ctrl+Shift+P → “Remote-SSH: Connect to Host”
Pendekatan ini menjaga tooling yang konsisten sambil menskalakan resource komputasi sesuai kebutuhan. Konfigurasi development container yang sama bekerja di environment lokal maupun remote.