# Zotero Notebooklm

> Zotero koleksiyonları ile Google NotebookLM defterleri arasında iki yönlü senkronizasyon sağlar. Koleksiyondan defter oluşturur, makaleleri ve anotasyonları kaynak olarak yükler, podcast/slayt/video/infografik/literatür haritası üretir, deep research ile bulduğu yeni kaynakları Zotero'ya geri ekler. Kullanıcı bir Zotero koleksiyonundan NotebookLM defteri, podcast, sunum ya da literatür haritası ü…

- **Type:** Skill
- **Install:** `agentstack add skill-orhoncan-zotero-notebooklm-skill-zotero-notebooklm-skill`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [orhoncan](https://agentstack.voostack.com/s/orhoncan)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [orhoncan](https://github.com/orhoncan)
- **Source:** https://github.com/orhoncan/zotero-notebooklm-skill

## Install

```sh
agentstack add skill-orhoncan-zotero-notebooklm-skill-zotero-notebooklm-skill
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

Zotero koleksiyonlarını NotebookLM defterlerine senkronize ediyorsun. Kaynakları yükle, çıktılar üret, isteğe bağlı olarak deep research ile genişlet.

## Setup

**Bu adımları ilk mesajda paralel olarak yap:**

1. **Zotero MCP kontrolü:** `ToolSearch` ile `"zotero add_by_doi"` ara. `mcp__zotero-mcp__zotero_add_by_doi` bulunamazsa: "`54yyyu/zotero-mcp` (`zotero-mcp-server`) gerekli. Kurulum: `uv tool install zotero-mcp-server`" yaz ve dur.

2. **NotebookLM MCP kontrolü:** `ToolSearch` ile `"notebooklm notebook_create"` ara. `mcp__notebooklm-mcp__notebook_create` bulunamazsa: "`jacob-bd/notebooklm-mcp-cli` gerekli. Kurulum: `uv tool install notebooklm-mcp-cli`" yaz ve dur.

3. **Auth kontrolü:** `mcp__notebooklm-mcp__server_info` çağır. Auth hatası gelirse kullanıcıyı `! nlm login` çalıştırmaya yönlendir.

Her iki MCP de hazırsa devam et.

**Mod tespiti:** Kullanıcı koleksiyon adı verdiyse hızlı mod, vermediyse interaktif mod.

**Dil / Language:** Kullanıcı hangi dilde yazıyorsa tüm yanıtları, ilerleme mesajlarını ve raporu o dilde ver. Komutlar hem Türkçe hem İngilizce biçimde kabul edilir (ör. `genişlet` = `expand`, `seç` = `select`, `özet` = `summary`); aşağıdaki tablolarda her komutun iki biçimi de listelidir. Whatever language the user writes in, respond, report, and accept commands in that same language.

---

## Adım 1 - Koleksiyon Seçimi

### Hızlı mod (koleksiyon adı verildi)
- `mcp__zotero-mcp__zotero_search_collections` ile verilen adı ara.
- Bulunamazsa `mcp__zotero-mcp__zotero_get_collections` ile tüm koleksiyonları listele, kullanıcıya göster.

### İnteraktif mod (koleksiyon adı verilmedi)
- `mcp__zotero-mcp__zotero_get_collections` ile koleksiyonları listele.
- Kullanıcıdan numara veya isimle seçim iste.

### Koleksiyon seçildikten sonra
- `mcp__zotero-mcp__zotero_get_collection_items` ile makaleleri getir.
- Eğer >15 makale varsa uyar: "Bu koleksiyonda {N} makale var. NotebookLM'de optimum 10-15 kaynak. Hepsini yükleyelim mi, yoksa alt seçim yapmak ister misin?"

---

## Adım 2 - Defter Oluşturma

- `mcp__notebooklm-mcp__notebook_list` ile mevcut defterleri kontrol et.
- Aynı isimde defter varsa sor: "'{name}' adında bir defter zaten var. Mevcut deftere ekle mi, yenisini oluştur mu?"
- Yeni defter: `mcp__notebooklm-mcp__notebook_create(title="{koleksiyon_adı}")`
- Dönen notebook_id'yi kaydet - sonraki adımlarda kullanılacak.

---

## Adım 3 - Kaynak Yükleme

**Önce mevcut kaynakları kontrol et (tekrar-çalıştırma güvenliği):**
`mcp__notebooklm-mcp__notebook_get(notebook_id="{nb_id}")` ile defterdeki mevcut kaynakların başlıklarını al. Aynı koleksiyonu ikinci kez çalıştırmak duplicate kaynak yaratır; başlığı zaten defterde olan makaleleri **atla** ve raporda "zaten yüklü" diye not et. Anotasyon/Readwise kaynakları için de aynı başlık eşleştirmesini uygula.

Her (yüklenmemiş) makale için sırayla:

1. **PDF'i tercih et - tam metni context'ten geçirme.**
   `mcp__zotero-mcp__zotero_get_item_children(item_key="{makale_key}")` ile ekleri al. Yerel yolu olan bir PDF eki varsa, dosyayı doğrudan yükle:
   `mcp__notebooklm-mcp__source_add(notebook_id="{nb_id}", source_type="file", file_path="{pdf_yolu}", title="{makale_başlığı}")`
   Neden: PDF'i dosya olarak yüklemek tam metni Claude'un context'ine çekmediği için çok daha az token harcar ve makalenin yapısını (şekiller, atıflar, başlıklar) korur; NotebookLM PDF'i native işler.

2. **Yalnızca PDF eki yoksa** fallback olarak tam metni kullan:
   `mcp__zotero-mcp__zotero_get_item_fulltext` ile metni al, sonra
   `mcp__notebooklm-mcp__source_add(notebook_id="{nb_id}", source_type="text", text="{fulltext}", title="{makale_başlığı}")`

3. `mcp__zotero-mcp__zotero_get_annotations` ile anotasyonları kontrol et. Varsa:
   - Anotasyonları derle ve ayrı bir metin kaynağı olarak ekle:
   `mcp__notebooklm-mcp__source_add(notebook_id="{nb_id}", source_type="text", text="{derlenmiş_anotasyonlar}", title="Araştırmacı Notları: {makale_adı}")`

**İlerleme:** Her yükleme sonrası "{loaded}/{total} kaynak yüklendi..." yaz.

**Hata yönetimi:**
- Yüklenemeyen makaleleri atla, raporda not et.
- NotebookLM kaynak limiti (50) dolunca uyar ve `mcp__notebooklm-mcp__notebook_create` ile ikinci bir defter oluştur.

---

## Adım 4 - Readwise Entegrasyonu (opsiyonel)

**Yalnızca kullanıcı açıkça istediğinde tetiklenir** ("Readwise highlight'larımı da ekle" veya `readwise` komutu).

1. `ToolSearch` ile readwise araçlarını kontrol et. Yoksa "Readwise MCP mevcut değil, bu adım atlanıyor." de ve geç.
2. Her makale başlığı için `mcp__readwise__readwise_search_highlights` ile eşleşen highlight'ları ara.
3. Eşleşen highlight'ları makale bazında grupla, tek bir metin kaynağı olarak deftere ekle:
   `mcp__notebooklm-mcp__source_add(notebook_id="{nb_id}", source_type="text", text="{derlenmiş_highlights}", title="Readwise Highlight'ları")`
4. Eşleşme yoksa: "Readwise'da eşleşen highlight bulunamadı."

---

## Adım 5 - Çıktı Seçimi (interaktif modda)

Hızlı modda bu adımı atla.

Kullanıcıya seçenekleri sun (birden fazla seçilebilir):

| Komut / Command | Çıktı | MCP Aracı |
|-----------------|-------|-----------|
| `podcast` | Audio Overview | `mcp__notebooklm-mcp__studio_create(notebook_id, artifact_type="audio")` |
| `slayt` / `slides` | Slayt sunumu | `mcp__notebooklm-mcp__studio_create(notebook_id, artifact_type="slides")` |
| `video` | Video | `mcp__notebooklm-mcp__studio_create(notebook_id, artifact_type="video")` |
| `infografik` / `infographic` | İnfografik | `mcp__notebooklm-mcp__studio_create(notebook_id, artifact_type="infographic")` |
| `harita` / `map` | Literatür haritası | `mcp__notebooklm-mcp__notebook_query` ile metin sorgusu |
| `özet` / `summary` | Karşılaştırmalı özet | `mcp__notebooklm-mcp__notebook_query` ile metin sorgusu |
| `sorgu` / `query` | Serbest soru | `mcp__notebooklm-mcp__notebook_query` |
| `yok` / `none` | Çıktı yok, defter hazır | - |

### podcast / slayt / video / infografik
- **Önce onay al.** Bu üretimler pahalı ve geri alınamaz (NotebookLM'de kota harcar); `confirm=true` vermeden önce kullanıcıya "{tip} oluşturulsun mu?" diye sor. Kullanıcı zaten açıkça istediyse (ör. baştan "podcast üret" dediyse) tekrar sorma.
- Onay sonrası `mcp__notebooklm-mcp__studio_create(notebook_id="{nb_id}", artifact_type="{tip}", confirm=true)` ile oluştur.
- `mcp__notebooklm-mcp__studio_status(notebook_id="{nb_id}")` ile durumu kontrol et.
- Hazır olunca `mcp__notebooklm-mcp__download_artifact(notebook_id="{nb_id}", artifact_type="{tip}")` ile indir.
- Uzun sürerse: "Oluşturuluyor, 3-5 dk sürebilir. Kontrol edeyim mi?"

### harita
`mcp__notebooklm-mcp__notebook_query(notebook_id="{nb_id}", question="Bu defterdeki tüm kaynaklar arasındaki tematik bağlantıları, metodolojik yaklaşımları ve temel argümanları haritalandır. Hangi makale hangi makaleyle ne konuda örtüşüyor, nerede ayrışıyor?")` ile sor.

### özet
`mcp__notebooklm-mcp__notebook_query(notebook_id="{nb_id}", question="Bu defterdeki her kaynağın temel argümanını, metodolojisini ve bulgularını 2-3 cümleyle özetle. Sonra kaynaklar arasındaki ortak temalar ve çelişkileri belirt.")` ile sor.

### sorgu
Kullanıcının sorusunu doğrudan `mcp__notebooklm-mcp__notebook_query(notebook_id="{nb_id}", question="{kullanıcı_sorusu}")` ile gönder. Conversation ID döndüyse takip sorularında kullan.

---

## Adım 6 - Deep Research ile Genişletme (opsiyonel)

**Tetikleyici:** Kullanıcı "genişlet" / "expand" veya "ilgili kaynak bul" / "find related sources" dediğinde.

1. **Boşluk analizi:**
   `mcp__notebooklm-mcp__notebook_query(notebook_id="{nb_id}", question="Bu defterdeki kaynaklarda ele alınmayan ama konuyla doğrudan ilişkili hangi perspektifler, metodolojiler veya alt konular eksik?")`

2. **Deep research başlat:**
   `mcp__notebooklm-mcp__research_start(notebook_id="{nb_id}", query="{boşluk_analizinden_türetilen_sorgu}", mode="fast")`
   - Deep mod gerekiyorsa: `mode="deep"` (~5 dk, web araması)

3. **Durumu kontrol et:**
   `mcp__notebooklm-mcp__research_status(notebook_id="{nb_id}")`

4. **Bulunan kaynakları sun:** Numaralı liste halinde göster. Kullanıcı seçtikten sonra:
   `mcp__notebooklm-mcp__research_import(notebook_id="{nb_id}", task_id="{task_id}", indices="{seçilen}")`

5. **Zotero'ya da ekle (iki yönlü senkronizasyon):**
   - Her kaynak için `mcp__zotero-mcp__zotero_search_items` ile Zotero'da var mı kontrol et.
   - Yoksa:
     - DOI varsa: `mcp__zotero-mcp__zotero_add_by_doi(doi="{doi}")`
     - URL varsa: `mcp__zotero-mcp__zotero_add_by_url(url="{url}")`
   - Koleksiyona ata: `mcp__zotero-mcp__zotero_manage_collections(item_id="{id}", collection_id="{col_id}", action="add")`

6. **Zaman aşımı:** 5 dakikayı geçerse sor: "Deep research devam ediyor. 3 dk sonra tekrar kontrol edeyim mi?"

---

## Adım 7 - Rapor

Pipeline tamamlandığında aşağıdaki formatı göster:

```
Zotero  NotebookLM Raporu
Koleksiyon: {koleksiyon_adı}
Defter: {defter_adı} (ID: {nb_id})
Yüklenen kaynaklar: {N}/{total}
  - PDF (dosya) olarak: {n_pdf}
  - Metin olarak (fallback): {n_text}
  - Anotasyon kaynağı: {n_annot}
  - Zaten yüklüydü, atlandı: {n_skip}
Readwise: {eklendi / kullanılmadı}
Oluşturulan çıktılar: {liste}
Deep Research - yeni kaynaklar: {N} {liste}
Atlanan/hata: {liste veya "Yok"}
```

---

## İnteraktif Komutlar

Pipeline sırasında veya sonrasında kullanıcı bu komutları verebilir:

| Komut / Command | İşlev |
|-----------------|-------|
| `listele` / `list` | Zotero koleksiyonlarını göster |
| `seç N` / `select N` | N numaralı koleksiyonu seç |
| `hepsini yükle` / `upload all` | Tüm makaleleri onay sormadan yükle |
| `podcast` | Audio Overview oluştur |
| `slayt` / `slides` | Slayt sunumu oluştur |
| `video` | Video oluştur |
| `infografik` / `infographic` | İnfografik oluştur |
| `harita` / `map` | Literatür haritası |
| `özet` / `summary` | Karşılaştırmalı özet |
| `sorgu "..."` / `query "..."` | Deftere soru sor |
| `genişlet` / `expand` | Deep research ile yeni kaynak bul |
| `readwise` | Readwise highlight'larını dahil et |
| `durum` / `status` | Çıktıların oluşturma durumunu kontrol et (`studio_status`) |
| `indir` / `download` | Hazır çıktıları indir (`download_artifact`) |
| `dur` / `stop` | Mevcut adımı durdur |
| `atla` / `skip` | Mevcut adımı geç |
| `rapor` / `report` | Şu ana kadar yapılanların özetini ver |

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [orhoncan](https://github.com/orhoncan)
- **Source:** [orhoncan/zotero-notebooklm-skill](https://github.com/orhoncan/zotero-notebooklm-skill)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-orhoncan-zotero-notebooklm-skill-zotero-notebooklm-skill
- Seller: https://agentstack.voostack.com/s/orhoncan
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
