← Back to directory
N

NotebookLM MCP Server

Community
Archived
Drive NotebookLM via a real Chrome browser, bringing citation-backed answers to your AI agents.
Category
Browser #13 of 32
Stars
★ 3.4k Very popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Node.js 18+ · Prebuilt binary
Credentials
API key / credential required
License
MIT
Last commit
Tools
19
55FMRS · C

This server provides reliable NotebookLM integration via real browser automation, with comprehensive features but dependencies on Chrome and Google login, suited for advanced users.

Strongest · Documentation 17/20 Weakest · Reliability 6/20

Reliability
6/20
Security and permissions
10/20
Maintenance
9/20
Documentation
17/20
Setup experience
13/20
Why each score
Reliability 6/20
The README claims v2.0.0 registers the full tool set, supports stdio/Streamable-HTTP and tool profiles, and is internally consistent with a plausible happy path. However, this review only had the README; no source files, CI workflows or committed tests were supplied, so the MCP init/tool-list handshake and actual tool behavior cannot be verified. Under static calibration, missing execution evidence caps this dimension; deductions are primarily for absent test/CI evidence and unassessable error handling.
Security and permissions 10/20
Data-flow disclosure is fairly clear: platform-specific Chrome profile paths are listed, multi-account isolation is directory-based, and the README explicitly admits there is no encrypted credential store, leaving Google auth cookies in a plaintext profile as the main risk. Destructive operations exist; add_notebook requires explicit user confirmation, while cleanup_data only offers a categorized preview rather than an enforced second confirmation. No red-line malware/credential-exfiltration behavior is evidenced, so 10: main risks are visible, but permission/confirmation/scoping is incomplete.
Maintenance 9/20
The repository is not archived, is MIT-licensed, and the README references an npm package, a CHANGELOG and version migration notes, indicating some maintenance structure and versioning awareness. However, no commit history, release dates, dependency updates, security-response channel or governance details were supplied, and the 40 open issues cannot be interpreted without response data. Score 9: active-looking but with governance/versioning gaps and missing evidence.
Documentation 17/20
The README is a strong entry point to layered docs: install, auth, transports, multi-account, tool tables, profiles, citations, provenance, config table, dev commands, and links to troubleshooting/usage guides. It includes JSON config examples, CLI examples, a citation output example and a provenance envelope example, and discloses limitations such as WSL1 being unsupported, xvfb-run for headless Linux, and no encrypted credential store. Deductions: the linked docs/ files themselves were not supplied so their existence and accuracy cannot be verified, and cost/quota information is absent. Score 17.
Setup experience 13/20
The setup path is clearly documented: Node >=18 plus Chrome (or bundled Patchright Chromium fallback), one-line npx install, config examples for Claude Code/Cursor/Codex/generic MCP, stdio and HTTP transports, a platform matrix, and xvfb-run guidance for headless Linux. However, static calibration caps this dimension at 15 without verifiable CI and committed tests, and first-time auth requires a visible browser and interactive login, adding manual/fragile steps. Score 13.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessWrites / deletes local filesUses the networkControls a browser

Best for

  • Power users needing reliable answers based on user-uploaded documents with reduced hallucinations.
  • Developers already using Claude Code, Cursor, or Codex who want to extend capabilities with NotebookLM.
  • Workflows that automate extensive document research or content generation.

Not for

  • Users without a Google account or NotebookLM access.
  • Users who cannot run Chrome or headless servers without xvfb (WSL1 is not supported).
  • Those needing a lightweight, browserless solution (this server depends on a real Chrome).

Required permissions

  • Requires Google account login to access NotebookLM service.
  • Requires running Chrome/Chromium via Patchright, and may modify its profile files.
  • Can read/write local filesystem to store Chrome profiles, library data, and audio files.
  • May listen on local ports (default 3000 in HTTP mode) to serve MCP.
  • May make network requests to NotebookLM and Google services.

Risks and side effects

  • Browser automation may trigger Google's anti-automation detection, potentially leading to account restrictions.
  • Chrome profile stores login credentials without encryption, posing credential leak risk.
  • Third-party source content may contain malicious instructions; AI marker and disclaimers mitigate but cannot eliminate risk.
  • Long-running sessions may accumulate browser sessions; monitor session timeouts and resource usage.

Setup

Before you start

Runtime:Node.js 18+ · Prebuilt binary

