Labsco
roomi-fields logo

notebooklm MCP

β˜… 98

from roomi-fields

Chat with Google NotebookLM via MCP or HTTP REST API for zero-hallucination answers from your docs. Perfect for n8n workflows and automation.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup
<div align="center">

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.

v2.1.0 β€” production-grade, batch-tested on overnight runs of 1 000+ questions. Tools are now a namespaced tree (notebook_ask, source_add, session_list…) with MCP annotations + outputSchema on 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.

<!-- Badges -->

CI npm version npm downloads codecov License: MIT TypeScript Node.js

MCP Claude Code n8n GitHub

<!-- End Badges --> </div>

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 TypeFormatsOptions
Audio OverviewPodcast-style discussionLanguage (80+), custom instructions
VideoBrief, Explainer6 visual styles, language, custom instructions
InfographicHorizontal, VerticalLanguage, custom instructions
ReportSummary, DetailedLanguage, custom instructions
PresentationOverview, DetailedLanguage, custom instructions
Data TableSimple, DetailedLanguage, custom instructions

Video Visual Styles: classroom, documentary, animated, corporate, cinematic, minimalist

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

Integration Options

  • 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-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.

Documentation

Full docs site: https://roomi-fields.github.io/notebooklm-mcp/ Β· OpenAPI 3.1 spec

GuideDescription
InstallationStep-by-step setup for HTTP and MCP modes
ConfigurationEnvironment variables and security
REST API referenceComplete HTTP endpoint documentation (33 endpoints)
Run 1 000 questions overnightProduction batch pattern with auto-reauth and rotation
RTFM integration β€” cache as searchable vaultPipeline pattern: NotebookLM as one-shot ingestion, RTFM as retrieval layer. /batch-to-vault endpoint, nblm-answer-v1 schema.
n8n integrationWorkflow automation setup
TroubleshootingCommon issues and solutions
Notebook libraryMulti-notebook management
Auto-discoveryAutonomous metadata generation
Content managementAudio, video, infographic, report, presentation
Multi-account rotationMultiple accounts with TOTP auto-reauth
DockerDocker and Docker Compose deployment
Multi-interfaceRun Claude Desktop + HTTP simultaneously
Compare with PleasePrompto v2.0.0Feature matrix vs the upstream MCP-only server
Chrome profile limitationProfile locking (solved in v1.3.6+)
Adding a languagei18n system for multilingual UI support

Roadmap

See ROADMAP.md for planned features and version history.

Latest releases:

  • v2.0.0 β€” Tools renamed to a namespaced tree (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.
  • 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 pinning ip-address ^10.2.0 in overrides. npm audit clean. Unblocks the CI security gate that 1.7.8 had been failing.
  • v1.7.8 β€” 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 shells
  • v1.7.7 β€” add_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 deliverable
  • v1.7.6 β€” Fixes two tools shipped in 1.7.4 without live-runtime validation: (1) create_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)
  • v1.7.5 β€” Three end-user bugs fixed: (1) /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_auth
  • v1.7.4 β€” Expose create_notebook and delete_notebooks_from_nblm as MCP tools (handlers existed but lacked a tool definition + dispatch case); 30/30 alignment audit passes
  • v1.7.3 β€” Fix: list_notebooks_from_nblm MCP 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_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
  • v1.6.0 β€” /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 vault
  • v1.5.9 β€” Restore mcpName field 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)

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


<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>