cool-solution — dev.blog
Tecnologie

Repo del giorno: notebooklm-mcp-cli, NotebookLM da terminale e da agente AI

Google NotebookLM è ottimo per ragionare sui tuoi documenti, ma vive dentro una web-app: apri il browser, carichi le fonti, clicchi per generare l'audio. Il repo che segnaliamo oggi — notebooklm-mcp-cli, circa 5.100 stelle e sviluppo attivo — porta tutto questo in riga di comando e, soprattutto, dentro un server MCP. Da lì un agente come Claude Code, Cursor o Gemini CLI può creare un notebook, aggiungere una ricerca e sfornare un podcast con una frase in linguaggio naturale. È la differenza fra usare NotebookLM e programmarlo.

$ claude "refactor user.service to async/await" reading src/services/user.service.ts... proposing 12 edits across 3 files ✓ tests still pass (47 / 47) applying patch...AI PAIRsupervised

💡 Cos'è: NotebookLM diventa programmabile

notebooklm-mcp-cli è un pacchetto Python, pubblicato su PyPI, che espone Google NotebookLM in due forme: una CLI chiamata `nlm`, per script e uso interattivo da terminale, e un server MCP chiamato `notebooklm-mcp`, che collega NotebookLM agli assistenti AI. Un solo pacchetto, due punti d'accesso: lo installi una volta e ottieni entrambi.

Va detto subito, perché il progetto stesso lo dichiara senza giri di parole: sotto il cofano usa API interne e non ufficiali di NotebookLM, che richiedono l'estrazione dei cookie dal browser. Non c'è un'API pubblica di Google: è reverse-engineering onesto, pensato per uso personale e sperimentale. Un dettaglio da tenere presente prima di costruirci sopra qualcosa di critico, su cui torniamo più avanti.

Terminale · installazione e primi comandi
# installa CLI e server MCP (stesso pacchetto)
uv tool install notebooklm-mcp-cli

# oppure al volo, senza installare nulla
uvx --from notebooklm-mcp-cli nlm --help

# primo login: apre il browser ed estrae i cookie
nlm login

# crea un notebook e aggiungi una fonte
nlm notebook create 'Ricerca AI'
nlm source add <notebook> --url 'https://...'

Repo ufficiale · jacob-bd/notebooklm-mcp-cli

Un unico pacchetto ti dà il comando nlm e il server notebooklm-mcp.

🤖 CLI e server MCP: due porte sulla stessa macchina

La stessa funzione è raggiungibile in due modi, e la scelta dipende da come lavori. La CLI è perfetta per l'automazione deterministica: uno script che ogni lunedì crea un notebook, ci versa le fonti della settimana e genera un riassunto audio è dieci righe di bash. Ogni comando `nlm` ha un gemello come strumento MCP — `notebook_list`, `source_add`, `studio_create` — così non impari due modelli diversi.

Il server MCP, invece, è la porta per l'agente. Colleghi `notebooklm-mcp` a Claude Code o Cursor e da quel momento parli a NotebookLM in linguaggio naturale: «crea un notebook sulla sicurezza cloud, importa questi tre articoli e fammi un podcast in stile deep dive». L'agente traduce la richiesta nella sequenza di strumenti giusta, e — dettaglio non da poco — ogni query lanciata da CLI o MCP resta anche nella cronologia della web-app di NotebookLM.

Due modi di pilotare NotebookLM

CLI (nlm)

  • Ideale per script e automazioni ripetibili
  • Output prevedibile, integrabile in pipeline
  • Comandi espliciti: nlm notebook, nlm source, nlm studio
  • Perfetta in cron job e CI

Server MCP (notebooklm-mcp)

  • Ideale per l'uso conversazionale con un agente
  • Linguaggio naturale al posto dei flag
  • Quasi 40 strumenti esposti all'assistente
  • Da toggle-are quando non serve, per il context

Stesse capacità, due interfacce: automazione da un lato, conversazione dall'altro.

🎧 Cosa sa fare: dai notebook ai podcast

Il ventaglio di funzioni ricalca la web-app, ma reso automatizzabile. Sul fronte gestione puoi elencare e creare notebook, aggiungere fonti di ogni tipo — URL, video di YouTube, documenti di Google Drive, file locali, testo incollato — e interrogare il notebook con domande le cui risposte, con tanto di citazioni, tornano nel terminale o all'agente.

