loading…
Search for a command to run...
loading…
Full automation of Google NotebookLM — Q&A with citations, audio podcasts, video, content generation, source management, and notebook library. MCP + HTTP REST A
Full automation of Google NotebookLM — Q&A with citations, audio podcasts, video, content generation, source management, and notebook library. MCP + HTTP REST API.
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.
v2.0.1 — production-grade, batch-tested on overnight runs of 1 000+ questions. Tools are now a dot-notation tree (
notebook.ask,source.add,session.list…) with MCPannotations+outputSchemaon every tool — the old flat names still work as aliases, nothing breaks. See the changelog for the full mapping. Compare with PleasePrompto/notebooklm-mcp v2.0.0 to see when this project is the right pick (REST API, full Studio, auto-reauth) and when the MCP-only upstream is.
CI npm version npm downloads codecov License: MIT TypeScript Node.js
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
/batch-to-vault writes citation-backed answers as markdown + JSON sidecars (nblm-answer-v1 schema), 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 window
See 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:
notebook.ask, source.add, session.list, server.health, vault.batch…) across 9 namespaces; tools/list advertises only the canonical names. Backward compatible — the legacy flat names still work as aliases, so existing scripts and configs keep running. Also adds MCP annotations (read-only / destructive / idempotent / open-world hints) and outputSchema + structuredContent on every tool. Published on the Smithery registry.ip-address ≤10.1.0 (pulled in via @modelcontextprotocol/sdk → express-rate-limit) by pinning ip-address ^10.2.0 in overrides. npm audit clean. Unblocks the CI security gate that 1.7.8 had been failing.add_source false-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 where dist/index.js was published in mode 644 (no +x), causing silent Permission denied failures in sandbox shellsadd_source defensive patch: broaden selectors to cover the empty/fresh-notebook "Upload sources" CTA (EN+FR), and replace the bare Could not find "Add source" button error 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 deliverablecreate_notebook now waits for the final UUID-based URL (no more notebook/creating/c) and verifies the rename actually applied (returns name_applied/actual_name); (2) delete_notebooks_from_nblm now uses the same id-based DOM strategy as list_notebooks_from_nblm (the old button[aria-labelledby*="project-"] selector was broken on the current NotebookLM DOM)/plugin marketplace update roomi-fields + /reload-plugins now actually upgrades the running MCP (npx pin in plugin.json); (2) list_notebooks_from_nblm no longer hardcodes "Notebook" as title — id-based scrape returns real names; (3) get_health.current_account no longer returns a stale email after re_authcreate_notebook and delete_notebooks_from_nblm as MCP tools (handlers existed but lacked a tool definition + dispatch case); 30/30 alignment audit passeslist_notebooks_from_nblm MCP tool was declared but unreachable (missing dispatch case) — now resolves correctly.claude-plugin/plugin.json) + cross-file version sync script enforced in CI; README "Install via Claude Code marketplace" one-linerbatch_to_vault exposed as a first-class MCP tool (parity with the HTTP endpoint, no localhost server required); shared runBatchToVault helper deduplicates the loop across both transports/batch-to-vault endpoint + RTFM integration (nblm-answer-v1 JSON Schema published at schemas.roomi-fields.com/nblm-answer-v1.json) for caching NotebookLM answers as a searchable markdown vaultmcpName field for MCP Registry npm-package ownership verification.highlighted) and Docker multi-stage build — PR #1 by @JulienCANTONINot yet 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
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:
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!
Выполни в терминале:
claude mcp add roomi-fields-notebooklm-mcp -- npx pro-tip
Поставил roomi-fields/notebooklm-mcp? Скажи Claude: «запомни почему я установил roomi-fields/notebooklm-mcp и что хочу попробовать» — попадёт в твой Vault.
как это работает →CSA PROJECT - FZCO © 2026 IFZA Business Park, DDP, Premises Number 31174 - 001
Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.