NotebookLM MCP MCP Server
io.github.roomi-fields/notebooklm-mcp
Automate Google NotebookLM with citation-backed Q&A, audio/video generation, and REST API for n8n/Zapier/Make.
What is the NotebookLM MCP MCP server?
The NotebookLM MCP server automates Google NotebookLM (Gemini Notebook) at scale, offering both an MCP interface for Claude Code and Cursor, and a 33-endpoint HTTP REST API for no-code platforms like n8n, Zapier, and Make. It enables citation-backed Q&A, full Studio content generation (audio, video, infographics, reports, presentations, data tables, flashcards, quizzes, mind maps), and multi-account rotation with automatic re-authentication.
NotebookLM MCP lets you programmatically ask questions to your NotebookLM notebooks and get grounded, citation-backed answers, plus generate multiple content formats from your sources. It works as an MCP server for AI agents (Claude Code, Cursor) or as a REST API for automation platforms and custom integrations. Built for research at scale—batch 1000+ questions overnight across multiple notebooks with automatic account rotation and quota management.
How to install NotebookLM MCP
Copy-paste configuration for popular MCP clients.
Tools & capabilities
Tools this server exposes to the agent.
notebook_ask— Ask questions to a notebook and receive citation-backed answers with source excerptsnotebook_add— Create a new notebooksource_add— Add sources to a notebook (PDF, TXT, DOCX, URLs, YouTube, Google Drive, plain text)source_list— List all sources in a notebookgenerate_audio— Generate podcast-style audio overviews with language and custom instruction optionsgenerate_video— Generate video content in Brief or Explainer formats with 6 visual stylesgenerate_infographic— Generate infographics in horizontal or vertical layoutsgenerate_report— Generate summary or detailed reportsgenerate_presentation— Generate overview or detailed presentationsgenerate_data_table— Generate simple or detailed data tablesgenerate_study_aid— Generate flashcards or quiz questionsgenerate_mind_map— Generate interactive mind mapsdownload_audio— Download generated audio as WAV filesdownload_video— Download generated video as MP4 filesdownload_infographic— Download generated infographics as PNG imagesnotebook_list— List all notebooks with IDs and namesnotebook_search— Search notebooks by keyword in name, description, or topicsnotebook_delete— Delete one or multiple notebooksshare_notebook— Share a notebook with othersmanage_labels— Manage source labels within a notebook
Use cases
- Batch research at scale—ask 1000+ questions across multiple notebooks overnight with automatic account rotation and quota management
- Build no-code automation pipelines in n8n, Zapier, or Make by using the REST API to trigger Q&A and content generation from form submissions or scheduled workflows
- Generate multiple content formats (audio, video, infographics, reports, presentations, quizzes) from a single source set and download them programmatically
- Create a grounded answer cache by writing citation-backed Q&A results to disk as structured JSON, indexable offline without re-querying
- Integrate NotebookLM into Claude Code or Cursor as an MCP server to let AI agents ask questions and generate content from your notebooks
NotebookLM MCP MCP server FAQ
It's an automation layer for Google NotebookLM (Gemini Notebook) that works as both an MCP server for Claude Code/Cursor and a 33-endpoint HTTP REST API for platforms like n8n, Zapier, and Make. It lets you ask questions, get citation-backed answers, and generate content (audio, video, reports, etc.) programmatically.
The server itself is free and open-source (MIT license). However, you need a Google account with access to NotebookLM/Gemini Notebook, which is a free Google service. Heavy usage may be rate-limited by Google.
For Claude Code, use the marketplace: `/plugin marketplace add roomi-fields/claude-plugins` then `/plugin install notebooklm@roomi-fields`. For Cursor, add it to ~/.cursor/mcp.json with the command `node /path/to/notebooklm-mcp/dist/index.js`. Then run `npm run setup-auth` once in a terminal to log into Google.
Yes, you must log into Google once. Run `npm run setup-auth` (or `notebooklm-mcp setup-auth` if globally installed) in a terminal—a visible Chrome window opens for you to sign in. The session is then reused by the server. Do this in a terminal, not through the assistant, because some MCP clients have timeouts on tool calls.
Yes. The server supports multi-account rotation with automatic re-authentication, batch operations via `vault_batch`, and resumable runs. It's tested on overnight batches of 1000+ research questions and writes every answer to disk as structured JSON with citations for offline indexing.
MCP mode integrates with Claude Code, Cursor, and other MCP clients for agent-based automation. REST API mode (port 3000) works with n8n, Zapier, Make, curl, or any HTTP client—no agent runtime needed. Both use the same underlying engine and can run simultaneously.
README (reference)
Source of truth, from the repository.
NotebookLM REST API + MCP server
Automate Google NotebookLM at scale. 33-endpoint HTTP REST API for n8n / Zapier / Make / curl, plus an MCP server for Claude Code / Cursor / Codex. Citation-backed Q&A, full Studio generation (audio · video · infographic · report · presentation · data table), multi-account rotation with auto-reauth across personal and Google Workspace accounts.
v3.0.4 — major refactor: dual transport. The data plane now drives NotebookLM's internal
batchexecuteRPC API (the same one the web app calls) instead of scraping the DOM — immune to UI rebrands, 10-100× faster (list notebooks ~1 s vs ~30 s, generate a report ~13 s vs minutes), and more correct. The Playwright browser is kept as an automatic fallback (NOTEBOOKLM_TRANSPORT=domforces it) plus login / auto-reauth, so nothing breaks if an internal endpoint shifts — both paths ship permanently for robustness. Adds 5 new tools: notebook sharing, study aids (flashcards / quiz), mind maps, source labels, and web research / source discovery. Still batch-tested on overnight runs of 1 000+ questions. See the changelog. Compare withPleasePrompto/notebooklm-mcpfor when this project is the right pick (REST API, full Studio, auto-reauth).
<!-- Badges --> <!-- End Badges --> </div>Note (July 2026): Google rebranded NotebookLM to Gemini Notebook. It is the same product, existing links redirect, and this project drives the same underlying service — the browser path was updated for the new DOM in v2.3.0 and the RPC path in v3.0.0. Package and repository keep the
notebooklmname.
⚠️ Unofficial — use at your own risk
This project drives undocumented Google endpoints (the same
batchexecuteAPI the web app calls) with a browser fallback. It is not affiliated with Google, endpoints can change without notice, and heavy usage may be rate limited.Use a dedicated Google account for automation. Best suited to research, prototypes and personal projects. See Disclaimer for the full text.
What You Can Build
🔗 No-code automation pipelines — The 33-endpoint REST API means NotebookLM becomes a step in n8n, Zapier, Make, or a plain curl in cron. No agent, no MCP client, no Node in your stack — just HTTP. This is the half most NotebookLM libraries don't have.
🤖 Agent tooling — The same engine over MCP for Claude Code, Cursor and Codex, with a bundled skill that primes the agent on citation formats, the daily-quota-aware batch pattern, and transport selection.
📚 Research at volume — Multi-account rotation with automatic re-authentication, built for overnight runs of 1 000+ questions across several notebooks without babysitting.
🎙️ Full Studio generation — Audio overviews, video, infographics, reports, presentations, data tables, plus flashcards, quizzes and mind maps — generated and downloaded programmatically.
Use Cases & Recipes
NotebookLM is a grounded engine: Gemini reads your sources and answers from them, with citations. The winning pattern is to let it do the expensive reading while your own stack handles orchestration and the last mile.
Spend fewer tokens — offload the reading
- 🪙 Zero-token synthesis layer — Drop 30 documents in a notebook, let Gemini do the heavy analysis, and spend your agent's context only on the final polish. The reasoning happens server-side; your agent just orchestrates (
add_notebook→source_add→notebook_ask). - 💾 Answer cache you can re-read offline —
vault_batchwrites every answer to disk as structured JSON against a published schema, so a batch run becomes a corpus you can grep, diff, re-index, or feed to a retrieval layer — without re-querying and re-spending quota.
Wire it into things that aren't agents
- ⚙️ NotebookLM as an n8n / Zapier / Make step — Because it speaks plain HTTP, a citation-backed answer becomes one node in a workflow: a form submission triggers a question, the cited answer lands in a sheet, a Slack message, or a database. No agent runtime involved.
- 📄 Document intake pipeline — Watch a folder or an inbox, push new PDFs and URLs in as sources, and ask a standing set of questions against them on every arrival.
Grounded answers with a paper trail
- 🔍 Citations with the actual source text — Answers come back with source names and the quoted excerpts they rest on, extracted from the citation panel — so a claim can be checked, not just attributed.
- 🎓 Literature review at thesis scale — Batch 100+ research questions across multiple notebooks, rotate accounts as daily quotas run out, and resume where it stopped. Built for, and tested on, exactly this.
Get artifacts back out
- 🔁 One source set, every format — Fan a single notebook out to a podcast, a video, a slide deck, a report, a quiz and a mind map, then download them all locally.
In the Wild
Real deployments, not hypotheticals.
-
📚 A doctoral literature review at batch scale — The project was built for, and is continuously tested on, overnight runs of 1 000+ research questions spread across several notebooks: multi-account rotation picks up when a daily quota runs out, every answer is written to disk with its citations, and an interrupted run resumes instead of starting over. The batch pattern in
vault_batchexists because a thesis needed it. -
🔌 Replacing a RAG engine with the REST API —
musnymubarak/Calim_Docswapped a Gemini-based retrieval engine for this project's HTTP API, running it as a Docker service (notebooklm:3000) behind a full client and worker layer. A good illustration of the REST half: no agent runtime, no MCP client — NotebookLM simply became a backend service their Python app calls.
Built something with it? Open an issue — this section is for other people's work.
Features
Q&A with Citations
- Ask questions to NotebookLM and get accurate, citation-backed answers
- Source citation extraction with 5 formats: none, inline, footnotes, json, expanded (97% excerpt success rate)
- Session management for multi-turn conversations with auto-reauth on session expiry
Content Generation
Generate multiple content types from your notebook sources:
| Content Type | Formats | Options |
|---|---|---|
| Audio Overview | Podcast-style discussion | Language (80+), custom instructions |
| Video | Brief, Explainer | 6 visual styles, language, custom instructions |
| Infographic | Horizontal, Vertical | Language, custom instructions |
| Report | Summary, Detailed | Language, custom instructions |
| Presentation | Overview, Detailed | Language, custom instructions |
| Data Table | Simple, Detailed | Language, custom instructions |
| Flashcards | Study cards | Language, custom instructions |
| Quiz | Assessment questions | Language, custom instructions |
| Mind Map | Interactive node graph | Saved to the notebook |
Video Visual Styles: classroom, documentary, animated, corporate, cinematic, minimalist
Flashcards and quizzes are generated via generate_study_aid; mind maps via generate_mind_map. v3 also adds share_notebook, manage_labels, and research_sources (web/Drive source discovery) — see the changelog.
Content Download
- Download Audio — WAV audio files
- Download Video — MP4 video files
- Download Infographic — PNG image files
- Text-based content (report, presentation, data_table) is returned in the API response
Source Management
- Add sources: Files (PDF, TXT, DOCX), URLs, Text, YouTube videos, Google Drive
- List sources: View all sources in a notebook
Notebook Library
- Multi-notebook management with validation and smart selection
- Auto-discovery: Automatically generate metadata via NotebookLM queries
- Search notebooks by keyword in name, description, or topics
- Scrape notebooks: List all notebooks from NotebookLM with IDs and names
- Bulk delete: Delete multiple notebooks at once
Accounts & Localization
- Personal and Google Workspace accounts — recognizes both NotebookLM hosts (
notebooklm.google.comand thenotebook.google.comWorkspace alias), so Workspace sessions authenticate cleanly instead of looping on "session expired" - UI-language-aware — drives NotebookLM whether its interface is in English, French, German, or Japanese (
en·fr·de·ja); add a language in a single JSON file
Integration Options
- MCP Protocol — Claude Code, Cursor, Codex, any MCP client
- Agent Skill — ships a bundled
notebooklmskill (also standalone:roomi-fields/notebooklm-skill) that teaches the agent citation formats, the daily-quota-aware batch pattern, and when to use which transport - HTTP REST API — n8n, Zapier, Make.com, custom integrations
- Docker — Isolated deployment with Docker or Docker Compose
- RTFM retrieval layer —
/batch-to-vaultwrites citation-backed answers as markdown + JSON sidecars (nblm-answer-v1schema), indexable by RTFM (FTS5 + semantic) for unlimited offline queries. Ideal for academic / SOTA workflows. Guide.
Quick Start
Option 0 — Claude Code marketplace (one-liner, recommended for Claude Code users)
The fastest way to get NotebookLM into Claude Code. Distributed via the roomi-fields/claude-plugins marketplace alongside RTFM (the retrieval companion — see RTFM integration guide):
/plugin marketplace add roomi-fields/claude-plugins
/plugin install notebooklm@roomi-fields
That registers the MCP server, runs npx -y @roomi-fields/notebooklm-mcp@<pinned-version> automatically (Node ≥ 18 required), and lets you upgrade with two commands when a new release ships: /plugin marketplace update roomi-fields then /reload-plugins. Then run npx -y -p @roomi-fields/notebooklm-mcp notebooklm-mcp-setup-auth once in a terminal to log into Google (a visible Chrome opens). To install RTFM at the same time: /plugin install rtfm@roomi-fields.
Option 1 — HTTP REST API (n8n, Zapier, Make, curl, any HTTP client)
git clone https://github.com/roomi-fields/notebooklm-mcp.git
cd notebooklm-mcp
npm install && npm run build
npm run setup-auth # One-time Google login
npm run start:http # Start REST API on port 3000
# Citation-backed Q&A, single curl, JSON response
curl -X POST http://localhost:3000/ask \
-H 'Content-Type: application/json' \
-d '{"question": "Summarize chapter 3", "notebook_id": "your-id", "source_format": "json"}'
The full surface is 33 documented endpoints — see the REST API reference. For overnight batches of 1 000+ questions, see the batch pattern.
Option 2 — MCP Mode (Claude Code, Cursor, Codex)
# Build (same package, MCP transport)
git clone https://github.com/roomi-fields/notebooklm-mcp.git
cd notebooklm-mcp
npm install && npm run build
# Claude Code
claude mcp add notebooklm node /path/to/notebooklm-mcp/dist/index.js
# Cursor — add to ~/.cursor/mcp.json
{
"mcpServers": {
"notebooklm": {
"command": "node",
"args": ["/path/to/notebooklm-mcp/dist/index.js"]
}
}
}
Log in once — in a terminal, not through the assistant. Run the interactive Google login as a command; a visible Chrome window opens, you sign in, and the saved session is then reused by the MCP server:
npm run setup-auth # from a clone (Option 2 above)
notebooklm-mcp setup-auth # from a global install (npm i -g @roomi-fields/notebooklm-mcp)
Do the login in a terminal rather than by asking the assistant "log me in": some stdio MCP clients (e.g. Claude Desktop) cap tool-call duration and cut off the up-to-10-minute interactive login before you can finish signing in (see issue #27).
Option 3 — Docker (NAS, server, headless)
# Build and run
docker build -t notebooklm-mcp .
docker run -d --name notebooklm-mcp -p 3000:3000 -p 6080:6080 -v notebooklm-data:/data notebooklm-mcp
# Authenticate via noVNC
# 1. Open http://localhost:6080/vnc.html
# 2. Run: curl -X POST http://localhost:3000/setup-auth -d '{"show_browser":true}'
# 3. Login to Google in the VNC window
See Docker Guide for NAS deployment (Synology, QNAP).
Documentation
Full docs site: https://roomi-fields.github.io/notebooklm-mcp/ · OpenAPI 3.1 spec
| Guide | Description |
|---|---|
| Installation | Step-by-step setup for HTTP and MCP modes |
| Configuration | Environment variables and security |
| REST API reference | Complete HTTP endpoint documentation (33 endpoints) |
| Run 1 000 questions overnight | Production batch pattern with auto-reauth and rotation |
| RTFM integration — cache as searchable vault | Pipeline pattern: NotebookLM as one-shot ingestion, RTFM as retrieval layer. /batch-to-vault endpoint, nblm-answer-v1 schema. |
| n8n integration | Workflow automation setup |
| Troubleshooting | Common issues and solutions |
| Notebook library | Multi-notebook management |
| Auto-discovery | Autonomous metadata generation |
| Content management | Audio, video, infographic, report, presentation |
| Multi-account rotation | Multiple accounts with TOTP auto-reauth |
| Docker | Docker and Docker Compose deployment |
| Multi-interface | Run Claude Desktop + HTTP simultaneously |
| Compare with PleasePrompto v2.0.0 | Feature matrix vs the upstream MCP-only server |
| Chrome profile limitation | Profile locking (solved in v1.3.6+) |
| Adding a language | i18n system for multilingual UI support |
Roadmap
See ROADMAP.md for planned features and version history.
Latest releases:
- v3.0.1 — Interactive Google login as a first-class CLI command (
notebooklm-mcp setup-auth) for global / stdio-client installs;setup_auth/re_authaccept a top-levelheadless(#27) - v3.0.0 — Major refactor: dual transport (NotebookLM's internal
batchexecuteRPC API with automatic DOM fallback), 10-100× faster and immune to UI rebrands; 5 new tools (notebook sharing, study aids, mind maps, source labels, web research) - v2.3.0 — Full support for Google's "Gemini Notebook" rebrand: create / list / rename / delete, sources, and every Studio generation type re-verified end-to-end (#23, #21)
- v2.2.1 — Recognize both NotebookLM hosts so Google Workspace accounts authenticate (the
notebook.google.comalias); notebook listing no longer wastes ~30s after the "Gemini Notebook" rebrand; HTTP banner reads the real version. Diagnosis + patch by @kpietkaa (#19) - v2.2.0 — Fix new-answer detection timing out when an answer repeats an earlier one (position-based identity, not text-hash); graceful shutdown on stdio disconnect; Japanese UI locale
- v2.1.1 — Thai UI selectors for
notebook_create(partial, #18) - v2.1.0 —
note_listandnote_getMCP tools (#17) - v2.0.4 — German UI selectors (closes #14)
- v2.0.0 — Tools renamed to a namespaced tree (
notebook_ask,source_add,session_list,server_health,vault_batch…) across 9 namespaces;tools/listadvertises only the canonical names. Backward compatible — the legacy flat names still work as aliases, so existing scripts and configs keep running. Also adds MCPannotations(read-only / destructive / idempotent / open-world hints) andoutputSchema+structuredContenton every tool. Published on the Smithery registry. - v1.7.0 —
batch_to_vaultexposed as a first-class MCP tool (parity with the HTTP endpoint, no localhost server required); sharedrunBatchToVaulthelper deduplicates the loop across both transports - v1.6.0 —
/batch-to-vaultendpoint + RTFM integration (nblm-answer-v1JSON Schema published at schemas.roomi-fields.com/nblm-answer-v1.json) for caching NotebookLM answers as a searchable markdown vault - v1.5.8 — NotebookLM 2026 UI adaptations (icon-label sanitization, Discussion-panel recovery, count-based source detection) — PR #5 by @KhizarJamshaidIqbal
- v1.5.7 — Citation extraction selector fix (
.highlighted) and Docker multi-stage build — PR #1 by @JulienCANTONI - v1.5.6 — Citation extraction major rewrite (97% success rate), browser-verified auth at startup, profile auto-sync
- v1.5.0 — Complete Studio content generation (video, infographic, presentation, data_table) + Notes management + Delete sources
- v1.4.0 — Content management (sources, audio, generation) + Multi-account
Intermediate patch and hardening releases (1.5.x–1.7.x) are in the full CHANGELOG.
Not yet implemented:
- Discover sources (Web/Drive search with Fast/Deep modes)
- Edit notes (create, delete, and convert are implemented)
Disclaimer
This tool automates browser interactions with NotebookLM. Use a dedicated Google account for automation. CLI tools like Claude Code can make mistakes — always review changes before deploying.
See full Disclaimer below.
Contributing
Found a bug? Have an idea? Open an issue or submit a PR!
See CONTRIBUTING.md for guidelines.
License
MIT — Use freely in your projects. See LICENSE.
Author
Romain Peyrichou — @roomi-fields
Acknowledgments
Thanks to everyone who has contributed code, ideas, and bug reports:
- Khizar Jamshaid Iqbal — @KhizarJamshaidIqbal, 2025 UI selector fixes, doctor script, PII scrub
- Kazik Pietka — @kpietkaa,
notebook.google.comrebrand support - Rui Ruiberriz — @Excauboi,
hl=<uiLocale>on app URLs + click-through scrape fallback - @he0xwhale —
note_list/note_getMCP tools - @eminsnow — canonical tool names (
_over.) - Julien Cantoni — @JulienCANTONI
<details> <summary><a name="disclaimer-details"></a>Full Disclaimer</summary>
About browser automation: While I've built in humanization features (realistic typing speeds, natural delays, mouse movements), I can't guarantee Google won't detect or flag automated usage. Use a dedicated Google account for automation.
About CLI tools and AI agents: CLI tools like Claude Code, Codex, and similar AI-powered assistants are powerful but can make mistakes:
- Always review changes before committing or deploying
- Test in safe environments first
- Keep backups of important work
- AI agents are assistants, not infallible oracles
I built this tool for myself and share it hoping it helps others, but I can't take responsibility for any issues that might occur. Use at your own discretion.
</details><div align="center">
Built with frustration about hallucinated APIs, powered by Google's NotebookLM
⭐ Star on GitHub if this saves you debugging time!
</div>Related MCP servers

osc-bridge
OSC ↔ MIDI bridge — 849 synthesizers and DAWs. A MIDI MCP and OSC MCP for controlling them.

RTFM
Index code, docs, PDFs, and data—retrieve the right context instantly for your AI agent, locally and free.
The room-level truth layer of hospitality. Verified scores for exact hotel rooms, not just hotels.

Cannabis compliance: US state testing, INCB, Health Canada, EU precursors. Free.

io.github.rootsbymenda/chemical-safety
Chemical hazard lookup: SVHC, GHS, NIOSH, ICSC. 468K classifications. Free.

Cosmetic safety: NOAEL, MoS, SCCS, 12 jurisdictions. 30K ingredients. Free.