La parte più vistosa è la generazione di contenuti Studio. Con un comando (o una frase all'agente) NotebookLM produce un podcast audio in stile deep dive, un video esplicativo, uno short verticale, una mappa mentale, delle flashcard di studio, un'infografica, un documento di briefing o addirittura una presentazione a slide. È qui che il progetto passa da comodità a leva di produttività: la stessa ricerca diventa cinque formati diversi senza clic manuali. Ci sono anche ricerca web e su Drive, condivisione (link pubblico o inviti), sincronizzazione delle fonti e operazioni batch, cross-notebook e pipeline multi-step.

  • Fonti: URL, YouTube, Google Drive, file locali e testo, con sync di freschezza.
  • Studio: audio/podcast, video, short verticali, mappe mentali, flashcard, infografiche, briefing, slide.
  • Ricerca: deep research su web e Drive con import automatico delle fonti trovate.
  • Scala: batch, query cross-notebook e pipeline per flussi in più passaggi.
Terminale · generare contenuti Studio
nlm studio create <notebook> audio       # podcast / deep dive
nlm studio create <notebook> video       # video esplicativo
nlm studio create <notebook> mindmap     # mappa mentale
nlm studio create <notebook> flashcards  # flashcard di studio
nlm studio create <notebook> infographic # infografica
nlm studio create <notebook> slides      # presentazione

Guida CLI · comandi e opzioni

Sei formati dalla stessa ricerca; la sintassi esatta di ogni tipo è nella Guida CLI.

⚙️ Come si usa: login, setup e primo notebook

Il percorso di avvio è breve. Dopo l'installazione, `nlm login` apre un profilo di browser dedicato (Chrome, Arc, Brave, Edge, Chromium e altri), tu accedi a Google e i cookie vengono estratti in automatico; il login resta salvato per i refresh futuri. Puoi tenere più account Google affiancati con i profili (`nlm login --profile lavoro`), ognuno con la propria sessione isolata.

Da lì è tutto lineare: crei un notebook, aggiungi le fonti, lanci una generazione Studio e scarichi l'artefatto quando è pronto. Il valore vero arriva quando questo flusso non lo esegui tu, ma lo esegue un agente a partire da una richiesta in linguaggio naturale — ed è il passo successivo.

Dal login al podcast, in cinque passi
  1. 01
    nlm loginbrowser + estrazione cookie, una volta sola
  2. 02
    Crei il notebooknlm notebook create, o lo chiedi all'agente
  3. 03
    Aggiungi le fontiURL, YouTube, Drive, file o testo
  4. 04
    Generi il contenutoaudio, video, mappa o slide con un comando
  5. 05
    Scarichi l'artefattonlm download quando la generazione è pronta

Lo stesso flusso vale da terminale e, in linguaggio naturale, da un agente AI.

🔌 Come si aggancia all'agente AI

Qui il progetto è particolarmente curato. Il comando `nlm setup add <tool>` configura il server MCP nel tuo assistente senza editare a mano il JSON: sono supportati Claude Code, Claude Desktop, Cursor, Gemini CLI, GitHub Copilot, Windsurf, Cline e Antigravity. Per Claude Desktop c'è persino un'estensione `.mcpb` con installazione a un clic. Un `nlm setup add json` genera invece lo snippet per qualsiasi altro tool.

Oltre alla connessione, puoi installare una skill esperta (`nlm skill install`) che insegna all'agente a usare bene gli strumenti, e diagnosticare i problemi con `nlm doctor`. Un avvertimento onesto dalla documentazione: il server espone quasi 40 strumenti, che pesano sul context window; conviene disattivarlo quando non stai lavorando con NotebookLM. Su come si collega un server MCP a Claude Code e Codex abbiamo una guida dedicata, e il meccanismo è identico.

Terminale · collegare l'agente e installare la skill
# configura il server MCP nel tuo tool
nlm setup add claude-code
nlm setup add cursor
nlm setup add gemini
nlm setup add github-copilot

# skill esperta per guidare l'agente
nlm skill install claude-code

# diagnosi di installazione e autenticazione
nlm doctor

Guida MCP · tutti gli strumenti e la configurazione

Un comando per ogni tool: niente JSON da editare a mano.

⚠️ I limiti da conoscere prima di affidarci lavoro

Raccontiamola per intero, perché è il punto più importante. Poggiando su API interne non documentate, il tool può rompersi senza preavviso se Google cambia qualcosa: è dichiarato «usalo a tuo rischio, per scopi personali e sperimentali». I cookie durano qualche settimana e vanno rinnovati (c'è il refresh automatico via browser headless, ma non è infallibile), e il piano gratuito ha un tetto di circa 50 query al giorno.

È inoltre un progetto in beta (v0.8.4), nato dalla community: ottimo per prototipare, sperimentare e automatizzare cose tue, meno indicato per un processo di produzione mission-critical finché non lo validi sul tuo caso. La buona notizia è la trasparenza: tutti questi limiti sono scritti nero su bianco nel README, non nascosti.

La carta d'identità del repo
repo      jacob-bd/notebooklm-mcp-cli
stelle    ~5.100 · licenza MIT
versione  v0.8.4 (beta) · Python 3.11+
stack     Python · FastMCP · Typer · Rich
auth      cookie del browser (API interne)
limiti    free ~50 query/giorno · cookie da rinnovare

Release e changelog · GitHub

Fotografia a metà luglio 2026: progetto giovane, ma con trazione e manutenzione reali.

🧪 Un caso di vibe coding onesto

C'è un motivo in più per cui questo repo ci piace, e sta nel README: l'autore dichiara apertamente di non essere uno sviluppatore e di aver costruito il progetto con assistenti AI. Lo chiama «Vibe Coding Alert» e invita chi ha esperienza a contribuire invece di storcere il naso — refactoring, gestione degli errori, type hint, scelte architetturali. È il vibe coding raccontato senza mito: uno strumento reale e utile, con i suoi difetti dichiarati.

E funziona: circa 5.100 stelle, decine di contributor accreditati nel README (trasporto HTTP, autenticazione multi-browser, hardening di sicurezza, supporto WSL) e un ritmo di release fitto. È la dimostrazione concreta che si può partire da un'idea personale, tirarla su con l'AI e poi lasciarla crescere grazie alla revisione di chi ne sa di più. Per il nostro pubblico è esattamente la parabola che raccontiamo quando parliamo di passare dal vibe coding all'ingegneria agentica.

🏢 Perché è interessante per sviluppatori e PMI

Per chi sviluppa, notebooklm-mcp-cli è prima di tutto un pattern da studiare: un unico codebase Python che, con FastMCP e Typer, espone la stessa logica come CLI e come server MCP. È il modo pulito di impacchettare uno strumento perché sia usabile sia da uno script sia da un agente — replicabile su qualunque servizio interno tu voglia rendere pilotabile in linguaggio naturale.

Per una PMI il valore è nel flusso: molte attività di conoscenza sono «raccogli fonti → sintetizza → produci un formato condivisibile». Qui quel flusso si automatizza. Una cartella di documenti su un fornitore diventa un briefing audio che il team ascolta in auto; una ricerca di mercato diventa una mappa mentale e delle slide, generate dall'agente mentre tu fai altro. Non è NotebookLM in più: è NotebookLM dentro il modo di lavorare, senza il collo di bottiglia dei clic manuali.

🗺️ Da dove partire

Il percorso a basso rischio è questo: installa il pacchetto con `uvx` (così non sporchi il sistema), lancia `nlm login`, crea un notebook di prova e aggiungi due o tre fonti reali ma non critiche. Genera un'anteprima audio e ascoltala: in cinque minuti capisci se la qualità ti serve. Solo dopo collega il server MCP a Claude Code e rifai lo stesso lavoro chiedendolo all'agente — è lì che misuri il tempo risparmiato.

Tieni presente i paletti: cookie da rinnovare, tetto di query sul piano gratuito, natura sperimentale. Ma anche solo leggere come il progetto tiene insieme CLI, server MCP e skill da un unico codebase è, di per sé, una piccola lezione di architettura agentica. Studiarlo vale quanto usarlo.

Domande frequenti su NotebookLM MCP

Che cos'è notebooklm-mcp-cli?

È un pacchetto Python open source (licenza MIT) che dà accesso programmatico a Google NotebookLM. Include una CLI chiamata nlm, per uso da terminale e script, e un server MCP chiamato notebooklm-mcp che collega NotebookLM ad agenti AI come Claude Code, Cursor o Gemini CLI. Con un comando o una frase in linguaggio naturale puoi creare notebook, aggiungere fonti e generare podcast, video, mappe mentali e altro.

Serve un account NotebookLM a pagamento?

No: funziona con gli account NotebookLM free e Pro, ed è stato testato anche su Google AI Ultra. Il piano gratuito ha però un limite di circa 50 query al giorno. L'autenticazione avviene estraendo i cookie dal tuo browser con nlm login, non tramite un'API ufficiale di Google.

Perché usa API non ufficiali ed è un problema?

Google non offre un'API pubblica per NotebookLM, quindi il progetto usa le API interne del prodotto, che possono cambiare senza preavviso e far smettere di funzionare qualche comando. Per questo è pensato per uso personale e sperimentale: ottimo per automatizzare cose tue, da validare con attenzione prima di affidarci un processo di produzione critico.

Come si collega a Claude Code o Cursor?

Con il comando nlm setup add seguito dal nome del tool (claude-code, cursor, gemini, github-copilot e altri): configura il server MCP senza editare il JSON a mano. Per Claude Desktop c'è anche un'estensione .mcpb con installazione a un clic. Attenzione al context window: il server espone quasi 40 strumenti, conviene disattivarlo quando non usi NotebookLM.

Parliamone

Se questo tema ti riguarda, scrivimi: confrontarsi su codice e AI è sempre tempo speso bene.

Altri articoli del blog

tips-claude-resume-luglio-2026.md10 luglio 2026claude-code-hooks-quality-gate-2026.md9 luglio 2026orchestrazione-agenti-ai-multi-agent-dotnet-2026.md8 luglio 2026