NotebookLM MCP
NPM · @ROOMI-FIELDS/NOTEBOOKLM-MCP · SCANNED AUG 7
Automate Google NotebookLM — Q&A with citations, audio, video, content generation
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security88
- No malware found by supply-chain analysis.Pass
- Known CVEs were checked across the 158 of 160 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Dependency health was assessed across the 158 of 160 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability56
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (poor).Fail
- Context-footprint check failed: tool/resource definitions use about 6555 tokens (~172/item across 38 items; 37 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability check failed: the tool surface changed between 1.5.9 and 3.0.1: 27 tool removals, 0 breaking changes, 37 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @roomi-fields/notebooklm-mcp
claude mcp add roomi-fields-notebooklm-mcp -- npx -y @roomi-fields/notebooklm-mcp
codex mcp add roomi-fields-notebooklm-mcp -- npx -y @roomi-fields/notebooklm-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"roomi-fields-notebooklm-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@roomi-fields/notebooklm-mcp"
],
"enabled": true
}
}
} openclaw mcp add roomi-fields-notebooklm-mcp --command npx --arg -y --arg @roomi-fields/notebooklm-mcp
mcp_servers:
roomi-fields-notebooklm-mcp:
command: "npx"
args: ["-y", "@roomi-fields/notebooklm-mcp"] {
"mcpServers": {
"roomi-fields-notebooklm-mcp": {
"command": "npx",
"args": [
"-y",
"@roomi-fields/notebooklm-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 6 Aug 26 +27
- Stability: unverified → fail ▼ security
- Schema quality: 4916 → 6555 ▼ functional
- Schema quality: 4916 → 6483 ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → 100 ▲ functional
- First check of Tool coverage: 100 functional
- Package version: 3.0.0 → 3.0.1 functional
- Package version: 1.5.9 → 3.0.1 functional
- 5 Aug 26 −31
- Stability: 0.27 → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Package version: 1.5.9 → 3.0.0 functional
- 4 Aug 26 +4
- Stability: unverified → 0.27 ▲ functional
- 2 Aug 26 +37
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → poor ▲ functional
- Licence: MIT functional
- 31 Jul 26 +16
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −42
- Malware scan: pass → unverified ▼ security
- Schema quality: 100 → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- 27 Jul 26 51
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 7 Aug 2026 · Analysed npm/@roomi-fields/[email protected]
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Dependencies 158 packages
| Packages resolved | 158 |
|---|---|
| Deprecated | 151 |
| Stale | 53 |
| Tree resolution | Partial |
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
auth_logout ~126
De-authenticate (logout) - Clears all authentication data for security. Use this when: - User wants to log out for security reasons - Removing credentials before shutting down - Clearing auth without immediately re-authenticating This will: 1. Close all active browser sessions 2. Delete all saved authentication data (cookies, Chrome profile) 3. Preserve notebook library and other data IMPORTANT: After de_auth, the server will need re-authentication via setup_auth or re_auth before making queries. Use 'get_health' to verify de-authentication was successful (authenticated: false).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
auth_setup ~267
Google authentication for NotebookLM access - opens a browser window for manual login to your Google account. Returns immediately after opening the browser. You have up to 10 minutes to complete the login. Use 'get_health' tool afterwards to verify authentication was saved successfully. Use this for first-time authentication or when auto-login credentials are not available. IMPORTANT: If already authenticated, this tool will skip re-authentication. For switching accounts or rate-limit workarounds, use 're_auth' tool instead. TROUBLESHOOTING for persistent auth issues: If setup_auth fails or you encounter browser/session issues: 1. Ask user to close ALL Chrome/Chromium instances 2. Run cleanup_data(confirm=true, preserve_library=true) to clean old data 3. Run setup_auth again for fresh start This helps resolve conflicts from old browser sessions and installation data.
| Name | Type | Req | Description |
|---|---|---|---|
| browser_options | object | – | Optional browser settings. Control visibility, timeouts, and stealth behavior. |
| headless | boolean | – | Alias/inverse of show_browser: headless=false opens a visible window, headless=true runs hidden. Ignored if show_browser is set. |
| show_browser | boolean | – | Show browser window (simple version). Default: true for setup. For advanced control, use browser_options instead. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
auth_switch ~280
Switch to a different Google account or re-authenticate. Use this when: - NotebookLM rate limit is reached (50 queries/day for free accounts) - You want to switch to a different Google account - Authentication is broken and needs a fresh start This will: 1. Close all active browser sessions 2. Delete all saved authentication data (cookies, Chrome profile) 3. Open browser for fresh Google login After completion, use 'get_health' to verify authentication. TROUBLESHOOTING for persistent auth issues: If re_auth fails repeatedly: 1. Ask user to close ALL Chrome/Chromium instances 2. Run cleanup_data(confirm=false, preserve_library=true) to preview old files 3. Run cleanup_data(confirm=true, preserve_library=true) to clean everything except library 4. Run re_auth again for completely fresh start This removes old installation data and browser sessions that can cause conflicts.
| Name | Type | Req | Description |
|---|---|---|---|
| browser_options | object | – | Optional browser settings. Control visibility, timeouts, and stealth behavior. |
| headless | boolean | – | Alias/inverse of show_browser: headless=false opens a visible window, headless=true runs hidden. Ignored if show_browser is set. |
| show_browser | boolean | – | Show browser window (simple version). Default: true for re-auth. For advanced control, use browser_options instead. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
content_download ~159
Download or export generated content from NotebookLM. Supported content types: - audio_overview: Downloads as audio file (MP3) - video: Downloads as video file - infographic: Downloads as image file - presentation: Exports to Google Slides (returns URL) - data_table: Exports to Google Sheets (returns URL) Note: Report content is text-based and returned in the generation response.
| Name | Type | Req | Description |
|---|---|---|---|
| content_type | string | yes | Type of content to download/export |
| notebook_url | string | – | Notebook URL. If not provided, uses the active notebook. |
| output_path | string | – | Optional local path to save the file (for audio, video, infographic) |
| session_id | string | – | Session ID to reuse an existing session |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
content_generate ~428
Generate content from your NotebookLM sources. Supported content types: - audio_overview: Audio podcast/overview (Deep Dive conversation with two AI hosts) - video: Video summary that visually explains main topics (brief or explainer format) - presentation: Slides/presentation with AI-generated content and images - report: Briefing document (2,000-3,000 words) summarizing key findings, exportable as PDF/DOCX - infographic: Visual infographic in horizontal (16:9) or vertical (9:16) format - data_table: Structured table organizing key information (exportable as CSV/Excel) Language support: All content types support 80+ languages via the language parameter. Video styles: Video content supports 6 visual styles via the video_style parameter: classroom, documentary, animated, corporate, cinematic, minimalist. These content types use real NotebookLM Studio UI buttons or the generic ContentGenerator architecture that navigates the Studio panel and falls back to chat-based generation. NOTE: Other content types (faq, study_guide, timeline, table_of_contents) are NOT currently implemented. For document-style content, use the ask_question tool.
| Name | Type | Req | Description |
|---|---|---|---|
| content_type | string | yes | Type of content to generate: audio_overview (podcast), video (brief or explainer), presentation (slides), report (briefing doc 2,000-3,000 words, PDF/DOCX export), infographic (horizontal 16:9 or ver… |
| custom_instructions | string | – | Optional instructions to customize the generated content |
| language | string | – | Language for the generated content (e.g., "French", "Spanish", "Japanese"). NotebookLM supports 80+ languages. |
| notebook_url | string | – | Notebook URL. If not provided, uses the active notebook. |
| session_id | string | – | Session ID to reuse an existing session |
| video_style | string | – | Visual style for video content (only valid for content_type="video"). Powered by Nano Banana AI. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
content_list ~75
List all sources and generated content in the current notebook. Returns: - Sources: Documents, URLs, and other uploaded materials - Generated content: Audio overviews
| Name | Type | Req | Description |
|---|---|---|---|
| notebook_url | string | – | Notebook URL. If not provided, uses the active notebook. |
| session_id | string | – | Session ID to reuse an existing session |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
generate_mind_map ~80
Generate and save a mind map from a notebook’s sources. RPC-backed (no browser). Returns the saved mind-map id and its JSON structure.
| Name | Type | Req | Description |
|---|---|---|---|
| notebook_id | string | – | Notebook UUID (alternative to notebook_url). |
| notebook_url | string | – | NotebookLM notebook URL. |
| title | string | – | Optional title for the saved mind map. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
generate_study_aid ~91
Generate a study aid from a notebook’s sources: flashcards or a quiz. RPC-backed (no browser). Returns when generation completes.
| Name | Type | Req | Description |
|---|---|---|---|
| focus | string | – | Optional focus prompt to steer the content. |
| kind | string | yes | Which study aid to generate. |
| notebook_id | string | – | Notebook UUID (alternative to notebook_url). |
| notebook_url | string | – | NotebookLM notebook URL. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
library_add ~567
📝 MANUAL ENTRY — Add notebook with manually specified metadata (use auto_discover_notebook instead) ## When to Use - Auto-discovery failed or unavailable - User has specific metadata requirements - User prefers manual control ## Conversation Workflow (Mandatory) When the user says: "I have a NotebookLM with X" **FIRST:** Try auto_discover_notebook for faster setup **ONLY IF** user refuses auto-discovery or it fails: 1) Ask URL: "What is the NotebookLM URL?" 2) Ask content: "What knowledge is inside?" (1–2 sentences) 3) Ask topics: "Which topics does it cover?" (3–5) 4) Ask use cases: "When should we consult it?" 5) Propose metadata and confirm: - Name: [suggested] - Description: [from user] - Topics: [list] - Use cases: [list] "Add it to your library now?" 6) Only after explicit "Yes" → call this tool ## Rules - Do not add without user permission - Prefer auto_discover_notebook when possible - Do not guess metadata — ask concisely - Confirm summary before calling the tool ## Example User: "I have a notebook with n8n docs" You: "Want me to auto-generate the metadata?" (offer auto_discover_notebook first) User: "No, I'll specify it myself" You: Ask URL → content → topics → use cases; propose summary User: "Yes" You: Call add_notebook ## How to Get a NotebookLM Share Link Visit https://notebooklm.google/ → Login (free: 100 notebooks, 50 sources each, 500k words, 50 daily queries) 1) Click "+ New" (top right) → Upload sources (docs, knowledge) 2) Click "Share" (top right) → Select "Anyone with the link" 3) Click "Copy link" (bottom left) → Give this link to Claude (Upgraded: Google AI Pro/Ultra gives 5x higher limits)
| Name | Type | Req | Description |
|---|---|---|---|
| content_types | array | – | Types of content (e.g., ['documentation', 'examples', 'best practices']) |
| description | string | yes | What knowledge/content is in this notebook |
| name | string | yes | Display name for the notebook (e.g., 'n8n Documentation') |
| tags | array | – | Optional tags for organization |
| topics | array | yes | Topics covered in this notebook |
| url | string | yes | The NotebookLM notebook URL |
| use_cases | array | – | When should Claude use this notebook (e.g., ['Implementing n8n workflows']) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
library_discover ~374
🚀 AUTO-DISCOVERY — Automatically generate notebook metadata via NotebookLM (RECOMMENDED) ## When to Use - User provides NotebookLM URL and wants quick/automatic setup - User prefers not to manually specify metadata - Default choice for adding notebooks ## Workflow 1) User provides NotebookLM URL 2) Ask confirmation: "Add '[URL]' with auto-generated metadata?" 3) Call this tool → NotebookLM generates name, description, tags 4) Show generated metadata to user for review ## Benefits - ✅ 30 seconds vs 5 minutes manual entry - ✅ Zero-friction notebook addition - ✅ Consistent metadata quality - ✅ Discovers topics user might not think of ## Example User: "Add this NotebookLM: https://notebooklm.google.com/notebook/abc123" You: "Add this notebook with auto-generated metadata?" User: "Yes" You: Call auto_discover_notebook(url="https://...") → Returns: {name: "n8n-workflow-guide", description: "...", tags: [...]} ## Fallback If auto-discovery fails (rare), use add_notebook tool for manual entry. ## How to Get a NotebookLM Share Link Visit https://notebooklm.google/ → Login (free: 100 notebooks, 50 sources each, 500k words, 50 daily queries) 1) Click "+ New" (top right) → Upload sources (docs, knowledge) 2) Click "Share" (top right) → Select "Anyone with the link" 3) Click "Copy link" (bottom left) → Give this link to Claude (Upgraded: Google AI Pro/Ultra gives 5x higher limits)
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | The NotebookLM notebook URL |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
library_get ~28
Get detailed information about a specific notebook by ID
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The notebook ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
library_list ~40
List all library notebooks with metadata (name, topics, use cases, URL). Use this to present options, then ask which notebook to use for the task.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
library_remove ~134
Dangerous — requires explicit user confirmation. ## Confirmation Workflow 1) User requests removal ("Remove the React notebook") 2) Look up full name to confirm 3) Ask: "Remove '[notebook_name]' from your library? (Does not delete the actual NotebookLM notebook)" 4) Only on explicit "Yes" → call remove_notebook Never remove without permission or based on assumptions. Example: User: "Delete the old React notebook" You: "Remove 'React Best Practices' from your library?" User: "Yes" → call remove_notebook
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The notebook ID to remove |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
library_search ~45
Search library by query (name, description, topics, tags). Use to propose relevant notebooks for the task and then ask which to use.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search query |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
library_select ~149
Set a notebook as the active default (used when ask_question has no notebook_id). ## When To Use - User switches context: "Let's work on React now" - User asks explicitly to activate a notebook - Obvious task change requires another notebook ## Auto-Switching - Safe to auto-switch if the context is clear and you announce it: "Switching to React notebook for this task..." - If ambiguous, ask: "Switch to [notebook] for this task?" ## Example User: "Now let's build the React frontend" You: "Switching to React notebook..." (call select_notebook)
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The notebook ID to activate |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
library_stats ~22
Get statistics about your notebook library (total notebooks, usage, etc.)
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
library_update ~238
Update notebook metadata based on user intent. ## Pattern 1) Identify target notebook and fields (topics, description, use_cases, tags, url) 2) Propose the exact change back to the user 3) After explicit confirmation, call this tool ## Examples - User: "React notebook also covers Next.js 14" You: "Add 'Next.js 14' to topics for React?" User: "Yes" → call update_notebook - User: "Include error handling in n8n description" You: "Update the n8n description to mention error handling?" User: "Yes" → call update_notebook Tip: You may update multiple fields at once if requested.
| Name | Type | Req | Description |
|---|---|---|---|
| content_types | array | – | New content types |
| description | string | – | New description |
| id | string | yes | The notebook ID to update |
| name | string | – | New display name |
| tags | array | – | New tags |
| topics | array | – | New topics list |
| url | string | – | New notebook URL |
| use_cases | array | – | New use cases |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
manage_labels ~122
Manage a notebook’s source labels (RPC-backed): list them, create one, or delete some. action=list (default) / create (needs name) / delete (needs label_ids).
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | Default list. |
| emoji | string | – | Optional label emoji (for create). |
| label_ids | array | – | Label ids to delete (for delete). |
| name | string | – | Label name (for create). |
| notebook_id | string | – | Notebook UUID (alternative to notebook_url). |
| notebook_url | string | – | NotebookLM notebook URL. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
note_create ~125
Create a note in the NotebookLM Studio panel. Notes are user-created annotations that appear in your notebook. Use them to save research findings, summaries, key insights, or any custom content you want to keep alongside your sources. Notes support markdown formatting for rich text content.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Content/body of the note. Supports markdown formatting. |
| notebook_url | string | – | Notebook URL. If not provided, uses the active notebook. |
| session_id | string | – | Session ID to reuse an existing session |
| title | string | yes | Title of the note (required) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
note_get ~91
Retrieve the full title and text content of a specific note in the NotebookLM Studio panel.
| Name | Type | Req | Description |
|---|---|---|---|
| note_id | string | – | Optional note ID. |
| note_title | string | yes | The title of the note to retrieve content for. |
| notebook_url | string | – | Optional NotebookLM URL. If not provided, uses the active notebook. |
| session_id | string | – | Optional Session ID to reuse an existing session. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
note_list ~70
List all user notes in the NotebookLM Studio panel. Returns note titles, IDs, and timestamps (e.g. details).
| Name | Type | Req | Description |
|---|---|---|---|
| notebook_url | string | – | Optional NotebookLM URL. If not provided, uses the active notebook. |
| session_id | string | – | Optional Session ID to reuse an existing session. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
note_save_chat ~149
Save the current NotebookLM chat/discussion to a note. This tool extracts all messages from the current conversation (both user questions and NotebookLM AI responses) and saves them as a formatted note in the Studio panel. Use this to: - Preserve important research conversations - Create a summary of your discussion with NotebookLM - Save chat history before starting a new topic The note will include timestamps and message attribution (User/NotebookLM).
| Name | Type | Req | Description |
|---|---|---|---|
| notebook_url | string | – | Notebook URL. If not provided, uses the active notebook. |
| session_id | string | – | Session ID to reuse an existing session |
| title | string | – | Custom title for the note (default: "Chat Summary") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
note_to_source ~165
Convert a note to a source document in NotebookLM. This feature allows you to convert an existing note into a source, making the note content available for RAG queries and research. The method: 1. Finds the note by title in the Studio panel 2. Attempts to use NotebookLM's native "Convert to source" feature if available 3. Falls back to extracting note content and creating a text source if not Use this when you want your note content to be included in NotebookLM's knowledge base for answering questions.
| Name | Type | Req | Description |
|---|---|---|---|
| note_title | string | yes | Title of the note to convert (required) |
| notebook_url | string | – | Notebook URL. If not provided, uses the active notebook. |
| session_id | string | – | Session ID to reuse an existing session |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
notebook_ask ~438
# Conversational Research Partner (NotebookLM • Gemini 2.5 • Session RAG) ## No Active Notebook - Visit https://notebooklm.google to create a notebook and get a share link - Use **add_notebook** to add it to your library (explains how to get the link) - Use **list_notebooks** to show available sources - Use **select_notebook** to set one active > Auth tip: If login is required, use the prompt 'notebooklm.auth-setup' and then verify with the 'get_health' tool. If authentication later fails (e.g., expired cookies), use the prompt 'notebooklm.auth-repair'. Tip: Tell the user you can manage NotebookLM library and ask which notebook to use for the current task.
| Name | Type | Req | Description |
|---|---|---|---|
| browser_options | object | – | Optional browser behavior settings. Claude can control everything: visibility, typing speed, stealth mode, timeouts. Useful for debugging or fine-tuning. |
| notebook_id | string | – | Optional notebook ID from your library. If omitted, uses the active notebook. Use list_notebooks to see available notebooks. |
| notebook_url | string | – | Optional notebook URL (overrides notebook_id). Use this for ad-hoc queries to notebooks not in your library. |
| question | string | yes | The question to ask NotebookLM |
| session_id | string | – | Optional session ID for contextual conversations. If omitted, a new session is created. |
| show_browser | boolean | – | Show browser window for debugging (simple version). For advanced control (typing speed, stealth, etc.), use browser_options instead. |
| source_format | string | – | Format for source citation extraction (default: none). Options: - none: No source extraction (fastest) - inline: Insert source text inline: "text [1: source excerpt]" - footnotes: Append sources at t… |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
notebook_create ~296
Create a brand-new empty notebook directly in NotebookLM (no pre-existing URL required, unlike `add_notebook` which only registers an already-created notebook into the library). Returns `{ notebook_url, notebook_id, name_applied, actual_name, message }`. - `notebook_url` / `notebook_id`: always the FINAL UUID-based URL (the tool waits past the `/notebook/creating/c` transitional URL). - `name_applied` (boolean): whether the `name` parameter actually took effect. `false` means the notebook is still "Untitled notebook" — rename via UI if needed. - `actual_name` (string): the title observed on the notebook after creation. Typical workflow: 1) `create_notebook({ name?: "my-research" })` → `{ notebook_url, notebook_id, name_applied, actual_name }` 2) `add_source({ notebook_url, source_type: "url", source: "https://..." })` 3) `ask_question({ notebook_url, question: "..." })` Note: Requires authentication. Run `setup_auth` first if not authenticated.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Optional initial title for the notebook. NotebookLM will auto-name it if omitted (usually "Untitled notebook"). The title can be edited later via the UI. |
| show_browser | boolean | – | Show browser window during creation. Default: false (headless). |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
notebook_delete ~202
Delete one or more notebooks directly from NotebookLM (UI-level deletion, not just from the local library). Pass an array of notebook IDs (UUIDs from `list_notebooks_from_nblm`). Returns `{ deleted: [...], failed: [...] }` so the caller can retry or report on partial failures. Use this to: - Bulk-clean up a NotebookLM account (e.g. test notebooks from automation runs) - Free up the 100-notebook free-tier quota - Remove notebooks no longer covered by your sources Warning: This is irreversible at the NotebookLM side. Confirm with the user before calling. Note: Requires authentication. Run `setup_auth` first if not authenticated.
| Name | Type | Req | Description |
|---|---|---|---|
| notebook_ids | array | yes | Array of NotebookLM notebook IDs (UUIDs) to delete. Use `list_notebooks_from_nblm` to discover them. |
| show_browser | boolean | – | Show browser window during deletion. Default: false (headless). |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
notebook_list ~133
Scrape the NotebookLM homepage to get a real list of all notebooks with their IDs and names. This tool navigates to notebooklm.google.com and extracts: - Notebook ID (UUID from URL) - Notebook name (displayed title) - Notebook URL Use this to: - Discover notebooks not yet in your library - Get accurate notebook IDs for automation - Verify which notebooks exist in your account - Find notebooks to delete when cleanup is needed Note: Requires authentication. Run setup_auth first if not authenticated.
| Name | Type | Req | Description |
|---|---|---|---|
| show_browser | boolean | – | Show browser window during scraping. Default: false (headless). |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
research_sources ~99
Discover web sources for a notebook via NotebookLM Fast Research. RPC-backed. Returns the found sources; set `import: true` to also add them to the notebook.
| Name | Type | Req | Description |
|---|---|---|---|
| import | boolean | – | If true, import the discovered sources into the notebook. |
| notebook_id | string | – | Notebook UUID (alternative to notebook_url). |
| notebook_url | string | – | NotebookLM notebook URL. |
| query | string | yes | What to research on the web. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
server_cleanup ~409
ULTRATHINK Deep Cleanup - Scans entire system for ALL NotebookLM MCP data files across 8 categories. Always runs in deep mode, shows categorized preview before deletion. ⚠️ CRITICAL: Close ALL Chrome/Chromium instances BEFORE running this tool! Open browsers can prevent cleanup and cause issues. Categories scanned: 1. Legacy Installation (notebooklm-mcp-nodejs) - Old paths with -nodejs suffix 2. Current Installation (notebooklm-mcp) - Active data, browser profiles, library 3. NPM/NPX Cache - Cached installations from npx 4. Claude CLI MCP Logs - MCP server logs from Claude CLI 5. Temporary Backups - Backup directories in system temp 6. Claude Projects Cache - Project-specific cache (optional) 7. Editor Logs (Cursor/VSCode) - MCP logs from code editors (optional) 8. Trash Files - Deleted notebooklm files in system trash (optional) Works cross-platform (Linux, Windows, macOS). Safe by design: shows detailed preview before deletion, requires explicit confirmation. LIBRARY PRESERVATION: Set preserve_library=true to keep your notebook library.json file while cleaning everything else. RECOMMENDED WORKFLOW for fresh start: 1. Ask user to close ALL Chrome/Chromium instances 2. Run cleanup_data(confirm=false, preserve_library=true) to preview 3. Run cleanup_data(confirm=true, preserve_library=true) to execute 4. Run setup_auth or re_auth for fresh browser session Use cases: Clean reinstall, troubleshooting auth issues, removing all traces before uninstall, cleaning old browser sessions and installation data.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Confirmation flag. Tool shows preview first, then user confirms deletion. Set to true only after user has reviewed the preview and explicitly confirmed. |
| preserve_library | boolean | – | Preserve library.json file during cleanup. Default: false. Set to true to keep your notebook library while deleting everything else (browser data, caches, logs). |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
server_health ~63
Get server health status including authentication state, active sessions, and configuration. Use this to verify the server is ready before starting research workflows. If authenticated=false and having persistent issues: Consider running cleanup_data(preserve_library=true) + setup_auth for fresh start with clean browser session.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
session_close ~40
Close a specific session by session ID. Ask before closing if the user might still need it.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | string | yes | The session ID to close |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
session_list ~36
List all active sessions with stats (age, message count, last activity). Use to continue the most relevant session instead of starting from scratch.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
session_reset ~49
Reset a session's chat history (keep same session ID). Use for a clean slate when the task changes; ask the user before resetting.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | string | yes | The session ID to reset |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
share_notebook ~122
Read a notebook’s sharing status, or toggle its public link. Omit `set_public` to just read status (public link on/off, owner/collaborators). Set `set_public: true`/`false` to enable/disable the public link. RPC-backed (no browser).
| Name | Type | Req | Description |
|---|---|---|---|
| notebook_id | string | – | Notebook UUID (alternative to notebook_url). |
| notebook_url | string | – | NotebookLM notebook URL. |
| set_public | boolean | – | Optional. true = enable public link, false = restrict. Omit to only read status. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
source_add ~216
Add a source (document, URL, text, YouTube video) to the current NotebookLM notebook. Supported source types: - file: Upload a local file (PDF, DOCX, TXT, etc.) - url: Add a web page URL - text: Paste text content directly - youtube: Add a YouTube video URL - google_drive: Add a Google Drive document link The source will be processed and indexed for use in conversations.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | – | Local file path (required for source_type="file") |
| notebook_url | string | – | Notebook URL. If not provided, uses the active notebook. |
| session_id | string | – | Session ID to reuse an existing session |
| source_type | string | yes | Type of source to add |
| text | string | – | Text content (required for source_type="text") |
| title | string | – | Optional title/name for the source |
| url | string | – | URL (required for source_type="url", "youtube", "google_drive") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
source_delete ~155
Delete a source from the current NotebookLM notebook. You can identify the source to delete by either: - source_id: The unique identifier of the source - source_name: The name/title of the source (partial match supported) Use list_content first to see available sources and their IDs/names. WARNING: This action is irreversible. The source will be permanently removed from the notebook.
| Name | Type | Req | Description |
|---|---|---|---|
| notebook_url | string | – | Notebook URL. If not provided, uses the active notebook. |
| session_id | string | – | Session ID to reuse an existing session |
| source_id | string | – | The unique ID of the source to delete |
| source_name | string | – | The name/title of the source to delete (partial match supported) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.
vault_batch ~410
Run a list of questions against a notebook and persist each answer to disk as two artifacts: `{slug}.md` (markdown with YAML frontmatter, answer body and cited source excerpts) and `{slug}.json` (structured payload conforming to the nblm-answer-v1 schema). Designed for one-shot ingestion of a notebook into a searchable markdown vault (e.g. for indexing with RTFM) — every answer keeps titles + highlighted excerpts, so repeat queries no longer need to round-trip through NotebookLM. Reuses the same browser/session as ask_question — no HTTP server required. Pass `sleep_between_ms` (1500–3000ms) for batches above ~20 questions to avoid hammering NotebookLM. Returns per-question file paths, success flags, citation counts and the resolved session id. See the RTFM integration guide for the recommended workflow.
| Name | Type | Req | Description |
|---|---|---|---|
| notebook_id | string | – | Optional library notebook id to query. Falls back to the active notebook. |
| notebook_url | string | – | Optional NotebookLM URL (overrides notebook_id). Use for ad-hoc notebooks. |
| questions | array | yes | Non-empty array of question strings to ask sequentially. |
| session_id | string | – | Optional session id to reuse for context continuity across the batch. |
| sleep_between_ms | number | – | Pause between questions in ms. 1500–3000 is sane for batches above ~20. |
| slug_prefix | string | – | Optional filename prefix (e.g. "sota", "market-2026q2"). Default: "". |
| source_format | string | – | Citation extraction mode. "json" (default) preserves titles + excerpts in the sidecar. |
| vault_dir | string | yes | Destination directory (absolute or relative). Created with mkdir -p if missing. Set NOTEBOOKLM_VAULT_ROOT in the server env to confine writes under a single root (recommended for shared/remote setups… |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The tool payload on success. The exact shape depends on the tool. |
| error | string | – | Human-readable error message, present only when success is false. |
| success | boolean | yes | Whether the tool call succeeded. |
No examples provided.