What it removes is the tab-switching: the material stays in NotebookLM, the agent questions it directly, and new URLs or pasted text go back in during the same session — so the notebook grows while you work rather than afterwards.
A server that drives NotebookLM through a signed-in Chrome profile on your machine. Notebooks you already own are registered locally by share link and then addressed by name; each exchange is a session that keeps its thread across calls.
- Questions put to a notebook and answered from its own sources, in a session that holds the conversation
- A local library of notebooks with names, descriptions, topics and tags, searchable by free text, with one selected as the current default
- Sources added to a notebook: a URL for NotebookLM to crawl, or raw text pasted in as a document
- Audio Overview generation started, polled for status, and downloaded to disk
- Sessions listed, reset to clear the thread while keeping the tab, or closed outright
- First-time Google sign-in in a visible browser window, re-authentication onto a different account, and a health call that says whether the saved cookies still work
- Stored data cleared out when you want the profile and library gone
Node, run over stdio from npm as notebooklm-mcp, plus Chrome — it drives a real browser, headless by default, and the persistent profile with its cookies lives under the platform data directory. A Google account signed in through the setup call, and a share link for each notebook you want to reach: the library holds metadata only, so the notebook has to exist at notebooklm.google first. There is no config file; everything is environment variables, CLI flags or per-call parameters, in that order of precedence. The defaults worth knowing are a ceiling of 10 concurrent sessions, an idle session collected after 900 seconds, a 30 second per-action browser timeout, and a wait of up to 600000 ms for an answer. Sign-in is interactive unless you deliberately opt into scripted login with your Google credentials in the environment.
One command — npx notebooklm-mcp@latest