Other optional settings (17)
HEADLESS optional Run Chrome headless, default true; set show_browser per-call when you need a visible window.
ANSWER_TIMEOUT_MS optional Hard ceiling for waiting on a NotebookLM answer, default 600000 ms.
BROWSER_TIMEOUT optional Per-action browser timeout, default 30000 ms.
MAX_SESSIONS optional Max concurrent browser sessions, default 10.
SESSION_TIMEOUT optional Idle seconds before a session is garbage-collected, default 900.
STEALTH_ENABLED optional Master switch for human-typing/mouse/delay stealth, default true.
NOTEBOOKLM_TRANSPORT optional Transport mode, stdio or http, default stdio.
NOTEBOOKLM_PORT optional HTTP listen port, default 3000.
NOTEBOOKLM_HOST optional HTTP bind address, default 127.0.0.1.
NOTEBOOKLM_ACCOUNT optional Multi-account slug; each account gets its own Chrome profile and auth state.
NOTEBOOKLM_PROFILE optional Tool profile: minimal / standard / full, default full.
NOTEBOOKLM_DISABLED_TOOLS optional Comma-separated tool names to suppress.
NOTEBOOKLM_AI_MARKER optional Whether to prefix answers with an AI-generated marker, default true.
NOTEBOOKLM_AI_MARKER_PREFIX optional Custom text for the AI-generated marker prefix.
NOTEBOOKLM_FOLLOW_UP_REMINDER optional Re-enable the v1 follow-up reminder appended to answers, default off.
BROWSER_CHANNEL optional Browser channel; set to chromium to force the bundled Patchright Chromium, default chrome.
NOTEBOOKLM_BROWSER_CHANNEL optional Equivalent alias of BROWSER_CHANNEL.
  1. Ensure Node.js >= 18 and Chrome are installed.
  2. Install globally or use npx: npx notebooklm-mcp@latest.
  3. For Claude Code: run claude mcp add notebooklm -- npx notebooklm-mcp@latest.
  4. For Cursor: add config to ~/.cursor/mcp.json.
  5. For Codex: run codex mcp add notebooklm npx notebooklm-mcp@latest.
  6. On first run, execute the setup_auth tool to complete Google login; use a display or xvfb-run.

Check that it works

Run setup_auth once to complete the Google login, then check that tools like ask_question and list_notebooks appear in your client's tool list; calling get_health and getting back auth state and a config snapshot confirms the connection works.

Troubleshooting

  1. If login fails, ensure Chrome is available; run in a display environment or use `xvfb-run -a`. For headless Linux servers, run setup_auth once under xvfb.
  2. If browser fails to launch, set `BROWSER_CHANNEL=chromium` to force the bundled Patchright Chromium.
  3. Check network connectivity to Google services.
  4. Use `get_health` to inspect auth state and configuration; check logs.
  5. If authentication is broken, run `re_auth` to re-authenticate.

Things to try

Once connected, you can ask your AI assistant things like:

  • Add this NotebookLM share URL to my library and make it the active notebook
  • Ask the selected notebook: what configuration steps does this document recommend? Use footnotes for citations
  • Add https://example.com/docs as a new web source to the notebook
  • Generate an Audio Overview for this notebook and download it to my downloads folder

Tools 19

ask_question read-only
Ask a question against a notebook. Supports session reuse, citation extraction (source_format), and per-call browser overrides. Returns answer + _provenance envelope.
add_source writes
Add a source to a notebook. Supports type=url (web crawl) and type=text (paste). Returns source counts before/after.
generate_audio writes
Generate an Audio Overview. Optional custom_prompt and timeout_ms.
download_audio writes
Save the most recent Audio Overview to a destination directory.
add_notebook writes
Add a NotebookLM share-URL to the local library with metadata. Requires explicit user confirmation.
list_notebooks read-only
List every notebook in the library with metadata.
get_notebook read-only
Fetch one notebook by id.
select_notebook writes
Set a notebook as the active default for ask_question.
Show 11 more tools
update_notebook writes
Update name, description, topics, content_types, use_cases, tags, or url.
remove_notebook destructive
Remove from the local library (does not delete the NotebookLM notebook itself).
search_notebooks read-only
Search by name, description, topics, tags.
get_library_stats read-only
Counts and usage stats.
list_sessions read-only
List active browser sessions with age + message count.
close_session destructive
Close one session by session_id.
reset_session destructive
Reset chat history while keeping the same session_id.
get_health read-only
Auth state, session count, configuration snapshot, troubleshooting hint.
setup_auth writes
First-time interactive Google login. Pass show_browser=true to see the window; returns immediately after launching, with up to 10 minutes to complete login.
re_auth destructive
Wipe stored auth and start over. Use when switching Google accounts or when authentication is broken.
cleanup_data destructive
Full cleanup with categorised preview. Pass preserve_library=true to keep library.json while wiping browser state.

Use cases

Let AI agents query NotebookLM notebooks directly for grounded, cited answers.
Automate ingestion of web or text sources into a notebook.
Generate and download audio overviews for podcasts or study materials.
Manage and search a local notebook library for cross-client sharing.
Integrate NotebookLM Q&A into HTTP clients like n8n, Zapier.

Supported clients

Claude Code
Cursor
Codex
Generic MCP client
HTTP-only clients

Listed from the project's documentation, not tested by this site.

Overview

notebooklm-mcp is an MCP server for Google NotebookLM. It drives a real Chrome via Patchright (stealth + persistent fingerprint) so AI agents (like Claude Code, Codex) can chat against a notebook, ingest sources, generate audio overviews, and read DOM-level citations. Two transports are supported: stdio (default) and Streamable-HTTP. Authentication is persisted after a one-time setup_auth login, so subsequent runs don't need to log in again. Multi-account profiles are supported with isolated Chrome profiles. Tools cover Q&A, source management, audio generation, library management, session management, and system operations. Tool profiles (minimal, standard, full) help control context budgets. All answers carry _provenance metadata indicating AI generation and grounding.

Similar servers

Source revision 00179986ff6d Data synced 2026-10-11 Read the FMRS scoring method