← Back to directory
N

NotebookLM MCP Server

Community
Drive NotebookLM via a real Chrome browser, bringing citation-backed answers to your AI agents.
GitHub source repository ↗
★ 3.4k Stars Category · Browser Very popular Source revision 50b3e7f67f85
55FMRS · C
Reliability
6/20
Security and permissions
10/20
Maintenance
9/20
Documentation
17/20
Setup experience
13/20

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

Read the FMRS scoring method →

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.

Tools

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

Setup

  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.

Fit and risk

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.

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.

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 CodeFull support
CursorFull support
Codex CLIFull support
Generic MCP client (stdio)Full support
HTTP-only clients (n8n, Zapier)Full support