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.
v1.7.9 — production-grade, batch-tested on overnight runs of 1 000+ questions. New:
batch_to_vaultis now a first-class MCP tool (no HTTP server required) on top of the existingPOST /batch-to-vaultendpoint. See RTFM integration for the full pattern. Compare withPleasePrompto/notebooklm-mcpv2.0.0 to see when this project is the right pick (REST API, full Studio, auto-reauth) and when the MCP-only upstream is.
- 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
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 |
Video Visual Styles: classroom, documentary, animated, corporate, cinematic, minimalist
- 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
- Add sources: Files (PDF, TXT, DOCX), URLs, Text, YouTube videos, Google Drive
- List sources: View all sources in a notebook
- 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
- MCP Protocol — Claude Code, Cursor, Codex, any MCP client
- 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.
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 npm run setup-auth once to log into Google. To install RTFM at the same time: /plugin install rtfm@roomi-fields.
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.
# 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"]
}
}
}Then say: "Log me in to NotebookLM" → Chrome opens → log in with Google.
# 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 windowSee Docker Guide for NAS deployment (Synology, QNAP).
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 |
See ROADMAP.md for planned features and version history.
Latest releases:
- v1.7.9 — Security: resolve moderate XSS advisory GHSA-v2v4-37r5-5v8g in transitive
ip-address ≤10.1.0(pulled in via@modelcontextprotocol/sdk→express-rate-limit) by pinningip-address ^10.2.0inoverrides.npm auditclean. Unblocks the CI security gate that 1.7.8 had been failing. - v1.7.8 —
add_sourcefalse-negative fix (verified at runtime against a live MCP session this time): the count-based success detection now runs on every poll cycle instead of only after the upload dialog closes, since NotebookLM 2026 keeps the dialog open to allow chained uploads. Also fixes a long-standing packaging bug wheredist/index.jswas published in mode 644 (no+x), causing silentPermission deniedfailures in sandbox shells - v1.7.7 —
add_sourcedefensive patch: broaden selectors to cover the empty/fresh-notebook "Upload sources" CTA (EN+FR), and replace the bareCould not find "Add source" buttonerror with a structured DOM dump (URL, title, top 25 buttons + their aria-label/text/class) so the next iteration can be precise. Not validated runtime — the enriched diagnostic is the deliverable - v1.7.6 — Fixes two tools shipped in 1.7.4 without live-runtime validation: (1)
create_notebooknow waits for the final UUID-based URL (no morenotebook/creating/c) and verifies the rename actually applied (returnsname_applied/actual_name); (2)delete_notebooks_from_nblmnow uses the same id-based DOM strategy aslist_notebooks_from_nblm(the oldbutton[aria-labelledby*="project-"]selector was broken on the current NotebookLM DOM) - v1.7.5 — Three end-user bugs fixed: (1)
/plugin marketplace update roomi-fields+/reload-pluginsnow actually upgrades the running MCP (npx pin inplugin.json); (2)list_notebooks_from_nblmno longer hardcodes"Notebook"as title — id-based scrape returns real names; (3)get_health.current_accountno longer returns a stale email afterre_auth - v1.7.4 — Expose
create_notebookanddelete_notebooks_from_nblmas MCP tools (handlers existed but lacked a tool definition + dispatch case); 30/30 alignment audit passes - v1.7.3 — Fix:
list_notebooks_from_nblmMCP tool was declared but unreachable (missing dispatch case) — now resolves correctly - v1.7.2 — Claude Code plugin manifest (
.claude-plugin/plugin.json) + cross-file version sync script enforced in CI; README "Install via Claude Code marketplace" one-liner - 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.9 — Restore
mcpNamefield for MCP Registry npm-package ownership verification - 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.5 — Multi-account state-path bug fix, Windows startup scripts, hidden-window MCP proxy
- v1.5.4 — Mid-session auto-reauth with stored credentials, TOTP support
- v1.5.3 — Docker deployment with noVNC for visual authentication + NAS support (Synology, QNAP)
- v1.5.2 — Notebook scraping from NotebookLM + Bulk delete + Bug fixes
- v1.5.1 — Multilingual UI support (FR/EN) with i18n selector system + E2E tests (76 tests)
- 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
Not yet implemented:
- Discover sources (Web/Drive search with Fast/Deep modes)
- Edit notes (create, delete, and convert are implemented)
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.
Found a bug? Have an idea? Open an issue or submit a PR!
See CONTRIBUTING.md for guidelines.
MIT — Use freely in your projects. See LICENSE.
Romain Peyrichou — @roomi-fields
Full Disclaimer
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.
Built with frustration about hallucinated APIs, powered by Google's NotebookLM
⭐ Star on GitHub if this saves you debugging time!