Modül 7 · Atölye: AI Destekli Veri Alımı · ⏱ 6 dk

dlt + Cursor/Windsurf + dlt MCP ile agentic ingestion

dlt + AI Copilot

Bu derste neler öğreneceksin

  • Cursor da dlt MCP server kurar
  • Prompt ile pipeline kurgular
  • AI agent ın ürettiği kodu inceler

Yapay zekâ asistanınla pipeline kur!

Hatırlıyor musun? Geçen derslerde dlt ile kendi başına veri alımı yaptın. Bir JSON dosyasından, GitHub API’sinden, hepsinden otomatik tablo oluşturan boru hatları kurdun. Çok iyiydin!

Ama ya bir robot yardımcın olsa? Söylesen: “GitHub’dan repolarımı çek, dlt ile tablo yap, Postgres’e yaz” — o kendisi yazsa? İşte 2026’nın trendi bu: AI asistanla birlikte kodlamak.

Araçlar: Cursor ve Windsurf

İkisi de yapay zekâ destekli kod editörü. Cursor’ı bilgisayarına kur, içine projeni aç. Sağ tarafta bir sohbet kutusu belirir. Oraya İngilizce yazarsın, editör sana kod önerir, hatta senin yerine dosya oluşturur.

Windsurf ise Cursor’ın kardeşi — benzer, biraz daha “agentic” (daha çok kendi başına adım atan).

Peki MCP ne?

MCP = Model Context Protocol. Yani “yapay zekâya ekstra yetenek takma standardı”. Bir düşün: AI asistanın gözleri var (dosyalarını görür), elleri var (kod yazar) — ama alet çantası sınırlı. İşte MCP ile ona yeni aletler verirsin.

dlt MCP server da tam olarak bu: Cursor’a bir eklenti. Taktığında, yapay zekâ artık şunu bilir:

  • Hangi dlt kaynakları (sources) var
  • pipeline.run() nasıl çağrılır
  • Hangi destination’lar (Postgres, DuckDB, BigQuery) hazır
  • Yaygın hatalar ve çözümleri

Kurulum (3 adım)

1) Cursor’ı aç → Settings → MCP sekmesi.

2) + Add new global MCP server butonuna tıkla. Açılan mcp.json dosyasına şunu yapıştır:

{
  "mcpServers": {
    "dlt": {
      "command": "uvx",
      "args": ["dlt", "mcp", "run"]
    }
  }
}

3) Kaydet, Cursor’ı yeniden başlat. Sağ panelde dlt yazan bir araç belirecek — artık hazırsın.

Prompt: ilk sihirli cümle

Asistan kutusuna şunu yaz (İngilizce daha iyi anlıyor):

GitHub API'sinden github.com/<kullanıcı-adın> reposunu çek,
dlt kullanarak Postgres'e yaz. Her repo için: name, stars,
language, created_at kolonları olsun.

Birkaç saniye bekle. Asistan:

  1. github_api_source.py diye bir dosya açar
  2. dlt pipeline tanımını yazar
  3. requirements.txt’e dlt[postgres] ekler
  4. Sana bir terminal komutu önerir

Sen de kopyala-yapıştır ile çalıştırırsın.

Asistanın yazdığı kodu İNCELE

Çok önemli kural: AI’ın her satırını okumadan kabul etme. Kontrol listesi:

  • Hangi API’ye istek atıyor? GitHub’ın gerçek endpoint’i mi?
  • Authentication (token) var mı? Repo gizliyse auth_token parametresi gerekli.
  • Rate limit düşünülmüş mü? 60 istek/saat sınırı var; dlt bunu otomatik halleder mi?
  • Hangi tablo şemasını oluşturuyor? Kolon isimleri snake_case mi?
  • Destination doğru mu? postgres yazdıysa, gerçekten Postgres ayarların ~/.dlt/secrets.toml içinde mi?

Bunları kendi gözünle doğrulamadan asla production’a alma.

Hands-on: sen dene!

  1. Cursor’a dlt MCP server’ı kur (yukarıdaki 3 adım).
  2. Asistana şu promptu ver: “JSONPlaceholder API’sinden /users endpoint’ini çek, DuckDB’ye yaz, sadece id, name, email kolonları olsun”.
  3. Asistanın oluşturduğu users_pipeline.py dosyasını oku.
  4. pip install dlt[duckdb] kurulumunu yap.
  5. python users_pipeline.py ile çalıştır.
  6. duckdb users.duckdb -c "SELECT * FROM users.users LIMIT 5" ile sonucu gör.

Çalıştı mı? Tebrikler, ilk agentic ingestion pipeline’ını kurdun!

Küçük ipucu

Eğer asistan yanlış kaynak önerirse, promptu düzelt, vazgeçme. Mesela: “REST API source yerine dlt.sources.rest_api kullan, bana baştan yaz” de. AI hata yapar; sen düzeltme mühendisisin.

Sıradaki

Bir dahaki derste Spark öğreneceğiz — milyonlarca satırı pizzacı ekibi gibi bölüştürüp paralel işleyen motor.

Sonraki ders: Spark nedir? Pizzacı ekibi analojisi →