The economical pattern is to drop a stack of documents in a notebook, have Gemini do the grounded analysis server-side, and pull back only cited answers — vault_batch turns an overnight run of a thousand questions into a JSON corpus you can re-read offline instead of re-spending quota. It leans on undocumented endpoints, so treat the RPC path as fast-but-unofficial; the browser fallback is what keeps it working when Google moves the DOM.
An unofficial server that automates Google NotebookLM (now Gemini Notebook): 37 tools over a library of notebooks, source management, grounded Q&A, Studio generation and multi-account auth. It runs on a dual transport — NotebookLM's internal batchexecute RPC API, with a Playwright browser as automatic fallback.
- notebook_ask puts a question to a notebook and gets a grounded answer — Gemini reads your sources and answers from them with citations, not from its own weights
- A managed library: library_discover auto-generates a notebook's metadata from its URL, library_add enters one manually, and library_list, library_get, library_search, library_select, library_update, library_remove and library_stats keep the set organised, with library_select setting the default an untargeted ask uses
- Notebooks created and destroyed in NotebookLM itself — notebook_create makes an empty one with no pre-existing URL, notebook_list scrapes the homepage for the real IDs and names, and notebook_delete removes them in bulk with a deleted/failed split
- source_add takes a file, URL, pasted text, YouTube video or Google Drive doc; source_delete removes one by id or name; content_list shows what a notebook holds; research_sources runs NotebookLM Fast Research and can import what it finds
- content_generate produces an audio overview, video, presentation, infographic, report or data table, and content_download exports each — audio as MP3, presentation to Google Slides, data table to Sheets
- generate_study_aid makes flashcards or a quiz, generate_mind_map builds and saves a mind map, and share_notebook and manage_labels handle the public link and source labels — all RPC-backed, no browser
- note_create, note_list, note_get, note_save_chat (saves the current conversation as a note) and note_to_source (turns a note into a queryable source) work the Studio panel
- vault_batch runs a list of questions against a notebook and writes each answer to disk twice — a {slug}.md with frontmatter and cited excerpts, and a {slug}.json against the nblm-answer-v1 schema — so a batch run becomes a corpus you can grep and re-read without re-querying
- auth_setup, auth_switch and auth_logout manage Google sign-in, with auth_switch built for rotating accounts when a daily quota is hit; server_health reports the auth state and active sessions, and session_list, session_close and session_reset manage conversations
Node.js 18 or newer, run over stdio from @roomi-fields/notebooklm-mcp. A Google account, signed in through auth_setup, which opens a browser for a manual login you have up to 10 minutes to complete; check server_health afterwards to confirm it saved. NotebookLM's own quotas apply — free accounts cap around 50 queries a day — and the project advises using a dedicated Google account for automation. It talks to undocumented endpoints, so they can change without notice.
One command — npx -y @roomi-fields/notebooklm-mcp@<pinned-version>
