notebooklm-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NLM_PROFILE_DIR | No | Override the OS user-data directory for saving the Google session. | OS default user-data directory |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| notebook_listA | List notebooks visible to the signed-in Google account. Returns { id, title, icon, source_count, updated_at, url, ownership }.
Known limitation: |
| notebook_createA | Create a brand-new, empty notebook. Returns { id, title, url }. Uses NotebookLM's CCqFvf RPC, which always creates a fresh notebook
(unlike the idempotent "get recent draft" endpoint). |
| notebook_deleteA | Delete a notebook permanently. Returns { id, deleted: True }. Irreversible — NotebookLM has no trash/undo. Caller confirms. |
| notebook_queryA | Ask a question inside a notebook and return the grounded answer. The exchange is persisted in the NotebookLM web UI's chat history. Returns { answer, source_count, session_ids, chunks }. |
| notebook_share_publicB | Toggle the public share link on a notebook. Returns the share URL when enabled. |
| notebook_share_inviteA | Invite collaborators by email to a notebook. |
| source_addA | Add a source to a notebook and return { id, title, word_count }.
Not yet implemented: drive, file. |
| source_sync_driveB | Refresh Drive-linked sources. If |
| source_get_contentB | Return the extracted text/metadata of a single source. |
| studio_createA | Start generating a Studio artifact (audio/podcast by default). Returns immediately with { artifact_id, status, title } — generation is
asynchronous and typically takes 2-5 minutes. Poll Currently implemented: audio (Audio Overview / podcast). Other artifact types (video, slides, etc.) raise NotImplementedError. |
| studio_reviseA | Revise an existing slide deck (and any revisable artifact) with new instructions. |
| download_artifactA | Check an artifact's status and, if complete, download it to disk. If |
| research_startA | Kick off NotebookLM's Discover (Fast Research) flow on a topic. Returns { query, sources: [{ url, title, description }, ...] }. The candidate sources are NOT automatically added to the notebook.
Use Requires an EMPTY notebook — NotebookLM disables Discover once the
notebook has content. Create one with |
| research_and_askA | One-shot: create ephemeral notebook → research → import sources → Q&A. Full workflow wrapped in a single call:
Returns { notebook_id, # str if kept, None if deleted topic, sources_imported, # [{url, title, word_count}, ...] qa, # [{question, answer, source_count, chunks}, ...] kept, # bool } |
| cross_notebook_queryA | Ask the same question across multiple notebooks and return per-notebook answers. Returns { question, results: { : { answer, source_count, session_ids, chunks } | { error: }, ... }, ok_count, error_count, } Per-notebook failures (no sources, RPC errors) are captured in |
| batchB | Run a single tool operation across many notebooks (e.g. operation="notebook_query"). |
| pipelineA | Run a sequence of tool invocations. Each step: { tool, params }. Output of step N is available as |
| tagA | Add/remove tags on one or more notebooks. mode in {"add","remove","set"}. |
| refresh_authA | Re-validate the stored Google session. Returns { logged_in: bool, email?: str }. |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- 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/gracelee087/notebooklm-mcp-lisa'
If you have feedback or need assistance with the MCP directory API, please join our Discord server