name: accessing-notebooklm-mcp description: Operates NotebookLM through MCP tools to authenticate, create/list/rename/delete notebooks, add/sync/delete sources (URL, text, Drive), run research_start workflows, ask notebook_query questions, export source content, and generate studio artifacts (audio/video/infographic/slides/reports/flashcards/quizzes/tables/mind maps). Use when the user mentions NotebookLM, MCP, notebooks, sources, Drive docs, web research, “summarize my sources,” “ask the notebook,” or creating overviews/slides/reports/flashcards/quizzes.
Accessing NotebookLM via MCP
When to use this skill
- User mentions NotebookLM or MCP access (e.g., “use NotebookLM MCP,” “connect to NotebookLM,” “query my notebook”).
- User wants to create/list/manage notebooks (list, create, rename, delete).
- User wants to add sources (URL/YouTube, pasted text, Google Drive doc/slides/sheets/pdf).
- User wants web/Drive research to find new sources (notebooklm research workflow).
- User wants answers strictly from sources already in a notebook (notebook_query).
- User wants exports/summaries of sources (source_get_content / source_describe / notebook_describe).
- User wants studio outputs: audio/video overview, infographic, slide deck, report, flashcards, quiz, data table, mind map.
Workflow
Checklist
- Confirm authentication status (refresh tokens if needed).
- Identify the target notebook (existing by title/id, or create a new one).
- Choose the correct action lane:
- Notebook admin
- Source management (add/list/sync/delete)
- Ask notebook (query existing sources)
- Research (find new sources via web/Drive)
- Studio artifact generation (requires explicit approval)
- Destructive actions (requires explicit approval)
- Plan → Validate → Execute
- Summarize results + provide next-step options.
Plan → Validate → Execute (required pattern)
Plan
- Restate the user goal in one sentence.
- Pick the minimal set of MCP calls needed.
Validate
- Verify notebook_id exists (or create it).
- Verify sources exist / are imported before querying.
- For Drive sync: run
source_list_drivefirst. - For destructive/studio actions: obtain explicit user approval before calling with
confirm=True.
Execute
- Perform the MCP calls.
- Report the output IDs/URLs and what changed.
Instructions
1) Authentication & session recovery
Use this flow whenever calls fail due to auth or right after running CLI auth.
- Call
refresh_auth. - If unsuccessful:
- Prefer running the CLI in terminal:
notebooklm-mcp-auth(see scripts/). - Then call
refresh_authagain to pick up new tokens/cookies.
- Prefer running the CLI in terminal:
- If CLI auth fails and the user explicitly provides cookie headers, use
save_auth_tokensas a fallback.
Rules
- Do not proceed with notebook/source operations if auth is not valid.
- When unsure how to run a helper script, run it with
--help.
2) Notebook selection & management
Select a notebook
- If the user provides a
notebook_id, use it. - Else:
- Call
notebook_list(default max_results is fine). - Match by title (case-insensitive substring).
- If no clear match, create a notebook with
notebook_createusing a descriptive title.
- Call
Common operations
- List:
notebook_list(max_results=...) - Create:
notebook_create(title=...) - Details + sources:
notebook_get(notebook_id=...) - AI summary + suggested topics:
notebook_describe(notebook_id=...) - Rename:
notebook_rename(notebook_id=..., new_title=...)
Delete (irreversible)
- Only call
notebook_delete(notebook_id=..., confirm=True)after explicit user approval that includes “delete” intent. - Before deleting, fetch context with
notebook_getand summarize what will be removed.
3) Adding sources (URL, text, Drive)
Add a URL or YouTube transcript
- Use
notebook_add_url(notebook_id=..., url=...). - After adding, call
notebook_getto confirm the source appears.
Add pasted text
- Use
notebook_add_text(notebook_id=..., text=..., title=optional).
Add Google Drive documents
- Use
notebook_add_drive(notebook_id=..., document_id=..., title=..., doc_type=doc|slides|sheets|pdf). - Extract
document_idfrom the Drive URL (the long ID in/d/<ID>/or similar).
Validation tips
- After adding sources, call
notebook_getto obtain source IDs. - For quick export of indexed text, prefer
source_get_contentovernotebook_query.
4) Source inspection, export, and deletion
Describe (AI summary + keyword chips)
- Use
source_describe(source_id=...)to generate a short summary and keywords.
Export raw indexed content (fast)
- Use
source_get_content(source_id=...)to retrieve the original indexed text and metadata.
Delete a source (irreversible)
- Only call
source_delete(source_id=..., confirm=True)after explicit user approval. - Confirm the correct source by title/type via
notebook_getbefore deleting.
5) Asking questions about existing sources (NOT web search)
Use notebook_query only when the needed sources are already in the notebook.
Steps
- Ensure sources exist:
notebook_getand capture relevantsource_ids(or query all).
- Ask:
notebook_query(notebook_id=..., query=..., source_ids=[...optional...], conversation_id=...optional..., timeout=...optional...)
Follow-ups
- Reuse
conversation_idfor iterative questioning.
If responses time out
- Narrow to specific
source_ids. - Increase
timeoutif the environment allows.
6) Research workflow (find NEW sources via web or Drive)
Use this lane when the user wants discovery, “find sources,” “deep research,” “search web,” or “search Drive.”
Correct sequence
research_start(query=..., source=web|drive, mode=fast|deep, notebook_id=optional, title=optional)research_status(notebook_id=..., task_id=optional, poll_interval=30, max_wait=300, compact=True)- When status is completed:
research_import(notebook_id=..., task_id=..., source_indices=optional)
Heuristics
- Use
mode=fastfor quick results and iteration. - Use
mode=deepfor comprehensive web-only research. - After import, call
notebook_describeto generate a notebook-level summary and suggested topics.
7) Drive source freshness & sync
When the user asks to “sync Drive docs” or “update sources”:
- Call
source_list_drive(notebook_id=...). - Identify stale/out-of-date sources.
- Ask for explicit approval to sync.
- Call
source_sync_drive(source_ids=[...], confirm=True). - Confirm updates by re-running
source_list_driveornotebook_get.
8) Chat configuration (goal + length)
Use chat_configure to steer style:
goal=default|learning_guide|custom- If
goal=custom, providecustom_prompt(<= 10000 chars). response_length=default|longer|shorter
Pattern
- Configure once per notebook session unless the user changes requirements.
9) Studio artifact generation (requires explicit approval)
These calls require confirm=True only after the user explicitly approves generating the artifact.
Available artifacts
- Audio overview:
audio_overview_create(...) - Video overview:
video_overview_create(...) - Infographic:
infographic_create(...) - Slide deck:
slide_deck_create(...) - Report:
report_create(...)(use “Create Your Own” only with a custom prompt) - Flashcards:
flashcards_create(...) - Quiz:
quiz_create(...) - Data table:
data_table_create(...) - Mind map:
mind_map_create(...)
Execution pattern
- Validate sources exist (via
notebook_get), optionally limitsource_ids. - Obtain explicit user approval.
- Call the create function with
confirm=True. - Poll
studio_status(notebook_id=...)and return any URLs or artifact IDs.
Delete a studio artifact (irreversible)
- Only after explicit user approval:
studio_delete(notebook_id=..., artifact_id=..., confirm=True)
10) Minimal call templates (copy/paste patterns)
Auth refresh
refresh_auth()