notebooklm-mcp-rpc
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for HTTP transport | 3000 |
| MCP_TRANSPORT | No | Transport type: stdio or http | stdio |
| NOTEBOOKLM_COOKIES | No | Cookies string from Google session | |
| NOTEBOOKLM_AUTH_JSON | No | Inline JSON contents of storage_state.json (serverless) | |
| NOTEBOOKLM_CSRF_TOKEN | No | CSRF token | |
| NOTEBOOKLM_SESSION_ID | No | Session ID | |
| NOTEBOOKLM_STORAGE_PATH | No | Path to storage_state.json (local dev) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_statusA | Verify the current cookies / CSRF token / session ID are valid by hitting the homepage and listing notebooks. Use this first when debugging. |
| notebook_listA | List every notebook owned by the authenticated user. |
| notebook_createA | Create a new NotebookLM notebook with the given title. |
| notebook_renameB | Change a notebook's title. |
| notebook_deleteA | Permanently delete a notebook. Destructive. |
| notebook_rawA | Return the raw GET_NOTEBOOK response (useful for debugging when the parsed shape is missing a field you need). |
| source_listA | List the sources currently attached to a notebook. |
| source_add_urlA | Add a web URL or YouTube link as a source. NotebookLM auto-detects YouTube URLs. |
| source_add_textC | Paste raw text as a source. |
| source_deleteC | Remove a source from a notebook. Destructive. |
| source_renameB | Change a source's display title. |
| source_refreshA | Re-fetch and re-index a URL or Google Drive source so the notebook has the latest version. |
| source_fulltextA | Retrieve the indexed plaintext content of a source. |
| source_guideA | Return the auto-generated summary and keywords for a source. |
| source_waitA | Poll until the source reaches READY status, or fail with a TimeoutError after the configured timeout. |
| chat_askA | Send a question to NotebookLM and return the answer plus citations. If |
| chat_last_conversation_idA | Return the most recent conversation ID for a notebook. |
| chat_historyB | Return the question/answer turns of a conversation. |
| chat_configureB | Set the notebook's chat mode, persona, and response-length preference. |
| artifact_listA | List all generated artifacts in a notebook. |
| artifact_getA | Return details for a single artifact. |
| artifact_deleteA | Delete an artifact. Destructive. |
| artifact_renameB | Change an artifact's display title. |
| artifact_waitA | Poll the artifact until it reaches COMPLETED status. Long-running — raise |
| generate_audioB | Kick off audio generation. Returns a task/artifact ID; pair with |
| generate_videoA | Kick off video generation. Long-running (15-45 min) — use |
| generate_cinematic_videoA | Generate an AI-rendered cinematic documentary-style video using Veo 3. Requires a Google AI Ultra subscription on the authenticated account; without it the call returns a server error. Style options are not supported for cinematic video. |
| generate_reportB | Generate a structured markdown report (briefing doc, study guide, etc.). |
| generate_quizC | Generate a quiz from notebook content. |
| generate_flashcardsB | Generate a flashcard deck from notebook content. |
| generate_infographicC | Generate a poster-style infographic. |
| generate_slide_deckC | Generate a slide deck (PDF or PPTX, configurable later via |
| generate_data_tableB | Generate a structured data table. |
| generate_mind_mapB | Generate a mind map. Returns the JSON content directly (mind maps are stored as notes). |
| revise_slideA | Submit a natural-language revision for one slide of an existing deck. |
| download_artifactA | Resolve and download an artifact's content. If |
| note_listA | List notes (and mind-maps) inside a notebook. |
| note_createC | Create a new note with title and content. |
| note_updateA | Update a note's title and/or content. |
| note_deleteB | Delete a note. Destructive. |
| research_startA | Kick off web/Drive research. |
| research_pollA | Non-blocking check on every research task in a notebook. Returns each task's status, the synthesized summary if any, and the discovered results (URLs + titles for fast research, markdown reports for deep). |
| research_waitA | Block until a research task completes (or |
| research_import_allA | Import every result from the latest finished research task as sources in the notebook. This works even when |
| research_import_selectedA | Import a subset of research results by URL. Useful when you want to skip irrelevant sources from a fast-research result set. Pass either the full URLs to import, or pass |
| share_statusA | Return the raw share status payload (access level, view level, users). |
| share_set_publicC | Enable or disable the notebook's public link. |
| share_set_view_levelC | Set what link viewers can access (full notebook or chat only). |
| share_add_userC | Grant a Google account access to the notebook. |
| share_remove_userB | Revoke a user's access to the notebook. |
| language_getA | Return the GLOBAL default output language code used for artifact generation. |
| language_setA | Set the GLOBAL default output language for artifact generation. Affects every notebook in the account. |
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
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sanjeev7e/notebooklm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server