← Về thư mục
📄 / / proc / 45 / cwd / root / GitHub / docs / research / notebooklm-mcp-comparison.md

NotebookLM MCP & Automation Integration Comparison

This report evaluates different approaches to integrating Google NotebookLM with AI agents (such as Claude Code, Cursor, or Codex) and command-line workflows. It compares the current browser-automation-based skill against two leading open-source alternatives: PleasePrompto/notebooklm-mcp and jacob-bd/notebooklm-mcp-cli.


1. Context & Problem Statement

The current /notebooklm skill used in this workspace is based on Browser Automation (driving a headless Chromium instance via Patchright/Playwright). In practice, this approach suffers from severe limitations:

  1. High Latency (Slow Responses): Each question requires launching a new browser context, navigating to the NotebookLM page, waiting for the chat history to stabilize (5+ seconds), typing the question character-by-character, waiting for the streaming response, and shutting down. This takes 15 to 45 seconds per query.
  2. Selector Fragility (UI Drift): Google frequently updates the NotebookLM frontend DOM structure and class names. Because the scraper relies on specific CSS selectors (like .to-user-container .message-text-content), any UI update breaks the scraper, leading to timeouts or empty responses.
  3. No Source/Citation Extraction: The current script only extracts the plain text of the response. It does not extract the grounded sources, document titles, page numbers, or exact quotes, which defeats the core value proposition of NotebookLM.
  4. Stuck/Repeating Responses: If the browser session fails to detect the end of a stream or reads a cached DOM state, it can return stale responses or get stuck in a loop.

2. Technical Comparison Matrix

This matrix compares the current implementation against the two open-source alternatives.

Name (Link) Stars Latest Commit Date Setup Overhead Pros & Cons License & Cost Key Core Features
Current /notebooklm Skill (Baseline) N/A Local Medium (Auto-venv via run.py) + Stateless, isolated
- Extremely slow (15-45s)
- No source extraction
- Highly fragile to UI updates
MIT / Free Basic Q&A via headless browser scraping
PleasePrompto/notebooklm-mcp Active 2026-05-01 Medium (Installed via npx) + Full MCP server protocol
+ Cross-client session sharing
- Still uses Patchright browser automation under the hood
- High CPU/RAM footprint
MIT / Free Q&A, Notebook & source management, Audio Overview generation
jacob-bd/notebooklm-mcp-cli Active 2026-06-25 Medium (Installed via pipx / pip) + Extremely Fast (Direct HTTP requests)
+ Rich Source Extraction (JSON metadata)
+ No UI selector fragility
- Risk of "RPC drift" if Google changes internal endpoints
MIT / Free Q&A with precise citations, full notebook/source CRUD, Audio Overview, Study Guide generation

3. Deep-Dive Analysis of Alternatives

A. PleasePrompto/notebooklm-mcp (Browser-Driven MCP)

B. jacob-bd/notebooklm-mcp-cli (API/RPC-Driven CLI & MCP)


This tool directly addresses all the pain points of the current system: 1. It eliminates the 30-second browser startup delay. 2. It provides complete, structured source and citation extraction. 3. It is much more stable than DOM scraping.

Implementation & Transition Plan

  1. Install notebooklm-mcp-cli: bash pipx install notebooklm-mcp-cli
  2. Authenticate: bash nlm login This opens a browser window for a one-time Google login and automatically captures the session cookies.
  3. Configure as an MCP Server: Add it to the Claude / Antigravity configuration (e.g., mcp.json or through the CLI): json { "mcpServers": { "notebooklm": { "command": "nlm", "args": ["mcp"] } } }
  4. Deprecate the Browser-Based Skill: Remove or archive the /Users/keira/.gemini/config/skills/notebooklm directory to prevent the agent from falling back to the slow browser-based automation.