This skill should be used when the user wants to query their Google NotebookLM notebooks for citation-backed, source-grounded answers, or manage notebooks, sources, and Studio content (audio, report, video, infographic, presentation, data table, flashcards, quiz, mind map). It drives the @roomi-fields/notebooklm-mcp engine — via the notebooklm MCP tools when they are available in the session, otherwise via its HTTP REST API — and covers Google login, citation formats, the daily-quota-aware batch/ingestion pattern, and source discovery.
npx skills add https://github.com/roomi-fields/notebooklm-mcp --skill notebooklm
NotebookLM answers questions only from the sources uploaded to a notebook,
with inline citations to the exact passages used — no open-web knowledge, so
answers are hallucination-resistant and fully traceable. This skill drives the
@roomi-fields/notebooklm-mcp engine to query notebooks, manage sources, and
generate Studio content, and encodes the patterns that make NotebookLM usable at
research scale (citation formats, the ~50-queries/day quota, batch-to-cache).
Two ways reach the same engine — pick per what the session already has:
notebook_ask / source_add /server_health (or mcp__notebooklm__*) are available in the session, call
them directly. This is the preferred path and needs no server.
scripts/nblm.sh, which talksto a running NotebookLM MCP server (default http://localhost:3000,
override with NOTEBOOKLM_SERVER_URL). If no server is reachable, ask the
user to start one (npm run start:http from a clone) or to install the MCP.
Both are backed by the same account and session, so the choice is purely about
which is already wired up.
NotebookLM needs a signed-in Google session (saved once, reused across runs).
Verify with nblm.sh health (or the server_health tool) — look for
authenticated: true. If not authenticated, run the interactive login **in a
terminal** (a visible Chrome window opens):
notebooklm-mcp-setup-auth # global install
# or: scripts/nblm.sh auth
Run the login in a terminal rather than through an in-client tool: interactive
Google login can take minutes and a stdio client's tool-call timeout may cut it
off.
Use scripts/nblm.sh for the REST path (or the equivalent MCP tool):
scripts/nblm.sh health # reachability + auth status
scripts/nblm.sh notebooks # list notebooks (id + name)
scripts/nblm.sh ask "<question>" <notebook_id> # citation-backed answer (JSON citations)
scripts/nblm.sh generate <notebook_id> report # audio|report|video|infographic|presentation|data_table|flashcards|quiz|mind_map
source_format: json, so the answer carriessource names + cited excerpts. For a human-facing answer, prefer expanded
(see references/rest-api.md to vary the format).
flashcards/quiz route to the study-aid endpoint andmind_map to the mind-map endpoint automatically.
For anything beyond a few questions, load references/research-workflows.md. Key
points:
(/re-auth) or, better, ingest once and retrieve offline.
question set through /batch-to-vault (writes markdown + nblm-answer-v1 JSON
sidecars with citations), then answer repeated questions from the cache
(e.g. with RTFM) — unlimited, offline.
session_id for independent questions (fastest);pass a stable one to continue a conversation.
references/rest-api.md — endpoint + body reference for the HTTP path.references/research-workflows.md — citation formats, quota strategy, thebatch/ingestion pattern, source discovery.
If neither the MCP tools nor a server are present, the engine is the npm package
(also a Claude Code plugin via the roomi-fields/claude-plugins marketplace).
Point the user there, then run the one-time login above.
Take roomi-fields/notebooklm from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.