notebooklm-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
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 Returns status indicating if tokens were refreshed successfully. |
| save_auth_tokensA | Save NotebookLM cookies (FALLBACK method - try IMPORTANT FOR AI ASSISTANTS:
|
| batchA | Perform batch operations across multiple notebooks. Actions:
|
| 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. |
| chat_configureC | Configure notebook chat settings. |
| notebook_query_startA | Start a notebook query asynchronously for large notebooks that may timeout. Use this instead of notebook_query when querying notebooks with many sources (50+) where the response may take longer than 60 seconds. Returns immediately with a query_id. Poll notebook_query_status with the query_id to get the result. Workflow: notebook_query_start -> poll notebook_query_status until completed. |
| notebook_query_statusA | Check the status of an async notebook query started with notebook_query_start. Returns the query result when completed, or current status if still in progress. Poll this tool every few seconds until status is 'completed' or 'error'. |
| cross_notebook_queryA | Query multiple notebooks and get aggregated answers with per-notebook citations. Specify notebooks by name, by tags, or use all=True for all notebooks. |
| download_artifactA | Download any NotebookLM artifact to a file. Unified download tool replacing 9 separate download tools. Supports all artifact types: audio, video, report, mind_map, slide_deck, infographic, data_table, quiz, flashcards. |
| export_artifactA | Export a NotebookLM artifact to Google Docs or Sheets. Supports:
|
| notebook_listC | List all notebooks. |
| notebook_getC | Get notebook details with sources. |
| notebook_describeB | Get AI-generated notebook summary with suggested topics. |
| notebook_createC | Create a new notebook. |
| notebook_renameB | Rename a notebook. |
| notebook_deleteA | Delete notebook permanently. IRREVERSIBLE. Requires confirm=True. |
| noteB | Manage notes in a notebook. Unified tool for all note operations. Supports: create, list, update, delete |
| pipelineA | Manage and execute multi-step notebook pipelines. Actions:
|
| 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. |
| research_statusA | Poll research progress. Blocks until complete or timeout. |
| research_importA | Import discovered sources into notebook. Call after research_status shows status="completed". |
| server_infoA | Get server version, check for updates, and report auth status. AI assistants: If update_available is True, inform the user that a new version is available and suggest updating with the provided command. auth_status now performs a best-effort live validation against
NotebookLM (same mechanism as Returns: dict with version info: - version: Current installed version - latest_version: Latest version on PyPI (or None if check failed) - update_available: True if a newer version exists - auth_status: configured | stale | not_configured | error - update_command: Command to run to update |
| notebook_share_statusA | Get current sharing settings and collaborators. |
| notebook_share_publicB | Enable or disable public link access. |
| notebook_share_inviteB | Invite a collaborator by email. |
| notebook_share_batchB | Invite multiple collaborators in a single request. |
| tagA | Manage notebook tags and find relevant notebooks by tag matching. Actions:
|
| source_addB | Add a source to a notebook. Unified tool for all source types. Supports: url, text, drive, file |
| source_list_driveA | List sources with types and Drive freshness status. Use before source_sync_drive to identify stale sources. |
| source_sync_driveA | Sync Drive sources with latest content. Requires confirm=True. Call source_list_drive first to identify stale sources. |
| source_renameB | Rename a source in a notebook. |
| source_deleteA | Delete source(s) permanently. IRREVERSIBLE. Requires confirm=True. |
| source_describeA | Get AI-generated source summary with keyword chips. |
| 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. |
| studio_createC | Create any NotebookLM studio artifact. Unified creation tool. Supports: audio, video, infographic, slide_deck, report, flashcards, quiz, data_table, mind_map |
| studio_statusB | Check studio content generation status and get URLs, or rename an artifact. |
| studio_deleteA | Delete studio artifact. IRREVERSIBLE. Requires confirm=True. |
| studio_reviseA | Revise individual slides in an existing slide deck. Creates a NEW artifact. Only slide decks support revision. The original artifact is not modified. Poll studio_status after calling to check when the new deck is ready. |
| labelA | Manage source labels in a notebook. Unified tool for all label operations. Labels let you organize sources into thematic categories. Requires 5+ sources for auto-labeling. Sources can belong to multiple labels simultaneously. Supports: auto, list, reorganize, create, rename, set_emoji, move_source, delete |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jacob-bd/notebooklm-mcp-cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server