NotebookLM MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NOTEBOOKLM_MCP_HOST | No | Host to bind for HTTP/SSE | 127.0.0.1 |
| NOTEBOOKLM_MCP_PORT | No | Port to listen on for HTTP/SSE transport | 8000 |
| NOTEBOOKLM_MCP_DEBUG | No | Set to 'true' to enable verbose logging (API requests/responses) | false |
| NOTEBOOKLM_MCP_TRANSPORT | No | Transport type ('stdio', 'http', 'sse') | stdio |
| NOTEBOOKLM_QUERY_TIMEOUT | No | Query timeout in seconds | 120.0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {
"tasks": {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| refresh_authA | Reload auth tokens from disk or run headless re-authentication. Call this after running notebooklm-mcp-auth to pick up new tokens, or to attempt automatic re-authentication if Chrome profile has saved login. Returns status indicating if tokens were refreshed successfully. |
| notebook_listB | List all notebooks. Args: max_results: Maximum number of notebooks to return (default: 100) |
| notebook_createB | Create a new notebook. Args: title: Optional title for the notebook |
| notebook_getB | Get notebook details with sources. Args: notebook_id: Notebook UUID |
| notebook_describeB | Get AI-generated notebook summary with suggested topics. Args: notebook_id: Notebook UUID Returns: summary (markdown), suggested_topics list |
| source_describeB | Get AI-generated source summary with keyword chips. Args: source_id: Source UUID Returns: summary (markdown with bold keywords), keywords list |
| source_get_contentA | Get raw text content of a source (no AI processing). Returns the original indexed text from PDFs, web pages, pasted text, or YouTube transcripts. Much faster than notebook_query for content export. Args: source_id: Source UUID Returns: content (str), title (str), source_type (str), char_count (int) |
| notebook_add_urlC | Add URL (website or YouTube) as source. Args: notebook_id: Notebook UUID url: URL to add |
| notebook_add_textC | Add pasted text as source. Args: notebook_id: Notebook UUID text: Text content to add title: Optional title |
| notebook_add_driveB | Add Google Drive document as source. Args: notebook_id: Notebook UUID document_id: Drive document ID (from URL) title: Display title doc_type: doc|slides|sheets|pdf |
| notebook_queryA | Ask AI about EXISTING sources already in notebook. NOT for finding new sources. Use research_start instead for: deep research, web search, find new sources, Drive search. Args: notebook_id: Notebook UUID query: Question to ask source_ids: Source IDs to query (default: all) conversation_id: For follow-up questions timeout: Request timeout in seconds (default: from env NOTEBOOKLM_QUERY_TIMEOUT or 120.0) |
| notebook_deleteA | Delete notebook permanently. IRREVERSIBLE. Requires confirm=True. Args: notebook_id: Notebook UUID confirm: Must be True after user approval |
| notebook_renameB | Rename a notebook. Args: notebook_id: Notebook UUID new_title: New title |
| chat_configureB | Configure notebook chat settings. Args: notebook_id: Notebook UUID goal: default|learning_guide|custom custom_prompt: Required when goal=custom (max 10000 chars) response_length: default|longer|shorter |
| source_list_driveA | List sources with types and Drive freshness status. Use before source_sync_drive to identify stale sources. Args: notebook_id: Notebook UUID |
| source_sync_driveA | Sync Drive sources with latest content. Requires confirm=True. Call source_list_drive first to identify stale sources. Args: source_ids: Source UUIDs to sync confirm: Must be True after user approval |
| source_deleteA | Delete source permanently. IRREVERSIBLE. Requires confirm=True. Args: source_id: Source UUID to delete confirm: Must be True after user approval |
| research_startA | Deep research / fast research: Search web or Google Drive to FIND NEW sources. Use this for: "deep research on X", "find sources about Y", "search web for Z", "search Drive". Workflow: research_start -> poll research_status -> research_import. Args: query: What to search for (e.g. "quantum computing advances") source: web|drive (where to search) mode: fast (~30s, ~10 sources) | deep (~5min, ~40 sources, web only) notebook_id: Existing notebook (creates new if not provided) title: Title for new notebook |
| research_statusA | Poll research progress. Blocks until complete or timeout. Args: notebook_id: Notebook UUID poll_interval: Seconds between polls (default: 30) max_wait: Max seconds to wait (default: 300, 0=single poll) compact: If True (default), truncate report and limit sources shown to save tokens. Use compact=False to get full details. task_id: Optional Task ID to poll for a specific research task. |
| research_importA | Import discovered sources into notebook. Call after research_status shows status="completed". Args: notebook_id: Notebook UUID task_id: Research task ID source_indices: Source indices to import (default: all) |
| audio_overview_createA | Generate audio overview. Requires confirm=True after user approval. Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) format: deep_dive|brief|critique|debate length: short|default|long language: BCP-47 code (en, es, fr, de, ja) focus_prompt: Optional focus text confirm: Must be True after user approval |
| video_overview_createA | Generate video overview. Requires confirm=True after user approval. Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) format: explainer|brief visual_style: auto_select|classic|whiteboard|kawaii|anime|watercolor|retro_print|heritage|paper_craft language: BCP-47 code (en, es, fr, de, ja) focus_prompt: Optional focus text confirm: Must be True after user approval |
| studio_statusC | Check studio content generation status and get URLs. Args: notebook_id: Notebook UUID |
| studio_deleteA | Delete studio artifact. IRREVERSIBLE. Requires confirm=True. Args: notebook_id: Notebook UUID artifact_id: Artifact UUID (from studio_status) confirm: Must be True after user approval |
| infographic_createA | Generate infographic. Requires confirm=True after user approval. Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) orientation: landscape|portrait|square detail_level: concise|standard|detailed language: BCP-47 code (en, es, fr, de, ja) focus_prompt: Optional focus text confirm: Must be True after user approval |
| slide_deck_createA | Generate slide deck. Requires confirm=True after user approval. Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) format: detailed_deck|presenter_slides length: short|default language: BCP-47 code (en, es, fr, de, ja) focus_prompt: Optional focus text confirm: Must be True after user approval |
| report_createA | Generate report. Requires confirm=True after user approval. Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) report_format: "Briefing Doc"|"Study Guide"|"Blog Post"|"Create Your Own" custom_prompt: Required for "Create Your Own" language: BCP-47 code (en, es, fr, de, ja) confirm: Must be True after user approval |
| flashcards_createA | Generate flashcards. Requires confirm=True after user approval. Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) difficulty: easy|medium|hard confirm: Must be True after user approval |
| quiz_createA | Generate quiz. Requires confirm=True after user approval. Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) question_count: Number of questions (default: 2) difficulty: Difficulty level (default: medium) confirm: Must be True after user approval |
| data_table_createA | Generate data table. Requires confirm=True after user approval. Args: notebook_id: Notebook UUID description: Description of the data table to create source_ids: Source IDs (default: all) language: Language code (default: "en") confirm: Must be True after user approval |
| mind_map_createB | Generate and save mind map. Requires confirm=True after user approval. Args: notebook_id: Notebook UUID source_ids: Source IDs (default: all) title: Display title confirm: Must be True after user approval |
| save_auth_tokensA | Save NotebookLM cookies (FALLBACK method - try notebooklm-mcp-auth first!). IMPORTANT FOR AI ASSISTANTS:
Args: cookies: Cookie header from Chrome DevTools (only needed if CLI fails) csrf_token: Deprecated - auto-extracted session_id: Deprecated - auto-extracted request_body: Optional - contains CSRF if extracting manually request_url: Optional - contains session ID if extracting manually |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 32 tools
Most tools have distinct purposes, but there is some overlap between creation tools (e.g., audio_overview_create, video_overview_create, slide_deck_create) that could cause confusion due to similar naming and parameters. However, the descriptions clarify their specific output formats, preventing major misselection.
Tool names follow a consistent snake_case pattern with clear verb_noun structure (e.g., notebook_create, source_delete, research_start). There are no deviations in naming conventions, making the set predictable and easy to parse.
With 32 tools, the count is borderline high for the domain of notebook management and content generation. While the tools cover many features, the number may feel heavy and could overwhelm agents, though it aligns with a comprehensive feature set.
The toolset provides complete CRUD/lifecycle coverage for notebooks and sources, along with extensive content generation, research, and authentication workflows. There are no obvious gaps, and the surface supports all core operations for the domain.